Rahmen.h 3.2 KB

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