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