123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- #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:
- const static __int64 MehrfarbigText = 0x0010000; //! Legt fest, ob der Text des Knopfes mehrere Farben haben darf
- const static __int64 KlickFarbe = 0x0020000; //! Legt fest, ob der Knopf während er gedrückt wird eine Hintergrund Farbe hat
- const static __int64 KlickBild = 0x0040000; //! Legt fest, ob der Knopf während er gedrückt wird ein Bild als Hintergrund hat
- const static __int64 KlickAlpha = 0x0080000; //! Legt fest, ob der Knopf während er gedrückt wird für das Zeichnen des Hintergrundes alpha blending verwendet
- const static __int64 KlickBuffer = 0x0100000; //! Legt fest, ob der Knopf während er gedrückt wird einen Farbübergang besitzt
- const static __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:
- const static __int64 Selected = 0x1000000; //! Legt fest, ob das Kästchen ausgewählt ist
- const static __int64 MehrfarbigText = 0x001000; //! Legt Fest, ob der Beschriftungs Text mehrfarbig sein kann
- const static __int64 KlickFarbe = 0x002000; //! Legt fest, ob das Kästchen während ed gedrückt wird eine Hintergrund Farbe hat
- const static __int64 KlickBild = 0x004000; //! Legt fest, ob das Kästchen beim Klicken ein Hintergrund Bild hat
- const static __int64 KlickAlpha = 0x008000; //! Legt fest, ob für den Hintergrund des Kästchens beim Klicken alpha blending verwendet wird
- const static __int64 KlickBuffer = 0x010000; //! Legt fest, ob das Kästchen beim Klicken einen Farbübergang hat
- const static __int64 SelectFarbe = 0x020000; //! Legt fest, ob das Kästchen wärhend es ausgewählt ist eine Hintergrund Farbe hat
- const static __int64 SelectBild = 0x040000; //! Legt fest, ob das Kästchen wärhend es ausgewählt ist ein Hintergrund Bild hat
- const static __int64 SelectAlpha = 0x080000; //! Legt fest, ob das Kästchen wärhend es ausgewählt ist für den Hintergrund alpha blending verwendet
- const static __int64 SelectBuffer = 0x100000; //! Legt fest, ob das Kästchen wärhend es ausgewählt ist einen Farbübergang hat
- const static __int64 SelectText = 0x200000; //! Legt fest, ob das Kästchen wärhend es ausgewählt ist eine andere Beschriftung hat
- const static __int64 MehrzeiligText = 0x400000; //! Legt fest, ob das Kästchen eine Mehrzeilige Beschriftung haben kann
- const static __int64 MausKlick = 0x800000; //! Legt fest, ob gerade mit der Maus auf das Kästchen geklickt wird. (Wird vom Kästchen selbst verwaltet)
- const static __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;
- };
- }
- #endif
|