Rahmen.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef Rahmen_H
  2. #define Rahmen_H
  3. #include "Zeichnung.h"
  4. namespace Framework
  5. {
  6. class Bild; // aus Bild.h
  7. struct VScrollData; // Scroll.h
  8. struct HScrollData; // Scroll.h
  9. class Rahmen : public Zeichnung
  10. {
  11. protected:
  12. int br;
  13. int farbe;
  14. bool alpha;
  15. int ref;
  16. public:
  17. // Konstruktor
  18. __declspec( dllexport ) Rahmen();
  19. // Destruktor
  20. __declspec( dllexport ) virtual ~Rahmen();
  21. // Setzt die Breite des Rahmens
  22. // br: Die Breite in Pixeln
  23. __declspec( dllexport ) void setRamenBreite( int br );
  24. // Gibt die Breite des Rahmens in Pixeln zurück
  25. __declspec( dllexport ) int getRBreite() const;
  26. // Legt fest, ob beim zeichnen alpha blending verwendet werden soll
  27. // a: 1, falls alpha blending verwendet werden soll
  28. __declspec( dllexport ) void setAlpha( bool a );
  29. // Setzt die Fare des Rahmens
  30. // f: Die Farbe im A8R8G8B8 Format
  31. __declspec( dllexport ) void setFarbe( int f );
  32. // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück
  33. __declspec( dllexport ) int getFarbe() const;
  34. // Gibt zurück, ob der Rahmen mit Alpha Blending gezeichnet wird
  35. __declspec( dllexport ) bool hatAlpha() const;
  36. // Erhöht den Reference Counting Zähler.
  37. // return: this.
  38. __declspec( dllexport ) Rahmen *getThis();
  39. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  40. // return: 0.
  41. __declspec( dllexport ) virtual Rahmen *release() = 0;
  42. };
  43. // Eine Zeichnung des 2D GUI Frameworks, die einen Linienrahmen um ein Rechteck zeichnet
  44. class LRahmen : public Rahmen
  45. {
  46. private:
  47. public:
  48. // Konstruktor
  49. __declspec( dllexport ) LRahmen();
  50. // Destruktor
  51. __declspec( dllexport ) virtual ~LRahmen();
  52. // Zeichnet den Rahmen
  53. // zRObj: Das Bild, in den der Rahmen gezeichnet werden soll
  54. __declspec( dllexport ) void render( Bild &zRObj ) override;
  55. // Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original verändert werden kann
  56. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  57. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  58. // return: 0.
  59. __declspec( dllexport ) Rahmen *release() override;
  60. };
  61. }
  62. #endif