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