KSGSKlasse.h 3.1 KB

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