Liste.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. #ifndef Liste_H
  2. #define Liste_H
  3. #include "Array.h"
  4. #include "Zeichnung.h"
  5. namespace Framework
  6. {
  7. class Rahmen; //! Rahmen.h
  8. class AlphaFeld; //! AlphaFeld.h
  9. class Bild; //! Bild.h
  10. class Text; //! Text.h
  11. class TextFeld; //! TextFeld.h
  12. class VScrollBar; //! Scroll.h
  13. struct TastaturEreignis; //! TastaturEreignis.h
  14. struct MausEreignis; //! MausEreignis.h
  15. class Schrift; //! Schrift.h
  16. class AuswahlListe; //! aus dieser datei
  17. //! Eine Zeichnung des 2D GUI Frameworks, die eine Liste darstellt, aus der
  18. //! der Benutzer Elemente aus und abwählen kann
  19. class AuswahlListe : public ZeichnungHintergrund
  20. {
  21. public:
  22. class Style : public ZeichnungHintergrund::Style
  23. {
  24. public:
  25. // Legt fest, ob die Einträge der Liste einen Rahmen haben
  26. static const __int64 FeldRahmen = 0x0001000;
  27. // Legt fest, ob die Einträge einen Hintergrund haben
  28. static const __int64 FeldHintergrund = 0x0002000;
  29. // Legt fest, ob die Einträge ein Hintergrund Bild haben
  30. static const __int64 FeldHBild = 0x0004000;
  31. // Legt fest, ob beim zeichnen der Eintrag Hintergründe alpha
  32. // blending verwendet werden soll
  33. static const __int64 FeldHAlpha = 0x0008000;
  34. // Legt fest, ob die Einträge einen Farbübergang besitzen
  35. static const __int64 FeldBuffer = 0x0010000;
  36. // Legt fest, ob die ausgewählten Einträge einen Hintergrund haben
  37. static const __int64 AuswahlHintergrund = 0x0020000;
  38. // Legt fest, ob die ausgewählten einträge ein Bild als Hintergrund
  39. // haben
  40. static const __int64 AuswahlHBild = 0x0040000;
  41. // Legt fest, ob für das Zeichnen der Hintergründe der ausgewählten
  42. // Einträge alpha blending verwendet wird
  43. static const __int64 AuswahlHAlpha = 0x0080000;
  44. // Legt fest, ob die ausgewählten Einträge einen Farbübergang
  45. // besitzen
  46. static const __int64 AuswahlBuffer = 0x0100000;
  47. // Legt fest, ob die ausgewählten Einträge einen Rahmen besitzen
  48. static const __int64 AuswahlRahmen = 0x0200000;
  49. // Legt fest, ob jeder Eintrag seine eigenen Hintergrund,
  50. // Farbübergang und Rahmen hat, fals er ausgewählt ist
  51. static const __int64 MultiStyled = 0x0400000;
  52. // Legt fest, das mehrere Einträge gleichzeitig ausgewählt sein
  53. // können
  54. static const __int64 MultiSelect = 0x0800000;
  55. // Legt fest, ob ein bestimmter Eintrag ausgewählt ist, falls
  56. // MultiSelect gesetzt wurde.
  57. static const __int64 Selected = 0x1000000;
  58. // Vereint die Flags Sichtbar, Erlaubt, Rahmen, FeldHAlpha,
  59. // FeldHintergrund, FeldRahmen, AuswahlBuffer, AuswahlRahmen
  60. static const __int64 Normal
  61. = Sichtbar | Erlaubt | Rahmen | FeldHAlpha | FeldHintergrund
  62. | FeldRahmen | AuswahlBuffer | AuswahlRahmen;
  63. };
  64. private:
  65. RCArray<TextFeld>* tfListe;
  66. int auswahl;
  67. int ahFarbe;
  68. Bild* ahBild;
  69. AlphaFeld* aBuffer;
  70. Rahmen* aRahmen;
  71. Array<__int64>* styles;
  72. Array<int>* ahFarbeListe;
  73. RCArray<Bild>* ahBildListe;
  74. RCArray<AlphaFeld>* aBufferListe;
  75. RCArray<Rahmen>* aRahmenListe;
  76. Schrift* schrift;
  77. //! Verarbeitet Tastatur Nachrichten
  78. //! \param me Das Ereignis, was durch die Tastatureingabe ausgelößt
  79. //! wurde
  80. DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
  81. DLLEXPORT bool hatStyle(int styleSet, int styleCheck) const;
  82. public:
  83. //! Konstruktor
  84. DLLEXPORT AuswahlListe();
  85. //! Destruktor
  86. DLLEXPORT virtual ~AuswahlListe();
  87. //! Aktualisiert die Styles, größe und Position der Einträge
  88. DLLEXPORT void update();
  89. //! Fügt einen Eintrag hinzu
  90. //! \param txt Der Text des Eintrags
  91. DLLEXPORT void addEintrag(Text* txt);
  92. //! Fügt einen Eintrag hinzu
  93. //! \param txt Der Text des Eintrags
  94. DLLEXPORT void addEintrag(const char* txt);
  95. //! Fügt einen zeiger auf einen Eintrag hinzu
  96. //! \param tf Das TextFeld, mit dem der Eintrag gezeichnet wird
  97. DLLEXPORT void addEintragZ(TextFeld* tf);
  98. //! Fügt einen Eintrag an einer bestimmten Position hinzu
  99. //! \param pos Der Index des neuen Eintrags
  100. //! \param txt Der Text des Eintrags
  101. DLLEXPORT void addEintrag(int pos, Text* txt);
  102. //! Fügt einen Eintrag an einer bestimmten Position hinzu
  103. //! \param pos Der Index des neuen Eintrags
  104. //! \param txt Der Text des Eintrags
  105. DLLEXPORT void addEintrag(int pos, const char* txt);
  106. //! Fügt einen zeiger auf einen Eintrag an einer bestimmten Position
  107. //! hinzu \param pos Der Index des neuen Eintrags \param tf Das
  108. //! TextFeld, mit dem der Eintrag gezeichnet wird
  109. DLLEXPORT void addEintragZ(int pos, TextFeld* tf);
  110. //! Ändert einen Eintrag
  111. //! \param pos Der Index des Eintrags
  112. //! \param txt Der neue Text des Eintrags
  113. DLLEXPORT void setEintrag(int pos, Text* txt);
  114. //! Ändert einen Eintrag
  115. //! \param pos Der Index des Eintrags
  116. //! \param txt Der neue Text des Eintrags
  117. DLLEXPORT void setEintrag(int pos, const char* txt);
  118. //! Ändert den Zeiger eines Eintrags
  119. //! \param pos Der Index des Eintrags
  120. //! \param tf Der neue Eintrag
  121. DLLEXPORT void setEintragZ(int pos, TextFeld* tf);
  122. //! Vertauscht die Positionen zweier Einträge
  123. //! \param vpos Der Index des ersten Eintrags
  124. //! \param npos Der Index des zweiten Eintrags
  125. DLLEXPORT void tauschEintragPos(int vpos, int npos);
  126. //! Löscht einen Eintrag
  127. //! pos: Der Index des Eintrags
  128. DLLEXPORT void removeEintrag(int pos);
  129. //! Setzt die verwendete Schrift
  130. //! \param schrift Die Schrift
  131. DLLEXPORT void setSchriftZ(Schrift* schrift);
  132. //! Scrollt zu einem bestimmen Eintrag
  133. //! \param eintrag Der Index des Eintrags
  134. DLLEXPORT void setVScrollZuEintrag(int eintrag);
  135. //! Aktualisiert die maximale Scroll Höhe indem die Höhe aller Einträge
  136. //! addiert wird
  137. DLLEXPORT void updateVScroll();
  138. //! Setzt den Zeiger auf den Rahmen, der bei ausgewählten Einträgen
  139. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param rahmen
  140. //! Der Rahmen
  141. DLLEXPORT void setALRZ(Rahmen* rahmen);
  142. //! Setzt die Breite des Rahmens, der bei ausgewählten Einträgen
  143. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param br Die
  144. //! Breite in Pixeln
  145. DLLEXPORT void setALRBreite(int br);
  146. //! Setzt die Farbe des Rahmens, der bei ausgewählten Einträgen
  147. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param fc Die
  148. //! Farbe im A8R8G8B8 Format
  149. DLLEXPORT void setALRFarbe(int fc);
  150. //! Setzt den Zeiger auf den Farbübergnag, der bei ausgewählten
  151. //! Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
  152. //! \param buffer Der Farbübergang
  153. DLLEXPORT void setAAFZ(AlphaFeld* buffer);
  154. //! Setzt die Stärke des Farbübergnags, der bei ausgewählten Einträgen
  155. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param st Die
  156. //! Stärke
  157. DLLEXPORT void setAAFStrength(int st);
  158. //! Setzt die Farbe des Farbübergnags, der bei ausgewählten Einträgen
  159. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param fc Die
  160. //! Farbe im A8R8G8B8 Format
  161. DLLEXPORT void setAAFFarbe(int fc);
  162. //! Setzt das Hintergrund Bild durch kopieren, das bei ausgewählten
  163. //! Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
  164. //! \param bild Das Bild, das kopiert werden soll
  165. DLLEXPORT void setAHBild(Bild* bild);
  166. //! Setzt einen Zeiger auf das Hintergrund Bild, das bei ausgewählten
  167. //! Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
  168. //! \param bild Das Bild, das kopiert werden soll
  169. DLLEXPORT void setAHBildZ(Bild* bild);
  170. //! Setzt die Hintergrund Farbe, die bei ausgewählten Einträgen
  171. //! verwendet wird, fals MulitStyled nicht gesetzt wurde \param fc Die
  172. //! Farbe im A8R8G8B8 Format
  173. DLLEXPORT void setAHFarbe(int fc);
  174. //! Setzt den Zeiger auf den Rahmen, der bei einem ausgewählten Eintrag
  175. //! verwendet wird, fals MulitStyled gesetzt wurde \param pos Der Index
  176. //! des Eintrags \param rahmen Der Rahmen
  177. DLLEXPORT void setALRZ(int pos, Rahmen* rahmen);
  178. //! Setzt die Breite des Rahmens, der bei einem ausgewählten Eintrag
  179. //! verwendet wird, fals MulitStyled gesetzt wurde \param pos Der Index
  180. //! des Eintrags \param br Die Breite in Pixeln
  181. DLLEXPORT void setALRBreite(int pos, int br);
  182. //! Setzt die Farbe des Rahmens, der bei einem ausgewählten Eintrag
  183. //! verwendet wird, fals MulitStyled gesetzt wurde \param pos Der Index
  184. //! des Eintrags \param fc Die Farbe im A8R8G8B8 Format
  185. DLLEXPORT void setALRFarbe(int pos, int fc);
  186. //! Setzt den Zeiger auf den Farbübergnag, der bei einem ausgewählten
  187. //! Eintrag verwendet wird, fals MulitStyled gesetzt wurde \param pos
  188. //! Der Index des Eintrags \param buffer Der Farbübergang
  189. DLLEXPORT void setAAFZ(int pos, AlphaFeld* buffer);
  190. //! Setzt die Stärke des Farbübergnags, der bei einem ausgewählten
  191. //! Eintrag verwendet wird, fals MulitStyled gesetzt wurde \param pos
  192. //! Der Index des Eintrags \param st Die Stärke
  193. DLLEXPORT void setAAFStrength(int pos, int st);
  194. //! Setzt die Farbe des Farbübergnags, der bei einem ausgewählten
  195. //! Eintrag verwendet wird, fals MulitStyled gesetzt wurde \param pos
  196. //! Der Index des Eintrags \param fc Die Farbe im A8R8G8B8 Format
  197. DLLEXPORT void setAAFFarbe(int pos, int fc);
  198. //! Setzt das Hintergrund Bild durch kopieren, das bei einem
  199. //! ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
  200. //! \param pos Der Index des Eintrags
  201. //! \param bild Das Bild, das kopiert werden soll
  202. DLLEXPORT void setAHBild(int pos, Bild* bild);
  203. //! Setzt einen Zeiger auf das Hintergrund Bild, das bei einem
  204. //! ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
  205. //! \param pos Der Index des Eintrags
  206. //! \param bild Das Bild, das kopiert werden soll
  207. DLLEXPORT void setAHBildZ(int pos, Bild* bild);
  208. //! Setzt die Hintergrund Farbe, die bei einem ausgewählten Eintrag
  209. //! verwendet wird, fals MulitStyled gesetzt wurde \param pos Der Index
  210. //! des Eintrags \param fc Die Farbe im A8R8G8B8 Format
  211. DLLEXPORT void setAHFarbe(int pos, int fc);
  212. //! Setzt den Style eines Eintrags, falls MulitStyled gesetzt wurde und
  213. //! legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt
  214. //! wurde \param pos Der Index des Eintrags \param style Der neue Style
  215. DLLEXPORT void setMsStyle(int pos, __int64 style);
  216. //! Ändert den Style eines Eintrags, falls MulitStyled gesetzt wurde und
  217. //! legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt
  218. //! wurde \param pos Der Index des Eintrags \param style Der Style
  219. //! add_remove: 1, falls der Style hinzugefügt werden soll. 0, falls
  220. //! der Style entfernt weden soll
  221. DLLEXPORT void setMsStyle(int pos, __int64 style, bool add_remove);
  222. //! Fügt Styles zu einem Eintrag hinzu, falls MulitStyled gesetzt wurde
  223. //! und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect
  224. //! gesetzt wurde \param pos Der Index des Eintrags \param style Der
  225. //! Style, der hinzugefügt werden soll
  226. DLLEXPORT void addMsStyle(int pos, __int64 style);
  227. //! Entfernt Styles von einem Eintrag, falls MulitStyled gesetzt wurde
  228. //! und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect
  229. //! gesetzt wurde \param pos Der Index des Eintrags \param style Der
  230. //! Style, der entfernt werden soll
  231. DLLEXPORT void removeMsStyle(int pos, __int64 style);
  232. //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch
  233. //! aufgerufen \param te Das Ereignis
  234. DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override;
  235. //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  236. //! \param zRObj Das Bild, in welches gezeichnet werden soll
  237. DLLEXPORT void render(Bild& zRObj) override;
  238. //! Gibt den Index eines Eintrags zurück, auf den die Maus zeigt
  239. //! \param my Die Position der Maus auf der Y Achse basierend auf dem
  240. //! oberend Rand der Liste
  241. DLLEXPORT int getKlickEintrag(int my);
  242. //! Wählt einen Eintrag aus
  243. //! \param ausw Der Index des Eintrags
  244. DLLEXPORT void setAuswahl(int ausw);
  245. //! Wählt alle ausgewählten Einträge ab
  246. DLLEXPORT void deSelect();
  247. //! Gibt die Anzahl an Einträgen zurück
  248. DLLEXPORT int getEintragAnzahl() const;
  249. //! Gibt den Index des ausgewählten Eintrags zurück, fals MultiSelect
  250. //! nicht gesetzt ist. Wenn MultiSelect gesetzt wurde, kann die Auswahl
  251. //! eines Eintrags mit hatMsStyle( Eintrag Index,
  252. //! AuswahlListe::Style::Ausgewählt ) geprüft werden
  253. DLLEXPORT int getAuswahl() const;
  254. //! Gibt den Index eines Eintrags zurück
  255. //! \param eintragText Der Text des Eintrags
  256. DLLEXPORT int getEintragPos(Text* eintragText);
  257. //! Gibt einen Eintrag zurück
  258. //! \param pos Der Index des Eintrags
  259. DLLEXPORT TextFeld* getEintrag(int pos) const;
  260. //! Gibt einen Eintrag ohne erhöhten reference Counter zurück
  261. //! \param pos Der Index des Eintrags
  262. DLLEXPORT TextFeld* zEintrag(int pos) const;
  263. //! Gibt den Rahmen zurück, der für ausgewählte Einträge verwendet wird,
  264. //! falls MultiStyled nicht gesetzt wurde
  265. DLLEXPORT Rahmen* getARahmen() const;
  266. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der für
  267. //! ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt
  268. //! wurde
  269. DLLEXPORT Rahmen* zARahmen() const;
  270. //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die für
  271. //! ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt
  272. //! wurde
  273. DLLEXPORT int getAHFarbe() const;
  274. //! Gibt das Hintergrund Bild zurück, das für ausgewählte Einträge
  275. //! verwendet wird, falls MultiStyled nicht gesetzt wurde
  276. DLLEXPORT Bild* getAHBild() const;
  277. //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
  278. //! das für ausgewählte Einträge verwendet wird, falls MultiStyled nicht
  279. //! gesetzt wurde
  280. DLLEXPORT Bild* zAHBild() const;
  281. //! Gibt den Farbverlauf zurück, der für ausgewählte Einträge verwendet
  282. //! wird, falls MultiStyled nicht gesetzt wurde
  283. DLLEXPORT AlphaFeld* getABuffer() const;
  284. //! Gibt den Farbverlauf ohne erhöhten Reference Counter zurück, der für
  285. //! ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt
  286. //! wurde
  287. DLLEXPORT AlphaFeld* zABuffer() const;
  288. //! Gibt den Rahmen zurück, der für einen ausgewählten Eintrag verwendet
  289. //! wird, falls MultiStyled gesetzt wurde
  290. DLLEXPORT Rahmen* getARahmen(int pos) const;
  291. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der für
  292. //! einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt
  293. //! wurde
  294. DLLEXPORT Rahmen* zARahmen(int pos) const;
  295. //! Gibt die Hintegrrund Farbe im A8R8G8B8 Format zurück, die für einen
  296. //! ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
  297. DLLEXPORT int getAHFarbe(int pos) const;
  298. //! Gibt das Hintergrund Bild zurück, das für einen ausgewählten Eintrag
  299. //! verwendet wird, falls MultiStyled gesetzt wurde
  300. DLLEXPORT Bild* getAHBild(int pos) const;
  301. //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
  302. //! das für einen ausgewählten Eintrag verwendet wird, falls MultiStyled
  303. //! gesetzt wurde
  304. DLLEXPORT Bild* zAHBild(int pos) const;
  305. //! Gibt den Farbübergang zurück, der für einen ausgewählten Eintrag
  306. //! verwendet wird, falls MultiStyled gesetzt wurde
  307. DLLEXPORT AlphaFeld* getABuffer(int pos) const;
  308. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der
  309. //! für einen ausgewählten Eintrag verwendet wird, falls MultiStyled
  310. //! gesetzt wurde
  311. DLLEXPORT AlphaFeld* zABuffer(int pos) const;
  312. //! Überprüft, ob für einen Bestimmten Eintarg betimmte Styles gesetzt
  313. //! wurden, falls MultiStyled gesetzt wurde. Überprüft auch, ob ein
  314. //! Eintrag ausgewählt wurde, falls MultiSelect gesetzt wurde \param pos
  315. //! Der Index des Eintrags \param style Die zu prüfenden Styles
  316. DLLEXPORT inline bool hatMsStyle(int pos, __int64 style) const;
  317. //! Überprüft, ob für einen Bestimmten Eintarg betimmte Styles nicht
  318. //! gesetzt wurden, falls MultiStyled gesetzt wurde. Überprüft auch, ob
  319. //! ein Eintrag nicht ausgewählt wurde, falls MultiSelect gesetzt wurde
  320. //! \param pos Der Index des Eintrags
  321. //! \param style Die zu prüfenden Styles
  322. DLLEXPORT inline bool hatMsStyleNicht(int pos, __int64 style) const;
  323. };
  324. class ZListe : public ZeichnungHintergrund
  325. {
  326. public:
  327. class Style : public ZeichnungHintergrund::Style
  328. {
  329. public:
  330. // draws a seperation line between the entries
  331. static const __int64 EntrySeperator = 0x0001000;
  332. //! Vereint die Flags Sichtbar, Erlaubt,
  333. //! Rahmen, Hintergrund
  334. static const __int64 Normal
  335. = Sichtbar | Erlaubt | Rahmen | Hintergrund | EntrySeperator;
  336. };
  337. private:
  338. int entrySeperatorSize;
  339. int entrySeperatorColor;
  340. RCArray<Zeichnung> list;
  341. protected:
  342. //! Verarbeitet Tastatur Nachrichten
  343. //! \param me Das Ereignis, was durch die Tastatureingabe ausgelößt
  344. //! wurde
  345. DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
  346. public:
  347. //! Konstruktor
  348. DLLEXPORT ZListe();
  349. //! Destruktor
  350. DLLEXPORT virtual ~ZListe();
  351. //! Fügt einen Eintrag hinzu
  352. //! \param entry Die Zeichnung die hinzugefügt werden soll
  353. DLLEXPORT void addEintrag(Zeichnung* entry);
  354. //! Ändert einen Eintrag
  355. //! \param pos Der Index des Eintrags
  356. //! \param entry Die neue Zeichnung
  357. DLLEXPORT void setEintrag(int pos, Zeichnung* entry);
  358. //! Vertauscht die Positionen zweier Einträge
  359. //! \param vpos Der Index des ersten Eintrags
  360. //! \param npos Der Index des zweiten Eintrags
  361. DLLEXPORT void tauschEintragPos(int vpos, int npos);
  362. //! Löscht einen Eintrag
  363. //! pos: Der Index des Eintrags
  364. DLLEXPORT void removeEintrag(int pos);
  365. //! Scrollt zu einem bestimmen Eintrag
  366. //! \param eintrag Der Index des Eintrags
  367. DLLEXPORT void setVScrollZuEintrag(int eintrag);
  368. //! Aktualisiert die maximale Scroll Höhe indem die Höhe aller Einträge
  369. //! addiert wird
  370. DLLEXPORT void updateVScroll();
  371. //! sets the size of the entry seperator
  372. DLLEXPORT void setEntrySeperatorSize(int size);
  373. //! sets the color of the entry seperator
  374. DLLEXPORT void setEntrySeperatorColor(int color);
  375. //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch
  376. //! aufgerufen \param te Das Ereignis
  377. DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override;
  378. //! Aktualisiert die zeichnung
  379. //! \param tickVal Die vergangene Zeit in Sekunden, die seit dem Letzten
  380. //! Aufruf dieser Funktion verstrichen ist \return 1, wenn sich die
  381. //! Zeichnung seit dem letzten aufruf verändert hat
  382. DLLEXPORT bool tick(double tickVal) override;
  383. //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  384. //! \param zRObj Das Bild, in welches gezeichnet werden soll
  385. DLLEXPORT void render(Bild& rObj) override;
  386. //! Gibt den Index eines Eintrags zurück, auf den die Maus zeigt
  387. //! \param my Die Position der Maus auf der Y Achse basierend auf dem
  388. //! oberend Rand der Liste
  389. DLLEXPORT int getKlickEintrag(int my);
  390. //! Gibt die Anzahl an Einträgen zurück
  391. DLLEXPORT int getEintragAnzahl() const;
  392. //! Gibt den Index eines Eintrags zurück
  393. //! \param zEntry Die Zeichnung
  394. DLLEXPORT int getEintragPos(Zeichnung* zEntry);
  395. //! Gibt einen Eintrag zurück
  396. //! \param pos Der Index des Eintrags
  397. DLLEXPORT Zeichnung* getEintrag(int pos) const;
  398. //! Gibt einen Eintrag ohne erhöhten reference Counter zurück
  399. //! \param pos Der Index des Eintrags
  400. DLLEXPORT Zeichnung* zEintrag(int pos) const;
  401. //! Gibt die benötigte Höhe zurück
  402. DLLEXPORT int getNeededHeight() const;
  403. //! returns the size of the entry seperator
  404. DLLEXPORT int getEntrySeperatorSize() const;
  405. //! returns the color of the entry seperator
  406. DLLEXPORT int getEntrySeperatorColor() const;
  407. };
  408. } // namespace Framework
  409. #endif