#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: //! Legt fest, ob eine Prozentangebe gezechnet wird static const __int64 Prozent = 0x001000; //! Legt fest, ob die Aktionsschritte gezeichnet werden static const __int64 Aktionen = 0x01000000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen //! eigenen Rahmen hat static const __int64 FRahmen = 0x002000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens eine //! eigene Hintergrund Farbe hat static const __int64 FFarbe = 0x004000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens ein //! eigenes Hintergrund Bild hat static const __int64 FBild = 0x008000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens zum //! zeichnen seines Hintergrundes alpha blending verwendet static const __int64 FAlpha = 0x10000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen //! eigenen Frbübergang hat static const __int64 FBuffered = 0x20000; //! Legt fest, ob sich der Fortschritt von lenks nach rechts //! ausbreitet static const __int64 L_R = 0x0100000; //! Legt fest, ob sich der Fortschritt von rechts nach links //! ausbreitet static const __int64 R_L = 0x0200000; //! Legt fest, ob sich der Fortschritt von unten nach oben ausbreitet static const __int64 U_O = 0x0400000; //! Legt fest, ob sich der Fortschritt von oben nach unten ausbreitet static const __int64 O_U = 0x0800000; //! Vereint die Flags Sichtbar, Rahmen, Hintergrund, HBild, FRahmen, //! FBild, L_R, Prozent static const __int64 normal = Sichtbar | Rahmen | Hintergrund | HBild | FRahmen | FBild | L_R | Prozent | Aktionen | HBildScale; }; 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