123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- #ifndef Fortschritt_H
- #define Fortschritt_H
- #include "Zeichnung.h"
- namespace Framework
- {
- class Rahmen; //! Rahmen.h
- class AlphaFeld; //! AlphaFeld.h
- class Bild; //! Bild.h
- class Schrift; //! Schrift.h
- class FBalken; //! aus dieser Datei
- class TextRenderer;
- //! Eine Zeichnung des 2D GuI Frameworks, die einen Fortschrittsbalken
- //! zeichnet
- class FBalken : public ZeichnungHintergrund
- {
- public:
- class Style : public ZeichnungHintergrund::Style
- {
- public:
- static const __int64 Prozent
- = 0x001000; //! Legt fest, ob eine Prozentangebe gezechnet wird
- static const __int64 Aktionen
- = 0x01000000; //! Legt fest, ob die Aktionsschritte gezeichnet
- //! werden
- static const __int64 FRahmen
- = 0x002000; //! Legt fest, ob der vom fortschritt erfasste Teil
- //! des Balkens einen eigenen Rahmen hat
- static const __int64 FFarbe
- = 0x004000; //! Legt fest, ob der vom fortschritt erfasste Teil
- //! des Balkens eine eigene Hintergrund Farbe hat
- static const __int64 FBild
- = 0x008000; //! Legt fest, ob der vom fortschritt erfasste Teil
- //! des Balkens ein eigenes Hintergrund Bild hat
- static const __int64 FAlpha
- = 0x10000; //! Legt fest, ob der vom fortschritt erfasste Teil
- //! des Balkens zum zeichnen seines Hintergrundes
- //! alpha blending verwendet
- static const __int64 FBuffered
- = 0x20000; //! Legt fest, ob der vom fortschritt erfasste Teil
- //! des Balkens einen eigenen Frbübergang hat
- static const __int64 L_R
- = 0x0100000; //! Legt fest, ob sich der Fortschritt von lenks
- //! nach rechts ausbreitet
- static const __int64 R_L
- = 0x0200000; //! Legt fest, ob sich der Fortschritt von rechts
- //! nach links ausbreitet
- static const __int64 U_O
- = 0x0400000; //! Legt fest, ob sich der Fortschritt von unten
- //! nach oben ausbreitet
- static const __int64 O_U
- = 0x0800000; //! Legt fest, ob sich der Fortschritt von oben
- //! nach unten ausbreitet
- static const __int64 normal
- = Sichtbar | Rahmen | Hintergrund | HBild | FRahmen | FBild
- | L_R | Prozent
- | Aktionen; //! Vereint die Flags Sichtbar, Rahmen, Hintergrund,
- //! HBild, FRahmen, FBild, L_R, Prozent
- };
- private:
- __int64 maxAk;
- __int64 ak;
- Rahmen* fRahmen;
- AlphaFeld* fBuffer;
- int fBgF;
- Bild* fBgBild;
- TextRenderer* textRd;
- int schriftFarbe;
- unsigned char schriftSize;
- public:
- //! Konstruktor
- DLLEXPORT FBalken();
- //! Destructor
- DLLEXPORT virtual ~FBalken();
- //! Setzt die Anzahl an benötigten Operationen um 100% Fortschritt zu
- //! erreichen \param ak Die Anzahl an Operationen
- DLLEXPORT void setAktionAnzahl(__int64 ak);
- //! Legt fest, dass eine bestimmte Anzahl an Operationen seit dem
- //! letzten Aufruf der Funktion durchgeführt wurden \param aktionen Die
- //! durchgeführten Operationen. Standartmäßig auf 1
- DLLEXPORT void aktionPlus(__int64 aktionen = 1);
- //! Setzt alle fertigen Operationen zurück, so dass der Fortschritt
- //! wieder von 0% beginnt
- DLLEXPORT void reset();
- //! Setzt einen Zeiger auf den Rahmen, der in dem Teil des Balkens
- //! gezeichnet wird, der vom Fortschritt erfasst wurde \param ram Der
- //! Rahmen
- DLLEXPORT void setFRahmenZ(Rahmen* ram);
- //! Setzt die Farbe des Rahmens, der in dem Teil des Balkens gezeichnet
- //! wird, der vom Fortschritt erfasst wurde \param f Die Farbe im
- //! A8R8G8B8 Format
- DLLEXPORT void setFRFarbe(int f);
- //! Setzt die Breite des Rahmens, der in dem Teil des Balkens gezeichnet
- //! wird, der vom Fortschritt erfasst wurde \param br Die Breite in
- //! Pixeln
- DLLEXPORT void setFRBreite(int br);
- //! Setzt einen Zeiger auf den Farbverlauf, der in dem Teil des Balkens
- //! gezeichnet wird, der vom Fortschritt erfasst wurde \param af Der
- //! Farbverlauf
- DLLEXPORT void setFAlphaFeldZ(AlphaFeld* af);
- //! Setzt die Farbe des Farbverlaufs, der in dem Teil des Balkens
- //! gezeichnet wird, der vom Fortschritt erfasst wurde \param f Die
- //! Farbe im A8R8G8B8 Format
- DLLEXPORT void setFAFFarbe(int f);
- //! Setzt die Stärke des Farbverlaufs, der in dem Teil des Balkens
- //! gezeichnet wird, der vom Fortschritt erfasst wurde \param st Die
- //! Stärke
- DLLEXPORT void setFAFStrength(int st);
- //! Setzt die Hintergrund Farbe, die in dem Teil des Balkens gezeichnet
- //! wird, der vom Fortschritt erfasst wurde \param f Die Farbe im
- //! A8R8G8B8 Format
- DLLEXPORT void setFBgFarbe(int f);
- //! Setzt einen Zeiger auf das Hintergrund Bild, das in dem Teil des
- //! Balkens gezeichnet wird, der vom Fortschritt erfasst wurde \param b
- //! Das Bild
- DLLEXPORT void setFBgBildZ(Bild* b);
- //! Setzt das Hintergrund Bild durch kopieren, das in dem Teil des
- //! Balkens gezeichnet wird, der vom Fortschritt erfasst wurde \param b
- //! Das Bild, das kopiert werden soll
- DLLEXPORT void setFBgBild(Bild* b);
- //! Setzt den verwendeten TextRenderer
- //! \param textRd Der Textrenderer
- DLLEXPORT void setTextRendererZ(TextRenderer* textRd);
- //! Setzt die Schrift, die verwendet wird, um die Prozentanzeige zu
- //! zeichnen
- DLLEXPORT void setSchriftZ(Schrift* b);
- //! Setzt die Farbe der Prozentanzeige
- //! \param f Die Farbe im A8R8G8B8 Format
- DLLEXPORT void setSFarbe(int f);
- //! Setzt die Schriftgröße der Prozentanzeige
- //! \param gr Die Größe einer Zeile in Pixeln
- DLLEXPORT void setSSize(unsigned char gr);
- //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
- //! \param zRObj Das Bild, in welches gezeichnet werden soll
- DLLEXPORT void render(Bild& zRObj) override;
- //! Gibt die Anzahl an benötigten Operationen zurück, die für 100%
- //! benötigt werden
- DLLEXPORT __int64 getAktionAnzahl() const;
- //! Gibt die momentan erreichte Prozentzahl des Fortschritts zurück
- DLLEXPORT double getProzent() const;
- //! Gibt die Anzahl an fertigen Operationen zurück
- DLLEXPORT __int64 getAktion() const;
- //! Gibt den Rahmen zurück, der in dem Teil des Balkens gezeichnet wird,
- //! der vom Fortschritt erfasst wurde
- DLLEXPORT Rahmen* getFRahmen() const;
- //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der in dem
- //! Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
- DLLEXPORT Rahmen* zFRahmen() const;
- //! Gibt den Farbübergang zurück, der in dem Teil des Balkens gezeichnet
- //! wird, der vom Fortschritt erfasst wurde
- DLLEXPORT AlphaFeld* getFAlphaFeld() const;
- //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der in
- //! dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst
- //! wurde
- DLLEXPORT AlphaFeld* zFAlphaFeld() const;
- //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die in dem
- //! Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
- DLLEXPORT int getFBgFarbe() const;
- //! Gibt das Hintergrund Bild zurück, das in dem Teil des Balkens
- //! gezeichnet wird, der vom Fortschritt erfasst wurde
- DLLEXPORT Bild* getFBgBild() const;
- //! Gibt das Hintergrund Bild ohne erhöhten Reference COunter zurück,
- //! das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt
- //! erfasst wurde
- DLLEXPORT Bild* zFBgBild() const;
- //! Gibt die Schrift zurück, die für die Prozentanzeige verwendet wird
- DLLEXPORT Schrift* getSchrift() const;
- //! Gibt die Schrift ohne erhöhten Reference Counter zurück, die für die
- //! Prozentanzeige verwendet wird
- DLLEXPORT Schrift* zSchrift() const;
- //! Gibt die Farbe der Prozentanzeige im A8R8G8B8 Format zurück
- DLLEXPORT int getSFarbe() const;
- };
- } // namespace Framework
- #endif
|