Rahmen.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 LRahmen; // aus dieser Datei
  10. // Eine Zeichnung des 2D GUI Frameworks, die einen Linienrahmen um ein Rechteck zeichnet
  11. class LRahmen : public Zeichnung
  12. {
  13. private:
  14. int br;
  15. int farbe;
  16. bool alpha;
  17. int ref;
  18. public:
  19. // Konstruktor
  20. __declspec( dllexport ) LRahmen();
  21. // Setzt die Breite des Rahmens
  22. // br: Die Breite in Pixeln
  23. __declspec( dllexport ) void setRamenBreite( int br );
  24. // Legt fest, ob beim zeichnen alpha blending verwendet werden soll
  25. // a: 1, falls alpha blending verwendet werden soll
  26. __declspec( dllexport ) void setAlpha( bool a );
  27. // Setzt die Fare des Rahmens
  28. // f: Die Farbe im A8R8G8B8 Format
  29. __declspec( dllexport ) void setFarbe( int f );
  30. // Zeichnet den Rahmen
  31. // zRObj: Das Bild, in den der Rahmen gezeichnet werden soll
  32. __declspec( dllexport ) void render( Bild &zRObj ) override;
  33. // Gibt die Breite des Rahmens in Pixeln zurück
  34. __declspec( dllexport ) int getRBreite() const;
  35. // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück
  36. __declspec( dllexport ) int getFarbe() const;
  37. // Gibt zurück, ob der Rahmen mit Alpha Blending gezeichnet wird
  38. __declspec( dllexport ) bool hatAlpha() const;
  39. // Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original verändert werden kann
  40. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  41. // Erhöht den Reference Counting Zähler.
  42. // return: this.
  43. __declspec( dllexport ) LRahmen *getThis();
  44. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  45. // return: 0.
  46. __declspec( dllexport ) LRahmen *release();
  47. };
  48. }
  49. #endif