Liste.h 22 KB

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