#ifndef Rahmen_H #define Rahmen_H #include "Zeichnung.h" namespace Framework { class Bild; // aus Bild.h class Rahmen : public Zeichnung { protected: int br; int farbe; bool alpha; bool breaks; int breakOffset; int breakLength; int lineLength; public: // Konstruktor __declspec( dllexport ) Rahmen(); // Destruktor __declspec( dllexport ) virtual ~Rahmen(); // Setzt die Breite des Rahmens // br: Die Breite in Pixeln __declspec( dllexport ) void setRamenBreite( int br ); // wenn dieser Flag gesetzt wird, wird der Rahmen gestrichelt gezeichnet // br: 1 -> gestrichelt, 0 -> durchgehend // brOff: startpunkt des ersten linienabschnittes // brLength: länge einer lücke // lineLength: länge einer linie __declspec( dllexport ) void setBreaks( bool br, int brOff = 0, int brLength = 10, int lineLength = 10 ); // Gibt die Breite des Rahmens in Pixeln zurück __declspec( dllexport ) int getRBreite() const; // Legt fest, ob beim zeichnen alpha blending verwendet werden soll // a: 1, falls alpha blending verwendet werden soll __declspec( dllexport ) void setAlpha( bool a ); // Setzt die Fare des Rahmens // f: Die Farbe im A8R8G8B8 Format __declspec( dllexport ) void setFarbe( int f ); // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück __declspec( dllexport ) int getFarbe() const; // Gibt zurück, ob der Rahmen mit Alpha Blending gezeichnet wird __declspec( dllexport ) bool hatAlpha() const; // Gibt 1 zurück, falls der Rahmen gestrichelt gezeichnet wird __declspec( dllexport ) bool hasBreaks() const; // startpunkt des ersten linienabschnittes __declspec( dllexport ) int getBreakOffset() const; // länge einer lücke __declspec( dllexport ) int getBreakLength() const; // länge einer linie __declspec( dllexport ) int getLineLength() const; }; // Eine Zeichnung des 2D GUI Frameworks, die einen Linienrahmen um ein Rechteck zeichnet class LRahmen : public Rahmen { private: public: // Konstruktor __declspec( dllexport ) LRahmen(); // Destruktor __declspec( dllexport ) virtual ~LRahmen(); // Zeichnet den Rahmen // zRObj: Das Bild, in den der Rahmen gezeichnet werden soll __declspec( dllexport ) void render( Bild &zRObj ) override; // Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original verändert werden kann __declspec( dllexport ) Zeichnung *dublizieren() const override; }; class Rahmen3D : public Rahmen { public: // Konstruktor __declspec( dllexport ) Rahmen3D(); // Destruktor __declspec( dllexport ) virtual ~Rahmen3D(); // Zeichnet den Rahmen // zRObj: Das Bild, in den der Rahmen gezeichnet werden soll __declspec( dllexport ) void render( Bild &zRObj ) override; // Kopiert den Rahmen, so dass er ohne auswirkungen auf das Original verändert werden kann __declspec( dllexport ) Zeichnung *dublizieren() const override; }; } #endif