KSGSKlasse.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef KSGSKlasse_H
  2. #define KSGSKlasse_H
  3. #include <Knopf.h>
  4. #include <Fenster.h>
  5. #include <Bild.h>
  6. #include <Animation.h>
  7. #include "KSGSFunktion.h"
  8. #include "../Include/KSGScript.h"
  9. namespace KSGScript
  10. {
  11. class KSGSKlasse; // aus dieser Datei
  12. class KSGSKlasseInstanz : public KSGSVariable
  13. {
  14. protected:
  15. RCArray< KSGSVariable > *lokaleVariablen;
  16. RCArray< KSGSFunktion > *funktionen;
  17. Array< bool > *varPublic;
  18. KSGScriptObj *obj;
  19. int typ;
  20. int ref;
  21. public:
  22. // Konstruktor
  23. KSGSKlasseInstanz( int typ, Array< KSGSVariableDef* > *zVars, RCArray< KSGSFunktion > *funcs, KSGScriptObj *zObj );
  24. // Destruktor
  25. virtual ~KSGSKlasseInstanz();
  26. // nicht constant
  27. virtual KSGSVariable *startFunktion( int id, bool zugriff, RCArray< KSGSVariable > *parameter ) override;
  28. virtual KSGSVariable *doOperator( int id, KSGSVariable *rechts ) override;
  29. virtual void setVariable( int id, KSGSVariable *var ) override;
  30. // constant
  31. virtual KSGSVariable *getVariable( int id, bool zugriff ) const override;
  32. virtual KSGSVariable *umwandelnIn( int typ ) const override;
  33. virtual int getTyp() const override;
  34. // verarbeiten
  35. virtual bool getBool() const override;
  36. virtual int getInt() const override;
  37. virtual double getDouble() const override;
  38. virtual Text *getText() const override;
  39. virtual Bild *getBild() const override;
  40. virtual MausEreignis getMausEreignis() const override;
  41. virtual TastaturEreignis getTastaturEreignis() const override;
  42. virtual TextFeld *getTextFeld() const override;
  43. virtual Knopf *getKnopf() const override;
  44. virtual Fenster *getFenster() const override;
  45. virtual BildZ *getBildZ() const override;
  46. virtual Animation2DData *getAnimation2DData() const override;
  47. virtual Animation2D *getAnimation2D() const override;
  48. virtual Zeichnung *getZeichnung() const override;
  49. virtual RCArray< KSGSVariable > *getArray() const override;
  50. // Reference Counting
  51. virtual KSGSVariable *getThis() override;
  52. virtual KSGSVariable *release() override;
  53. // static
  54. static KSGSVariable *erstellVariable( KSGScriptObj *zObj, KSGSVariableDef *def );
  55. };
  56. class KSGSKlasse
  57. {
  58. private:
  59. Array< KSGSVariableDef* > *var;
  60. RCArray< KSGSFunktion > *funktionen;
  61. int id;
  62. int ref;
  63. public:
  64. // Konstruktor
  65. __declspec( dllexport ) KSGSKlasse( int id );
  66. // Destruktor
  67. __declspec( dllexport ) ~KSGSKlasse();
  68. // nicht constant
  69. __declspec( dllexport ) void addVariable( KSGSVariableDef *var );
  70. __declspec( dllexport ) void addFunktion( KSGSFunktion *func );
  71. __declspec( dllexport ) KSGSKlasseInstanz *erstellInstanz( KSGScriptObj *zObj );
  72. // constant
  73. __declspec( dllexport ) int getId() const;
  74. // Reference Counting
  75. __declspec( dllexport ) KSGSKlasse *getThis();
  76. __declspec( dllexport ) KSGSKlasse *release();
  77. };
  78. }
  79. #endif