#ifndef KSGScriptObj_H #define KSGScriptObj_H #include #include #include #include "../Klassen/KSGSTyp.h" namespace Framework { class Bild; class TextFeld; class Knopf; class Fenster; class BildZ; class Animation2DData; class Animation2D; class Schrift; class Text; class TextFeld; } namespace KSGScript { struct KSGSVariableDef { int typId; int id; int sichtbar; // 0 = global, 1 = global in klasse, 2 = lokal in klasse, 3 = lokal in Funktion Framework::Text wert; }; /* * Vordefinition der KSGS Variable Klasse. * Virtuelle Vordefinition der Klasse KSGSKlasseInstanz aus ../Befehl/KSGSKlasse.h */ class KSGSVariable { public: // nicht constant virtual KSGSVariable *startFunktion( int id, bool zugriff, Framework::RCArray< KSGSVariable > *parameter ) = 0; virtual KSGSVariable *doOperator( int id, KSGSVariable *rechts ) = 0; virtual void setVariable( int id, KSGSVariable *var ) = 0; // constant virtual KSGSVariable *getVariable( int id, bool zugriff ) const = 0; virtual KSGSVariable *umwandelnIn( int typ ) const = 0; virtual int getTyp() const = 0; // verarbeiten virtual bool getBool() const = 0; virtual int getInt() const = 0; virtual double getDouble() const = 0; virtual Framework::Text *getText() const = 0; virtual Framework::Bild *getBild() const = 0; virtual Framework::MausEreignis getMausEreignis() const = 0; virtual Framework::TastaturEreignis getTastaturEreignis() const = 0; virtual Framework::TextFeld *getTextFeld() const = 0; virtual Framework::Knopf *getKnopf() const = 0; virtual Framework::Fenster *getFenster() const = 0; virtual Framework::BildZ *getBildZ() const = 0; virtual Framework::Animation2DData *getAnimation2DData() const = 0; virtual Framework::Animation2D *getAnimation2D() const = 0; virtual Framework::Zeichnung *getZeichnung() const = 0; // Reference Counting virtual KSGSVariable *getThis() = 0; virtual KSGSVariable *release() = 0; }; /* * Vordefinition der KSGS Zeichnung Klasse. * Virtuelle Vordefinition der Klasse KSGScriptObj aus ../Main/KSGScriptObj.h */ class KSGScriptObj : public Framework::Zeichnung { public: // nicht constant virtual void lock(); virtual void unlock(); virtual void setScriptDatei( const char *pfad ) = 0; virtual void setScriptDatei( Framework::Text *pfad ) = 0; virtual bool neuLaden() = 0; virtual void zurücksetzen() = 0; virtual void setRückrufParam( void *p ) = 0; virtual void setRückrufFunktion( void( *funktion )( void *, Framework::RCArray< KSGSVariable > *, KSGSVariable ** ) ) = 0; virtual void setSchriftZ( Framework::Schrift *s ) = 0; virtual void setBildschirmZ( Framework::Bildschirm *s ) = 0; virtual void doMausEreignis( Framework::MausEreignis &me ) = 0; virtual void doTastaturEreignis( Framework::TastaturEreignis &te ) = 0; virtual bool tick( double zeit ) = 0; virtual void render( Framework::Bild &zRObj ) = 0; virtual KSGSVariable *startFunktion( int id, Framework::RCArray< KSGSVariable > *parameter ) = 0; virtual KSGSVariable *erstellKlassenInstanz( int id ) = 0; virtual void setVariable( int id, KSGSVariable *var ) = 0; virtual Framework::Text *convertPfad( char *pf ) = 0; virtual void setLog( Framework::TextFeld *log ) = 0; virtual void logNachricht( char *n ) = 0; // constant virtual KSGSVariable *rückruf( Framework::RCArray< KSGSVariable > *parameter ) const = 0; virtual Framework::Text *getScriptDateiPfad() const = 0; virtual Framework::Text *zScriptDateiPfad() const = 0; virtual Framework::Schrift *getSchrift() const = 0; virtual Framework::Schrift *zSchrift() const = 0; virtual Framework::Bildschirm *getBildschirm() const = 0; virtual Framework::Bildschirm *zBildschirm() const = 0; virtual int getScriptId() const = 0; virtual bool istBeendet( int scrId ) const = 0; virtual int getFunktionId( const char *name ) const = 0; virtual KSGSVariable *getVariable( int id ) const = 0; // Reference Counting virtual KSGScriptObj *getThis() = 0; virtual KSGScriptObj *release() = 0; }; // DLL Einstieg typedef KSGScriptObj *( *KSGSGetZeichnung )( ); typedef KSGSVariable *( *KSGSGetVariable )( KSGScriptObj *zObj, KSGSVariableDef *def ); typedef void ( *KSGSSetBild )( KSGSVariable *zBv, Framework::Bild *b ); } #define KSGS_START_FUNKTION "GetNewKSGScriptObj" #define KSGS_VARIABLE_FUNKTION "GetNewKSGSVariable" #define KSGS_SET_BILD_FUNKTION "SetKSGSBildVariable" #endif