SelectionBox.h 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  1. #ifndef AuswahlBox_H
  2. #define AuswahlBox_H
  3. #include "Array.h"
  4. #include "Drawing.h"
  5. namespace Framework
  6. {
  7. class TextField; //! TextField.h
  8. class VScrollBar; //! Scroll.h
  9. class Border; //! Border.h
  10. class Knopf; //! Button.h
  11. class AlphaFeld; //! AlphaField.h
  12. class Text; //! Tet.h
  13. class Font; //! Font.h
  14. class TextRenderer;
  15. //! A 2D GUI Framework drawing. Represents a box from which
  16. //! the user can select different values by expanding it
  17. class AuswahlBox : public DrawableBackground
  18. {
  19. public:
  20. class Style : public DrawableBackground::Style
  21. {
  22. public:
  23. //! If this flag is set, each value in the list has a border
  24. static const __int64 FieldBorder = 0x000001000;
  25. //! If this flag is set, each value in the list has a background
  26. static const __int64 FeldHintergrund = 0x000002000;
  27. //! If this flag is set, each value in the list has an image
  28. //! as background
  29. static const __int64 FeldHImage = 0x000004000;
  30. //! If this flag is set, each value in the list has a
  31. //! transparent background
  32. static const __int64 FeldHAlpha = 0x000008000;
  33. //! If this flag is set, each value in the list has a
  34. //! color gradient
  35. static const __int64 FeldBuffer = 0x000010000;
  36. //! If this flag is set, the currently selected value
  37. //! gets a background
  38. static const __int64 AuswahlHintergrund = 0x000020000;
  39. //! If this flag is set, the currently selected value
  40. //! gets a background image
  41. static const __int64 AuswahlHImage = 0x000040000;
  42. //! If this flag is set, the currently selected value
  43. //! gets a transparent background
  44. static const __int64 AuswahlHAlpha = 0x000080000;
  45. //! If this flag is set, the currently selected value
  46. //! gets a color gradient
  47. static const __int64 AuswahlBuffer = 0x000100000;
  48. //! If this flag is set, the currently selected value
  49. //! gets a border
  50. static const __int64 SelectionBorder = 0x000200000;
  51. //! If this flag is set, each value has its own backgrounds
  52. //! and borders instead of sharing the same ones
  53. static const __int64 MultiStyled = 0x000400000;
  54. //! Sets a maximum height for the expanded list. A scrollbar
  55. //! appears automatically when there are more elements than
  56. //! can be visible
  57. static const __int64 MaxHeight = 0x004000000;
  58. //! If this flag is set, the element the mouse is pointing
  59. //! at has a background
  60. static const __int64 MausHintergrund = 0x008000000;
  61. //! If this flag is set, the element the mouse is pointing
  62. //! at has a background image
  63. static const __int64 MausHImage = 0x010000000;
  64. //! If this flag is set, the element the mouse is pointing
  65. //! at has a transparent background
  66. static const __int64 MausHAlpha = 0x020000000;
  67. //! If this flag is set, the element the mouse is pointing
  68. //! at has a color gradient
  69. static const __int64 MausBuffer = 0x040000000;
  70. //! If this flag is set, the element the mouse is pointing
  71. //! at has a border
  72. static const __int64 MausRahmen = 0x080000000;
  73. //! const int NachObenAusklappen = 0x100000000;
  74. //! const int AutoAusklappRichtung = 0x200000000;
  75. //! Normal style: Visible, Enabled, Border, FieldBorder,
  76. //! SelectionBuffer, SelectionBorder, MaxHeight, VScroll,
  77. //! MouseBorder, MouseBuffer
  78. static const __int64 Normal
  79. = Sichtbar | Erlaubt | Border | FieldBorder | AuswahlBuffer
  80. | SelectionBorder | MaxHeight | VScroll | MausRahmen | MausBuffer
  81. | Hintergrund | MEIgnoreParentInside | MEIgnoreVerarbeitet;
  82. };
  83. private:
  84. TextRenderer* textRd;
  85. Array<__int64>* msStyle;
  86. RCArray<TextField>* members;
  87. Knopf* ausfahren;
  88. Border* selBorder;
  89. int auswBgF;
  90. Image* auswBgB;
  91. AlphaFeld* auswAf;
  92. RCArray<Border>* msSelBorder;
  93. Array<int>* msAuswBgF;
  94. RCArray<Image>* msAuswBgB;
  95. RCArray<AlphaFeld>* msAuswAf;
  96. Border* mouseBorder;
  97. int mausBgF;
  98. Image* mausBgB;
  99. AlphaFeld* mausAf;
  100. RCArray<Border>* msMouseBorder;
  101. Array<int>* msMausBgF;
  102. RCArray<Image>* msMausBgB;
  103. RCArray<AlphaFeld>* msMausAf;
  104. int anzahl;
  105. int auswahl;
  106. bool ausgeklappt;
  107. int ausklappHeight;
  108. int ausklapMaxHeight;
  109. int eintragHeight;
  110. double tickval;
  111. int mausEintrag;
  112. bool scrollAnzeigen;
  113. void* eAkP;
  114. std::function<void(void*, AuswahlBox*, int, int)> eAk;
  115. //! Processes mouse messages
  116. //! \param me The event triggered by the mouse input
  117. DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
  118. public:
  119. //! Constructor
  120. DLLEXPORT AuswahlBox();
  121. //! Destructor
  122. DLLEXPORT virtual ~AuswahlBox();
  123. //! Sets the parameter of the callback function that is called when
  124. //! the user selects a new element \param p The parameter
  125. DLLEXPORT void setEventParam(void* p);
  126. //! Sets the callback function that is called when the user
  127. //! selects a new element \param eAk The callback function call:
  128. //! eAk( parameter, this, 0, selectionIndex )
  129. DLLEXPORT void setEventAktion(
  130. std::function<void(void*, AuswahlBox*, int, int)> event);
  131. //! Sets the used TextRenderer
  132. //! \param textRd The text renderer
  133. DLLEXPORT void setTextRendererZ(TextRenderer* textRd);
  134. //! Sets the used font
  135. //! \param schrift The font
  136. DLLEXPORT void setFontZ(Font* schrift);
  137. //! Adds a selectable entry to the list. The first entry is
  138. //! automatically selected at the beginning \param txt The text of
  139. //! the entry
  140. DLLEXPORT void addEintrag(const char* txt);
  141. //! Adds a selectable entry to the list. The first entry is
  142. //! automatically selected at the beginning \param txt The text of
  143. //! the entry
  144. DLLEXPORT void addEintrag(Text* txt);
  145. //! Adds a selectable entry to the list. The first entry is
  146. //! automatically selected at the beginning \param txt A pointer to
  147. //! the entry
  148. DLLEXPORT void addEintragZ(TextField* txt);
  149. //! Changes the text of an entry
  150. //! \param i The index of the entry
  151. //! \param txt The new text
  152. DLLEXPORT void setEintrag(int i, const char* txt);
  153. //! Changes the text of an entry
  154. //! \param i The index of the entry
  155. //! \param txt The new text
  156. DLLEXPORT void setEintrag(int i, Text* txt);
  157. //! Changes an entry
  158. //! \param i The index of the entry
  159. //! \param txt A pointer to the new entry
  160. DLLEXPORT void setEintragZ(int i, TextField* txt);
  161. //! Deletes an entry
  162. //! \param i The index of the entry
  163. DLLEXPORT void removeEintrag(int i);
  164. //! Sets a pointer to the button used for expanding and collapsing
  165. //! the list \param ausK The button
  166. DLLEXPORT void setAusklappKnopfZ(Knopf* ausK);
  167. //! Sets a pointer to a border used for a specific entry
  168. //! \param i The index of the entry \param rahmen The border
  169. DLLEXPORT void setEntryBorderZ(int i, Border* rahmen);
  170. //! Sets the color of a border used for a specific entry
  171. //! \param i The index of the entry \param f The color in
  172. //! A8R8G8B8 format
  173. DLLEXPORT void setEintragRahmenFarbe(int i, int f);
  174. //! Sets the width of a border used for a specific entry
  175. //! \param i The index of the entry \param rbr The width
  176. //! of the border in pixels
  177. DLLEXPORT void setEintragRahmenBreite(int i, int rbr);
  178. //! Sets a background color used for a specific entry
  179. //! \param i The index of the entry \param f The color in
  180. //! A8R8G8B8 format
  181. DLLEXPORT void setEintragHintergrundFarbe(int i, int f);
  182. //! Sets a pointer to a background image used for a specific
  183. //! entry \param i The index of the entry
  184. //! \param bgB The background image
  185. DLLEXPORT void setEintragHintergrundImageZ(int i, Image* bgB);
  186. //! Sets a background image by copying, used for a specific
  187. //! entry \param i The index of the entry \param bgB The
  188. //! background image
  189. DLLEXPORT void setEintragHintergrundImage(int i, Image* bgB);
  190. //! Sets a pointer to a color gradient used for a specific
  191. //! entry \param i The index of the entry \param af The
  192. //! color gradient
  193. DLLEXPORT void setEintragAlphaFeldZ(int i, AlphaFeld* af);
  194. //! Sets the color of a color gradient used for a specific
  195. //! entry \param i The index of the entry \param afF The
  196. //! color in A8R8G8B8 format
  197. DLLEXPORT void setEintragAlphaFeldFarbe(int i, int afF);
  198. //! Sets the strength of a color gradient used for a specific
  199. //! entry \param i The index of the entry \param afSt The
  200. //! strength
  201. DLLEXPORT void setEintragAlphaFeldStrength(int i, int afSt);
  202. //! Sets a pointer to a border used for the selected entry
  203. //! \param rahmen The border
  204. DLLEXPORT void setSelBorderZ(Border* rahmen);
  205. //! Sets the color of a border used for the selected entry
  206. //! \param f The color in A8R8G8B8 format
  207. DLLEXPORT void setAuswRahmenFarbe(int f);
  208. //! Sets the width of a border used for the selected entry
  209. //! \param rbr The width in pixels
  210. DLLEXPORT void setAuswRahmenBreite(int rbr);
  211. //! Sets the background color used for the selected entry
  212. //! \param f The color in A8R8G8B8 format
  213. DLLEXPORT void setAuswHintergrundFarbe(int f);
  214. //! Sets a pointer to a background image used for the selected
  215. //! entry \param bgB The image
  216. DLLEXPORT void setAuswHintergrundImageZ(Image* bgB);
  217. //! Sets a background image by copying, used for the selected
  218. //! entry \param bgB The image
  219. DLLEXPORT void setAuswHintergrundImage(Image* bgB);
  220. //! Sets a pointer to a color gradient used for the selected
  221. //! entry \param af The color gradient
  222. DLLEXPORT void setAuswAlphaFeldZ(AlphaFeld* af);
  223. //! Sets the color of a color gradient used for the selected
  224. //! entry \param afF The color in A8R8G8B8 format
  225. DLLEXPORT void setAuswAlphaFeldFarbe(int afF);
  226. //! Sets the strength of a color gradient used for the selected
  227. //! entry \param afSt The strength
  228. DLLEXPORT void setAuswAlphaFeldStrength(int afSt);
  229. //! Sets a pointer to a border used with the MultiStyled flag
  230. //! when selecting a specific entry \param i
  231. //! The index of the entry \param rahmen The border
  232. DLLEXPORT void setMsSelBorderZ(int i, Border* rahmen);
  233. //! Sets the color of a border used with the MultiStyled flag when
  234. //! selecting a specific entry \param i The index
  235. //! of the entry \param f The color in A8R8G8B8 format
  236. DLLEXPORT void setMsAuswRahmenFarbe(int i, int f);
  237. //! Sets the width of a border used with the MultiStyled flag when
  238. //! selecting a specific entry \param i The
  239. //! index of the entry \param rbr The width in pixels
  240. DLLEXPORT void setMsAuswRahmenBreite(int i, int rbr);
  241. //! Sets the background color used with the MultiStyled flag when
  242. //! selecting a specific entry \param i The index
  243. //! of the entry \param f The color in A8R8G8B8 format
  244. DLLEXPORT void setMsAuswHintergrundFarbe(int i, int f);
  245. //! Sets a pointer to a background image used with the MultiStyled
  246. //! flag when selecting a specific entry
  247. //! \param i The index of the entry
  248. //! \param bgB The image
  249. DLLEXPORT void setMsAuswHintergrundImageZ(int i, Image* bgB);
  250. //! Sets a background image by copying, used with the MultiStyled
  251. //! flag when selecting a specific entry
  252. //! \param i The index of the entry
  253. //! \param bgB The image
  254. DLLEXPORT void setMsAuswHintergrundImage(int i, Image* bgB);
  255. //! Sets a pointer to a color gradient used with the MultiStyled
  256. //! flag when selecting a specific entry
  257. //! \param i The index of the entry
  258. //! \param af The color gradient
  259. DLLEXPORT void setMsAuswAlphaFeldZ(int i, AlphaFeld* af);
  260. //! Sets the color of a color gradient used with the MultiStyled flag
  261. //! when selecting a specific entry \param i The
  262. //! index of the entry \param afF The color in A8R8G8B8 format
  263. DLLEXPORT void setMsAuswAlphaFeldFarbe(int i, int afF);
  264. //! Sets the strength of a color gradient used with the MultiStyled
  265. //! flag when selecting a specific entry \param i
  266. //! The index of the entry \param afSt The strength
  267. DLLEXPORT void setMsAuswAlphaFeldStrength(int i, int afSt);
  268. //! Sets a pointer to a border used for the entry the mouse is
  269. //! pointing at \param rahmen The border
  270. DLLEXPORT void setMouseBorderZ(Border* rahmen);
  271. //! Sets the color of a border used for the entry the mouse is
  272. //! pointing at \param f The color in A8R8G8B8 format
  273. DLLEXPORT void setMausRahmenFarbe(int f);
  274. //! Sets the width of a border used for the entry the mouse is
  275. //! pointing at \param rbr The width of the border in pixels
  276. DLLEXPORT void setMausRahmenBreite(int rbr);
  277. //! Sets the background color used for the entry the mouse is
  278. //! pointing at \param f The color in A8R8G8B8 format
  279. DLLEXPORT void setMausHintergrundFarbe(int f);
  280. //! Sets a pointer to a background image used for the entry the mouse
  281. //! is pointing at \param bgB The image
  282. DLLEXPORT void setMausHintergrundImageZ(Image* bgB);
  283. //! Sets a background image by copying, used for the entry the mouse
  284. //! is pointing at \param bgB The image
  285. DLLEXPORT void setMausHintergrundImage(Image* bgB);
  286. //! Sets a color gradient used for the entry the mouse is pointing
  287. //! at \param af The color gradient
  288. DLLEXPORT void setMausAlphaFeldZ(AlphaFeld* af);
  289. //! Sets the color of a color gradient used for the entry the mouse
  290. //! is pointing at \param afF The color in A8R8G8B8 format
  291. DLLEXPORT void setMausAlphaFeldFarbe(int afF);
  292. //! Sets the strength of a color gradient used for the entry the mouse
  293. //! is pointing at \param afSt The strength
  294. DLLEXPORT void setMausAlphaFeldStrength(int afSt);
  295. //! Sets a pointer to a border used with the MultiStyled flag for a
  296. //! specific entry the mouse is pointing at
  297. //! \param i The index of the entry
  298. //! \param rahmen The border
  299. DLLEXPORT void setMsMouseBorderZ(int i, Border* rahmen);
  300. //! Sets the color of a border used with the MultiStyled flag for a
  301. //! specific entry the mouse is pointing at \param i
  302. //! The index of the entry \param f The color in A8R8G8B8 format
  303. DLLEXPORT void setMsMausRahmenFarbe(int i, int f);
  304. //! Sets the width of a border used with the MultiStyled flag for a
  305. //! specific entry the mouse is pointing at
  306. //! \param i The index of the entry
  307. //! \param rbr The width in pixels
  308. DLLEXPORT void setMsMausRahmenBreite(int i, int rbr);
  309. //! Sets the background color used with the MultiStyled flag for a
  310. //! specific entry the mouse is pointing at \param i
  311. //! The index of the entry \param f The color in A8R8G8B8 format
  312. DLLEXPORT void setMsMausHintergrundFarbe(int i, int f);
  313. //! Sets a pointer to a background image used with the MultiStyled
  314. //! flag for a specific entry the mouse is pointing at
  315. //! \param i The index of the entry \param bgB The image
  316. DLLEXPORT void setMsMausHintergrundImageZ(int i, Image* bgB);
  317. //! Sets a background image by copying, used with the MultiStyled
  318. //! flag for a specific entry the mouse is pointing at
  319. //! \param i The index of the entry \param bgB The image
  320. DLLEXPORT void setMsMausHintergrundImage(int i, Image* bgB);
  321. //! Sets a pointer to a color gradient used with the MultiStyled
  322. //! flag for a specific entry the mouse is pointing at
  323. //! \param i The index of the entry \param af The color gradient
  324. DLLEXPORT void setMsMausAlphaFeldZ(int i, AlphaFeld* af);
  325. //! Sets the color of a color gradient used with the MultiStyled
  326. //! flag for a specific entry the mouse is pointing at
  327. //! \param i The index of the entry
  328. //! \param afF The color in A8R8G8B8 format
  329. DLLEXPORT void setMsMausAlphaFeldFarbe(int i, int afF);
  330. //! Sets the strength of a color gradient used with the MultiStyled
  331. //! flag for a specific entry the mouse is pointing at
  332. //! \param i The index of the entry
  333. //! \param afSt The strength
  334. DLLEXPORT void setMsMausAlphaFeldStrength(int i, int afSt);
  335. //! Selects an element
  336. //! \param i The index of the element
  337. DLLEXPORT void setAuswahl(int i);
  338. //! Expands the list for selection
  339. DLLEXPORT void ausklappen();
  340. //! Collapses the list
  341. DLLEXPORT void einklappen();
  342. //! Scrolls in the list to a specific entry
  343. //! \param i The index of the entry
  344. DLLEXPORT void scrollZuEintrag(int i);
  345. //! Sets the maximum expansion height of the list
  346. //! \param maxHeight The maximum height in pixels
  347. DLLEXPORT void setMaxAuskappHeight(int maxHeight);
  348. //! Sets the height of the entries
  349. //! \param height The height in pixels
  350. DLLEXPORT void setEintragHeight(int height);
  351. //! Adds styles to a specific entry if the MultiStyled flag
  352. //! is set \param i The index of the entry \param
  353. //! abStyle The style to add
  354. DLLEXPORT void addMsStyle(int i, __int64 abStyle);
  355. //! Sets styles of a specific entry if the MultiStyled flag
  356. //! is set \param i The index of the entry \param abStyle The
  357. //! style \param add 1 if the styles should be added,
  358. //! 0 if they should be removed
  359. DLLEXPORT void setMsStyle(int i, __int64 abStyle, bool add);
  360. //! Replaces the styles of a specific entry if the MultiStyled
  361. //! flag is set \param i The index of the entry \param
  362. //! abStyle The new style
  363. DLLEXPORT void setMsStyle(int i, __int64 abStyle);
  364. //! Removes styles from a specific entry if the MultiStyled
  365. //! flag is set \param i The index of the entry \param
  366. //! abStyle The style to remove
  367. DLLEXPORT void removeMsStyle(int i, __int64 abStyle);
  368. //! Updates the object. Called by the framework
  369. //! \param tickVal The time in seconds since the last call
  370. //! of this function \return 1 if something changed
  371. //! and the image needs to be redrawn. 0 otherwise
  372. DLLEXPORT bool tick(double tickVal) override;
  373. //! Processes keyboard messages
  374. //! \param te The event triggered by the keyboard input
  375. DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override;
  376. //! Draws the object to zRObj if it is visible
  377. //! \param zRObj The image to draw into
  378. DLLEXPORT void render(Image& zRObj) override;
  379. //! Returns the index of an entry
  380. //! \param txt The text of the entry
  381. DLLEXPORT int getEintragPos(const char* txt) const;
  382. //! Returns the index of an entry
  383. //! \param txt The text of the entry
  384. DLLEXPORT int getEintragPos(Text* txt) const;
  385. //! Returns the text of an entry
  386. //! \param i The index of the entry
  387. DLLEXPORT Text* getEintragText(int i) const;
  388. //! Returns the text of an entry without increased reference counter
  389. //! \param i The index of the entry
  390. DLLEXPORT Text* zEintragText(int i) const;
  391. //! Returns an entry
  392. //! \param i The index of the entry
  393. DLLEXPORT TextField* getEintrag(int i) const;
  394. //! Returns an entry without increased reference counter
  395. //! \param i The index of the entry
  396. DLLEXPORT TextField* zEintrag(int i) const;
  397. //! Returns the index of the selected entry
  398. DLLEXPORT int getAuswahl() const;
  399. //! Returns the number of entries
  400. DLLEXPORT int getEintragAnzahl() const;
  401. //! Returns whether the list is currently expanded
  402. DLLEXPORT bool istAusgeklappt() const;
  403. //! Returns the maximum height of the expanded list
  404. DLLEXPORT int getMaxHeight() const;
  405. //! Returns the height of an entry
  406. DLLEXPORT int getEintragHeight() const;
  407. //! Returns the button used for expanding and collapsing the list
  408. DLLEXPORT Knopf* getAusklappKnopf() const;
  409. //! Returns the button without increased reference counter used for
  410. //! expanding and collapsing the list
  411. DLLEXPORT Knopf* zAusklappKnopf() const;
  412. //! Returns the border of an entry
  413. //! \param i The index of the entry
  414. DLLEXPORT Border* getEntryBorder(int i) const;
  415. //! Returns the border of an entry without increased reference counter
  416. //! \param i The index of the entry
  417. DLLEXPORT Border* zEntryBorder(int i) const;
  418. //! Returns the color of a border of an entry in A8R8G8B8 format
  419. //! \param i The index of the entry
  420. DLLEXPORT int getEintragRahmenFarbe(int i) const;
  421. //! Returns the width of a border of an entry
  422. //! \param i The index of the entry
  423. DLLEXPORT int getEintragRahmenBreite(int i) const;
  424. //! Returns the color gradient of an entry
  425. //! \param i The index of the entry
  426. DLLEXPORT AlphaFeld* getEintragAlphaFeld(int i) const;
  427. //! Returns the color gradient of an entry without increased reference
  428. //! counter \param i The index of the entry
  429. DLLEXPORT AlphaFeld* zEintragAlphaFeld(int i) const;
  430. //! Returns the color of a color gradient of an entry in A8R8G8B8 format
  431. //! \param i The index of the entry
  432. DLLEXPORT int getEintragAlphaFeldFarbe(int i) const;
  433. //! Returns the strength of a color gradient of an entry
  434. //! \param i The index of the entry
  435. DLLEXPORT int getEintragAlphaFeldStrength(int i) const;
  436. //! Returns the background color of an entry in A8R8G8B8 format
  437. //! \param i The index of the entry
  438. DLLEXPORT int getEintragHintergrundFarbe(int i) const;
  439. //! Returns the background image of an entry
  440. //! \param i The index of the entry
  441. DLLEXPORT Image* getEintragHintergrundImage(int i) const;
  442. //! Returns the background image of an entry without increased reference
  443. //! counter \param i The index of the entry
  444. DLLEXPORT Image* zEintragHintergrundImage(int i) const;
  445. //! Returns the border used when selecting an entry
  446. DLLEXPORT Border* getSelBorder() const;
  447. //! Returns the border without increased reference counter used when
  448. //! selecting an entry
  449. DLLEXPORT Border* zSelBorder() const;
  450. //! Returns the color of the border in A8R8G8B8 format used when
  451. //! selecting an entry
  452. DLLEXPORT int getAuswRahmenFarbe() const;
  453. //! Returns the width of the border used when selecting an entry
  454. DLLEXPORT int getAuswRahmenBreite() const;
  455. //! Returns the color gradient used when selecting an entry
  456. DLLEXPORT AlphaFeld* getAuswAlphaFeld() const;
  457. //! Returns the color gradient without increased reference counter used
  458. //! when selecting an entry
  459. DLLEXPORT AlphaFeld* zAuswAlphaFeld() const;
  460. //! Returns the color of the color gradient used when selecting
  461. //! an entry
  462. DLLEXPORT int getAuswAlphaFeldFarbe() const;
  463. //! Returns the strength of the color gradient used when selecting
  464. //! an entry
  465. DLLEXPORT int getAuswAlphaFeldStrength() const;
  466. //! Returns the background color in A8R8G8B8 format used when
  467. //! selecting an entry
  468. DLLEXPORT int getAuswHintergrundFarbe() const;
  469. //! Returns the background image used when selecting an entry
  470. DLLEXPORT Image* getAuswHintergrundImage() const;
  471. //! Returns the background image without increased reference counter used
  472. //! when selecting an entry
  473. DLLEXPORT Image* zAuswHintergrundImage() const;
  474. //! Returns the border used with the MultiStyled flag when selecting
  475. //! a specific entry \param i The index of the entry
  476. DLLEXPORT Border* getMsSelBorder(int i) const;
  477. //! Returns the border without increased reference counter used with the
  478. //! MultiStyled flag when selecting a specific entry
  479. //! \param i The index of the entry
  480. DLLEXPORT Border* zMsSelBorder(int i) const;
  481. //! Returns the color of the border in A8R8G8B8 format used with the
  482. //! MultiStyled flag when selecting a specific entry
  483. //! \param i The index of the entry
  484. DLLEXPORT int getMsAuswRahmenFarbe(int i) const;
  485. //! Returns the width of the border used with the MultiStyled flag when
  486. //! selecting a specific entry \param i The index of the entry
  487. DLLEXPORT int getMsAuswRahmenBreite(int i) const;
  488. //! Returns the color gradient used with the MultiStyled flag when
  489. //! selecting a specific entry \param i The index of the entry
  490. DLLEXPORT AlphaFeld* getMsAuswAlphaFeld(int i) const;
  491. //! Returns the color gradient without increased reference counter used
  492. //! with the MultiStyled flag when selecting a specific entry
  493. //! \param i The index of the entry
  494. DLLEXPORT AlphaFeld* zMsAuswAlphaFeld(int i) const;
  495. //! Returns the color of the color gradient in A8R8G8B8 format used with
  496. //! the MultiStyled flag when selecting a specific entry
  497. //! \param i The index of the entry
  498. DLLEXPORT int getMsAuswAlphaFeldFarbe(int i) const;
  499. //! Returns the strength of the color gradient used with the MultiStyled
  500. //! flag when selecting a specific entry
  501. //! \param i The index of the entry
  502. DLLEXPORT int getMsAuswAlphaFeldStrength(int i) const;
  503. //! Returns the background color in A8R8G8B8 format used with the
  504. //! MultiStyled flag when selecting a specific entry
  505. //! \param i The index of the entry
  506. DLLEXPORT int getMsAuswHintergrundFarbe(int i) const;
  507. //! Returns the background image used with the MultiStyled flag when
  508. //! selecting a specific entry \param i The index of the entry
  509. DLLEXPORT Image* getMsAuswHintergrundImage(int i) const;
  510. //! Returns the background image without increased reference counter used
  511. //! with the MultiStyled flag when selecting a specific entry
  512. //! \param i The index of the entry
  513. DLLEXPORT Image* zMsAuswHintergrundImage(int i) const;
  514. //! Returns the border used when the mouse is pointing at an entry
  515. DLLEXPORT Border* getMouseBorder() const;
  516. //! Returns the border without increased reference counter used when
  517. //! the mouse is pointing at an entry
  518. DLLEXPORT Border* zMouseBorder() const;
  519. //! Returns the color of the border in A8R8G8B8 format used when
  520. //! the mouse is pointing at an entry
  521. DLLEXPORT int getMausRahmenFarbe() const;
  522. //! Returns the width of the border used when the mouse is pointing
  523. //! at an entry
  524. DLLEXPORT int getMausRahmenBreite() const;
  525. //! Returns the color gradient used when the mouse is pointing
  526. //! at an entry
  527. DLLEXPORT AlphaFeld* getMausAlphaFeld() const;
  528. //! Returns the color gradient without increased reference counter used
  529. //! when the mouse is pointing at an entry
  530. DLLEXPORT AlphaFeld* zMausAlphaFeld() const;
  531. //! Returns the color of the color gradient in A8R8G8B8 format used
  532. //! when the mouse is pointing at an entry
  533. DLLEXPORT int getMausAlphaFeldFarbe() const;
  534. //! Returns the strength of the color gradient used when the mouse
  535. //! is pointing at an entry
  536. DLLEXPORT int getMausAlphaFeldStrength() const;
  537. //! Returns the background color in A8R8G8B8 format used when the
  538. //! mouse is pointing at an entry
  539. DLLEXPORT int getMausHintergrundFarbe() const;
  540. //! Returns the background image used when the mouse is pointing
  541. //! at an entry
  542. DLLEXPORT Image* getMausHintergrundImage() const;
  543. //! Returns the background image without increased reference counter used
  544. //! when the mouse is pointing at an entry
  545. DLLEXPORT Image* zMausHintergrundImage() const;
  546. //! Returns the border used with the Multistyle flag when the mouse
  547. //! is pointing at a specific entry \param i The index of the entry
  548. DLLEXPORT Border* getMsMouseBorder(int i) const;
  549. //! Returns the border without increased reference counter used with the
  550. //! Multistyle flag when the mouse is pointing at a specific entry
  551. //! \param i The index of the entry
  552. DLLEXPORT Border* zMsMouseBorder(int i) const;
  553. //! Returns the color of the border in A8R8G8B8 format used with the
  554. //! Multistyle flag when the mouse is pointing at a specific entry
  555. //! \param i The index of the entry
  556. DLLEXPORT int getMsMausRahmenFarbe(int i) const;
  557. //! Returns the width of the border used with the Multistyle flag
  558. //! when the mouse is pointing at a specific entry
  559. //! \param i The index of the entry
  560. DLLEXPORT int getMsMausRahmenBreite(int i) const;
  561. //! Returns the color gradient used with the Multistyle flag when
  562. //! the mouse is pointing at a specific entry \param i The index
  563. //! of the entry
  564. DLLEXPORT AlphaFeld* getMsMausAlphaFeld(int i) const;
  565. //! Returns the color gradient without increased reference counter used
  566. //! with the Multistyle flag when the mouse is pointing at a specific
  567. //! entry \param i The index of the entry
  568. DLLEXPORT AlphaFeld* zMsMausAlphaFeld(int i) const;
  569. //! Returns the color of the color gradient in A8R8G8B8 format used with
  570. //! the Multistyle flag when the mouse is pointing at a specific entry
  571. //! \param i The index of the entry
  572. DLLEXPORT int getMsMausAlphaFeldFarbe(int i) const;
  573. //! Returns the strength of the color gradient used with the Multistyle
  574. //! flag when the mouse is pointing at a specific entry
  575. //! \param i The index of the entry
  576. DLLEXPORT int getMsMausAlphaFeldStrength(int i) const;
  577. //! Returns the background color in A8R8G8B8 format used with the
  578. //! Multistyle flag when the mouse is pointing at a specific entry
  579. //! \param i The index of the entry
  580. DLLEXPORT int getMsMausHintergrundFarbe(int i) const;
  581. //! Returns the background image used with the Multistyle flag when
  582. //! the mouse is pointing at a specific entry
  583. //! \param i The index of the entry
  584. DLLEXPORT Image* getMsMausHintergrundImage(int i) const;
  585. //! Returns the background image without increased reference counter used
  586. //! with the Multistyle flag when the mouse is pointing at a specific
  587. //! entry \param i The index of the entry
  588. DLLEXPORT Image* zMsMausHintergrundImage(int i) const;
  589. //! Checks whether a point is inside this object
  590. //! \param x The x coordinate of the point
  591. //! \param y The y coordinate of the point
  592. //! \return 1 if the point is inside, 0 otherwise
  593. DLLEXPORT bool istPunktInnen(int x, int y) const override;
  594. //! Checks whether a specific style is set for a specific entry with the
  595. //! MultiStyled flag \param i The index of the entry
  596. //! \param abStyle The style
  597. DLLEXPORT inline bool hatMsStyle(int i, __int64 abStyle) const;
  598. //! Checks whether a specific style is not set for a specific entry with
  599. //! the MultiStyled flag \param i The index of the entry
  600. //! \param abStyle The style
  601. DLLEXPORT inline bool hatMsStyleNicht(int i, __int64 abStyle) const;
  602. DLLEXPORT Drawable*
  603. dublizieren() const override; //! Creates a copy of the drawing
  604. };
  605. } // namespace Framework
  606. #endif