Rahmen.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef Rahmen_H
  2. #define Rahmen_H
  3. #include "Zeichnung.h"
  4. namespace Framework
  5. {
  6. class Bild; //! aus Bild.h
  7. class Rahmen : public Zeichnung
  8. {
  9. protected:
  10. int br;
  11. int farbe;
  12. bool alpha;
  13. bool breaks;
  14. int breakOffset;
  15. int breakLength;
  16. int lineLength;
  17. public:
  18. //! Konstruktor
  19. DLLEXPORT Rahmen();
  20. //! Destruktor
  21. DLLEXPORT virtual ~Rahmen();
  22. //! Setzt die Breite des Rahmens
  23. //! \param br Die Breite in Pixeln
  24. DLLEXPORT void setRamenBreite(int br);
  25. //! wenn dieser Flag gesetzt wird, wird der Rahmen gestrichelt
  26. //! gezeichnet \param br 1 -> gestrichelt, 0 -> durchgehend \param brOff
  27. //! startpunkt des ersten linienabschnittes \param brLength länge einer
  28. //! lücke \param lineLength länge einer linie
  29. DLLEXPORT void setBreaks(
  30. bool br, int brOff = 0, int brLength = 10, int lineLength = 10);
  31. //! Gibt die Breite des Rahmens in Pixeln zurück
  32. DLLEXPORT int getRBreite() const;
  33. //! Legt fest, ob beim zeichnen alpha blending verwendet werden soll
  34. //! \param a 1, falls alpha blending verwendet werden soll
  35. DLLEXPORT void setAlpha(bool a);
  36. //! Setzt die Fare des Rahmens
  37. //! \param f Die Farbe im A8R8G8B8 Format
  38. DLLEXPORT void setFarbe(int f);
  39. //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück
  40. DLLEXPORT int getFarbe() const;
  41. //! Gibt zurück, ob der Rahmen mit Alpha Blending gezeichnet wird
  42. DLLEXPORT bool hatAlpha() const;
  43. //! Gibt 1 zurück, falls der Rahmen gestrichelt gezeichnet wird
  44. DLLEXPORT bool hasBreaks() const;
  45. //! startpunkt des ersten linienabschnittes
  46. DLLEXPORT int getBreakOffset() const;
  47. //! länge einer lücke
  48. DLLEXPORT int getBreakLength() const;
  49. //! länge einer linie
  50. DLLEXPORT int getLineLength() const;
  51. };
  52. //! Eine Zeichnung des 2D GUI Frameworks, die einen Linienrahmen um ein
  53. //! Rechteck zeichnet
  54. class LRahmen : public Rahmen
  55. {
  56. private:
  57. public:
  58. //! Konstruktor
  59. DLLEXPORT LRahmen();
  60. //! Destruktor
  61. DLLEXPORT virtual ~LRahmen();
  62. //! Zeichnet den Rahmen
  63. //! \param zRObj Das Bild, in den der Rahmen gezeichnet werden soll
  64. DLLEXPORT void render(Bild& zRObj) override;
  65. //! Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original
  66. //! verändert werden kann
  67. DLLEXPORT Zeichnung* dublizieren() const override;
  68. };
  69. class Rahmen3D : public Rahmen
  70. {
  71. public:
  72. //! Konstruktor
  73. DLLEXPORT Rahmen3D();
  74. //! Destruktor
  75. DLLEXPORT virtual ~Rahmen3D();
  76. //! Zeichnet den Rahmen
  77. //! \param zRObj Das Bild, in den der Rahmen gezeichnet werden soll
  78. DLLEXPORT void render(Bild& zRObj) override;
  79. //! Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original
  80. //! verändert werden kann
  81. DLLEXPORT Zeichnung* dublizieren() const override;
  82. };
  83. } // namespace Framework
  84. #endif