Fortschritt.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #ifndef Fortschritt_H
  2. #define Fortschritt_H
  3. #include "Zeichnung.h"
  4. namespace Framework
  5. {
  6. class Rahmen; //! Rahmen.h
  7. class AlphaFeld; //! AlphaFeld.h
  8. class Bild; //! Bild.h
  9. class Schrift; //! Schrift.h
  10. class FBalken; //! aus dieser Datei
  11. class TextRenderer;
  12. //! Eine Zeichnung des 2D GuI Frameworks, die einen Fortschrittsbalken zeichnet
  13. class FBalken : public ZeichnungHintergrund
  14. {
  15. public:
  16. class Style : public ZeichnungHintergrund::Style
  17. {
  18. public:
  19. const static __int64 Prozent = 0x001000; //! Legt fest, ob eine Prozentangebe gezechnet wird
  20. const static __int64 Aktionen = 0x01000000; //! Legt fest, ob die Aktionsschritte gezeichnet werden
  21. const static __int64 FRahmen = 0x002000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen eigenen Rahmen hat
  22. const static __int64 FFarbe = 0x004000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens eine eigene Hintergrund Farbe hat
  23. const static __int64 FBild = 0x008000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens ein eigenes Hintergrund Bild hat
  24. const static __int64 FAlpha = 0x10000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens zum zeichnen seines Hintergrundes alpha blending verwendet
  25. const static __int64 FBuffered = 0x20000; //! Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen eigenen Frbübergang hat
  26. const static __int64 L_R = 0x0100000; //! Legt fest, ob sich der Fortschritt von lenks nach rechts ausbreitet
  27. const static __int64 R_L = 0x0200000; //! Legt fest, ob sich der Fortschritt von rechts nach links ausbreitet
  28. const static __int64 U_O = 0x0400000; //! Legt fest, ob sich der Fortschritt von unten nach oben ausbreitet
  29. const static __int64 O_U = 0x0800000; //! Legt fest, ob sich der Fortschritt von oben nach unten ausbreitet
  30. const static __int64 normal = Sichtbar | Rahmen | Hintergrund | HBild | FRahmen | FBild | L_R | Prozent | Aktionen; //! Vereint die Flags Sichtbar, Rahmen, Hintergrund, HBild, FRahmen, FBild, L_R, Prozent
  31. };
  32. private:
  33. __int64 maxAk;
  34. __int64 ak;
  35. Rahmen *fRahmen;
  36. AlphaFeld *fBuffer;
  37. int fBgF;
  38. Bild *fBgBild;
  39. TextRenderer *textRd;
  40. int schriftFarbe;
  41. unsigned char schriftSize;
  42. public:
  43. //! Konstruktor
  44. DLLEXPORT FBalken();
  45. //! Destructor
  46. DLLEXPORT virtual ~FBalken();
  47. //! Setzt die Anzahl an benötigten Operationen um 100% Fortschritt zu erreichen
  48. //! \param ak Die Anzahl an Operationen
  49. DLLEXPORT void setAktionAnzahl( __int64 ak );
  50. //! Legt fest, dass eine bestimmte Anzahl an Operationen seit dem letzten Aufruf der Funktion durchgeführt wurden
  51. //! \param aktionen Die durchgeführten Operationen. Standartmäßig auf 1
  52. DLLEXPORT void aktionPlus( __int64 aktionen = 1 );
  53. //! Setzt alle fertigen Operationen zurück, so dass der Fortschritt wieder von 0% beginnt
  54. DLLEXPORT void reset();
  55. //! Setzt einen Zeiger auf den Rahmen, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  56. //! \param ram Der Rahmen
  57. DLLEXPORT void setFRahmenZ( Rahmen *ram );
  58. //! Setzt die Farbe des Rahmens, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  59. //! \param f Die Farbe im A8R8G8B8 Format
  60. DLLEXPORT void setFRFarbe( int f );
  61. //! Setzt die Breite des Rahmens, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  62. //! \param br Die Breite in Pixeln
  63. DLLEXPORT void setFRBreite( int br );
  64. //! Setzt einen Zeiger auf den Farbverlauf, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  65. //! \param af Der Farbverlauf
  66. DLLEXPORT void setFAlphaFeldZ( AlphaFeld *af );
  67. //! Setzt die Farbe des Farbverlaufs, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  68. //! \param f Die Farbe im A8R8G8B8 Format
  69. DLLEXPORT void setFAFFarbe( int f );
  70. //! Setzt die Stärke des Farbverlaufs, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  71. //! \param st Die Stärke
  72. DLLEXPORT void setFAFStrength( int st );
  73. //! Setzt die Hintergrund Farbe, die in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  74. //! \param f Die Farbe im A8R8G8B8 Format
  75. DLLEXPORT void setFBgFarbe( int f );
  76. //! Setzt einen Zeiger auf das Hintergrund Bild, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  77. //! \param b Das Bild
  78. DLLEXPORT void setFBgBildZ( Bild *b );
  79. //! Setzt das Hintergrund Bild durch kopieren, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  80. //! \param b Das Bild, das kopiert werden soll
  81. DLLEXPORT void setFBgBild( Bild *b );
  82. //! Setzt den verwendeten TextRenderer
  83. //! \param textRd Der Textrenderer
  84. DLLEXPORT void setTextRendererZ( TextRenderer *textRd );
  85. //! Setzt die Schrift, die verwendet wird, um die Prozentanzeige zu zeichnen
  86. DLLEXPORT void setSchriftZ( Schrift *b );
  87. //! Setzt die Farbe der Prozentanzeige
  88. //! \param f Die Farbe im A8R8G8B8 Format
  89. DLLEXPORT void setSFarbe( int f );
  90. //! Setzt die Schriftgröße der Prozentanzeige
  91. //! \param gr Die Größe einer Zeile in Pixeln
  92. DLLEXPORT void setSSize( unsigned char gr );
  93. //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  94. //! \param zRObj Das Bild, in welches gezeichnet werden soll
  95. DLLEXPORT void render( Bild &zRObj ) override;
  96. //! Gibt die Anzahl an benötigten Operationen zurück, die für 100% benötigt werden
  97. DLLEXPORT __int64 getAktionAnzahl() const;
  98. //! Gibt die momentan erreichte Prozentzahl des Fortschritts zurück
  99. DLLEXPORT double getProzent() const;
  100. //! Gibt die Anzahl an fertigen Operationen zurück
  101. DLLEXPORT __int64 getAktion() const;
  102. //! Gibt den Rahmen zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  103. DLLEXPORT Rahmen *getFRahmen() const;
  104. //! Gibt den Rahmen ohne erhöhten Reference Counter zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  105. DLLEXPORT Rahmen *zFRahmen() const;
  106. //! Gibt den Farbübergang zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  107. DLLEXPORT AlphaFeld *getFAlphaFeld() const;
  108. //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  109. DLLEXPORT AlphaFeld *zFAlphaFeld() const;
  110. //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  111. DLLEXPORT int getFBgFarbe() const;
  112. //! Gibt das Hintergrund Bild zurück, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  113. DLLEXPORT Bild *getFBgBild() const;
  114. //! Gibt das Hintergrund Bild ohne erhöhten Reference COunter zurück, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
  115. DLLEXPORT Bild *zFBgBild() const;
  116. //! Gibt die Schrift zurück, die für die Prozentanzeige verwendet wird
  117. DLLEXPORT Schrift *getSchrift() const;
  118. //! Gibt die Schrift ohne erhöhten Reference Counter zurück, die für die Prozentanzeige verwendet wird
  119. DLLEXPORT Schrift *zSchrift() const;
  120. //! Gibt die Farbe der Prozentanzeige im A8R8G8B8 Format zurück
  121. DLLEXPORT int getSFarbe() const;
  122. };
  123. }
  124. #endif