Zeichnung.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. #ifndef Zeichnung_H
  2. #define Zeichnung_H
  3. #include "Punkt.h"
  4. #include "MausEreignis.h"
  5. #include "TastaturEreignis.h"
  6. #include "Critical.h"
  7. #include "ReferenceCounter.h"
  8. #include <queue>
  9. #include <functional>
  10. namespace Framework
  11. {
  12. struct MausEreignis; //! MausEreignis.h
  13. struct TastaturEreignis; //! TastaturEreignis.h
  14. class Bild; //! Bild.h
  15. class Zeichnung; //! Aus dieser Datei
  16. class ToolTip; //! ToopTip.h
  17. class Bildschirm; //! Bildschirm.h
  18. class Rahmen; //! Rahmen.h
  19. class AlphaFeld; //! AlphaFeld.h
  20. class VScrollBar; //! Scroll.h
  21. class HScrollBar; //! Scroll.h
  22. class Schrift;
  23. //! Eine Zeichnung für das 2D GUI Framework
  24. class Zeichnung : public virtual ReferenceCounter
  25. {
  26. public:
  27. class Style
  28. {
  29. public:
  30. //! Wenn dieser Style gesetzt ist, wird die Zeichnung beim Zeichnen angezeigt
  31. const static __int64 Sichtbar = 0x00001;
  32. //! Wenn dieser Style gesetzt ist, kann der Benutzer mit der Zeichnung interagieren
  33. const static __int64 Erlaubt = 0x00002;
  34. //! Wenn dieser Style gesetzt ist, wird ein TastaturEreignis von der Zeichnung verarbeitet
  35. const static __int64 Fokus = 0x00004;
  36. //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch verarbeitet, wenn das Objekt nicht sichtbar ist
  37. const static __int64 MEIgnoreSichtbar = 0x0800000000000000;
  38. //! Wenn dieser Style gesetzt ist, lockt der Thread das Objekt während das MausEreignis verarbeitet wird
  39. const static __int64 MELockZeichnung = 0x1000000000000000;
  40. //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch verarbeitet, wenn es außerhalb der Zeichnung liegt
  41. const static __int64 MEIgnoreInside = 0x2000000000000000;
  42. //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch verarbeitet, wenn es bereits von einer anderen Zeichnung verarbeitet wurde
  43. const static __int64 MEIgnoreVerarbeitet = 0x4000000000000000;
  44. //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch verarbeitet, wenn es sich außerhalb der Zeichnung befindet, zu der diese Zeichnung gehört
  45. const static __int64 MEIgnoreParentInside = 0x8000000000000000;
  46. };
  47. protected:
  48. Punkt pos;
  49. Punkt gr;
  50. void* makParam;
  51. void* takParam;
  52. MausAktion mak;
  53. TastaturAktion tak;
  54. void* nmakParam;
  55. void* ntakParam;
  56. MausAktion nMak;
  57. TastaturAktion nTak;
  58. bool mausIn;
  59. Critical cs;
  60. ToolTip* toolTip;
  61. __int64 style;
  62. bool rend;
  63. std::queue< std::function< void() > > actions;
  64. std::function< void(Zeichnung*, Punkt localPos) > onNeedToolTip;
  65. //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
  66. //! \param me Das MausEreignis
  67. //! \param userRet true wenn MausEreignis::verarbeitet auf true gesetzt werden soll
  68. DLLEXPORT virtual void doMausEreignis(MausEreignis& me, bool userRet);
  69. public:
  70. //! Konstruktor
  71. DLLEXPORT Zeichnung();
  72. //! Destruktor
  73. DLLEXPORT virtual ~Zeichnung();
  74. //! Übergibt einen void Funktionszeiger auf eine Aktion die einmalig vom Hauptthread ausgeführt werden soll. Wird am ende von tick() aufgerufen
  75. DLLEXPORT void postAction(std::function< void() > action);
  76. //! Legt fest, ob sich die Zeichnung seit des letzten Bildes verändert hat und neu gezeichnet werden muss
  77. DLLEXPORT void setRender();
  78. //! Setzt den Text, der erscheint, wenn der Benutzer für längere Zeit mit der Maus in der Zeichnung verweilt
  79. //! \param txt Der Text, der angezeigt werden soll
  80. //! \param zScreen Ein Zeiger auf das Verwendete Bildschirm Objekt ohne erhöhten Reference Counter
  81. //! \param zSchrift Ein Zeiger auf die Schrift, die verwendet werden soll ohne erhöhten Reference Counter
  82. DLLEXPORT void setToolTipText(const char* txt, Bildschirm* zScreen, Schrift* zSchrift);
  83. //! setzt eine Funktion, die aufgerufen wird, falls ein Tooltip benötigt wird und noch keiner gesetzt wurde
  84. //! \param initToolTip die Funktion
  85. DLLEXPORT void setNeedToolTipEvent(std::function< void(Zeichnung*, Punkt localPos) > onNeedTooltip);
  86. //! legt den tooltip fest
  87. //! \param tt der tooltip
  88. DLLEXPORT void setToolTipZ(ToolTip* tt);
  89. //! Dies ist notwendig, falls mehrere Threads gleichzeitig die Zeichnung benutzen.
  90. //! Wenn lockZeichnung() von zwei threads aufgerufen wird, wartet der letzte so lange, bis der erste unlockZeichnung() aufgerufen hat.
  91. DLLEXPORT void lockZeichnung();
  92. //! Dies ist notwendig, falls mehrere Threads gleichzeitig die Zeichnung benutzen.
  93. //! Wenn lockZeichnung() von zwei threads aufgerufen wird, wartet der letzte so lange, bis der erste unlockZeichnung() aufgerufen hat.
  94. DLLEXPORT void unlockZeichnung();
  95. //! setzt den Parameter, der bei einem Maus Ereignis an die Rückruffunktion übergeben wird
  96. //! \param p Der Parameter
  97. DLLEXPORT void setMausEreignisParameter(void* p);
  98. //! Setzt den Parameter, der bei einem Tastatur Ereignis an die Rückruffunktion übergeben wird
  99. //! \param p Der Parameter
  100. DLLEXPORT void setTastaturEreignisParameter(void* p);
  101. //! Setzt die Rückruffunktion, die bei einem Maus Ereignis aufgerufen werden soll.
  102. //! Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von der Zeichnung nicht weiter beachtet
  103. //! Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
  104. //! \param ak Ein Zeiger auf die Rückruffunktion
  105. DLLEXPORT void setMausEreignis(MausAktion ak);
  106. //! Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll.
  107. //! Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Tastatur Ereignis von der Zeichnung nicht weiter beachtet
  108. //! Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
  109. //! Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
  110. //! \param ak Ein Zeiger auf die Rückruffunktion
  111. DLLEXPORT void setTastaturEreignis(TastaturAktion ak);
  112. //! setzt den Parameter, der bei einem Maus Ereignis an die Rückruffunktion übergeben wird, die aufgerufen wird, fals das Ereignis von der Zeichnung verarbeitet wurde
  113. //! \param p Der Parameter
  114. DLLEXPORT void setNMausEreignisParameter(void* p);
  115. //! Setzt den Parameter, der bei einem Tastatur Ereignis an die Rückruffunktion übergeben wird, die aufgerufen wird, fals das Ereignis von der Zeichnung verarbeitet wurde
  116. //! \param p Der Parameter
  117. DLLEXPORT void setNTastaturEreignisParameter(void* p);
  118. //! Setzt die Rückruffunktion, die bei einem Maus Ereignis aufgerufen werden soll, nachdem das Ereignis bereits von der Zeichnung verarbeitet wurde
  119. //! Wenn die Rückruffunktion 1 zurückgiebt, oder nicht gesetzt wurde, wird das Maus Ereignis von keiner weiteren Zeichnung verarbeitet, die zum Beispiel hinter dieser Zeichnung liegen
  120. //! Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
  121. //! \param ak Ein Zeiger auf die Rückruffunktion
  122. DLLEXPORT void setNMausEreignis(MausAktion ak);
  123. //! Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll, nachdem das Ereignis bereits von der Zeichnung verarbeitet wurde
  124. //! Wenn die Rückruffunktion 1 zurückgiebt, oder nicht gesetzt wurde, wird das Tastatur Ereignis von keiner weiteren Zeichnung verarbeitet
  125. //! Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
  126. //! Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
  127. //! \param ak Ein Zeiger auf die Rückruffunktion
  128. DLLEXPORT void setNTastaturEreignis(TastaturAktion ak);
  129. //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
  130. //! \param me Das Ereignis
  131. DLLEXPORT virtual void doPublicMausEreignis(MausEreignis& me);
  132. //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch aufgerufen
  133. //! \param te Das Ereignis
  134. DLLEXPORT virtual void doTastaturEreignis(TastaturEreignis& te);
  135. //! Verarbeitet die Zeit, die seit dem letzten aufruf dieser Funktion vergangen ist
  136. //! \param tickVal Die vergangene Zeit in Sekunden
  137. DLLEXPORT virtual bool tick(double tickval);
  138. //! Setzt die Position der Zeichnung
  139. //! \param pos Die Position in Pixeln
  140. DLLEXPORT void setPosition(const Punkt& pos);
  141. //! Setzt die X Position der Zeichnung
  142. //! \param xPos Die Position in Pixeln
  143. DLLEXPORT void setX(int xPos);
  144. //! Setzt die Y Position der Zeichnung
  145. //! \param yPos Die Position in Pixeln
  146. DLLEXPORT void setY(int yPos);
  147. //! Setzt die Größe der Zeichnung
  148. //! \param gr Ein Punkt mit x als Breite und y als Höhe in Pixeln
  149. DLLEXPORT void setSize(const Punkt& gr);
  150. //! Setzt die Position der Zeichnung
  151. //! \param x Die X Position in Pixeln
  152. //! \param y Die Y Position in Pixeln
  153. DLLEXPORT void setPosition(int x, int y);
  154. //! Setzt die Größe der Zeichnung
  155. //! \param br Die Breite in Pixeln
  156. //! \param height Die Höhe in Pixeln
  157. DLLEXPORT void setSize(int br, int height);
  158. //! Set the width in pixel
  159. //! \param width the width
  160. DLLEXPORT void setWidth(int width);
  161. //! Set the height in pixel
  162. //! \param width the height
  163. DLLEXPORT void setHeight(int height);
  164. //! Setzt den Style der Zeichnung
  165. //! \param style Der neue Style bestehend aus den Flags aus der zugehörigen Style Klasse
  166. DLLEXPORT void setStyle(__int64 style);
  167. //! Setzt den Style der Zeichnung
  168. //! \param style Alle Style Flags, die verändert werden sollen
  169. //! \param add_remove 1, falls der Style hinzugefügt werden soll. 0, falls der Style entfernt weden soll
  170. DLLEXPORT void setStyle(__int64 style, bool add_remove);
  171. //! Fügt Style Flags hinzu
  172. //! \param style Der Style, der hinzugefügt werden soll
  173. DLLEXPORT void addStyle(__int64 style);
  174. //! Entfernt Style Flags
  175. //! \param style Der Style, der entfernt werden soll
  176. DLLEXPORT void removeStyle(__int64 style);
  177. //! Zeichnet die Zeihnung in ein bestimmtes Bild
  178. //! \param zRObj Das Bild, in das gezeichnet werden soll
  179. DLLEXPORT virtual void render(Bild& zRObj);
  180. //! Gibt zurück, ob eine Rückruffunktion für Maus Ereignisse gesetzt wurde
  181. DLLEXPORT bool hatMausEreignis() const;
  182. //! Gibt zurück, ob eine Rückruffunktion für Tastatur Ereignisse gesetzt wurde
  183. DLLEXPORT bool hatTastaturEreignis() const;
  184. //! Gibt die Position der Zeichnung in Pixeln zurück
  185. DLLEXPORT const Punkt& getPosition() const;
  186. //! Gibt die Größe der Zeichnung in Pixeln zurück. x für Breite und y für Höhe
  187. DLLEXPORT const Punkt& getSize() const;
  188. //! Gibt die Breite der Zeichnung in Pixeln zurück
  189. DLLEXPORT int getBreite() const;
  190. //! Gibt die Höhe der Zeichnung in Pixeln zurück
  191. DLLEXPORT int getHeight() const;
  192. //! Gibt die Breite des Innenraumes in der Zeichnung in Pixeln zurück
  193. DLLEXPORT virtual int getInnenBreite() const;
  194. //! Gibt die Höhe des Innenraumes in der Zeichnung in Pixeln zurück
  195. DLLEXPORT virtual int getInnenHeight() const;
  196. //! Gibt die X Position der Zeichnung in Pixeln zurück
  197. DLLEXPORT int getX() const;
  198. //! Gibt die Y Position der Zeichnung in Pixeln zurück
  199. DLLEXPORT int getY() const;
  200. //! Prüft, ob ein Punkt in diesem Objekt liegt
  201. //! \param p der Punkt
  202. //! \return 1, wenn der punkt innen ist, 0 sonst
  203. DLLEXPORT virtual bool istPunktInnen(Punkt p) const;
  204. //! Prüft, ob ein Punkt in diesem Objekt liegt
  205. //! \param x die x koordinate des punktes
  206. //! \param y die y koordinate des punktes
  207. //! \return 1, wenn der punkt innen ist, 0 sonst
  208. DLLEXPORT virtual bool istPunktInnen(int x, int y) const;
  209. //! Gibt einen Zeiger auf das Tooltip Objekt zurück, walls es verwendet wird
  210. DLLEXPORT ToolTip* getToolTip() const;
  211. //! Gibt einen Zeiger auf das Tooltip Objekt ohne erhöhten Reference Counter zurück, walls es verwendet wird
  212. DLLEXPORT ToolTip* zToolTip() const;
  213. //! Gibt zurück, ob bestimmte Styles gesetzt wurden
  214. //! \param style Die Styles, die überprüft werden sollen
  215. //! \return 1, falls alle Styles in style gesetzt wurden
  216. DLLEXPORT bool hatStyle(__int64 style) const;
  217. //! Gibt zurück, ob bestimmte Styles nicht gesetzt wurden
  218. //! \param style Die Styles, die geprüft werden sollen
  219. //! \return 1, falls alle Styles in style nicht gesetzt wurden
  220. DLLEXPORT bool hatStyleNicht(__int64 style) const;
  221. //! Kopiert die Komplette Zeichnung, so dass sie ohne Effekt auf das Original verändert werden kann
  222. DLLEXPORT virtual Zeichnung* dublizieren() const;
  223. };
  224. //! Eine Zeichnung für das 2D GUI Framework mit Hintergrund, Rahmen und Scroll Balken
  225. class ZeichnungHintergrund : public Zeichnung
  226. {
  227. public:
  228. class Style : public Zeichnung::Style
  229. {
  230. public:
  231. const static __int64 Rahmen = 0x00010; //! Wenn dieser Flag gesetzt wird, bekommt die Zeichnugn einen Rahmen
  232. const static __int64 Hintergrund = 0x00020; //! Wenn dieser Flag gesetzt wird, bekommt die Zeichnung einen Hintergrund
  233. const static __int64 HAlpha = 0x00040; //! Wenn dieser Flag gesetzt wird, wird der Hintergrund durchsichtig. Benötigt Flag Hintergrund
  234. const static __int64 HBild = 0x00080; //! Wenn dieser Flag gesetzt wird, wird ein Bild als hintergrund verwendet. Benötigt Flag Hintergrund
  235. const static __int64 Buffered = 0x00100; //! Wenn dieser Flag gesetzt wird, Erscheint ein Farbübergang als Rahmen
  236. const static __int64 VScroll = 0x00200; //! Wenn dieser Flag gesetzt wird, erscheint eine Scrollbar am rechten Rand
  237. const static __int64 HScroll = 0x00400; //! Wenn dieser Flag gesetzt wird, erscheint eine Scrollbar am unteren Rand
  238. };
  239. protected:
  240. int hintergrundFarbe;
  241. Rahmen* rahmen;
  242. Bild* hintergrundBild;
  243. AlphaFeld* hintergrundFeld;
  244. VScrollBar* vertikalScrollBar;
  245. HScrollBar* horizontalScrollBar;
  246. Punkt innenPosition;
  247. Punkt innenSize;
  248. public:
  249. //! Konstruktor
  250. DLLEXPORT ZeichnungHintergrund();
  251. //! Destruktor
  252. DLLEXPORT virtual ~ZeichnungHintergrund();
  253. //! Setzt das Hintergrund Bild (benötigt Flag zum Zeichnen: Style::Hintergrund, HBild)
  254. //! \param bild Das Bild wird kopiert und als Hintergrundbild verwendet
  255. DLLEXPORT void setHintergrundBild(Bild* bild);
  256. //! Setzt einen Zeiger auf das Hintergrund Bild (benötigt Flag zum Zeichnen: Style::Hintergrund)
  257. //! \param bild Das Bild wid ohne es zu kopieren verwendet
  258. DLLEXPORT void setHintergrundBildZ(Bild* bild);
  259. //! Setzt die Hintergrund Farbe (benötigt Flag zum Zeichnen: Style::Hintergrund)
  260. //! \param fc Die Hintergrundfarbe im A8R8G8B8 Format
  261. DLLEXPORT void setHintergrundFarbe(int fc);
  262. //! Setzt einen Zeiger auf das AlphaFeld (benötigt Flag zum Zeichnen: Style::Buffered)
  263. //! \param buff Das AlphaFeld, das über den Hintergrund gezeichnet werden soll
  264. DLLEXPORT void setAlphaFeldZ(AlphaFeld* buff);
  265. //! Setzt die Stärke des AlphaFeldes (benötigt Flag zum Zeichnen: Style::Buffered)
  266. //! \param st Die Stärke des AlphaFeldes, welches über dem Hintergrund gezeichnet werden soll
  267. DLLEXPORT void setAlphaFeldStrength(int st);
  268. //! Setzt die Farbe des AlphaFeldes (benötigt Flag zum Zeichnen: Style::Buffered)
  269. //! \param fc Die Farbe des AlphaFeldes, welches über dem Hintergrund gezeichnet werden soll
  270. DLLEXPORT void setAlphaFeldFarbe(int fc);
  271. //! Setzt einen Zeiger zu dem Linien Rahmen, der um das TextFeld gezeichnet werden soll (benötigt Flag zum Zeichnen: Style::Rahmen)
  272. //! \param ram Der Rahmen
  273. DLLEXPORT void setRahmenZ(Rahmen* ram);
  274. //! Setzt die Breite des Linien Rahmens (benötigt Flag zum Zeichnen: Style::Rahmen)
  275. //! \param br Die Breite in Pixeln
  276. DLLEXPORT void setRahmenBreite(int br);
  277. //! Setzt die Farbe des Linien Rahmens (benötigt Flag zum Zeichnen: Style::Rahmen)
  278. //! \param fc Die Farbe im A8R8G8B8 Format
  279. DLLEXPORT void setRahmenFarbe(int fc);
  280. //! Setzt die Scrollgeschwindigkeit der vertikalen ScrollBar (benötigt Flag zum Zeichnen: Style::VScroll)
  281. //! \param ks Die Scrollgeschwindigkeit in Pixeln für jeden Maus Klick
  282. DLLEXPORT void setVertikalKlickScroll(int ks);
  283. //! Scrollt an eine Bestimmte Stelle bei der vertikalen ScrollBar (benötigt Flag zum Zeichnen: Style::VScroll)
  284. //! \param pos Das Scroll Offset in Pixeln.
  285. DLLEXPORT void setVertikalScrollPos(int pos);
  286. //! Setzt die Farbe der vertikalen ScrollBar (benötigt Flag zum Zeichnen: Style::VScroll)
  287. //! \param f Die Fordergrundfarbe der ScrollBar im A8R8G8B8 Format
  288. //! \param bgF Die Hintergrundfarbe der ScrollBar im A8R8G8B8 Format
  289. DLLEXPORT void setVertikalScrollFarbe(int f, int bgF);
  290. //! Setzt die Scrollgeschwindigkeit der horizontalen ScrollBar (benötigt Flag zum Zeichnen: Style::HScroll)
  291. //! \param ks Die Scrollgeschwindigkeit in Pixeln für jeden Maus Klick
  292. DLLEXPORT void setHorizontalKlickScroll(int ks);
  293. //! Scrollt an eine Bestimmte Stelle bei der horizontalen ScrollBar (benötigt Flag zum Zeichnen: Style::HScroll)
  294. //! \param pos Das Scroll Offset in Pixeln.
  295. DLLEXPORT void setHorizontalScrollPos(int pos);
  296. //! Setzt die Farbe der horizontalen ScrollBar (benötigt Flag zum Zeichnen: Style::HScroll)
  297. //! \param f Die Fordergrundfarbe der ScrollBar im A8R8G8B8 Format
  298. //! \param bgF Die Hintergrundfarbe der ScrollBar im A8R8G8B8 Format
  299. DLLEXPORT void setHorizontalScrollFarbe(int f, int bgF);
  300. //! Updated den Zeichenhintergrund
  301. //! \param tickVal Die vergangene Zeit in Sekunden, die seit dem Letzten Aufruf dieser Funktion verstrichen ist
  302. //! \return 1, wenn das Bild neu gezeichnet werden muss. 0 sonnst
  303. DLLEXPORT bool tick(double tickVal) override;
  304. //! Zeichnet den Hintergrund eines Zeichnunges nach rObj
  305. DLLEXPORT void render(Bild& rObj) override;
  306. //! Gibt die Breite des Innenraumes in der Zeichnung in Pixeln zurück
  307. DLLEXPORT virtual int getInnenBreite() const override;
  308. //! Gibt die Höhe des Innenraumes in der Zeichnung in Pixeln zurück
  309. DLLEXPORT virtual int getInnenHeight() const override;
  310. //! Gibt das Hintergrundbild zurück.
  311. //! \return 0, falls kein Hintergrundbild verwendet wird
  312. DLLEXPORT Bild* getHintergrundBild() const;
  313. //! Gibt das Hintergrundbild ohne erhöhten reference Counter zurück.
  314. //! \return 0, falls kein Hintergrundbild verwendet wird
  315. DLLEXPORT Bild* zHintergrundBild() const;
  316. //! Gibt die Hintergrundfarbe im A8R8G8B8 Format zurück
  317. DLLEXPORT int getHintergrundFarbe() const;
  318. //! Gibt das AlphaFeld zurück, das über den Hintergrund gezeichnet wird.
  319. //! \return 0, falls das AlphaFeld nicht definiert wurde
  320. DLLEXPORT AlphaFeld* getAlphaFeld() const;
  321. //! Gibt das AlphaFeld ohne erhöhten Reference Counter zurück, das über den Hintergrund gezeichnet wird.
  322. //! \return 0, falls das AlphaFeld nicht definiert wurde
  323. DLLEXPORT AlphaFeld* zAlphaFeld() const;
  324. //! Git die Stärke des Alphafeldes zurück
  325. DLLEXPORT int getAlphaFeldStrength() const;
  326. //! Gibt die Farbe des Alphafedes im A8R8G8B8 Format zurück
  327. DLLEXPORT int getAlphaFeldFarbe() const;
  328. //! Gibt den Rahmen zurück
  329. //! \return 0, falls kein Rahmen definiert wurde
  330. DLLEXPORT Rahmen* getRahmen() const;
  331. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück
  332. //! \return 0, falls kein Rahmen definiert wurde
  333. DLLEXPORT Rahmen* zRahmen() const;
  334. //! Gibt die Breite des Rahmens in Pixeln zurück
  335. DLLEXPORT int getRahmenBreite() const;
  336. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück
  337. DLLEXPORT int getRahmenFarbe() const;
  338. //! Gibt die Scroll geschwindigkeit der vertikalen Scroll Bar zurück
  339. DLLEXPORT int getVertikalKlickScroll() const;
  340. //! Gibt die Scroll Position der vertikalen Scroll Bar zurück
  341. DLLEXPORT int getVertikalScrollPos() const;
  342. //! Gibt die Farbe der vertikalen Scroll Bar im A8R8G8B8 Format zurück
  343. DLLEXPORT int getVertikalScrollFarbe() const;
  344. //! Gibt die Hintergrundfarbe der vertikalen Scroll Bar im A8R8G8B8 Format zurück
  345. DLLEXPORT int getVertikalScrollHintergrund() const;
  346. //! Gibt die Scroll geschwindigkeit der horizontalen Scroll Bar zurück
  347. DLLEXPORT int getHorizontalKlickScroll() const;
  348. //! Gibt die Scroll Position der horizontalen Scroll Bar zurück
  349. DLLEXPORT int getHorizontalScrollPos() const;
  350. //! Gibt die Farbe der horizontalen Scroll Bar im A8R8G8B8 Format zurück
  351. DLLEXPORT int getHorizontalScrollFarbe() const;
  352. //! Gibt die Hintergrundfarbe der horizontalen Scroll Bar im A8R8G8B8 Format zurück
  353. DLLEXPORT int getHorizontalScrollHintergrund() const;
  354. //! Erzeugt eine Kopie der Zeichnung, die ohne Auswirkungen auf das Original verändert werden kann
  355. DLLEXPORT virtual Zeichnung* dublizieren() const;
  356. };
  357. }
  358. #endif