#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 //! \param br Die Breite in Pixeln __declspec( dllexport ) void setRamenBreite( int br ); //! wenn dieser Flag gesetzt wird, wird der Rahmen gestrichelt gezeichnet //! \param br 1 -> gestrichelt, 0 -> durchgehend //! \param brOff startpunkt des ersten linienabschnittes //! \param brLength länge einer lücke //! \param 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 //! \param a 1, falls alpha blending verwendet werden soll __declspec( dllexport ) void setAlpha( bool a ); //! Setzt die Fare des Rahmens //! \param 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 //! \param 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 //! \param 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