AuswahlBox.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. #ifndef AuswahlBox_H
  2. #define AuswahlBox_H
  3. #include "Zeichnung.h"
  4. #include "Array.h"
  5. namespace Framework
  6. {
  7. class TextFeld; // TextFeld.h
  8. class VScrollBar; // Scroll.h
  9. class LRahmen; // Rahmen.h
  10. class Knopf; // Knopf.h
  11. class AlphaFeld; // AlphaFeld.h
  12. class Text; // Tet.h
  13. class Schrift; // Schrift.h
  14. class AuswahlBox : public ZeichnungHintergrund
  15. {
  16. public:
  17. class Style : public ZeichnungHintergrund::Style
  18. {
  19. public:
  20. const static __int64 FeldRahmen = 0x000001000;
  21. const static __int64 FeldHintergrund = 0x000002000;
  22. const static __int64 FeldHBild = 0x000004000;
  23. const static __int64 FeldHAlpha = 0x000008000;
  24. const static __int64 FeldBuffer = 0x000010000;
  25. const static __int64 AuswahlHintergrund = 0x000020000;
  26. const static __int64 AuswahlHBild = 0x000040000;
  27. const static __int64 AuswahlHAlpha = 0x000080000;
  28. const static __int64 AuswahlBuffer = 0x000100000;
  29. const static __int64 AuswahlRahmen = 0x000200000;
  30. const static __int64 MultiStyled = 0x000400000;
  31. const static __int64 MaxHöhe = 0x004000000;
  32. const static __int64 MausHintergrund = 0x008000000;
  33. const static __int64 MausHBild = 0x010000000;
  34. const static __int64 MausHAlpha = 0x020000000;
  35. const static __int64 MausBuffer = 0x040000000;
  36. const static __int64 MausRahmen = 0x080000000;
  37. //const int NachObenAusklappen = 0x100000000;
  38. //const int AutoAusklappRichtung = 0x200000000;
  39. const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldRahmen | AuswahlBuffer | AuswahlRahmen | MaxHöhe | VScroll | MausRahmen | MausBuffer;
  40. };
  41. private:
  42. Schrift *schrift;
  43. Array< __int64 > *msStyle;
  44. RCArray< TextFeld > *members;
  45. Knopf *ausfahren;
  46. LRahmen *auswRahmen;
  47. int auswBgF;
  48. Bild *auswBgB;
  49. AlphaFeld *auswAf;
  50. RCArray< LRahmen > *msAuswRahmen;
  51. Array< int > *msAuswBgF;
  52. RCArray< Bild > *msAuswBgB;
  53. RCArray< AlphaFeld > *msAuswAf;
  54. LRahmen *mausRahmen;
  55. int mausBgF;
  56. Bild *mausBgB;
  57. AlphaFeld *mausAf;
  58. RCArray< LRahmen > *msMausRahmen;
  59. Array< int > *msMausBgF;
  60. RCArray< Bild > *msMausBgB;
  61. RCArray< AlphaFeld > *msMausAf;
  62. int anzahl;
  63. int auswahl;
  64. bool ausgeklappt;
  65. int ausklappHöhe;
  66. int ausklapMaxHöhe;
  67. int eintragHöhe;
  68. double tickval;
  69. int mausEintrag;
  70. bool scrollAnzeigen;
  71. void *eAkP;
  72. void( *eAk )( void *p, AuswahlBox *, int, int );
  73. int ref;
  74. public:
  75. // Konstruktor
  76. __declspec( dllexport ) AuswahlBox();
  77. // Destruktor
  78. __declspec( dllexport ) ~AuswahlBox();
  79. // nicht constant
  80. __declspec( dllexport ) void setEventParam( void *p ); // setzt den Event Parameter
  81. __declspec( dllexport ) void setEventAktion( void( *eAk )( void *p, AuswahlBox *, int, int ) ); // setzt die Event Funktion
  82. __declspec( dllexport ) void setSchriftZ( Schrift *schrift ); // setzt die schrift
  83. __declspec( dllexport ) void addEintrag( const char *txt ); // Eintrag hinzufügen
  84. __declspec( dllexport ) void addEintrag( Text *txt );
  85. __declspec( dllexport ) void addEintragZ( TextFeld *txt );
  86. __declspec( dllexport ) void setEintrag( int i, const char *txt ); // Eintrag setzen
  87. __declspec( dllexport ) void setEintrag( int i, Text *txt );
  88. __declspec( dllexport ) void setEintragZ( int i, TextFeld *txt );
  89. __declspec( dllexport ) void löscheEintrag( int i ); // Eintrag entfernen
  90. __declspec( dllexport ) void setAusklappKnopfZ( Knopf *ausK ); // Ausklapp Knopf setzen
  91. __declspec( dllexport ) void setEintragRahmenZ( int i, LRahmen *rahmen ); // Eintrag Rahmen setzen
  92. __declspec( dllexport ) void setEintragRahmenFarbe( int i, int f ); // Eintrag Rahmen Farbe setzen
  93. __declspec( dllexport ) void setEintragRahmenBreite( int i, int rbr ); // Eintrag Rahmen Breite setzen
  94. __declspec( dllexport ) void setEintragHintergrundFarbe( int i, int f ); // Eintrag Hintergrund farbe setzen
  95. __declspec( dllexport ) void setEintragHintergrundBildZ( int i, Bild *bgB ); // Eintrag Hintergrund Bild setzen
  96. __declspec( dllexport ) void setEintragHintergrundBild( int i, Bild *bgB );
  97. __declspec( dllexport ) void setEintragAlphaFeldZ( int i, AlphaFeld *af ); // Eintrag AlphaFeld setzen
  98. __declspec( dllexport ) void setEintragAlphaFeldFarbe( int i, int afF ); // Eintrag AlphaFeld Farbe setzen
  99. __declspec( dllexport ) void setEintragAlphaFeldStärke( int i, int afSt ); // Eintrag AlphaFeld Stärke setzen
  100. __declspec( dllexport ) void setAuswRahmenZ( LRahmen *rahmen ); // Auswahl Rahmen setzen
  101. __declspec( dllexport ) void setAuswRahmenFarbe( int f ); // Auswahl Rahmen Farbe setzen
  102. __declspec( dllexport ) void setAuswRahmenBreite( int rbr ); // Auswahl Rahmen Breite setzen
  103. __declspec( dllexport ) void setAuswHintergrundFarbe( int f ); // Auswahl Hintergrund Farbe setzen
  104. __declspec( dllexport ) void setAuswHintergrundBildZ( Bild *bgB ); // Auswahl Hintergrund Bild setzen
  105. __declspec( dllexport ) void setAuswHintergrundBild( Bild *bgB );
  106. __declspec( dllexport ) void setAuswAlphaFeldZ( AlphaFeld *af ); // Auswahl AlphaFeld setzen
  107. __declspec( dllexport ) void setAuswAlphaFeldFarbe( int afF ); // Auswahl AlphaFeld Farbe setzen
  108. __declspec( dllexport ) void setAuswAlphaFeldStärke( int afSt ); // Auswahl Alpha Feld stärke setzen
  109. __declspec( dllexport ) void setMsAuswRahmenZ( int i, LRahmen *rahmen ); // Multistyle Auswahl Rahmen setzen
  110. __declspec( dllexport ) void setMsAuswRahmenFarbe( int i, int f ); // Multistyle Auswahl Rahmen Farbe setzen
  111. __declspec( dllexport ) void setMsAuswRahmenBreite( int i, int rbr ); // Multistyle Auswahl Breite setzen
  112. __declspec( dllexport ) void setMsAuswHintergrundFarbe( int i, int f ); // Multistyle Auswahl Hintergrund Farbe setzen
  113. __declspec( dllexport ) void setMsAuswHintergrundBildZ( int i, Bild *bgB ); // Multistyle Auswahl Hintergrund Bild setzen
  114. __declspec( dllexport ) void setMsAuswHintergrundBild( int i, Bild *bgB );
  115. __declspec( dllexport ) void setMsAuswAlphaFeldZ( int i, AlphaFeld *af ); // Multistyle Auswahl AlphaFeld setzen
  116. __declspec( dllexport ) void setMsAuswAlphaFeldFarbe( int i, int afF ); // Multistyle Auswahl AlphaFeld Farbe setzen
  117. __declspec( dllexport ) void setMsAuswAlphaFeldStärke( int i, int afSt ); // Multistyle Auswahl AlphaFeld stärke setzen
  118. __declspec( dllexport ) void setMausRahmenZ( LRahmen *rahmen ); // Maus Rahmen setzen
  119. __declspec( dllexport ) void setMausRahmenFarbe( int f ); // Maus Rahmen Farbe setzen
  120. __declspec( dllexport ) void setMausRahmenBreite( int rbr ); // Maus Rahmen breite setzen
  121. __declspec( dllexport ) void setMausHintergrundFarbe( int f ); // Maus Hintergrund Farbe setzen
  122. __declspec( dllexport ) void setMausHintergrundBildZ( Bild *bgB ); // Maus Hintergrund Bild setzen
  123. __declspec( dllexport ) void setMausHintergrundBild( Bild *bgB );
  124. __declspec( dllexport ) void setMausAlphaFeldZ( AlphaFeld *af ); // Maus AlphaFeld setzen
  125. __declspec( dllexport ) void setMausAlphaFeldFarbe( int afF ); // Maus AlphaFeld Farbe setzen
  126. __declspec( dllexport ) void setMausAlphaFeldStärke( int afSt ); // Maus AlphaFeld stärke setzen
  127. __declspec( dllexport ) void setMsMausRahmenZ( int i, LRahmen *rahmen ); // Multistyle Maus Rahmen setzen
  128. __declspec( dllexport ) void setMsMausRahmenFarbe( int i, int f ); // Multistyle Maus Rahmen Farbe setzen
  129. __declspec( dllexport ) void setMsMausRahmenBreite( int i, int rbr ); // Multistyle Maus Rahmen breite setzen
  130. __declspec( dllexport ) void setMsMausHintergrundFarbe( int i, int f ); // Multistyle Maus Hintergrund Farbe setzen
  131. __declspec( dllexport ) void setMsMausHintergrundBildZ( int i, Bild *bgB ); // Multistyle Maus Hintergrund Bild setzen
  132. __declspec( dllexport ) void setMsMausHintergrundBild( int i, Bild *bgB );
  133. __declspec( dllexport ) void setMsMausAlphaFeldZ( int i, AlphaFeld *af ); // Multistyle Maus AlphaFeld setzen
  134. __declspec( dllexport ) void setMsMausAlphaFeldFarbe( int i, int afF ); // Multistyle Maus AlphaFeld Farbe setzen
  135. __declspec( dllexport ) void setMsMausAlphaFeldStärke( int i, int afSt ); // Multistyle Maus AlphaFeld stärke setzen
  136. __declspec( dllexport ) void setAuswahl( int i ); // Eintrag auswählen
  137. __declspec( dllexport ) void ausklappen(); // liste ausklappen
  138. __declspec( dllexport ) void einklappen(); // liste einklappen
  139. __declspec( dllexport ) void scrollZuEintrag( int i ); // liste scrollen
  140. __declspec( dllexport ) void setMaxAuskappHöhe( int maxHöhe ); // höhe der Liste beim ausklappen
  141. __declspec( dllexport ) void setEintragHöhe( int höhe ); // setzt die Höhe der Einträge
  142. __declspec( dllexport ) void addMsStyle( int i, __int64 abStyle ); // Multistyle style hinzufügen
  143. __declspec( dllexport ) void setMsStyle( int i, __int64 abStyle, bool add ); // Multistyle style setzen
  144. __declspec( dllexport ) void setMsStyle( int i, __int64 abStyle );
  145. __declspec( dllexport ) void löscheMsStyle( int i, __int64 abStyle ); // Multistyle style entfernen
  146. __declspec( dllexport ) bool tick( double tickVal ) override; // tick
  147. __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override; // Maus
  148. __declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override; // Tastatur
  149. __declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
  150. // constant
  151. __declspec( dllexport ) int getEintragPos( const char *txt ) const; // gibt die Eintrag Position zurück
  152. __declspec( dllexport ) int getEintragPos( Text *txt ) const;
  153. __declspec( dllexport ) Text *getEintragText( int i ) const; // gibt den Eintrag Text zurück
  154. __declspec( dllexport ) Text *zEintragText( int i ) const;
  155. __declspec( dllexport ) TextFeld *getEintrag( int i ) const; // gibt den Eintrag zurück
  156. __declspec( dllexport ) TextFeld *zEintrag( int i ) const;
  157. __declspec( dllexport ) int getAuswahl() const; // gibt die Position des ausgewählten Eintrages zurück
  158. __declspec( dllexport ) int getEintragAnzahl() const; // gibt die Anzahl der Einträge zurück
  159. __declspec( dllexport ) bool istAusgeklappt() const; // prüft, ob die Liste ausgeklappt ist
  160. __declspec( dllexport ) int getMaxHöhe() const; // gibt die maximale Höhe der Liste zurück
  161. __declspec( dllexport ) int getEintragHöhe() const; // gibt die Höhe der Einträge zurück
  162. __declspec( dllexport ) Knopf *getAusklappKnopf() const; // gibt den aus-/einklapp Knopf zurück
  163. __declspec( dllexport ) Knopf *zAusklappKnopf() const;
  164. __declspec( dllexport ) LRahmen *getEintragRahmen( int i ) const; // gibt den Eintrag Rahmen zurück
  165. __declspec( dllexport ) LRahmen *zEintragRahmen( int i ) const;
  166. __declspec( dllexport ) int getEintragRahmenFarbe( int i ) const; // gibt die Eintrag Rahmen Frabe zurück
  167. __declspec( dllexport ) int getEintragRahmenBreite( int i ) const; // gibt die Eintrag Rahmen Breite zurück
  168. __declspec( dllexport ) AlphaFeld *getEintragAlphaFeld( int i ) const; // gibt das Eintrag AlphaFeld zurück
  169. __declspec( dllexport ) AlphaFeld *zEintragAlphaFeld( int i ) const;
  170. __declspec( dllexport ) int getEintragAlphaFeldFarbe( int i ) const; // gibt die Eintrag AlphaFeld Farbe zurück
  171. __declspec( dllexport ) int getEintragAlphaFeldStärke( int i ) const; // gibt die Eintrag AlphaFeld stärke zurück
  172. __declspec( dllexport ) int getEintragHintergrundFarbe( int i ) const; // gibt die Eintrag Hintergrund Farbe zurück
  173. __declspec( dllexport ) Bild *getEintragHintergrundBild( int i ) const; // gibt das Eintrag Hintergrund Bild zurück
  174. __declspec( dllexport ) Bild *zEintragHintergrundBild( int i ) const;
  175. __declspec( dllexport ) LRahmen *getAuswRahmen() const; // gibt den Auswahl Rahmen zurück
  176. __declspec( dllexport ) LRahmen *zAuswRahmen() const;
  177. __declspec( dllexport ) int getAuswRahmenFarbe() const; // gibt die Auswahl Rahmen Frabe zurück
  178. __declspec( dllexport ) int getAuswRahmenBreite() const; // gibt die Auswahl Rahmen Breite zurück
  179. __declspec( dllexport ) AlphaFeld *getAuswAlphaFeld() const; // gibt das Auswahl AlphaFeld zurück
  180. __declspec( dllexport ) AlphaFeld *zAuswAlphaFeld() const;
  181. __declspec( dllexport ) int getAuswAlphaFeldFarbe() const; // gibt die Auswahl AlphaFeld Farbe zurück
  182. __declspec( dllexport ) int getAuswAlphaFeldStärke() const; // gibt die Auswahl AlphaFeld stärke zurück
  183. __declspec( dllexport ) int getAuswHintergrundFarbe() const; // gibt die Auswahl Hintergrund Farbe zurück
  184. __declspec( dllexport ) Bild *getAuswHintergrundBild() const; // gibt das Auswahl Hintergrund Bild zurück
  185. __declspec( dllexport ) Bild *zAuswHintergrundBild() const;
  186. __declspec( dllexport ) LRahmen *getMsAuswRahmen( int i ) const; // gibt den Multistyle Auswahl Rahmen zurück
  187. __declspec( dllexport ) LRahmen *zMsAuswRahmen( int i ) const;
  188. __declspec( dllexport ) int getMsAuswRahmenFarbe( int i ) const; // gibt die Multistyle Auswahl Rahmen Frabe zurück
  189. __declspec( dllexport ) int getMsAuswRahmenBreite( int i ) const; // gibt die Multistyle Auswahl Rahmen Breite zurück
  190. __declspec( dllexport ) AlphaFeld *getMsAuswAlphaFeld( int i ) const; // gibt das Multistyle Auswahl AlphaFeld zurück
  191. __declspec( dllexport ) AlphaFeld *zMsAuswAlphaFeld( int i ) const;
  192. __declspec( dllexport ) int getMsAuswAlphaFeldFarbe( int i ) const; // gibt die Multistyle Auswahl AlphaFeld Farbe zurück
  193. __declspec( dllexport ) int getMsAuswAlphaFeldStärke( int i ) const; // gibt die Multistyle Auswahl AlphaFeld stärke zurück
  194. __declspec( dllexport ) int getMsAuswHintergrundFarbe( int i ) const; // gibt die Multistyle Auswahl Hintergrund Farbe zurück
  195. __declspec( dllexport ) Bild *getMsAuswHintergrundBild( int i ) const; // gibt das Multistyle Auswahl Hintergrund Bild zurück
  196. __declspec( dllexport ) Bild *zMsAuswHintergrundBild( int i ) const;
  197. __declspec( dllexport ) LRahmen *getMausRahmen() const; // gibt den Maus Rahmen zurück
  198. __declspec( dllexport ) LRahmen *zMausRahmen() const;
  199. __declspec( dllexport ) int getMausRahmenFarbe() const; // gibt die Maus Rahmen Frabe zurück
  200. __declspec( dllexport ) int getMausRahmenBreite() const; // gibt die Maus Rahmen Breite zurück
  201. __declspec( dllexport ) AlphaFeld *getMausAlphaFeld() const; // gibt das Maus AlphaFeld zurück
  202. __declspec( dllexport ) AlphaFeld *zMausAlphaFeld() const;
  203. __declspec( dllexport ) int getMausAlphaFeldFarbe() const; // gibt die Maus AlphaFeld Farbe zurück
  204. __declspec( dllexport ) int getMausAlphaFeldStärke() const; // gibt die Maus AlphaFeld stärke zurück
  205. __declspec( dllexport ) int getMausHintergrundFarbe() const; // gibt die Maus Hintergrund Farbe zurück
  206. __declspec( dllexport ) Bild *getMausHintergrundBild() const; // gibt das Maus Hintergrund Bild zurück
  207. __declspec( dllexport ) Bild *zMausHintergrundBild() const;
  208. __declspec( dllexport ) LRahmen *getMsMausRahmen( int i ) const; // gibt den Multistyle Maus Rahmen zurück
  209. __declspec( dllexport ) LRahmen *zMsMausRahmen( int i ) const;
  210. __declspec( dllexport ) int getMsMausRahmenFarbe( int i ) const; // gibt die Multistyle Maus Rahmen Frabe zurück
  211. __declspec( dllexport ) int getMsMausRahmenBreite( int i ) const; // gibt die Multistyle Maus Rahmen Breite zurück
  212. __declspec( dllexport ) AlphaFeld *getMsMausAlphaFeld( int i ) const; // gibt das Multistyle Maus AlphaFeld zurück
  213. __declspec( dllexport ) AlphaFeld *zMsMausAlphaFeld( int i ) const;
  214. __declspec( dllexport ) int getMsMausAlphaFeldFarbe( int i ) const; // gibt die Multistyle Maus AlphaFeld Farbe zurück
  215. __declspec( dllexport ) int getMsMausAlphaFeldStärke( int i ) const; // gibt die Multistyle Maus AlphaFeld stärke zurück
  216. __declspec( dllexport ) int getMsMausHintergrundFarbe( int i ) const; // gibt die Multistyle Maus Hintergrund Farbe zurück
  217. __declspec( dllexport ) Bild *getMsMausHintergrundBild( int i ) const; // gibt das Multistyle Maus Hintergrund Bild zurück
  218. __declspec( dllexport ) Bild *zMsMausHintergrundBild( int i ) const;
  219. __declspec( dllexport ) inline bool hatMsStyle( int i, __int64 abStyle ) const; // prüft ob Multistyle style vorhanden
  220. __declspec( dllexport ) inline bool hatMsStyleNicht( int i, __int64 abStyle ) const; // prüft ob Multistyle style nicht vorhanden
  221. __declspec( dllexport ) Zeichnung *dublizieren() const override; // Erzeugt eine Kopie des Zeichnungs
  222. // Reference Counting
  223. __declspec( dllexport ) AuswahlBox *getThis();
  224. __declspec( dllexport ) AuswahlBox *release();
  225. };
  226. }
  227. #endif