#ifndef KSGSKlasse_H #define KSGSKlasse_H #include #include #include #include #include "KSGSFunktion.h" namespace KSGScript { class KSGSKlasse; // aus dieser Datei class KSGSKlasseInstanz { protected: RCArray< KSGSVariable > *lokaleVariablen; RCArray< KSGSFunktion > *funktionen; Array< bool > *varPublic; KSGScriptObj *obj; int typ; int ref; public: // Konstruktor __declspec( dllexport ) KSGSKlasseInstanz( int typ, Array< KSGSVariableDef* > *zVars, RCArray< KSGSFunktion > *funcs, KSGScriptObj *zObj ); // Destruktor __declspec( dllexport ) ~KSGSKlasseInstanz(); // nicht constant __declspec( dllexport ) virtual KSGSVariable *startFunktion( int id, bool zugriff, RCArray< KSGSVariable > *parameter ); __declspec( dllexport ) virtual KSGSVariable *doOperator( int id, KSGSVariable *rechts ); __declspec( dllexport ) virtual void setVariable( int id, KSGSVariable *var ); // constant __declspec( dllexport ) virtual KSGSVariable *getVariable( int id, bool zugriff ) const; __declspec( dllexport ) virtual KSGSVariable *umwandelnIn( int typ ) const; __declspec( dllexport ) virtual int getTyp() const; // verarbeiten __declspec( dllexport ) virtual bool getBool() const; __declspec( dllexport ) virtual int getInt() const; __declspec( dllexport ) virtual double getDouble() const; __declspec( dllexport ) virtual Text *getText() const; __declspec( dllexport ) virtual Bild *getBild() const; __declspec( dllexport ) virtual MausEreignis getMausEreignis() const; __declspec( dllexport ) virtual TastaturEreignis getTastaturEreignis() const; __declspec( dllexport ) virtual TextFeld *getTextFeld() const; __declspec( dllexport ) virtual Knopf *getKnopf() const; __declspec( dllexport ) virtual Fenster *getFenster() const; __declspec( dllexport ) virtual BildZ *getBildZ() const; __declspec( dllexport ) virtual Animation2DData *getAnimation2DData() const; __declspec( dllexport ) virtual Animation2D *getAnimation2D() const; __declspec( dllexport ) virtual Zeichnung *getZeichnung() const; __declspec( dllexport ) virtual RCArray< KSGSVariable > *getArray() const; // Reference Counting __declspec( dllexport ) virtual KSGSVariable *getThis(); __declspec( dllexport ) virtual KSGSVariable *release(); // static __declspec( dllexport ) static KSGSVariable *erstellVariable( KSGScriptObj *zObj, KSGSVariableDef *def ); }; class KSGSKlasse { private: Array< KSGSVariableDef* > *var; RCArray< KSGSFunktion > *funktionen; int id; int ref; public: // Konstruktor __declspec( dllexport ) KSGSKlasse( int id ); // Destruktor __declspec( dllexport ) ~KSGSKlasse(); // nicht constant __declspec( dllexport ) void addVariable( KSGSVariableDef *var ); __declspec( dllexport ) void addFunktion( KSGSFunktion *func ); __declspec( dllexport ) KSGSKlasseInstanz *erstellInstanz( KSGScriptObj *zObj ); // constant __declspec( dllexport ) int getId() const; // Reference Counting __declspec( dllexport ) KSGSKlasse *getThis(); __declspec( dllexport ) KSGSKlasse *release(); }; } #endif