Knopf.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. #ifndef Knopf_H
  2. #define Knopf_H
  3. #include "TextFeld.h"
  4. namespace Framework
  5. {
  6. class TextFeld; // TextFeld.h
  7. class AlphaFeld; // AlphaFeld.h
  8. class Text; // Text.h
  9. class Schrift; // Schrift.h
  10. class Rahmen; // Rahmen.h
  11. class LTDBDatei; // Dateisystem.h
  12. class Knopf; // aus dieser Datei
  13. class KontrollKnopf; // aus dieser Datei
  14. class TextRenderer;
  15. // Eine Zeichnung des 2D GUI Frameworks, die einen Knopf zeichnet, den der Benutzer drücken kann
  16. class Knopf : public TextFeld
  17. {
  18. public:
  19. class Style : public ZeichnungHintergrund::Style
  20. {
  21. public:
  22. const static __int64 MehrfarbigText = 0x0010000; // Legt fest, ob der Text des Knopfes mehrere Farben haben darf
  23. const static __int64 KlickFarbe = 0x0020000; // Legt fest, ob der Knopf während er gedrückt wird eine Hintergrund Farbe hat
  24. const static __int64 KlickBild = 0x0040000; // Legt fest, ob der Knopf während er gedrückt wird ein Bild als Hintergrund hat
  25. 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
  26. const static __int64 KlickBuffer = 0x0100000; // Legt fest, ob der Knopf während er gedrückt wird einen Farbübergang besitzt
  27. const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | Buffered | MehrfarbigText | KlickBuffer; // Vereint di Flags Sichtbar, Erlaubt, Rahmen, Buffered, MehrfarbigText, KlickBuffer
  28. };
  29. private:
  30. int klickFarbe;
  31. Bild *klickBild;
  32. AlphaFeld *klickBuffer;
  33. int klickIndex;
  34. int ref;
  35. public:
  36. // Konstruktor
  37. __declspec( dllexport ) Knopf();
  38. // Destruktor
  39. __declspec( dllexport ) virtual ~Knopf();
  40. // Setzt die Farbe, die als Hintergrund verwendet wird, wenn der Knopf gedrückt wird
  41. // fc: Die Farbe im A8R8G8B8 Format
  42. __declspec( dllexport ) void setKlickFarbe( int fc );
  43. // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, wenn der Knopf gedrückt wird
  44. // bild: Das Bild, das kopiert werden soll
  45. __declspec( dllexport ) void setKlickBild( Bild *bild );
  46. // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, wenn der Knopf gedrückt wird
  47. // bild: Das neue Bild
  48. __declspec( dllexport ) void setKlickBildZ( Bild *bild );
  49. // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, wenn der Knopf gedrückt wird
  50. // af: Der neue Farbübergang
  51. __declspec( dllexport ) void setKBZ( AlphaFeld *af );
  52. // Setzt die Stärke des Farbübergangs, der verwendet wird, wenn der Knopf gedrückt wird
  53. // st: Die Stärke
  54. __declspec( dllexport ) void setKBStrength( int st );
  55. // Setzt die Farbe des Farbübergangs, der verwendet wird, wenn der Knopf gedrückt wird
  56. // fc: Die Farbe im A8R8G8B8 Format
  57. __declspec( dllexport ) void setKBFarbe( int fc );
  58. // Verarbeitet Maus Nachrichten
  59. // me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  60. __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
  61. // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  62. // zRObj: Das Bild, in welches gezeichnet werden soll
  63. __declspec( dllexport ) void render( Bild &zRObj ) override;
  64. // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, wenn der Knopf gedrückt wird
  65. __declspec( dllexport ) int getKlickFarbe() const;
  66. // Gibt das Hintergrund Bild zurück, das verwendet wird, wenn der Knopf gedrückt wird
  67. __declspec( dllexport ) Bild *getKlickBild() const;
  68. // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, wenn der Knopf gedrückt wird
  69. __declspec( dllexport ) Bild *zKlickBild() const;
  70. // Gibt den Farbübergang zurück, der verwendet wird, wenn der Knopf gedrückt wird
  71. __declspec( dllexport ) AlphaFeld *getKB() const;
  72. // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der verwendet wird, wenn der Knopf gedrückt wird
  73. __declspec( dllexport ) AlphaFeld *zKB() const;
  74. // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der verwendet wird, wenn der Knopf gedrückt wird
  75. __declspec( dllexport ) int getKBFarbe() const;
  76. // Gibt die Stärke des Farbübergangs zurück, der verwendet wird, wenn der Knopf gedrückt wird
  77. __declspec( dllexport ) int getKBStrength() const;
  78. // Kopiert den Knopf, so das er ohne auswirkungen auf das Original verändert werden kann
  79. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  80. // Erhöht den Reference Counting Zähler.
  81. // return: this.
  82. __declspec( dllexport ) Knopf *getThis();
  83. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  84. // return: 0.
  85. __declspec( dllexport ) Knopf *release();
  86. };
  87. // Eine Zeichnung des 2D GUI Frameworks, die einen Auswählbares Kästchen mit beschriftung zeichnet
  88. class KontrollKnopf : public ZeichnungHintergrund
  89. {
  90. public:
  91. class Style : public ZeichnungHintergrund::Style
  92. {
  93. public:
  94. const static __int64 Selected = 0x00004; // Legt fest, ob das Kästchen ausgewählt ist
  95. const static __int64 MehrfarbigText = 0x001000; // Legt Fest, ob der Beschriftungs Text mehrfarbig sein kann
  96. const static __int64 KlickFarbe = 0x002000; // Legt fest, ob das Kästchen während ed gedrückt wird eine Hintergrund Farbe hat
  97. const static __int64 KlickBild = 0x004000; // Legt fest, ob das Kästchen beim Klicken ein Hintergrund Bild hat
  98. const static __int64 KlickAlpha = 0x008000; // Legt fest, ob für den Hintergrund des Kästchens beim Klicken alpha blending verwendet wird
  99. const static __int64 KlickBuffer = 0x010000; // Legt fest, ob das Kästchen beim Klicken einen Farbübergang hat
  100. const static __int64 SelectFarbe = 0x020000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist eine Hintergrund Farbe hat
  101. const static __int64 SelectBild = 0x040000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist ein Hintergrund Bild hat
  102. const static __int64 SelectAlpha = 0x080000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist für den Hintergrund alpha blending verwendet
  103. const static __int64 SelectBuffer = 0x100000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist einen Farbübergang hat
  104. const static __int64 SelectText = 0x200000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist eine andere Beschriftung hat
  105. const static __int64 MehrzeiligText = 0x400000; // Legt fest, ob das Kästchen eine Mehrzeilige Beschriftung haben kann
  106. const static __int64 MausKlick = 0x800000; // Legt fest, ob gerade mit der Maus auf das Kästchen geklickt wird. (Wird vom Kästchen selbst verwaltet)
  107. const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | KlickBuffer; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, KlickBuffer
  108. };
  109. private:
  110. Text *txt;
  111. Text *sTxt;
  112. int sBgF;
  113. int kBgF;
  114. Bild *sBgB;
  115. Bild *kBgB;
  116. AlphaFeld *sAf;
  117. AlphaFeld *kAf;
  118. Bild *kasten;
  119. Bild *sKasten;
  120. TextRenderer *textRd;
  121. int sF;
  122. int sGr;
  123. int ref;
  124. public:
  125. // Konstruktor
  126. __declspec( dllexport ) KontrollKnopf();
  127. // Destruktor
  128. __declspec( dllexport ) virtual ~KontrollKnopf();
  129. // Setzt den Zeiger auf den Beschriftungs Text
  130. // txt: Der Text
  131. __declspec( dllexport ) void setTextZ( Text *txt );
  132. // Setzt den Beschriftungs Text
  133. // txt: Der Text
  134. __declspec( dllexport ) void setText( Text *txt );
  135. // Setzt den Beschriftungs Text
  136. // txt: Der Text
  137. __declspec( dllexport ) void setText( const char *txt );
  138. // Setzt den Zeiger auf den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
  139. // txt: Der Text
  140. __declspec( dllexport ) void setSTextZ( Text *txt );
  141. // Setzt den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
  142. // txt: Der Text
  143. __declspec( dllexport ) void setSText( Text *txt );
  144. // Setzt den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
  145. // txt: Der Text
  146. __declspec( dllexport ) void setSText( const char *txt );
  147. // Setzt den verwendeten TextRenderer
  148. // textRd: Der Textrenderer
  149. __declspec( dllexport ) void setTextRendererZ( TextRenderer *textRd );
  150. // Setzt die Schrift, die für die Beschriftung verwendet werden soll
  151. // schrift: Die Schrift
  152. __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
  153. // Setzt die Farbe der Schrift, die für die Beschriftung verwendet werden soll
  154. // f: Die Farbe im A8R8G8B8 Format
  155. __declspec( dllexport ) void setSFarbe( int f );
  156. // Setzt die Größe der Schrift, die für die Beschriftung verwendet werden soll
  157. // f: Die Höhe einer Zeile in Pixeln
  158. __declspec( dllexport ) void setSSize( int gr );
  159. // Setzt die Hintergrund Farbe, die verwendet wird, während das Kästchen ausgewählt ist
  160. // f: Die Farbe im A8R8G8B8 Format
  161. __declspec( dllexport ) void setSBgFarbe( int f );
  162. // Setzt die Hintergrund Farbe, die verwendet wird, während auf das Kästchen geklickt wird
  163. // f: Die Farbe im A8R8G8B8 Format
  164. __declspec( dllexport ) void setKBgFarbe( int f );
  165. // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, während das Kästchen ausgewählt ist
  166. // b: Das Bild
  167. __declspec( dllexport ) void setSBgBildZ( Bild *b );
  168. // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, während das Kästchen ausgewählt ist
  169. // b: Das Bild, das kopiert werden soll
  170. __declspec( dllexport ) void setSBgBild( Bild *b );
  171. // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, während auf das Kästchen geklickt wird
  172. // b: Das Bild
  173. __declspec( dllexport ) void setKBgBildZ( Bild *b );
  174. // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, während auf das Kästchen geklickt wird
  175. // b: Das Bild, das kopiert werden soll
  176. __declspec( dllexport ) void setKBgBild( Bild *b );
  177. // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während das Kästchen ausgewählt ist
  178. // af: Der Farbübergang
  179. __declspec( dllexport ) void setSAlphaFeldZ( AlphaFeld *af );
  180. // Setzt die Farbe des Farbübergangs, der verwendet wird, während das Kästchen ausgewählt ist
  181. // f: Die Farbe im A8R8G8B8 Format
  182. __declspec( dllexport ) void setSAFFarbe( int f );
  183. // Setzt die Stärke des Farbübergangs, der verwendet wird, während das Kästchen ausgewählt ist
  184. // st: Die Stärke
  185. __declspec( dllexport ) void setSAFStrength( int st );
  186. // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während auf das Kästchen geklickt wird
  187. // af: Der Farbübergang
  188. __declspec( dllexport ) void setKAlphaFeldZ( AlphaFeld *af );
  189. // Setzt die Farbe des Farbübergangs, der verwendet wird, während auf das Kästchen geklickt wird
  190. // f: Die Farbe im A8R8G8B8 Format
  191. __declspec( dllexport ) void setKAFFarbe( int f );
  192. // Setzt die Stärke des Farbübergangs, der verwendet wird, während auf das Kästchen geklickt wird
  193. // st: Die Stärke
  194. __declspec( dllexport ) void setKAFStrength( int st );
  195. // Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
  196. // 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
  197. // zDat: Die LTDB Datei
  198. __declspec( dllexport ) void loadData( LTDBDatei *zDat );
  199. // Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
  200. // 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
  201. // ltdb: Der Pfad zur LTDB Datei
  202. __declspec( dllexport ) void loadData( const char *ltdb );
  203. // Verarbeitet Maus Nachrichten
  204. // me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  205. __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
  206. // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  207. // zRObj: Das Bild, in welches gezeichnet werden soll
  208. __declspec( dllexport ) void render( Bild &zRObj ) override;
  209. // Gibt die beschriftung zurück
  210. __declspec( dllexport ) Text *getText() const;
  211. // Gibt die beschriftung ohne erhöhten Reference Counter zurück
  212. __declspec( dllexport ) Text *zText() const;
  213. // Gibt die beschriftung zurück, die verwendet wird, während das Kästchen ausgewählt ist
  214. __declspec( dllexport ) Text *getSText() const;
  215. // Gibt die beschriftung ohne erhöhten Reference Counter zurück, die verwendet wird, während das Kästchen ausgewählt ist
  216. __declspec( dllexport ) Text *zSText() const;
  217. // Gibt die verwendete Schrift zurück
  218. __declspec( dllexport ) Schrift *getSchrift() const;
  219. // Gibt die verwendete Schrift ohne Reference Counter zurück
  220. __declspec( dllexport ) Schrift *zSchrift() const;
  221. // Gibt die Schrift Farbe im A8R8G8B8 Format zurück
  222. __declspec( dllexport ) int getSFarbe() const;
  223. // Gibt die Schrift Größe zurück
  224. __declspec( dllexport ) int getSSize() const;
  225. // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, während das Kästchen ausgewählt ist
  226. __declspec( dllexport ) int getSBgFarbe() const;
  227. // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, während auf das Kästchen geklickt wird
  228. __declspec( dllexport ) int getKBgFarbe() const;
  229. // Gibt das Hintergrund Bild zurück, das verwendet wird, während das Kästchen ausgewählt ist
  230. __declspec( dllexport ) Bild *getSBgBild() const;
  231. // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, während das Kästchen ausgewählt ist
  232. __declspec( dllexport ) Bild *zSBgBild() const;
  233. // Gibt das Hintergrund Bild zurück, das verwendet wird, während auf das Kästchen geklickt wird
  234. __declspec( dllexport ) Bild *getKBgBild() const;
  235. // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, während auf das Kästchen geklickt wird
  236. __declspec( dllexport ) Bild *zKBgBild() const;
  237. // Gibt den Farbübergang zurück, der verwendet wird, während das Kästchen ausgewählt ist
  238. __declspec( dllexport ) AlphaFeld *getSAlphaFeld() const;
  239. // Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der verwendet wird, während das Kästchen ausgewählt ist
  240. __declspec( dllexport ) AlphaFeld *zSAlphaFeld() const;
  241. // Gibt den Farbübergang zurück, der verwendet wird, während auf das Kästchen geklickt wird
  242. __declspec( dllexport ) AlphaFeld *getKAlphaFeld() const;
  243. // Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der verwendet wird, während auf das Kästchen geklickt wird
  244. __declspec( dllexport ) AlphaFeld *zKAlphaFeld() const;
  245. // Erhöht den Reference Counting Zähler.
  246. // return: this.
  247. __declspec( dllexport ) KontrollKnopf *getThis();
  248. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  249. // return: 0.
  250. __declspec( dllexport ) KontrollKnopf *release();
  251. };
  252. }
  253. #endif