123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #pragma once
- #include <Array.h>
- #include <Text.h>
- #include <Zeichnung.h>
- #include "../Klassen/KSGSTyp.h"
- #include <Schrift.h>
- #include <ReferenceCounter.h>
- namespace Framework
- {
- class Bild;
- class TextFeld;
- class Knopf;
- class Fenster;
- class BildZ;
- class Animation2DData;
- class Animation2D;
- class Schrift;
- class Text;
- class TextFeld;
- class TextRenderer;
- }
- 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 virtual Framework::ReferenceCounter
- {
- 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;
- virtual Framework::RCArray< KSGSVariable >* getArray() const = 0;
- };
- class KSGScriptProcessor : public virtual Framework::ReferenceCounter
- {
- public:
- virtual void logNachricht(const char* n) = 0;
- virtual Framework::Text* convertPfad(const char* pf) = 0;
- virtual void setVariable(int id, KSGSVariable* var) = 0;
- virtual KSGSVariable* startFunktion(int id, Framework::RCArray< KSGSVariable >* parameter) = 0;
- virtual KSGSVariable* erstellKlassenInstanz(int id) = 0;
- virtual KSGSVariable* getVariable(int id) const = 0;
- virtual int getScriptId() const = 0;
- virtual Framework::Bildschirm* zBildschirm() const = 0;
- virtual Framework::Schrift* zSchrift() const = 0;
- virtual int getFunktionId(const char* name) const = 0;
- virtual bool istBeendet(int scrId) const = 0;
- virtual KSGSVariable* callback(Framework::RCArray< KSGSVariable >* parameter) const = 0;
- };
- /*
- * Vordefinierte KSGS Expression Evaluator Klasse
- */
- class KSGSExpressionEvaluator : public KSGScriptProcessor
- {
- public:
- virtual KSGSVariable* createParameter(Framework::Text name, int type) = 0;
- virtual KSGSVariable* getParameter(Framework::Text name) = 0;
- virtual void setExpression(Framework::Text expression) = 0;
- virtual KSGSVariable* evaluate() = 0;
- };
- /*
- * Vordefinition der KSGS Zeichnung Klasse.
- * Virtuelle Vordefinition der Klasse KSGScriptObj aus ../Main/KSGScriptObj.h
- */
- class KSGScriptObj : virtual public Framework::Zeichnung, public KSGScriptProcessor
- {
- public:
- // nicht constant
- virtual void lock() = 0;
- virtual void unlock() = 0;
- virtual void setScriptDatei(const char* pfad) = 0;
- virtual void setScriptDatei(Framework::Text* pfad) = 0;
- virtual bool neuLaden() = 0;
- virtual void reset() = 0;
- virtual void setCallbackParam(void* p) = 0;
- virtual void setCallbackFunktion(void(*funktion)(void*, Framework::RCArray< KSGSVariable >*, KSGSVariable**)) = 0;
- virtual void setSchriftZ(Framework::Schrift* s) = 0;
- virtual void setBildschirmZ(Framework::Bildschirm* s) = 0;
- virtual void doPublicMausEreignis(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 void setLog(Framework::TextFeld* log) = 0;
- // constant
- virtual Framework::Text* getScriptDateiPfad() const = 0;
- virtual Framework::Text* zScriptDateiPfad() const = 0;
- virtual Framework::Schrift* getSchrift() const = 0;
- virtual Framework::Bildschirm* getBildschirm() const = 0;;
- };
- // Ein Textfeld, das eine Entwicklungsumgebung für die KSG-Script Sprache darstellt
- class KSGScriptEditor : virtual public Framework::ZeichnungHintergrund
- {
- public:
- enum class ColorType
- {
- KEYWORD,
- TYPENAME,
- PARAMETER_VARIABLE,
- INSTANCE_VARIABLE,
- STRING,
- KOMMENTAR,
- NORMAL_TEXT,
- ERROR_UNDERLINE,
- COLOR_ANZAHL // Dies wird nur benötigt um die Anzahl der verschiedenen Farben zu zählen
- };
- // Setzt die zu verwendende Schrift
- // s: Die Schrift
- virtual void setSchriftZ(Framework::Schrift* s) = 0;
- // Setzt den zu verwendenden Text Renderer
- // t: Der Text Renderer
- virtual void setTextRendererZ(Framework::TextRenderer* t) = 0;
- // Setzt den Text (das Script was verändert werden soll)
- // txt: Der Text
- virtual void setText(Framework::Text* txt) = 0;
- // Gibt den aktuellen Text zurück
- virtual Framework::Text* zText() const = 0;
- // Schaltet die Fehlererkennung ein oder aus
- // on: 1, um die Fehlererkennung einzuschalten, 0 um sie auszuschalten
- virtual void setErrorDetection(bool on = 1) = 0;
- // Schaltet die Warnungserkennung ein oder aus
- // on: 1, um die Warnungserkennung einzuschalten, 0 um sie auszuschalten
- virtual void setWarningDetection(bool on = 1) = 0;
- // gibt 1 zurück, wenn die Fehlererkennung eingeschaltet ist
- virtual bool getErrorDetection() const = 0;
- // gibt 1 zurück, wenn die Warnungserkennung eingeschaltet ist
- virtual bool getWarningDetection() const = 0;
- // Setzt die Farbe eines Bestimmten Codetyps
- // color: Die Farbe in 0xAARRGGBB Format
- // cType: Der Codetyp, der die Farbe bekommen soll
- virtual void setTextColor(int color, ColorType cType) = 0;
- };
- // DLL Einstieg
- typedef KSGScriptEditor* (*KSGSGetEditor)();
- typedef KSGScriptObj* (*KSGSGetZeichnung)();
- typedef KSGSVariable* (*KSGSGetVariable)(KSGScriptObj* zObj, KSGSVariableDef* def);
- typedef KSGSExpressionEvaluator* (*KSGSGetExpressionEvaluator)();
- typedef void (*KSGSSetBild)(KSGSVariable* zBv, Framework::Bild* b);
- }
- #define KSGS_START_FUNKTION "GetNewKSGScriptObj"
- #define KSGS_EDITOR_FUNKTION "GetNewKSGEditorObj"
- #define KSGS_VARIABLE_FUNKTION "GetNewKSGSVariable"
- #define KSGS_SET_BILD_FUNKTION "SetKSGSBildVariable"
|