AuswahlBox.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  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 Rahmen; //! Rahmen.h
  10. class Knopf; //! Knopf.h
  11. class AlphaFeld; //! AlphaFeld.h
  12. class Text; //! Tet.h
  13. class Schrift; //! Schrift.h
  14. class TextRenderer;
  15. //! Eine Zeichnung des 2D GUI Frameworks. Repräsentiert eine Box, aus der der Nutzer durch ausklappen verschiedene Werte auswählen kann
  16. class AuswahlBox : public ZeichnungHintergrund
  17. {
  18. public:
  19. class Style : public ZeichnungHintergrund::Style
  20. {
  21. public:
  22. const static __int64 FeldRahmen = 0x000001000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert aus der Liste einen Rahmen
  23. const static __int64 FeldHintergrund = 0x000002000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert aus der Liste einen Hintergrund
  24. const static __int64 FeldHBild = 0x000004000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert aus der Liste ein Bild als Hintergrund
  25. const static __int64 FeldHAlpha = 0x000008000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert aus der Liste einen Transparenten Hintergrund
  26. const static __int64 FeldBuffer = 0x000010000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert aus der Liste einen Farbübergang
  27. const static __int64 AuswahlHintergrund = 0x000020000; //! Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen Hintergrund
  28. const static __int64 AuswahlHBild = 0x000040000; //! Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist ein Hintergrundbild
  29. const static __int64 AuswahlHAlpha = 0x000080000; //! Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen transparenten Hintergrund
  30. const static __int64 AuswahlBuffer = 0x000100000; //! Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen Farbübergang
  31. const static __int64 AuswahlRahmen = 0x000200000; //! Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen Rahmen
  32. const static __int64 MultiStyled = 0x000400000; //! Wenn dieser Flag gesetzt ist, hat jeder Wert seine eigenen Hintergründe unt Rahmen und nicht alle die selben
  33. const static __int64 MaxHeight = 0x004000000; //! Legt eine maximale Höhe der ausgeklappten Liste fest. Es erscheint automatisch eine Scrollbar wenn mehr Elemente da sind als sichtbar sein können
  34. const static __int64 MausHintergrund = 0x008000000; //! Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drau zeigt, einen Hintergrund
  35. const static __int64 MausHBild = 0x010000000; //! Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, ein Hintergrundbild
  36. const static __int64 MausHAlpha = 0x020000000; //! Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, einen transparenten Hintergrund
  37. const static __int64 MausBuffer = 0x040000000; //! Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, einen Farbübergang
  38. const static __int64 MausRahmen = 0x080000000; //! Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, einen Rahmen
  39. //const int NachObenAusklappen = 0x100000000;
  40. //const int AutoAusklappRichtung = 0x200000000;
  41. const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldRahmen | AuswahlBuffer | AuswahlRahmen | MaxHeight | VScroll | MausRahmen | MausBuffer | Hintergrund | MEIgnoreParentInside | MEIgnoreVerarbeitet; //! Normaler Style: Sichtbar, Erlaubt, Rahmen, FeldRahmen, AuswahlBuffer, AuswahlRahmen, MaxHöhe, VScroll, MausRahmen, MausBuffer
  42. };
  43. private:
  44. TextRenderer *textRd;
  45. Array< __int64 > *msStyle;
  46. RCArray< TextFeld > *members;
  47. Knopf *ausfahren;
  48. Rahmen *auswRahmen;
  49. int auswBgF;
  50. Bild *auswBgB;
  51. AlphaFeld *auswAf;
  52. RCArray< Rahmen > *msAuswRahmen;
  53. Array< int > *msAuswBgF;
  54. RCArray< Bild > *msAuswBgB;
  55. RCArray< AlphaFeld > *msAuswAf;
  56. Rahmen *mausRahmen;
  57. int mausBgF;
  58. Bild *mausBgB;
  59. AlphaFeld *mausAf;
  60. RCArray< Rahmen > *msMausRahmen;
  61. Array< int > *msMausBgF;
  62. RCArray< Bild > *msMausBgB;
  63. RCArray< AlphaFeld > *msMausAf;
  64. int anzahl;
  65. int auswahl;
  66. bool ausgeklappt;
  67. int ausklappHeight;
  68. int ausklapMaxHeight;
  69. int eintragHeight;
  70. double tickval;
  71. int mausEintrag;
  72. bool scrollAnzeigen;
  73. void *eAkP;
  74. std::function< void( void *, AuswahlBox *, int, int ) > eAk;
  75. //! Verarbeitet Maus Nachrichten
  76. //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  77. DLLEXPORT void doMausEreignis( MausEreignis &me, bool userRet ) override;
  78. public:
  79. //! Konstruktor
  80. DLLEXPORT AuswahlBox();
  81. //! Destruktor
  82. DLLEXPORT virtual ~AuswahlBox();
  83. //! Setzt den Parameter der Rückruffunktion, die aufgerufen wird, wenn der Benutzer ein neues element auswählt
  84. //! \param p Der Parameter
  85. DLLEXPORT void setEventParam( void *p );
  86. //! Setzt die Rückruffunktion, die Aufgerufen wird, wenn der Benutzer ein neues Element auswählt
  87. //! \param eAk Die Rückruffunktion Aufruf: eAk( parameter, this, 0, auswahlIndex )
  88. DLLEXPORT void setEventAktion( std::function< void( void *, AuswahlBox *, int, int ) > event );
  89. //! Setzt den verwendeten TextRenderer
  90. //! \param textRd Der Textrenderer
  91. DLLEXPORT void setTextRendererZ( TextRenderer *textRd );
  92. //! Setzt die verwendete Schrift
  93. //! \param schrift Die Schrift
  94. DLLEXPORT void setSchriftZ( Schrift *schrift );
  95. //! Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
  96. //! \param txt Der Text des Eintrags
  97. DLLEXPORT void addEintrag( const char *txt );
  98. //! Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
  99. //! \param txt Der Text des Eintrags
  100. DLLEXPORT void addEintrag( Text *txt );
  101. //! Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
  102. //! \param txt Ein Zeiger auf den Eintrag
  103. DLLEXPORT void addEintragZ( TextFeld *txt );
  104. //! Ändert den Text eines Eintrags
  105. //! \param i Der Index des Eintrags
  106. //! \param txt Der neue Text
  107. DLLEXPORT void setEintrag( int i, const char *txt );
  108. //! Ändert den Text eines Eintrags
  109. //! \param i Der Index des Eintrags
  110. //! \param txt Der neue Text
  111. DLLEXPORT void setEintrag( int i, Text *txt );
  112. //! Ändert einen Eintrag
  113. //! \param i Der Index des Eintrags
  114. //! \param txt Ein Zeiger auf den neuen Eintrag
  115. DLLEXPORT void setEintragZ( int i, TextFeld *txt );
  116. //! Löscht einen Eintrag
  117. //! \param i Der Index des Eintrags
  118. DLLEXPORT void removeEintrag( int i );
  119. //! Setzt einen Zeiger auf den Knopf, der zum aus und einklappen der Liste verwendet wird
  120. //! \param ausK Der Knopf
  121. DLLEXPORT void setAusklappKnopfZ( Knopf *ausK );
  122. //! Setzt einen Zeiger auf einen Rahmen, der für einen bestimmten Eintrag benutzt wird
  123. //! \param i Der Index des Eintrags
  124. //! \param rahmen Der Rahemn
  125. DLLEXPORT void setEintragRahmenZ( int i, Rahmen *rahmen );
  126. //! Setzt die Farbe eines Rahmens, der für einen bestimmten Eintrag benutzt wird
  127. //! \param i Der Index des Eintrags
  128. //! \param f Die farbe im A8R8G8B8 Format
  129. DLLEXPORT void setEintragRahmenFarbe( int i, int f );
  130. //! Setzt die Breite eines Rahmens, der für einen bestimmten Eintrag benutzt wird
  131. //! \param i Der Index des Eintrags
  132. //! \param rbr Die Breite des Rahmens in Pixeln
  133. DLLEXPORT void setEintragRahmenBreite( int i, int rbr );
  134. //! Setzt eine Hintergrund Farbe, die für einen bestimmten Eintrag benutzt wird
  135. //! \param i Der Index des Eintrags
  136. //! \param f Die farbe im A8R8G8B8 Format
  137. DLLEXPORT void setEintragHintergrundFarbe( int i, int f );
  138. //! Setzt einen zeiger auf ein Hintergrund Bild, das für einen bestimmten Eintrag benutzt wird
  139. //! \param i Der Index des Eintrags
  140. //! \param bgB Das Hintergrund Bild
  141. DLLEXPORT void setEintragHintergrundBildZ( int i, Bild *bgB );
  142. //! Setzt ein Hintergrund Bild durch Kopieren, das für einen bestimmten Eintrag benutzt wird
  143. //! \param i Der Index des Eintrags
  144. //! \param bgB Das Hintergrund Bild
  145. DLLEXPORT void setEintragHintergrundBild( int i, Bild *bgB );
  146. //! Setzt einen zeiger auf einen Farbübergangn, der für einen bestimmten Eintrag benutzt wird
  147. //! \param i Der Index des Eintrags
  148. //! \param af Der Farbübergang
  149. DLLEXPORT void setEintragAlphaFeldZ( int i, AlphaFeld *af );
  150. //! Setzt dei Farbe eines Farbübergangns, der für einen bestimmten Eintrag benutzt wird
  151. //! \param i Der Index des Eintrags
  152. //! \param afF Die Farbe im A8R8G8B8 Format
  153. DLLEXPORT void setEintragAlphaFeldFarbe( int i, int afF );
  154. //! Setzt dei Stärke eines Farbübergangns, der für einen bestimmten Eintrag benutzt wird
  155. //! \param i Der Index des Eintrags
  156. //! \param afSt Die Stärke
  157. DLLEXPORT void setEintragAlphaFeldStrength( int i, int afSt );
  158. //! Setzt eienen Zeiger auf einen Rahmen, der bei dem ausgewählten Eintrag verwendet wird
  159. //! \param rahmen Der Rahmen
  160. DLLEXPORT void setAuswRahmenZ( Rahmen *rahmen );
  161. //! Setzt die Farbe eines Rahmens, der bei dem ausgewählten Eintrag verwendet wird
  162. //! \param f Die Farbe im A8R8G8B8 Format
  163. DLLEXPORT void setAuswRahmenFarbe( int f );
  164. //! Setzt die Breite eines Rahmens, der bei dem ausgewählten Eintrag verwendet wird
  165. //! \param rbr Die Breite in Pixeln
  166. DLLEXPORT void setAuswRahmenBreite( int rbr );
  167. //! Setzt die Hintergrund Farbe, die bei dem ausgewählten Eintrag verwendet wird
  168. //! \param f Die Farbe im A8R8G8B8 Format
  169. DLLEXPORT void setAuswHintergrundFarbe( int f );
  170. //! Setzt den Zeiger auf ein Hintergrund Bild, das bei dem ausgewählten Eintrag verwendet wird
  171. //! \param bgB Das Bild
  172. DLLEXPORT void setAuswHintergrundBildZ( Bild *bgB );
  173. //! Setzt ein Hintergrund Bild durch kopieren, das bei dem ausgewählten Eintrag verwendet wird
  174. //! \param bgB Das Bild
  175. DLLEXPORT void setAuswHintergrundBild( Bild *bgB );
  176. //! Setzt den Zeiger auf einen Farbübergang, der bei dem ausgewählten Eintrag verwendet wird
  177. //! \param af Der Farbübergang
  178. DLLEXPORT void setAuswAlphaFeldZ( AlphaFeld *af );
  179. //! Setzt die Farbe eines Farbübergangs, der bei dem ausgewählten Eintrag verwendet wird
  180. //! \param afF Die Farbe im A8R8G8B8 Format
  181. DLLEXPORT void setAuswAlphaFeldFarbe( int afF );
  182. //! Setzt die Stärke eines Farbübergangs, der bei dem ausgewählten Eintrag verwendet wird
  183. //! \param afSt Die Stärke
  184. DLLEXPORT void setAuswAlphaFeldStrength( int afSt );
  185. //! Setzt eienen Zeiger auf einen Rahmen, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  186. //! \param i Der Index des Eintrags
  187. //! \param rahmen Der Rahmen
  188. DLLEXPORT void setMsAuswRahmenZ( int i, Rahmen *rahmen );
  189. //! Setzt die Farbe einens Rahmens, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  190. //! \param i Der Index des Eintrags
  191. //! \param f Die Farbe im A8R8G8B8 Format
  192. DLLEXPORT void setMsAuswRahmenFarbe( int i, int f );
  193. //! Setzt die Breite einens Rahmens, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  194. //! \param i Der Index des Eintrags
  195. //! \param rbr Die Breite in Pixeln
  196. DLLEXPORT void setMsAuswRahmenBreite( int i, int rbr );
  197. //! Setzt die Hintergrundfarbe, die bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  198. //! \param i Der Index des Eintrags
  199. //! \param f Die Farbe im A8R8G8B8 Format
  200. DLLEXPORT void setMsAuswHintergrundFarbe( int i, int f );
  201. //! Setzt eienen Zeiger auf eine Hintergrund Bild, das bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  202. //! \param i Der Index des Eintrags
  203. //! \param bgB Das Bild
  204. DLLEXPORT void setMsAuswHintergrundBildZ( int i, Bild *bgB );
  205. //! Setzt eien Hintergrund Bild durch kopieren, das bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  206. //! \param i Der Index des Eintrags
  207. //! \param bgB Das Bild
  208. DLLEXPORT void setMsAuswHintergrundBild( int i, Bild *bgB );
  209. //! Setzt eienen Zeiger auf einen Farbverlauf, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  210. //! \param i Der Index des Eintrags
  211. //! \param af Der Farbverlauf
  212. DLLEXPORT void setMsAuswAlphaFeldZ( int i, AlphaFeld *af );
  213. //! Setzt die Farbe eines Farbverlaufs, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  214. //! \param i Der Index des Eintrags
  215. //! \param afF Die Farbe im A8R8G8B8 Format
  216. DLLEXPORT void setMsAuswAlphaFeldFarbe( int i, int afF );
  217. //! Setzt die Stärke eines Farbverlaufs, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
  218. //! \param i Der Index des Eintrags
  219. //! \param afSt Die Stärke
  220. DLLEXPORT void setMsAuswAlphaFeldStrength( int i, int afSt );
  221. //! Setzt einen Zeiger auf einen Rahmen, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  222. //! \param rahmen Der Rahmen
  223. DLLEXPORT void setMausRahmenZ( Rahmen *rahmen );
  224. //! Setzt die Farbe eines Rahmens, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  225. //! \param f Die Farbe im A8R8G8B8 Format
  226. DLLEXPORT void setMausRahmenFarbe( int f );
  227. //! Setzt die Breite eines Rahmens, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  228. //! \param rbr Die Breite des Rahmens in Pixeln
  229. DLLEXPORT void setMausRahmenBreite( int rbr );
  230. //! Setzt die Hintergrund Farbe, die bei dem Eintrag verwendet wird, auf den die Maus zeigt
  231. //! \param f Die Farbe im A8R8G8B8 Format
  232. DLLEXPORT void setMausHintergrundFarbe( int f );
  233. //! Setzt einen Zeiger auf ein Hintergrund Bild, das bei dem Eintrag verwendet wird, auf den die Maus zeigt
  234. //! \param bgB Das Bild
  235. DLLEXPORT void setMausHintergrundBildZ( Bild *bgB );
  236. //! Setzt ein Hintergrund Bild durch kopieren, das bei dem Eintrag verwendet wird, auf den die Maus zeigt
  237. //! \param bgB Das Bild
  238. DLLEXPORT void setMausHintergrundBild( Bild *bgB );
  239. //! Setzt einen Farbverlauf, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  240. //! \param af Der Farbverlauf
  241. DLLEXPORT void setMausAlphaFeldZ( AlphaFeld *af );
  242. //! Setzt die Farbe eines Farbverlaufs, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  243. //! \param afF Die Farbe im A8R8G8B8 Format
  244. DLLEXPORT void setMausAlphaFeldFarbe( int afF );
  245. //! Setzt die Stärke eines Farbverlaufs, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
  246. //! \param afSt Die Stärke
  247. DLLEXPORT void setMausAlphaFeldStrength( int afSt );
  248. //! Setzt einen Zeiger auf einen Rahmen, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  249. //! \param i Der Index des Eintrags
  250. //! \param rahmen Der Rahmen
  251. DLLEXPORT void setMsMausRahmenZ( int i, Rahmen *rahmen );
  252. //! Setzt die Farbe eines Rahmes, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  253. //! \param i Der Index des Eintrags
  254. //! \param f Die Farbe im A8R8G8B8 Format
  255. DLLEXPORT void setMsMausRahmenFarbe( int i, int f );
  256. //! Setzt die Breite eines Rahmes, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  257. //! \param i Der Index des Eintrags
  258. //! \param rbr Die Breite in Pixeln
  259. DLLEXPORT void setMsMausRahmenBreite( int i, int rbr );
  260. //! Setzt die Hintergrund Farbe, die bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  261. //! \param i Der Index des Eintrags
  262. //! \param f Die Farbe im A8R8G8B8 Format
  263. DLLEXPORT void setMsMausHintergrundFarbe( int i, int f );
  264. //! Setzt einen Zeiger auf Hintergrund Bild, das bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  265. //! \param i Der Index des Eintrags
  266. //! \param bgB Das Bild
  267. DLLEXPORT void setMsMausHintergrundBildZ( int i, Bild *bgB );
  268. //! Setzt ein Hintergrund Bild durch kopieren, das bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  269. //! \param i Der Index des Eintrags
  270. //! \param bgB Das Bild
  271. DLLEXPORT void setMsMausHintergrundBild( int i, Bild *bgB );
  272. //! Setzt einen Zeiger auf einen Farbübergang, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  273. //! \param i Der Index des Eintrags
  274. //! \param af Der Farbverlauf
  275. DLLEXPORT void setMsMausAlphaFeldZ( int i, AlphaFeld *af );
  276. //! Setzt die Farbe einens Farbübergangs, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  277. //! \param i Der Index des Eintrags
  278. //! \param afF Die Farbe im A8R8G8B8 Format
  279. DLLEXPORT void setMsMausAlphaFeldFarbe( int i, int afF );
  280. //! Setzt die Stärke einens Farbübergangs, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
  281. //! \param i Der Index des Eintrags
  282. //! \param afSt Die Stärke
  283. DLLEXPORT void setMsMausAlphaFeldStrength( int i, int afSt );
  284. //! Wählt ein Element aus
  285. //! \param i Der Index des Elements
  286. DLLEXPORT void setAuswahl( int i );
  287. //! Klappt die Liste zum Auswählen aus
  288. DLLEXPORT void ausklappen();
  289. //! Klappt die Liste zum Auswählen ein
  290. DLLEXPORT void einklappen();
  291. //! Scrollt in der Liste zu einem bestimmten Eintrag
  292. //! \param i Der Index des Eintrags
  293. DLLEXPORT void scrollZuEintrag( int i );
  294. //! Setzt die maximale Ausklapp Höhe der Liste
  295. //! \param maxHeight Die maximale Höhe in Pixeln
  296. DLLEXPORT void setMaxAuskappHeight( int maxHeight );
  297. //! Setzt die Höhe der Einträge
  298. //! \param height Die Höhe in Pixeln
  299. DLLEXPORT void setEintragHeight( int height );
  300. //! Fügt Styles zu einem bestimmten Eintrag hinzu, falls der Flag MultiStyled gesetzt wurde
  301. //! \param i Der Index des Eintrags
  302. //! \param abStyle Der Style, der hinzugefügt werden soll
  303. DLLEXPORT void addMsStyle( int i, __int64 abStyle );
  304. //! Setzt Styles eines bestimmten Eintrags, falls der Flag MultiStyled gesetzt wurde
  305. //! \param i Der Index des Eintrags
  306. //! \param abStyle Der Style
  307. //! \param add 1, falls die Styles hinzugefügt werden sollen und 0, falls sie entfernt werden sollen
  308. DLLEXPORT void setMsStyle( int i, __int64 abStyle, bool add );
  309. //! Ersetzt die Styles eines bestimmten Eintrags, falls der Flag MultiStyled gesetzt wurde
  310. //! \param i Der Index des Eintrags
  311. //! \param abStyle Der neue Style
  312. DLLEXPORT void setMsStyle( int i, __int64 abStyle );
  313. //! Entfernt Styles von einem bestimmten Eintrag, falls der Flag MultiStyled gesetzt wurde
  314. //! \param i Der Index des Eintrags
  315. //! \param abStyle Der Style, der entfernt werden soll
  316. DLLEXPORT void removeMsStyle( int i, __int64 abStyle );
  317. //! Aktualisiert das Objekt. Wird vom Framework aufgerufen
  318. //! \param tickVal Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
  319. //! \return 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
  320. DLLEXPORT bool tick( double tickVal ) override;
  321. //! Verarbeitet Tastatur Nachrichten
  322. //! \param me Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
  323. DLLEXPORT void doTastaturEreignis( TastaturEreignis &te ) override;
  324. //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  325. //! \param zRObj Das Bild, in welches gezeichnet werden soll
  326. DLLEXPORT void render( Bild &zRObj ) override;
  327. //! Gibt den Index eines Eintrags zurück
  328. //! \param txt Der Text des Eintrags
  329. DLLEXPORT int getEintragPos( const char *txt ) const;
  330. //! Gibt den Index eines Eintrags zurück
  331. //! \param txt Der Text des Eintrags
  332. DLLEXPORT int getEintragPos( Text *txt ) const;
  333. //! Gibt den Text eines Eintrags zurück
  334. //! \param i Der Index des Eintrags
  335. DLLEXPORT Text *getEintragText( int i ) const;
  336. //! Gibt den Text eines Eintrags ohne erhöhten Reference Counter zurück
  337. //! \param i Der Index des Eintrags
  338. DLLEXPORT Text *zEintragText( int i ) const;
  339. //! Gibt einen Eintrag zurück
  340. //! \param i Der Index des Eintrags
  341. DLLEXPORT TextFeld *getEintrag( int i ) const;
  342. //! Gibt einen Eintrag ohne erhöhten Reference Counter zurück
  343. //! \param i Der Index des Eintrags
  344. DLLEXPORT TextFeld *zEintrag( int i ) const;
  345. //! Gibt den Index des Ausgewählten Eintrags zurück
  346. DLLEXPORT int getAuswahl() const;
  347. //! Gibt die Anzahl der Einträge zurück
  348. DLLEXPORT int getEintragAnzahl() const;
  349. //! Gibt zurück, ob die Liste gerade Ausgeklappt ist
  350. DLLEXPORT bool istAusgeklappt() const;
  351. //! Gibt die maximale Höhe der ausgeklappten Liste zurück
  352. DLLEXPORT int getMaxHeight() const;
  353. //! Gibt die Höhe eines Eintrags zurück
  354. DLLEXPORT int getEintragHeight() const;
  355. //! Gibt den Knopf zurück, der zum aus- und einklappen dr Liste verwendet wird
  356. DLLEXPORT Knopf *getAusklappKnopf() const;
  357. //! Gibt den Knopf ohne erhöhten Reference Counter zurück, der zum aus- und einklappen dr Liste verwendet wird
  358. DLLEXPORT Knopf *zAusklappKnopf() const;
  359. //! Gibt den Rahmen eines Eintrags zurück
  360. //! \param i Der Index des Eintrags
  361. DLLEXPORT Rahmen *getEintragRahmen( int i ) const;
  362. //! Gibt den Rahmen eines Eintrags ohne erhöhten Reference Counter zurück
  363. //! \param i Der Index des Eintrags
  364. DLLEXPORT Rahmen *zEintragRahmen( int i ) const;
  365. //! Gibt die Farbe eines Rahmens eines Eintrags im A8R8G8B8 Format zurück
  366. //! \param i Der Index des Eintrags
  367. DLLEXPORT int getEintragRahmenFarbe( int i ) const;
  368. //! Gibt die Breite eines Rahmens eines Eintrags zurück
  369. //! \param i Der Index des Eintrags
  370. DLLEXPORT int getEintragRahmenBreite( int i ) const;
  371. //! Gibt den Farbübergang eines Eintrags zurück
  372. //! \param i Der Index des Eintrags
  373. DLLEXPORT AlphaFeld *getEintragAlphaFeld( int i ) const;
  374. //! Gibt den Farbübergang eines Eintrags ohne erhöhten Reference Counter zurück
  375. //! \param i Der Index des Eintrags
  376. DLLEXPORT AlphaFeld *zEintragAlphaFeld( int i ) const;
  377. //! Gibt die Farbe eines Farbübergangs eines Eintrags im A8R8G8B8 Format zurück
  378. //! \param i Der Index des Eintrags
  379. DLLEXPORT int getEintragAlphaFeldFarbe( int i ) const;
  380. //! Gibt die Stärke eines Farbübergangs eines Eintrags zurück
  381. //! \param i Der Index des Eintrags
  382. DLLEXPORT int getEintragAlphaFeldStrength( int i ) const;
  383. //! Gibt die Hintergrund Farbe eines Eintrags im A8R8G8B8 Format zurück
  384. //! \param i Der Index des Eintrags
  385. DLLEXPORT int getEintragHintergrundFarbe( int i ) const;
  386. //! Gibt das Hintergrund Bild eines Eintrags zurück
  387. //! \param i Der Index des Eintrags
  388. DLLEXPORT Bild *getEintragHintergrundBild( int i ) const;
  389. //! Gibt das Hintergrund Bild eines Eintrags ohne erhöhten Reference Counter zurück
  390. //! \param i Der Index des Eintrags
  391. DLLEXPORT Bild *zEintragHintergrundBild( int i ) const;
  392. //! Gibt den Rahmen zurück, der bei der Auswahl eines Eintrags verwendet wird
  393. DLLEXPORT Rahmen *getAuswRahmen() const;
  394. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei der Auswahl eines Eintrags verwendet wird
  395. DLLEXPORT Rahmen *zAuswRahmen() const;
  396. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei der Auswahl eines Eintrags verwendet wird
  397. DLLEXPORT int getAuswRahmenFarbe() const;
  398. //! Gibt die Breite des Rahmens zurück, der bei der Auswahl eines Eintrags verwendet wird
  399. DLLEXPORT int getAuswRahmenBreite() const;
  400. //! Gibt den Farbübergang zurück, der bei der Auswahl eines Eintrags verwendet wird
  401. DLLEXPORT AlphaFeld *getAuswAlphaFeld() const;
  402. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei der Auswahl eines Eintrags verwendet wird
  403. DLLEXPORT AlphaFeld *zAuswAlphaFeld() const;
  404. //! Gibt die Farbe des Farbübergangs zurück, der bei der Auswahl eines Eintrags verwendet wird
  405. DLLEXPORT int getAuswAlphaFeldFarbe() const;
  406. //! Gibt die Stärke des Farbübergangs zurück, der bei der Auswahl eines Eintrags verwendet wird
  407. DLLEXPORT int getAuswAlphaFeldStrength() const;
  408. //! Gibt die Hintergrundfarbe im A8R8G8B8 Format zurück, die bei der Auswahl eines Eintrags verwendet wird
  409. DLLEXPORT int getAuswHintergrundFarbe() const;
  410. //! Gibt das Hintergrundbild zurück, das bei der Auswahl eines Eintrags verwendet wird
  411. DLLEXPORT Bild *getAuswHintergrundBild() const;
  412. //! Gibt das Hintergrundbild ohne erhöhten Reference Counter zurück, das bei der Auswahl eines Eintrags verwendet wird
  413. DLLEXPORT Bild *zAuswHintergrundBild() const;
  414. //! Gibt den Rahmen zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  415. //! \param i Der Index des Eintrags
  416. DLLEXPORT Rahmen *getMsAuswRahmen( int i ) const;
  417. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  418. //! \param i Der Index des Eintrags
  419. DLLEXPORT Rahmen *zMsAuswRahmen( int i ) const;
  420. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  421. //! \param i Der Index des Eintrags
  422. DLLEXPORT int getMsAuswRahmenFarbe( int i ) const;
  423. //! Gibt die Breite des Rahmens zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  424. //! \param i Der Index des Eintrags
  425. DLLEXPORT int getMsAuswRahmenBreite( int i ) const;
  426. //! Gibt den Farbübergang zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  427. //! \param i Der Index des Eintrags
  428. DLLEXPORT AlphaFeld *getMsAuswAlphaFeld( int i ) const;
  429. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  430. //! \param i Der Index des Eintrags
  431. DLLEXPORT AlphaFeld *zMsAuswAlphaFeld( int i ) const;
  432. //! Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  433. //! \param i Der Index des Eintrags
  434. DLLEXPORT int getMsAuswAlphaFeldFarbe( int i ) const;
  435. //! Gibt die Stärke des Farbübergangs zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  436. //! \param i Der Index des Eintrags
  437. DLLEXPORT int getMsAuswAlphaFeldStrength( int i ) const;
  438. //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  439. //! \param i Der Index des Eintrags
  440. DLLEXPORT int getMsAuswHintergrundFarbe( int i ) const;
  441. //! Gibt das Hintergrund Bild zurück, das bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  442. //! \param i Der Index des Eintrags
  443. DLLEXPORT Bild *getMsAuswHintergrundBild( int i ) const;
  444. //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
  445. //! \param i Der Index des Eintrags
  446. DLLEXPORT Bild *zMsAuswHintergrundBild( int i ) const;
  447. //! Gibt den Rahmen zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  448. DLLEXPORT Rahmen *getMausRahmen() const;
  449. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  450. DLLEXPORT Rahmen *zMausRahmen() const;
  451. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  452. DLLEXPORT int getMausRahmenFarbe() const;
  453. //! Gibt die Breite des Rahmens zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  454. DLLEXPORT int getMausRahmenBreite() const;
  455. //! Gibt den Farbübergang zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  456. DLLEXPORT AlphaFeld *getMausAlphaFeld() const;
  457. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  458. DLLEXPORT AlphaFeld *zMausAlphaFeld() const;
  459. //! Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  460. DLLEXPORT int getMausAlphaFeldFarbe() const;
  461. //! Gibt die Breite des Farbübergangs zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
  462. DLLEXPORT int getMausAlphaFeldStrength() const;
  463. //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, wenn die Maus auf einen Eintrag zeigt
  464. DLLEXPORT int getMausHintergrundFarbe() const;
  465. //! Gibt das Hintergrund Bild zurück, das verwendet wird, wenn die Maus auf einen Eintrag zeigt
  466. DLLEXPORT Bild *getMausHintergrundBild() const;
  467. //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, wenn die Maus auf einen Eintrag zeigt
  468. DLLEXPORT Bild *zMausHintergrundBild() const;
  469. //! Gibt den Rahmen zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  470. //! \param i Der Index des Eintrags
  471. DLLEXPORT Rahmen *getMsMausRahmen( int i ) const;
  472. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  473. //! \param i Der Index des Eintrags
  474. DLLEXPORT Rahmen *zMsMausRahmen( int i ) const;
  475. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  476. //! \param i Der Index des Eintrags
  477. DLLEXPORT int getMsMausRahmenFarbe( int i ) const;
  478. //! Gibt die Breite des Rahmens zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  479. //! \param i Der Index des Eintrags
  480. DLLEXPORT int getMsMausRahmenBreite( int i ) const;
  481. //! Gibt den Farbübergang zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  482. //! \param i Der Index des Eintrags
  483. DLLEXPORT AlphaFeld *getMsMausAlphaFeld( int i ) const;
  484. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  485. //! \param i Der Index des Eintrags
  486. DLLEXPORT AlphaFeld *zMsMausAlphaFeld( int i ) const;
  487. //! Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  488. //! \param i Der Index des Eintrags
  489. DLLEXPORT int getMsMausAlphaFeldFarbe( int i ) const;
  490. //! Gibt die Stärke des Farbübergangs zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  491. //! \param i Der Index des Eintrags
  492. DLLEXPORT int getMsMausAlphaFeldStrength( int i ) const;
  493. //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  494. //! \param i Der Index des Eintrags
  495. DLLEXPORT int getMsMausHintergrundFarbe( int i ) const;
  496. //! Gibt das Hintergrund Bild zurück, das bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  497. //! \param i Der Index des Eintrags
  498. DLLEXPORT Bild *getMsMausHintergrundBild( int i ) const;
  499. //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
  500. //! \param i Der Index des Eintrags
  501. DLLEXPORT Bild *zMsMausHintergrundBild( int i ) const;
  502. //! Prüft, ob ein Punkt in diesem Objekt liegt
  503. //! \param x die x koordinate des punktes
  504. //! \param y die y koordinate des punktes
  505. //! \return 1, wenn der punkt innen ist, 0 sonst
  506. DLLEXPORT bool istPunktInnen( int x, int y ) const override;
  507. //! Prüft, ob bei dem Flag MultiStyled für einen Bestimmten Eintrag ein bestimmter Style gesetzt wurde
  508. //! \param i Der Index des Eintrags
  509. //! \param abStyle Der Style
  510. DLLEXPORT inline bool hatMsStyle( int i, __int64 abStyle ) const;
  511. //! Prüft, ob bei dem Flag MultiStyled für einen Bestimmten Eintrag ein bestimmter Style nicht gesetzt wurde
  512. //! \param i Der Index des Eintrags
  513. //! \param abStyle Der Style
  514. DLLEXPORT inline bool hatMsStyleNicht( int i, __int64 abStyle ) const;
  515. DLLEXPORT Zeichnung *dublizieren() const override; //! Erzeugt eine Kopie des Zeichnungs
  516. };
  517. }
  518. #endif