Rahmen.h 2.7 KB

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