123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #ifndef Scroll_H
- #define Scroll_H
- #include "Betriebssystem.h"
- namespace Framework
- {
- class Bild; // Bild.h
- struct MausEreignis; // MausEreignis.h
- struct ScrollData
- {
- int anzeige;
- int max;
- int scrollPos;
- };
- // Die Baseklasse vür die Horizontale und Vertikale Scrollbar
- class ScrollBar
- {
- protected:
- ScrollData *data;
- int knopfdruck;
- int farbe;
- int bgFarbe;
- bool bg;
- int klickScroll;
- int mx, my;
- bool mp;
- bool rend;
- int ref;
- public:
- // Konstruktor
- __declspec( dllexport ) ScrollBar();
- // Destruktor
- __declspec( dllexport ) ~ScrollBar();
- // Setzt die Fordergrundfarbe der Scrollbar
- // fc: Die Farbe in A8R8G8B8 Format
- __declspec( dllexport ) void setFarbe( int fc );
- // Setzt die Hintergrundfarbe der Scrollbar
- // fc: Die Farbe in A8R8G8B8 Format
- // bgF: 1, fals ein Hintergrund gezeichnet werden soll
- __declspec( dllexport ) void setBgFarbe( int fc, bool bgF );
- // Aktualisiert die Scrollbar
- // maxGr: Die Maximale Größe des Fensters in Pixeln
- // anzeigeGr: Die angezeigte Größe des Fensters in Pixeln
- __declspec( dllexport ) void update( int maxGr, int anzeigeGr );
- // Setzt die Scroll geschwindigkeit
- // klickScroll: Die anzahl an Pixeln, die pro Klick gescrollt werden
- __declspec( dllexport ) void setKlickScroll( int klickScroll );
- // Scrollt zu einer bestimmten Position
- // pos: Die Position in Pixeln im Fenster, ab der gezeichnet werden soll
- __declspec( dllexport ) void scroll( int pos );
- // Verarbeitet ein Maus Ereignis
- // x: Die X Position der Scroll Bar im Fenster
- // y: Die Y Position der Scroll Bar im Fenster
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
- __declspec( dllexport ) virtual bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) = 0;
- // Gibt zurück, ob sich die Scrollbar seit dem letzten Aufruf der Funktion verändert hat
- __declspec( dllexport ) bool getRend();
- // Zeichnet die Scrollbar
- // x: Die X Position der Scroll Bar
- // y: Die Y Position der Scroll Bar
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // zRObj: Das Bild, in das gezeichnet werden soll
- __declspec( dllexport ) virtual void render( int x, int y, int br, int hö, Bild &zRObj ) const = 0;
- // Gibt einen zeiger auf die Scroll Daten zurück
- __declspec( dllexport ) ScrollData *getScrollData() const;
- // Gibt die Scroll geschwindigkeit zurück. Die Anzahl der gescrollten Pixel pro Klick
- __declspec( dllexport ) int getKlickScroll() const;
- // Gibt die Fordergrundfarbe der Scrollbar zurück
- __declspec( dllexport ) int getFarbe() const;
- // Gibt die Hintergrundfarbe der Scrollbar zurück
- __declspec( dllexport ) int getBgFarbe() const;
- // Gibt die aktuelle Scroll Position zurück
- __declspec( dllexport ) int getScroll() const;
- // Erhöht den Reference Counting Zähler.
- // return: this.
- __declspec( dllexport ) ScrollBar *getThis();
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
- // return: 0.
- __declspec( dllexport ) virtual ScrollBar *release();
- };
- // Eine vertikale Scrollbar, wie sie in manchen 2D GUI Zeichnungen des Frameworks verwendet wird
- class VScrollBar : public ScrollBar
- {
- public:
- // Konstruktor
- __declspec( dllexport ) VScrollBar();
- // Verarbeitet ein Maus Ereignis
- // x: Die X Position der Scroll Bar im Fenster
- // y: Die Y Position der Scroll Bar im Fenster
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
- __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) override;
- // Zeichnet die Scrollbar
- // x: Die X Position der Scroll Bar
- // y: Die Y Position der Scroll Bar
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // zRObj: Das Bild, in das gezeichnet werden soll
- __declspec( dllexport ) void render( int x, int y, int br, int hö, Bild &zRObj ) const override;
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
- // return: 0.
- __declspec( dllexport ) ScrollBar *release() override;
- };
- // Eine horizontale Scrollbar, wie sie in manchen 2D GUI Zeichnungen des Frameworks verwendet wird
- class HScrollBar : public ScrollBar
- {
- public:
- // Konstruktor
- __declspec( dllexport ) HScrollBar();
- // Verarbeitet ein Maus Ereignis
- // x: Die X Position der Scroll Bar im Fenster
- // y: Die Y Position der Scroll Bar im Fenster
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
- __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) override;
- // Zeichnet die Scrollbar
- // x: Die X Position der Scroll Bar
- // y: Die Y Position der Scroll Bar
- // br: Die Breite der Scroll Bar
- // hö: Die Höhe der Scroll Bar
- // zRObj: Das Bild, in das gezeichnet werden soll
- __declspec( dllexport ) void render( int x, int y, int br, int hö, Bild &zRObj ) const override;
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
- // return: 0.
- __declspec( dllexport ) ScrollBar *release() override;
- };
- }
- #endif
|