123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- #ifndef Knopf_H
- #define Knopf_H
- #include "TextFeld.h"
- namespace Framework
- {
- class TextFeld; //! TextFeld.h
- class AlphaFeld; //! AlphaFeld.h
- class Text; //! Text.h
- class Schrift; //! Schrift.h
- class Rahmen; //! Rahmen.h
- class LTDBDatei; //! Dateisystem.h
- class Knopf; //! aus dieser Datei
- class KontrollKnopf; //! aus dieser Datei
- class TextRenderer;
- //! Eine Zeichnung des 2D GUI Frameworks, die einen Knopf zeichnet, den der
- //! Benutzer drücken kann
- class Knopf : public TextFeld
- {
- public:
- class Style : public ZeichnungHintergrund::Style
- {
- public:
- static const __int64 MehrfarbigText
- = 0x0010000; //! Legt fest, ob der Text des Knopfes mehrere
- //! Farben haben darf
- static const __int64 KlickFarbe
- = 0x0020000; //! Legt fest, ob der Knopf während er gedrückt
- //! wird eine Hintergrund Farbe hat
- static const __int64 KlickBild
- = 0x0040000; //! Legt fest, ob der Knopf während er gedrückt
- //! wird ein Bild als Hintergrund hat
- static const __int64 KlickAlpha
- = 0x0080000; //! Legt fest, ob der Knopf während er gedrückt
- //! wird für das Zeichnen des Hintergrundes alpha
- //! blending verwendet
- static const __int64 KlickBuffer
- = 0x0100000; //! Legt fest, ob der Knopf während er gedrückt
- //! wird einen Farbübergang besitzt
- static const __int64 Normal
- = Sichtbar | Erlaubt | Rahmen | Buffered | MehrfarbigText
- | KlickBuffer; //! Vereint di Flags Sichtbar, Erlaubt, Rahmen,
- //! Buffered, MehrfarbigText, KlickBuffer
- };
- private:
- int klickFarbe;
- Bild* klickBild;
- AlphaFeld* klickBuffer;
- int klickIndex;
- //! Verarbeitet Maus Nachrichten
- //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
- DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
- public:
- //! Konstruktor
- DLLEXPORT Knopf();
- //! Destruktor
- DLLEXPORT virtual ~Knopf();
- //! Setzt die Farbe, die als Hintergrund verwendet wird, wenn der Knopf
- //! gedrückt wird \param fc Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setKlickFarbe(int fc);
- //! Setzt das Hintergrund Bild durch kopieren, das verwendet wird, wenn
- //! der Knopf gedrückt wird \param bild Das Bild, das kopiert werden
- //! soll
- DLLEXPORT void setKlickBild(Bild* bild);
- //! Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird,
- //! wenn der Knopf gedrückt wird \param bild Das neue Bild
- DLLEXPORT void setKlickBildZ(Bild* bild);
- //! Setzt einen Zeiger auf den Farbübergang, der verwendet wird, wenn
- //! der Knopf gedrückt wird \param af Der neue Farbübergang
- DLLEXPORT void setKBZ(AlphaFeld* af);
- //! Setzt die Stärke des Farbübergangs, der verwendet wird, wenn der
- //! Knopf gedrückt wird \param st Die Stärke
- DLLEXPORT void setKBStrength(int st);
- //! Setzt die Farbe des Farbübergangs, der verwendet wird, wenn der
- //! Knopf gedrückt wird \param fc Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setKBFarbe(int fc);
- //! Verarbeitet Maus Nachrichten
- //! \param te Das Ereignis, was durch die Tastatur Eingabe ausgelößt
- //! wurde
- DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override;
- //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
- //! \param zRObj Das Bild, in welches gezeichnet werden soll
- DLLEXPORT void render(Bild& zRObj) override;
- //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet
- //! wird, wenn der Knopf gedrückt wird
- DLLEXPORT int getKlickFarbe() const;
- //! Gibt das Hintergrund Bild zurück, das verwendet wird, wenn der Knopf
- //! gedrückt wird
- DLLEXPORT Bild* getKlickBild() const;
- //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
- //! das verwendet wird, wenn der Knopf gedrückt wird
- DLLEXPORT Bild* zKlickBild() const;
- //! Gibt den Farbübergang zurück, der verwendet wird, wenn der Knopf
- //! gedrückt wird
- DLLEXPORT AlphaFeld* getKB() const;
- //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der
- //! verwendet wird, wenn der Knopf gedrückt wird
- DLLEXPORT AlphaFeld* zKB() const;
- //! Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der
- //! verwendet wird, wenn der Knopf gedrückt wird
- DLLEXPORT int getKBFarbe() const;
- //! Gibt die Stärke des Farbübergangs zurück, der verwendet wird, wenn
- //! der Knopf gedrückt wird
- DLLEXPORT int getKBStrength() const;
- //! Kopiert den Knopf, so das er ohne auswirkungen auf das Original
- //! verändert werden kann
- DLLEXPORT Zeichnung* dublizieren() const override;
- };
- //! Eine Zeichnung des 2D GUI Frameworks, die einen Auswählbares Kästchen
- //! mit beschriftung zeichnet
- class KontrollKnopf : public ZeichnungHintergrund
- {
- public:
- class Style : public ZeichnungHintergrund::Style
- {
- public:
- static const __int64 Selected
- = 0x1000000; //! Legt fest, ob das Kästchen ausgewählt ist
- static const __int64 MehrfarbigText
- = 0x001000; //! Legt Fest, ob der Beschriftungs Text mehrfarbig
- //! sein kann
- static const __int64 KlickFarbe
- = 0x002000; //! Legt fest, ob das Kästchen während ed gedrückt
- //! wird eine Hintergrund Farbe hat
- static const __int64 KlickBild
- = 0x004000; //! Legt fest, ob das Kästchen beim Klicken ein
- //! Hintergrund Bild hat
- static const __int64 KlickAlpha
- = 0x008000; //! Legt fest, ob für den Hintergrund des Kästchens
- //! beim Klicken alpha blending verwendet wird
- static const __int64 KlickBuffer
- = 0x010000; //! Legt fest, ob das Kästchen beim Klicken einen
- //! Farbübergang hat
- static const __int64 SelectFarbe
- = 0x020000; //! Legt fest, ob das Kästchen wärhend es ausgewählt
- //! ist eine Hintergrund Farbe hat
- static const __int64 SelectBild
- = 0x040000; //! Legt fest, ob das Kästchen wärhend es ausgewählt
- //! ist ein Hintergrund Bild hat
- static const __int64 SelectAlpha
- = 0x080000; //! Legt fest, ob das Kästchen wärhend es ausgewählt
- //! ist für den Hintergrund alpha blending verwendet
- static const __int64 SelectBuffer
- = 0x100000; //! Legt fest, ob das Kästchen wärhend es ausgewählt
- //! ist einen Farbübergang hat
- static const __int64 SelectText
- = 0x200000; //! Legt fest, ob das Kästchen wärhend es ausgewählt
- //! ist eine andere Beschriftung hat
- static const __int64 MehrzeiligText
- = 0x400000; //! Legt fest, ob das Kästchen eine Mehrzeilige
- //! Beschriftung haben kann
- static const __int64 MausKlick
- = 0x800000; //! Legt fest, ob gerade mit der Maus auf das
- //! Kästchen geklickt wird. (Wird vom Kästchen
- //! selbst verwaltet)
- static const __int64 Normal
- = Sichtbar | Erlaubt | Rahmen
- | KlickBuffer; //! Vereint die Flags Sichtbar, Erlaubt, Rahmen,
- //! KlickBuffer
- };
- private:
- Text* txt;
- Text* sTxt;
- int sBgF;
- int kBgF;
- Bild* sBgB;
- Bild* kBgB;
- AlphaFeld* sAf;
- AlphaFeld* kAf;
- Bild* kasten;
- Bild* sKasten;
- TextRenderer* textRd;
- int sF;
- int sGr;
- //! Verarbeitet Maus Nachrichten
- //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
- DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
- public:
- //! Konstruktor
- DLLEXPORT KontrollKnopf();
- //! Destruktor
- DLLEXPORT virtual ~KontrollKnopf();
- //! Setzt den Zeiger auf den Beschriftungs Text
- //! \param txt Der Text
- DLLEXPORT void setTextZ(Text* txt);
- //! Setzt den Beschriftungs Text
- //! \param txt Der Text
- DLLEXPORT void setText(Text* txt);
- //! Setzt den Beschriftungs Text
- //! \param txt Der Text
- DLLEXPORT void setText(const char* txt);
- //! Setzt den Zeiger auf den Beschriftungs Text, der angezeigt wird,
- //! während das Kästchen ausgewählt ist \param txt Der Text
- DLLEXPORT void setSTextZ(Text* txt);
- //! Setzt den Beschriftungs Text, der angezeigt wird, während das
- //! Kästchen ausgewählt ist \param txt Der Text
- DLLEXPORT void setSText(Text* txt);
- //! Setzt den Beschriftungs Text, der angezeigt wird, während das
- //! Kästchen ausgewählt ist \param txt Der Text
- DLLEXPORT void setSText(const char* txt);
- //! Setzt den verwendeten TextRenderer
- //! \param textRd Der Textrenderer
- DLLEXPORT void setTextRendererZ(TextRenderer* textRd);
- //! Setzt die Schrift, die für die Beschriftung verwendet werden soll
- //! \param schrift Die Schrift
- DLLEXPORT void setSchriftZ(Schrift* schrift);
- //! Setzt die Farbe der Schrift, die für die Beschriftung verwendet
- //! werden soll \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setSFarbe(int f);
- //! Setzt die Größe der Schrift, die für die Beschriftung verwendet
- //! werden soll \param f Die Höhe einer Zeile in Pixeln
- DLLEXPORT void setSSize(int gr);
- //! Setzt die Hintergrund Farbe, die verwendet wird, während das
- //! Kästchen ausgewählt ist \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setSBgFarbe(int f);
- //! Setzt die Hintergrund Farbe, die verwendet wird, während auf das
- //! Kästchen geklickt wird \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setKBgFarbe(int f);
- //! Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird,
- //! während das Kästchen ausgewählt ist \param b Das Bild
- DLLEXPORT void setSBgBildZ(Bild* b);
- //! Setzt das Hintergrund Bild durch kopieren, das verwendet wird,
- //! während das Kästchen ausgewählt ist \param b Das Bild, das kopiert
- //! werden soll
- DLLEXPORT void setSBgBild(Bild* b);
- //! Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird,
- //! während auf das Kästchen geklickt wird \param b Das Bild
- DLLEXPORT void setKBgBildZ(Bild* b);
- //! Setzt das Hintergrund Bild durch kopieren, das verwendet wird,
- //! während auf das Kästchen geklickt wird \param b Das Bild, das
- //! kopiert werden soll
- DLLEXPORT void setKBgBild(Bild* b);
- //! Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während
- //! das Kästchen ausgewählt ist \param af Der Farbübergang
- DLLEXPORT void setSAlphaFeldZ(AlphaFeld* af);
- //! Setzt die Farbe des Farbübergangs, der verwendet wird, während das
- //! Kästchen ausgewählt ist \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setSAFFarbe(int f);
- //! Setzt die Stärke des Farbübergangs, der verwendet wird, während das
- //! Kästchen ausgewählt ist \param st Die Stärke
- DLLEXPORT void setSAFStrength(int st);
- //! Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während
- //! auf das Kästchen geklickt wird \param af Der Farbübergang
- DLLEXPORT void setKAlphaFeldZ(AlphaFeld* af);
- //! Setzt die Farbe des Farbübergangs, der verwendet wird, während auf
- //! das Kästchen geklickt wird \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setKAFFarbe(int f);
- //! Setzt die Stärke des Farbübergangs, der verwendet wird, während auf
- //! das Kästchen geklickt wird \param st Die Stärke
- DLLEXPORT void setKAFStrength(int st);
- //! Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
- //! Das Bild kasten.gif wird gezeichnet, wenn das Kästchen nicht
- //! ausgewählt ist. Das Bild skasten.gif wird gezeichnet, wenn das
- //! Kästchen ausgewählt wird \param zDat Die LTDB Datei
- DLLEXPORT void loadData(LTDBDatei* zDat);
- //! Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
- //! Das Bild kasten.gif wird gezeichnet, wenn das Kästchen nicht
- //! ausgewählt ist. Das Bild skasten.gif wird gezeichnet, wenn das
- //! Kästchen ausgewählt wird \param ltdb Der Pfad zur LTDB Datei
- DLLEXPORT void loadData(const char* ltdb);
- //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
- //! \param zRObj Das Bild, in welches gezeichnet werden soll
- DLLEXPORT void render(Bild& zRObj) override;
- //! Gibt die beschriftung zurück
- DLLEXPORT Text* getText() const;
- //! Gibt die beschriftung ohne erhöhten Reference Counter zurück
- DLLEXPORT Text* zText() const;
- //! Gibt die beschriftung zurück, die verwendet wird, während das
- //! Kästchen ausgewählt ist
- DLLEXPORT Text* getSText() const;
- //! Gibt die beschriftung ohne erhöhten Reference Counter zurück, die
- //! verwendet wird, während das Kästchen ausgewählt ist
- DLLEXPORT Text* zSText() const;
- //! Gibt die verwendete Schrift zurück
- DLLEXPORT Schrift* getSchrift() const;
- //! Gibt die verwendete Schrift ohne Reference Counter zurück
- DLLEXPORT Schrift* zSchrift() const;
- //! Gibt die Schrift Farbe im A8R8G8B8 Format zurück
- DLLEXPORT int getSFarbe() const;
- //! Gibt die Schrift Größe zurück
- DLLEXPORT int getSSize() const;
- //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet
- //! wird, während das Kästchen ausgewählt ist
- DLLEXPORT int getSBgFarbe() const;
- //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet
- //! wird, während auf das Kästchen geklickt wird
- DLLEXPORT int getKBgFarbe() const;
- //! Gibt das Hintergrund Bild zurück, das verwendet wird, während das
- //! Kästchen ausgewählt ist
- DLLEXPORT Bild* getSBgBild() const;
- //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
- //! das verwendet wird, während das Kästchen ausgewählt ist
- DLLEXPORT Bild* zSBgBild() const;
- //! Gibt das Hintergrund Bild zurück, das verwendet wird, während auf
- //! das Kästchen geklickt wird
- DLLEXPORT Bild* getKBgBild() const;
- //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
- //! das verwendet wird, während auf das Kästchen geklickt wird
- DLLEXPORT Bild* zKBgBild() const;
- //! Gibt den Farbübergang zurück, der verwendet wird, während das
- //! Kästchen ausgewählt ist
- DLLEXPORT AlphaFeld* getSAlphaFeld() const;
- //! Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der
- //! verwendet wird, während das Kästchen ausgewählt ist
- DLLEXPORT AlphaFeld* zSAlphaFeld() const;
- //! Gibt den Farbübergang zurück, der verwendet wird, während auf das
- //! Kästchen geklickt wird
- DLLEXPORT AlphaFeld* getKAlphaFeld() const;
- //! Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der
- //! verwendet wird, während auf das Kästchen geklickt wird
- DLLEXPORT AlphaFeld* zKAlphaFeld() const;
- };
- } // namespace Framework
- #endif
|