// $Source: /usr/local/SimSoft/Sfx3D/src/gts/gtsglob.h,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:10 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-14 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: gtsglob.h,v $
// Revision 1.2  2001/11/29 15:18:10  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

#ifndef _GTSGLOB_H
#define _GTSGLOB_H     1


#include "Messager.h"
#include "Strings.h"
#include "Token.h"
#include "XGraph/XGraph.h"
#include "XGraph/AllPrims.h"
#include "XGraph/ToglView.h"

#include "gtsmdg.h"
#include "gtscb.h"

//#include <tcl.h>
//#include <tk.h>

class typBaustein;
class typBibliothek;
class Bibliothek;
class typBausteinListe;
class typFahrkursListe;
class EreignisVerwaltung;
class ProzessVerwaltung;
class ArbeitsplanVerwaltung;
class typMeldung;
class SFXViewHandler;
extern Ustring ExpName;
extern Ustring ExpExtension;
extern Ustring ModellIniDatei;
extern Ustring BausteinBibliothek;
extern Ustring PalettenBibliothek;
extern Ustring Pfad;
extern typBibliothek          *TgbBibliothek;
extern Bibliothek             *PalBibliothek;
extern typBausteinListe       *BausteinListe;
extern typFahrkursListe       *FahrkursListe;
extern EreignisVerwaltung     *EreignisListe;
extern ProzessVerwaltung      *ProzessListe;
extern ArbeitsplanVerwaltung  *ArbeitsplanListe;
extern typMeldung Meld;

extern typBaustein *ZBSTAKTIV;

extern int    LASTBSTNR;
extern int    LASTFKNR;
extern int    LASTAFNR;
extern int    KLEINSTEBSTNR;
extern int    LASTPROZESS;
extern bool   EndeEingabe;
extern bool   testprog;
extern bool   initprog;

extern InputFile *fbb;

extern GTSCallback  GTSCB;
extern Space        *GTSSpace;
extern ToglView     *GTSView;
extern SFXViewHandler *MainViewHandler;
extern Tcl_Interp   *GTSInterpreter;
extern char DlgBuffer[8192];

extern Attribute *BlauAttribute;
extern Map<typBaustein, GeoObject> GTSMAP;

extern char rev[];

void GTS_Meldungen   (char *str);
void GTS_MenueStatus (char *str);
int ArgInt(const char *arg);
int GTSMsgHandleFunc (int msgType, const char* txt);

/**< Releaseversion wird von gtsini aus gesetzt.*/
extern double ModellRelease;
void setReleaseVersion (double rel);
double getReleaseVersion ();

void DateiKopfSchreiben (ostream& ostrm, const Ustring typ);
void DateiFussSchreiben (ostream& ostrm, const Ustring typ);
bool pruefeTBVEingabe   (unsigned int vonbsttyp, unsigned int nachbsttyp);

//-------------------------------------------------
enum  basistypen {
        tLayout                         = 0,
        tQuelle                         = 1,
        tSenke                          = 2,
        tLinearStaufoerderer            = 3,
        tWeiche                         = 4,
        tVWagen                         = 5,
        tGasse                          = 6,
        tMaschine                       = 7,
        tDrehpuffer                     = 8,
        tMehrfachLader                  = 9,
        tLaufkran                       = 10,
        tAbstrakteRegaleinheit          = 12,
        tRechtsKurveStaufoerderer       = 14,
        tLinksKurveStaufoerderer        = 15,
        tSammler                        = 16,
        tRegaleinheit                   = 17,
        tRegalverwalter                 = 18,
        tNcPoolverwalter                = 19,
        tVereinzeler                    = 20,
        tKettenfoerderer                = 23,
        tQuerfoerderer                  = 24,
        tKommissionierer                = 25,
        tKomVerwalter                   = 26,
        tFtsLadepool                    = 28,
        tFtsLadeplatz                   = 29,
        tFtsVerwalter                   = 30,
        tFtsWagen                       = 31,
        tFtsEinbahnstrecke              = 32,
        tFtsZweibahnstrecke             = 33,
        tFtsKurve                       = 34,
        tFtsAbzweigung                  = 35,
        tFtsKreuzung                    = 36,
        tFtsEinbahnMitInhalt            = 37,
        tFtsZweibahnMitInhalt           = 38,
        tFtsEndstrecke                  = 39
      }; // ENDE enum

//-------------------------------------------------
enum ereignisse {
     ETprotokoll       =  3,
     ETasperren        = 24,
     ETesperren        = 25,
     ETastoeren        = 27,
     ETestoeren        = 28,
     ETprogramm        = 46,
     ETazeitreihe      = 53,
     ETezeitreihe      = 54,
     ETstartextprozess = 64,
     ETstopextprozess  = 65,
     ETexplerzeugen    = 66
}; // ENDE ereignisse

//-------------------------------------------------
enum prozesse {
     Last       =  1,
     Stoer      =  2,
     Programm   =  3
}; // ENDE prozesse

#endif /* _GTSGLOB_H */
