Schrift.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. #ifndef Schrift_H
  2. #define Schrift_H
  3. #include "Critical.h"
  4. #include "Punkt.h"
  5. #include <functional>
  6. namespace Framework
  7. {
  8. class Bild; // Bild.h
  9. class Text; // Text.h
  10. struct VScrollData; // Scroll.h
  11. struct HScrollData; // Scroll.h
  12. class Buchstabe; // aus dieser Datei
  13. class Alphabet; // aus dieser Datei
  14. class Schrift; // aus dieser Datei
  15. // Speichert die Alphawerte eines Zeichens einer bestimmten Schrift
  16. // Die anderen Farbwerte werden durch die Schriftfarbe bestimmt. Daher nur die Alpha werte.
  17. class Buchstabe
  18. {
  19. private:
  20. Punkt size;
  21. Punkt pos;
  22. unsigned char *alpha;
  23. int schriftSize;
  24. int drawSg;
  25. int ref;
  26. public:
  27. // Erstellt ein neues leeres Zeichnung
  28. __declspec( dllexport ) Buchstabe();
  29. // Löscht das Zeichnung
  30. __declspec( dllexport ) ~Buchstabe();
  31. // Erstellt einen neuen Buchstaben mit bestimmter Größe
  32. // size: Die Größe des Buchstabens in Pixel
  33. __declspec( dllexport ) void NeuBuchstabe( Punkt &size );
  34. // Setzt den Alphawert eines bestimmten Pixels
  35. // pos: Die position des Pixels
  36. // alpha: Der Wert des Pixels
  37. __declspec( dllexport ) void setPixel( Punkt &pos, unsigned char alpha );
  38. // Setzt den Alphawert eines bestimmten Pixels
  39. // x: die x Position des Pixels
  40. // y: die y Position des Pixels
  41. // alpha: Der Wert des Pixels
  42. __declspec( dllexport ) void setPixel( int x, int y, unsigned char alpha );
  43. // Setzt den Alphawert eines bestimmten Pixels
  44. // i: der Index des Pixels. Er berechnet sich durch x + y * breite und geht von 0 bis breite * höhe - 1
  45. // alpha: Der Wert des Pixels
  46. __declspec( dllexport ) void setPixel( int i, unsigned char alpha );
  47. // Setzt die Position, an die der Buchstabe gezeichnet werden soll
  48. // pos: Die position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  49. __declspec( dllexport ) void setPosition( Punkt &pos );
  50. // Setzt die Position, an die der Buchstabe gezeichnet werden soll
  51. // x: Die x position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  52. // y: Die y position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  53. __declspec( dllexport ) void setPosition( int x, int y );
  54. // Setzt die Schriftgröße, zu der der Buchstabe gehört
  55. // sg: Die Schriftgröße des Buchstabens. Wenn der Buchstabe in einer anderen größe gezeichnet werden soll, wird automatisch skalliert
  56. __declspec( dllexport ) void setSchriftSize( int sg );
  57. // Setzt die Schriftgröße, in der der Buchstabe gezeichnet werden soll
  58. // dsg: Die Schriftgröße, in der der Buchstabe gezeichnet werden soll. Ist die ungleich der Schriftgröße, zu der der Buchstabe gehört, so wird automatisch skalliert.
  59. __declspec( dllexport ) void setDrawSchriftSize( int dsg );
  60. // Gibt die alpha Werte des Buchstabens als array zurück wobei die werte Zeilenweise hintereinander stehen
  61. __declspec( dllexport ) unsigned char *getBuff() const;
  62. // Gibt die Größe des Buchstabens in Pixeln nicht skalliert zurück.
  63. __declspec( dllexport ) const Punkt &getSize() const;
  64. // Gibt die Breite des Buchstabens in Pixeln zurück (Der Wert wurde bereits mit der Draw Schriftgröße skalliert)
  65. __declspec( dllexport ) int getBreite() const;
  66. // Gibt die Höhe des Buchstabens in Pixeln zurück (Der Wert wurde bereits mit der Draw Schriftgröße skalliert)
  67. __declspec( dllexport ) int getHeight() const;
  68. // Gibt die nicht skallierte Höhe des Buchstabens in Pixeln zurück
  69. __declspec( dllexport ) int getNormHeight() const;
  70. // Zeichnet den Buchstaben in ein bestimmtes Bild
  71. // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  72. // zRObj: Das Bild, in den der Buchstabe gezeichnet werden soll
  73. // f: Die Farbe, in der der Buchstabe gezeichnet werden soll
  74. __declspec( dllexport ) void render( Bild &zRObj, int f ) const;
  75. // Erhöht den Reference Counting Zähler.
  76. // return: this.
  77. __declspec( dllexport ) Buchstabe *getThis();
  78. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  79. // return: 0.
  80. __declspec( dllexport ) Buchstabe *release();
  81. };
  82. // Speichert alle Buchstaben der selben Schriftgröße.
  83. // Wird von der Schrift klasse verwendet
  84. class Alphabet
  85. {
  86. private:
  87. Buchstabe **zeichen;
  88. int schriftSize;
  89. int drawSchriftSize;
  90. Punkt pos;
  91. int zeilenHeight;
  92. int zeilenAbstand;
  93. int ref;
  94. public:
  95. // Erzeugt ein leeres Zeichnung
  96. __declspec( dllexport ) Alphabet();
  97. // Löscht ein Zeichnung
  98. __declspec( dllexport ) ~Alphabet();
  99. // Löscht alle gespeicherten Zeichen
  100. __declspec( dllexport ) void NeuAlphabet();
  101. // Fügt dem Alphabet einen Buchstaben hinzu
  102. // Wenn der hinzugefügte Buchstabe bereits existiert wird er überschrieben
  103. // i: Der ASCII code des Buchstaben, der hinzugefügt werden soll
  104. // buchstabe: Der Buchstabe, der hinzugefügt wird
  105. __declspec( dllexport ) void setBuchstabe( unsigned char i, Buchstabe *buchstabe );
  106. // Setzt die Schriftgröße des Alphabets und die der gespeicherten buchstaben
  107. // gr: Die Schriftgröße des Alphabets
  108. __declspec( dllexport ) void setSchriftSize( int gr );
  109. // Setzt die Schriftgröße, in der die gespeicherten Buchstaben gezeichnet werden sollen.
  110. // gr: Die Zeichen Schriftgröße. Wenn sie ungleich der Schriftgröße des Alphabets ist, wird automatisch skalliert
  111. __declspec( dllexport ) void setDrawSchriftSize( int gr );
  112. // Setzt den Zeilenabstand beim Zeichnen eines Textes
  113. // za: Der Abschtand zum unteren Ende der Zeile darüber in Pixeln
  114. __declspec( dllexport ) void setZeilenAbstand( int za );
  115. // Setzt die Position, an die der Erste buchstabe gezeichnet werden soll
  116. // pos: Die position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  117. __declspec( dllexport ) void setDrawPosition( Punkt &pos );
  118. // Setzt die Position, an die der Erste buchstabe gezeichnet werden soll
  119. // x: Die x Position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  120. // y: Die y Position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  121. __declspec( dllexport ) void setDrawPosition( int x, int y );
  122. // Gibt den gespeicherten Buchstaben zu einem bestimmten ASCII Zeichen zurück
  123. // i: Der ASCII code des Zeichens
  124. // return: Ein Zeiger zu dem Buchstaben mit erhöhtem Reference Counter
  125. __declspec( dllexport ) Buchstabe *getBuchstabe( unsigned char i ) const;
  126. // Gibt den gespeicherten Buchstaben zu einem bestimmten ASCII Zeichen zurück
  127. // i: Der ASCII code des Zeichens
  128. // return: Ein Zeiger zu dem Buchstaben ohne erhöhtem Reference Counter
  129. __declspec( dllexport ) Buchstabe *zBuchstabe( unsigned char i ) const;
  130. // Prüft, ob zu einem bestimmten ASCII code ein Zeichen vorhanden ist
  131. // b: Der zu prüfende ASCII code
  132. // return: (true), wenn ein Zeichen zu dem Code gefunden wurde. (false) sonnst
  133. __declspec( dllexport ) bool hatBuchstabe( unsigned char b ) const;
  134. // Gibt die Schriftgröße zurück, deren Zeichen in diesem Alphabet gespeichert werden
  135. __declspec( dllexport ) int getSchriftSize() const;
  136. // Gibt die Schriftgröße zurück, in der die gespeicherten Zeichen gezeichnet werden
  137. __declspec( dllexport ) int getDrawSchriftSize() const;
  138. // Gibt den Abstand in Pixeln zum unteren Ende der darüber ligenden Zeile zurück
  139. __declspec( dllexport ) int getZeilenAbstand() const;
  140. // Gibt die skallierte Höhe zurück, die eine gezeichnete Zeile in Pixeln benötigt
  141. __declspec( dllexport ) int getZeilenHeight() const;
  142. // gibt die Position zurück, an der der erste Buchstabe gezeichnet wird
  143. __declspec( dllexport ) const Punkt &getPosition() const;
  144. // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
  145. // zTxt: Der Text, von dem die Breite in Pixeln ermitelt werden soll
  146. __declspec( dllexport ) int getTextBreite( Text *zTxt ) const;
  147. // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
  148. // zTxt: Der Text, von dem die Höhe in Pixeln ermitelt werden soll
  149. __declspec( dllexport ) int getTextHeight( Text *zTxt ) const;
  150. // Ermittelt das Zeichen im Text, auf das die Maus zeigt
  151. // zTxt: Der Text, auf den die Maus Zeigt
  152. // mausX: Die X Position der Maus in Pixeln Relativ zur Position des ersten Zeichens
  153. // mausY: Die Y Position der Maus in Pixeln Relativ zur Position des ersten Zeichens
  154. __declspec( dllexport ) int textPos( Text *zTxt, int mausX, int mausY ) const;
  155. // Fügt Zeilenumbrüche in den Text ein, so dass er bei einer vorgegebenen Breite follständig angezeigt wird
  156. // zText: Der text, in den die Zeilenumbrüche eingefügt werden sollen
  157. // maxBreite: Die Breite in Pixeln auf der der Text follständig angezeigt werden soll
  158. // schriftSize: Die Schriftgröße, in der der Text passend dargestellt werden soll
  159. __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftSize );
  160. // Zeichnet einen Bestimmten Text auf ein Bild
  161. // Nutze (setDrawPosition) und (setSchriftGröße) um die Position und die Größe zu verändern
  162. // zText: Der Text, der gezeichnet werden soll
  163. // zRObj: Das Bild, auf das gezeichnet werden soll
  164. // f: Eine Funktion die für jeden Buchstaben aufgerufen wird und seine Farbe zurückgibt
  165. __declspec( dllexport ) void render( Text *zTxt, Bild &zRObj, std::function< int( int, int, int ) > f ) const;
  166. // Zeichnet einen Bestimmten Text auf ein Bild
  167. // Nutze (setDrawPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  168. // zText: Der Text, der gezeichnet werden soll
  169. // zRObj: Das Bild, auf das gezeichnet werden soll
  170. // f: Die Farbe, in der der Text gezeichnet werden soll
  171. __declspec( dllexport ) void render( Text *zTxt, Bild &zRObj, int f ) const;
  172. // Zeichnet einen Bestimmten Text mit Cursor und einfärbung auf ein Bild
  173. // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  174. // zText: Der Text, der gezeichnet werden soll
  175. // zRObj: Das Bild, auf das gezeichnet werden soll
  176. // cpos: Die position des Cursors im Text
  177. // cf: Die Farbe des Cursors
  178. // fbeg: Die Position des Zeichens im Text, wo die Einfärbung beginnen soll. Der Text wird von dort bis zur Cursorposition eingefärbt
  179. // ff: Die Hintergrund Farbe des eingefärbten Textes
  180. // f: Eine Funktion die für jeden Buchstaben aufgerufen wird und seine Farbe zurückgibt
  181. __declspec( dllexport ) void render( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, int ff, std::function< int( int, int, int ) > f ) const;
  182. // Zeichnet einen Bestimmten Text mit Cursor und einfärbung auf ein Bild
  183. // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  184. // zText: Der Text, der gezeichnet werden soll
  185. // zRObj: Das Bild, auf das gezeichnet werden soll
  186. // cpos: Die position des Cursors im Text
  187. // cf: Die Farbe des Cursors
  188. // fbeg: Die Position des Zeichens im Text, wo die Einfärbung beginnen soll. Der Text wird von dort bis zur Cursorposition eingefärbt
  189. // ff: Die Hintergrund Farbe des eingefärbten Textes
  190. // f: Die Farbe, in der der Text gezeichnet werden soll
  191. __declspec( dllexport ) void render( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, int ff, int f ) const;
  192. // Erhöht den Reference Counting Zähler.
  193. // return: this.
  194. __declspec( dllexport ) Alphabet *getThis();
  195. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  196. // return: 0.
  197. __declspec( dllexport ) Alphabet *release();
  198. };
  199. // Specihert eine Liste von Alphabeten mit verschiedener Schriftgröße.
  200. // Wird von der Schrift Klasse verwendet, um alle Zeichen der Schriftgröße nach sortiert zu speichern.
  201. class AlphabetArray
  202. {
  203. private:
  204. AlphabetArray *next;
  205. Alphabet *This;
  206. public:
  207. // Erzeugt eine neue Liste
  208. __declspec( dllexport ) AlphabetArray();
  209. // Löscht eine Liste
  210. __declspec( dllexport ) ~AlphabetArray();
  211. // Fügt der Liste ein Alphabet hinzu
  212. // Wenn bereits ein Alphabet mit der selben Schriftgröße existiert, wird das Alphabet nicht hinzugefügt
  213. // alphabet: Das Alphabet, welches hinzugefügt werden soll
  214. // return: (true), wenn das Alphabet hinzugefügt wurde. (false) sonnst.
  215. __declspec( dllexport ) bool addAlphabet( Alphabet *alphabet );
  216. // Löscht ein Alphabet bestimmter Schriftgröße aus der Liste
  217. // sg: Die Schriftgröße des Alphabets, welches entfernt werden soll
  218. // return: (true), wenn ein Alphabet entfernt wurde. (false) sonnst
  219. __declspec( dllexport ) bool removeAlphabet( int sg );
  220. // Setzt die Schriftgröße, in der gezeichnet werden soll
  221. // sg: Die Schriftgröße
  222. __declspec( dllexport ) void setDrawSchriftSize( int sg );
  223. // Setzt den Zeilenabstand, der zum zeichnen verwendet werden soll
  224. // za: Der Zeilenabstand zum unteren Ende der darüber liegenden zeile in Pixeln
  225. __declspec( dllexport ) void setZeilenAbstand( int za );
  226. // Setzt den Zeiger auf das nächste Element der Liste auf 0
  227. __declspec( dllexport ) void setNext0();
  228. // Gibt ein bestimmtes Alphabet mit erhöhtem Reference Counter zurück
  229. // sg: Die Schriftgröße, dessen Alphabet gesucht werden soll
  230. // return: (0), fals kein passendes Alphabet gefunden wurde
  231. __declspec( dllexport ) Alphabet *getAlphabet( unsigned char sg ) const;
  232. // Gibt ein bestimmtes Alphabet ohne erhöhtem Reference Counter zurück
  233. // sg: Die Schriftgröße, dessen Alphabet gesucht werden soll
  234. // return: (0), fals kein passendes Alphabet gefunden wurde
  235. __declspec( dllexport ) Alphabet *zAlphabet( unsigned char sg ) const;
  236. // Gibt ein bestimmtes Alphabet mit erhöhtem Reference Counter zurück
  237. // index: Der Index des gesuchten Alphabets in der Reihenfolge wie sie der Liste hinzugefügt wurden
  238. // count: Hier sollte 0 übergeben werden. Gibt an auf dem wievielten Element der Liste die Funktion aufgerufen wird.
  239. // return: (0), fals kein passendes Alphabet gefunden wurde
  240. __declspec( dllexport ) Alphabet *getAlphabetI( int index, int count ) const;
  241. // Gibt ein bestimmtes Alphabet ohne erhöhtem Reference Counter zurück
  242. // index: Der Index des gesuchten Alphabets in der Reihenfolge wie sie der Liste hinzugefügt wurden
  243. // count: Hier sollte 0 übergeben werden. Gibt an auf dem wievielten Element der Liste die Funktion aufgerufen wird.
  244. // return: (0), fals kein passendes Alphabet gefunden wurde
  245. __declspec( dllexport ) Alphabet *zAlphabetI( int index, int count ) const;
  246. // Gibt einen Zeiger auf das nächste Element der Liste zurück
  247. __declspec( dllexport ) AlphabetArray *getNext() const;
  248. };
  249. // Speichert alle Buchstaben einer Schrift in verschiedenen Schriftgrößen
  250. class Schrift
  251. {
  252. private:
  253. unsigned char alphabetAnzahl;
  254. AlphabetArray *alphabet;
  255. int schriftSize;
  256. int zeilenAbstand;
  257. Punkt drawPos;
  258. Critical cs;
  259. int ref;
  260. public:
  261. // Erzeugt eine leere Schrift
  262. __declspec( dllexport ) Schrift();
  263. // Löscht ein Zeichnung
  264. __declspec( dllexport ) ~Schrift();
  265. // Bereitet die Schrift auf das zeichnen eines Textes vor.
  266. // Dies ist notwendig, falls mehrere Threads gleichzeitig die Schrift benutzen
  267. __declspec( dllexport ) void lock();
  268. // Beendet den Zeichenforgang der Schrift
  269. // Muss für jeden aufruf von (lock();) einmal vom selben Thread aufgerufen werden,
  270. // damit die Schrift wieder von anderen Threads verwendet werden kann
  271. __declspec( dllexport ) void unlock();
  272. // Fügt der Schrift ein Alphabet hinzu. Sollte bereits ein Alphabet der selben Schriftgröße existieren, wird das Alphabet nicht hinzugefügt
  273. // alphabet: Das Alphabet, welches hinzugefügt werden soll
  274. // return: (true), wenn das Alphabet hinzugefügt wurde. (false) sonnst
  275. __declspec( dllexport ) bool addAlphabet( Alphabet *alphabet );
  276. // Löscht ein bestimmtes Alphabet aus der Schrift
  277. // sg: Die Schriftgröße, deren Alphabet entfernt werden soll
  278. __declspec( dllexport ) void removeAlphabet( int sg );
  279. // Setzt die Position, an die der Erste buchstabe gezeichnet werden soll
  280. // x: Die x Position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  281. // y: Die y Position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  282. __declspec( dllexport ) void setDrawPosition( int x, int y );
  283. // Setzt die Position, an die der Erste buchstabe gezeichnet werden soll
  284. // pos: Die Position relativ zu der Draw Position im zeichen Bild (siehe Bild::setDrawOptions)
  285. __declspec( dllexport ) void setDrawPosition( Punkt &pos );
  286. // Setzt die Schriftgröße, in der gezeichnet werden soll. Die Schrift wählt automatisch das passende Alphabet zum Zeichnen
  287. // sg: Die Schriftgröße
  288. __declspec( dllexport ) void setSchriftSize( int sg );
  289. // Setzt den Zeilenabstand, der zum zeichnen verwendet werden soll
  290. // za: Der Zeilenabstand zum unteren Ende der darüber liegenden zeile in Pixeln
  291. __declspec( dllexport ) void setZeilenAbstand( int za );
  292. // Fügt Zeilenumbrüche in den Text ein, so dass er bei einer vorgegebenen Breite follständig angezeigt wird
  293. // zText: Der text, in den die Zeilenumbrüche eingefügt werden sollen
  294. // maxBreite: Die Breite in Pixeln auf der der Text follständig angezeigt werden soll
  295. // schriftSize: Die Schriftgröße, die verwendet werden soll
  296. __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftSize );
  297. // Zeichnet einen Bestimmten Text auf ein Bild
  298. // Nutze (setDrawPosition) und (setSchriftGröße) um die Position und die Größe zu verändern
  299. // zText: Der Text, der gezeichnet werden soll
  300. // zRObj: Das Bild, auf das gezeichnet werden soll
  301. // f: Eine Funktion die für jeden Buchstaben aufgerufen wird und seine Farbe zurückgibt
  302. __declspec( dllexport ) void renderText( Text *zTxt, Bild &zRObj, std::function< int( int, int, int ) > f );
  303. // Zeichnet einen Bestimmten Text auf ein Bild
  304. // Nutze (setDrawPosition) und (setSchriftGröße) um die Position und die Größe zu verändern
  305. // zText: Der Text, der gezeichnet werden soll
  306. // zRObj: Das Bild, auf das gezeichnet werden soll
  307. // f: Die Farbe, in der der Text gezeichnet werden soll
  308. __declspec( dllexport ) void renderText( Text *zTxt, Bild &zRObj, int f );
  309. // Zeichnet einen Bestimmten Text mit Cursor und einfärbung auf ein Bild
  310. // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  311. // zText: Der Text, der gezeichnet werden soll
  312. // zRObj: Das Bild, auf das gezeichnet werden soll
  313. // cpos: Die position des Cursors im Text
  314. // cf: Die Farbe des Cursors
  315. // fbeg: Die Position des Zeichens im Text, wo die Einfärbung beginnen soll. Der Text wird von dort bis zur Cursorposition eingefärbt
  316. // ff: Die Hintergrund Farbe des eingefärbten Textes
  317. // f: Eine Funktion die für jeden Buchstaben aufgerufen wird und seine Farbe zurückgibt
  318. __declspec( dllexport ) void renderText( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, int ff, std::function< int( int, int, int ) > f );
  319. // Zeichnet einen Bestimmten Text mit Cursor und einfärbung auf ein Bild
  320. // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
  321. // zText: Der Text, der gezeichnet werden soll
  322. // zRObj: Das Bild, auf das gezeichnet werden soll
  323. // cpos: Die position des Cursors im Text
  324. // cf: Die Farbe des Cursors
  325. // fbeg: Die Position des Zeichens im Text, wo die Einfärbung beginnen soll. Der Text wird von dort bis zur Cursorposition eingefärbt
  326. // ff: Die Hintergrund Farbe des eingefärbten Textes
  327. // f: Die Farbe, in der der Text gezeichnet werden soll
  328. __declspec( dllexport ) void renderText( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, int ff, int f );
  329. // Gibt ein bestimmtes Alphabet mit erhöhtem Reference Counter zurück
  330. // sg: Die Schriftgröße, dessen Alphabet gesucht werden soll
  331. // return: (0), fals kein passendes Alphabet gefunden wurde
  332. __declspec( dllexport ) Alphabet *getAlphabet( int sg ) const;
  333. // Gibt ein bestimmtes Alphabet ohne erhöhtem Reference Counter zurück
  334. // sg: Die Schriftgröße, dessen Alphabet gesucht werden soll
  335. // return: (0), fals kein passendes Alphabet gefunden wurde
  336. __declspec( dllexport ) Alphabet *zAlphabet( int sg ) const;
  337. // Gibt ein bestimmtes Alphabet mit erhöhtem Reference Counter zurück
  338. // index: Der Index des gesuchten Alphabets in der Reihenfolge wie sie der Liste hinzugefügt wurden
  339. // return: (0), fals kein passendes Alphabet gefunden wurde
  340. __declspec( dllexport ) Alphabet *getAlphabetI( int index ) const;
  341. // Gibt ein bestimmtes Alphabet ohne erhöhtem Reference Counter zurück
  342. // index: Der Index des gesuchten Alphabets in der Reihenfolge wie sie der Liste hinzugefügt wurden
  343. // return: (0), fals kein passendes Alphabet gefunden wurde
  344. __declspec( dllexport ) Alphabet *zAlphabetI( int index ) const;
  345. // Gibt zurück, wie viele Alphabete (und damit Schriftgrößen) in der Schrift enthalten sind
  346. __declspec( dllexport ) unsigned char getAlphabetAnzahl() const;
  347. // Gibt die Schriftgröße zurück, die zum Zeichnen verwendet wird
  348. __declspec( dllexport ) int getSchriftSize() const;
  349. // Gibt den Abstand in Pixeln zum unteren Ende der darüber ligenden Zeile zurück
  350. __declspec( dllexport ) int getZeilenabstand() const;
  351. // Gibt die x Koordinate des ersten Zeichens, dass gezeichnet wird, in Pixeln zurück
  352. __declspec( dllexport ) int getDrawX() const;
  353. // Gibt die y Koordinate des ersten Zeichens, dass gezeichnet wird, in Pixeln zurück
  354. __declspec( dllexport ) int getDrawY() const;
  355. // Gibt die Position des ersten Zeichens, dass gezeichnet wird, in Pixeln zurück
  356. __declspec( dllexport ) const Punkt &getDrawPosition() const;
  357. // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
  358. // zTxt: Der Text, von dem die Breite in Pixeln ermitelt werden soll
  359. __declspec( dllexport ) int getTextBreite( Text *zTxt ) const;
  360. // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
  361. // zTxt: Der Text, von dem die Höhe in Pixeln ermitelt werden soll
  362. __declspec( dllexport ) int getTextHeight( Text *zTxt ) const;
  363. // Ermittelt das Zeichen im Text, auf das die Maus zeigt
  364. // zTxt: Der Text, auf den die Maus Zeigt
  365. // mausX: Die X Position der Maus in Pixeln Relativ zur Position des ersten Zeichens
  366. // mausY: Die Y Position der Maus in Pixeln Relativ zur Position des ersten Zeichens
  367. __declspec( dllexport ) int textPos( Text *zTxt, int mausX, int mausY ) const;
  368. // Erhöht den Reference Counting Zähler.
  369. // return: this.
  370. __declspec( dllexport ) Schrift *getThis();
  371. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  372. // return: 0.
  373. __declspec( dllexport ) Schrift *release();
  374. };
  375. }
  376. #endif