Scroll.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #ifndef Scroll_H
  2. #define Scroll_H
  3. #include "Betriebssystem.h"
  4. namespace Framework
  5. {
  6. class Bild; // Bild.h
  7. struct MausEreignis; // MausEreignis.h
  8. struct ScrollData
  9. {
  10. int anzeige;
  11. int max;
  12. int scrollPos;
  13. };
  14. // Die Baseklasse vür die Horizontale und Vertikale Scrollbar
  15. class ScrollBar
  16. {
  17. protected:
  18. ScrollData *data;
  19. int knopfdruck;
  20. int farbe;
  21. int bgFarbe;
  22. bool bg;
  23. int klickScroll;
  24. int mx, my;
  25. bool mp;
  26. bool rend;
  27. int ref;
  28. public:
  29. // Konstruktor
  30. __declspec( dllexport ) ScrollBar();
  31. // Destruktor
  32. __declspec( dllexport ) virtual ~ScrollBar();
  33. // Setzt die Fordergrundfarbe der Scrollbar
  34. // fc: Die Farbe in A8R8G8B8 Format
  35. __declspec( dllexport ) void setFarbe( int fc );
  36. // Setzt die Hintergrundfarbe der Scrollbar
  37. // fc: Die Farbe in A8R8G8B8 Format
  38. // bgF: 1, fals ein Hintergrund gezeichnet werden soll
  39. __declspec( dllexport ) void setBgFarbe( int fc, bool bgF );
  40. // Aktualisiert die Scrollbar
  41. // maxGr: Die Maximale Größe des Fensters in Pixeln
  42. // anzeigeGr: Die angezeigte Größe des Fensters in Pixeln
  43. __declspec( dllexport ) void update( int maxGr, int anzeigeGr );
  44. // Setzt die Scroll geschwindigkeit
  45. // klickScroll: Die anzahl an Pixeln, die pro Klick gescrollt werden
  46. __declspec( dllexport ) void setKlickScroll( int klickScroll );
  47. // Scrollt zu einer bestimmten Position
  48. // pos: Die Position in Pixeln im Fenster, ab der gezeichnet werden soll
  49. __declspec( dllexport ) void scroll( int pos );
  50. // Verarbeitet ein Maus Ereignis
  51. // x: Die X Position der Scroll Bar im Fenster
  52. // y: Die Y Position der Scroll Bar im Fenster
  53. // br: Die Breite der Scroll Bar
  54. // hi: Die Höhe der Scroll Bar
  55. // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
  56. __declspec( dllexport ) virtual bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) = 0;
  57. // Gibt zurück, ob sich die Scrollbar seit dem letzten Aufruf der Funktion verändert hat
  58. __declspec( dllexport ) bool getRend();
  59. // Zeichnet die Scrollbar
  60. // x: Die X Position der Scroll Bar
  61. // y: Die Y Position der Scroll Bar
  62. // br: Die Breite der Scroll Bar
  63. // hi: Die Höhe der Scroll Bar
  64. // zRObj: Das Bild, in das gezeichnet werden soll
  65. __declspec( dllexport ) virtual void render( int x, int y, int br, int hi, Bild &zRObj ) const = 0;
  66. // Gibt einen zeiger auf die Scroll Daten zurück
  67. __declspec( dllexport ) ScrollData *getScrollData() const;
  68. // Gibt die Scroll geschwindigkeit zurück. Die Anzahl der gescrollten Pixel pro Klick
  69. __declspec( dllexport ) int getKlickScroll() const;
  70. // Gibt die Fordergrundfarbe der Scrollbar zurück
  71. __declspec( dllexport ) int getFarbe() const;
  72. // Gibt die Hintergrundfarbe der Scrollbar zurück
  73. __declspec( dllexport ) int getBgFarbe() const;
  74. // Gibt die aktuelle Scroll Position zurück
  75. __declspec( dllexport ) int getScroll() const;
  76. // Erhöht den Reference Counting Zähler.
  77. // return: this.
  78. __declspec( dllexport ) ScrollBar *getThis();
  79. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  80. // return: 0.
  81. __declspec( dllexport ) ScrollBar *release();
  82. };
  83. // Eine vertikale Scrollbar, wie sie in manchen 2D GUI Zeichnungen des Frameworks verwendet wird
  84. class VScrollBar : public ScrollBar
  85. {
  86. public:
  87. // Konstruktor
  88. __declspec( dllexport ) VScrollBar();
  89. // Destruktor
  90. __declspec( dllexport ) virtual ~VScrollBar();
  91. // Verarbeitet ein Maus Ereignis
  92. // x: Die X Position der Scroll Bar im Fenster
  93. // y: Die Y Position der Scroll Bar im Fenster
  94. // br: Die Breite der Scroll Bar
  95. // hi: Die Höhe der Scroll Bar
  96. // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
  97. __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) override;
  98. // Zeichnet die Scrollbar
  99. // x: Die X Position der Scroll Bar
  100. // y: Die Y Position der Scroll Bar
  101. // br: Die Breite der Scroll Bar
  102. // hi: Die Höhe der Scroll Bar
  103. // zRObj: Das Bild, in das gezeichnet werden soll
  104. __declspec( dllexport ) void render( int x, int y, int br, int hi, Bild &zRObj ) const override;
  105. };
  106. // Eine horizontale Scrollbar, wie sie in manchen 2D GUI Zeichnungen des Frameworks verwendet wird
  107. class HScrollBar : public ScrollBar
  108. {
  109. public:
  110. // Konstruktor
  111. __declspec( dllexport ) HScrollBar();
  112. // Destruktor
  113. __declspec( dllexport ) virtual ~HScrollBar();
  114. // Verarbeitet ein Maus Ereignis
  115. // x: Die X Position der Scroll Bar im Fenster
  116. // y: Die Y Position der Scroll Bar im Fenster
  117. // br: Die Breite der Scroll Bar
  118. // hi: Die Höhe der Scroll Bar
  119. // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
  120. __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) override;
  121. // Zeichnet die Scrollbar
  122. // x: Die X Position der Scroll Bar
  123. // y: Die Y Position der Scroll Bar
  124. // br: Die Breite der Scroll Bar
  125. // hi: Die Höhe der Scroll Bar
  126. // zRObj: Das Bild, in das gezeichnet werden soll
  127. __declspec( dllexport ) void render( int x, int y, int br, int hi, Bild &zRObj ) const override;
  128. };
  129. }
  130. #endif