diff options
author | Eugene Sandulenko | 2010-08-06 13:13:25 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-10-12 22:35:55 +0000 |
commit | 47904bc7b2992189bb554833f00a79ff0fea9fb8 (patch) | |
tree | 1cec51758c6741b970bd064fafee77607b9f884f /engines/sword25/gfx/renderobject.h | |
parent | ca17def625154e5f758b797e4fc48c76b0566320 (diff) | |
download | scummvm-rg350-47904bc7b2992189bb554833f00a79ff0fea9fb8.tar.gz scummvm-rg350-47904bc7b2992189bb554833f00a79ff0fea9fb8.tar.bz2 scummvm-rg350-47904bc7b2992189bb554833f00a79ff0fea9fb8.zip |
SWORD25: Mass-astyle.
svn-id: r53222
Diffstat (limited to 'engines/sword25/gfx/renderobject.h')
-rw-r--r-- | engines/sword25/gfx/renderobject.h | 444 |
1 files changed, 236 insertions, 208 deletions
diff --git a/engines/sword25/gfx/renderobject.h b/engines/sword25/gfx/renderobject.h index 545a6bf8db..9424303505 100644 --- a/engines/sword25/gfx/renderobject.h +++ b/engines/sword25/gfx/renderobject.h @@ -23,7 +23,7 @@ * */ -/* +/* * This code is based on Broken Sword 2.5 engine * * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer @@ -33,13 +33,13 @@ */ /* - BS_RenderObject - --------------- - Dieses ist die Klasse die sämtliche sichtbaren Objekte beschreibt. Alle anderen sichtbaren Objekte müssen von ihr abgeleitet werden. - Diese Klasse erledigt Aufgaben wie: minimales Neuzeichnen, Renderreihenfolge, Objekthierachie. - Alle BS_RenderObject Instanzen werden von einem BS_RenderObjectManager in einem Baum verwaltet. + BS_RenderObject + --------------- + Dieses ist die Klasse die sämtliche sichtbaren Objekte beschreibt. Alle anderen sichtbaren Objekte müssen von ihr abgeleitet werden. + Diese Klasse erledigt Aufgaben wie: minimales Neuzeichnen, Renderreihenfolge, Objekthierachie. + Alle BS_RenderObject Instanzen werden von einem BS_RenderObjectManager in einem Baum verwaltet. - Autor: Malte Thiesen + Autor: Malte Thiesen */ #ifndef SWORD25_RENDEROBJECT_H @@ -69,19 +69,17 @@ class BS_Text; // Klassendefinition /** - @brief Dieses ist die Klasse die sämtliche sichtbaren Objekte beschreibt. - - Alle anderen sichtbaren Objekte müssen von ihr abgeleitet werden. - Diese Klasse erledigt Aufgaben wie: minimales Neuzeichnen, Renderreihenfolge, Objekthierachie. - Alle BS_RenderObject Instanzen werden von einem BS_RenderObjektManager in einem Baum verwaltet. + @brief Dieses ist die Klasse die sämtliche sichtbaren Objekte beschreibt. + + Alle anderen sichtbaren Objekte müssen von ihr abgeleitet werden. + Diese Klasse erledigt Aufgaben wie: minimales Neuzeichnen, Renderreihenfolge, Objekthierachie. + Alle BS_RenderObject Instanzen werden von einem BS_RenderObjektManager in einem Baum verwaltet. */ -class BS_RenderObject -{ +class BS_RenderObject { public: // Konstanten // ---------- - enum TYPES - { + enum TYPES { /// Das Wurzelobjekt. Siehe BS_RenderObjectManager TYPE_ROOT, /// Ein Image. Siehe BS_Bitmap. @@ -102,111 +100,111 @@ public: /** @brief Erzeugt ein Bitmap als Kinderobjekt des Renderobjektes. - @param FileName der Dateiname der Quellbilddatei - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @param FileName der Dateiname der Quellbilddatei + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ BS_RenderObjectPtr<BS_Bitmap> AddBitmap(const Common::String &FileName); /** - @brief Erzeugt ein veränderbares Bitmap als Kinderobjekt des Renderobjektes. - @param Width die Breite des Bitmaps - @param Height die Höhe des Bitmaps - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @brief Erzeugt ein veränderbares Bitmap als Kinderobjekt des Renderobjektes. + @param Width die Breite des Bitmaps + @param Height die Höhe des Bitmaps + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ BS_RenderObjectPtr<BS_Bitmap> AddDynamicBitmap(unsigned int Width, unsigned int Height); /** @brief Erzeugt eine Animation auf Basis einer Animationsdatei als Kinderobjekt des Renderobjektes. - @param FileName der Dateiname der Quelldatei - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @param FileName der Dateiname der Quelldatei + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ BS_RenderObjectPtr<BS_Animation> AddAnimation(const Common::String &FileName); /** - @brief Erzeugt eine Animation auf Basis eines Animationstemplate als Kinderobjekt des Renderobjektes. - @param pAnimationTemplate ein Pointer auf das Animationstemplate - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. - @remark Das Renderobjekt übernimmt die Verwaltung des Animationstemplate. + @brief Erzeugt eine Animation auf Basis eines Animationstemplate als Kinderobjekt des Renderobjektes. + @param pAnimationTemplate ein Pointer auf das Animationstemplate + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @remark Das Renderobjekt übernimmt die Verwaltung des Animationstemplate. */ BS_RenderObjectPtr<BS_Animation> AddAnimation(const BS_AnimationTemplate &AnimationTemplate); /** @brief Erzeugt ein neues Farbpanel als Kinderobjekt des Renderobjektes. - @param Width die Breite des Panels - @param Height die Höhe des Panels - @param Color die Farbe des Panels.<br> - Der Standardwert ist Schwarz (BS_RGB(0, 0, 0)). - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @param Width die Breite des Panels + @param Height die Höhe des Panels + @param Color die Farbe des Panels.<br> + Der Standardwert ist Schwarz (BS_RGB(0, 0, 0)). + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ - + BS_RenderObjectPtr<BS_Panel> AddPanel(int Width, int Height, unsigned int Color = 0xff000000); /** @brief Erzeugt ein Textobjekt als Kinderobjekt des Renderobjektes. - @param Font der Dateiname des zu verwendenen Fonts - @param Text der anzuzeigende Text.<br> - Der Standardwert ist "". - @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> - Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @param Font der Dateiname des zu verwendenen Fonts + @param Text der anzuzeigende Text.<br> + Der Standardwert ist "". + @return Gibt einen BS_RenderObjectPtr auf das erzeugte Objekt zurück.<br> + Falls ein Fehler aufgetreten ist wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ BS_RenderObjectPtr<BS_Text> AddText(const Common::String &Font, const Common::String &Text = ""); // Cast-Methoden // ------------- /** - @brief Castet das Objekt zu einem BS_Bitmap-Objekt wenn zulässig. - @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> - Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @brief Castet das Objekt zu einem BS_Bitmap-Objekt wenn zulässig. + @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> + Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ - BS_RenderObjectPtr<BS_Bitmap> ToBitmap() - { - if (m_Type == TYPE_STATICBITMAP || m_Type == TYPE_DYNAMICBITMAP) return BS_RenderObjectPtr<BS_Bitmap>(this); else return BS_RenderObjectPtr<BS_Bitmap>(); + BS_RenderObjectPtr<BS_Bitmap> ToBitmap() { + if (m_Type == TYPE_STATICBITMAP || m_Type == TYPE_DYNAMICBITMAP) return BS_RenderObjectPtr<BS_Bitmap>(this); + else return BS_RenderObjectPtr<BS_Bitmap>(); } /** - @brief Castet das Objekt zu einem BS_Animation-Objekt wenn zulässig. - @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> - Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @brief Castet das Objekt zu einem BS_Animation-Objekt wenn zulässig. + @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> + Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ - BS_RenderObjectPtr<BS_Animation> ToAnimation() - { - if (m_Type == TYPE_ANIMATION) return BS_RenderObjectPtr<BS_Animation>(this); else return BS_RenderObjectPtr<BS_Animation>(); + BS_RenderObjectPtr<BS_Animation> ToAnimation() { + if (m_Type == TYPE_ANIMATION) return BS_RenderObjectPtr<BS_Animation>(this); + else return BS_RenderObjectPtr<BS_Animation>(); } /** - @brief Castet das Objekt zu einem BS_Panel-Objekt wenn zulässig. - @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> - Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @brief Castet das Objekt zu einem BS_Panel-Objekt wenn zulässig. + @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> + Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ - BS_RenderObjectPtr<BS_Panel> ToPanel() - { - if (m_Type == TYPE_PANEL) return BS_RenderObjectPtr<BS_Panel>(this); else return BS_RenderObjectPtr<BS_Panel>(); + BS_RenderObjectPtr<BS_Panel> ToPanel() { + if (m_Type == TYPE_PANEL) return BS_RenderObjectPtr<BS_Panel>(this); + else return BS_RenderObjectPtr<BS_Panel>(); } /** - @brief Castet das Object zu einem BS_Text-Objekt wenn zulässig. - @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> - Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. + @brief Castet das Object zu einem BS_Text-Objekt wenn zulässig. + @return Gibt einen BS_RenderObjectPtr auf das Objekt zurück.<br> + Falls der Cast nicht zulässig ist, wird ein ungültiger BS_RenderObjectPtr zurückgegeben. */ - BS_RenderObjectPtr<BS_Text> ToText() - { - if (m_Type == TYPE_TEXT) return BS_RenderObjectPtr<BS_Text>(this); else return BS_RenderObjectPtr<BS_Text>(); + BS_RenderObjectPtr<BS_Text> ToText() { + if (m_Type == TYPE_TEXT) return BS_RenderObjectPtr<BS_Text>(this); + else return BS_RenderObjectPtr<BS_Text>(); } // Konstruktor / Desktruktor // ------------------------- /** - @brief Erzeugt ein neues BS_RenderObject. - @param pKernel ein Pointer auf den Kernel - @param pParent ein Pointer auf das Elternobjekt des neuen Objektes im Objektbaum.<br> - Der Pointer darf nicht NULL sein. - @param Type der Objekttyp<br> - Der Typ BS_RenderObject::TYPE_ROOT ist nicht zulässig. Wurzelknoten müssen mit dem alternativen Konstruktor erzeugt - werden. - @param Handle das Handle, welches dem Objekt zugewiesen werden soll.<br> - Dieser Parameter erzwingt ein bestimmtes Handle für das neue Objekt, oder wählt automatisch ein Handle, wenn der Parameter 0 ist. - Ist das gewünschte Handle bereits vergeben, gibt GetInitSuccess() false zurück.<br> - Der Standardwert ist 0. - @remark Nach dem Aufruf des Konstruktors kann über die Methode GetInitSuccess() abgefragt werden, ob die Konstruktion erfolgreich war.<br> - Es ist nicht notwendig alle BS_RenderObject Instanzen einzeln zu löschen. Dieses geschiet automatisch beim Löschen eines - Vorfahren oder beim Löschen des zuständigen BS_RenderObjectManager. + @brief Erzeugt ein neues BS_RenderObject. + @param pKernel ein Pointer auf den Kernel + @param pParent ein Pointer auf das Elternobjekt des neuen Objektes im Objektbaum.<br> + Der Pointer darf nicht NULL sein. + @param Type der Objekttyp<br> + Der Typ BS_RenderObject::TYPE_ROOT ist nicht zulässig. Wurzelknoten müssen mit dem alternativen Konstruktor erzeugt + werden. + @param Handle das Handle, welches dem Objekt zugewiesen werden soll.<br> + Dieser Parameter erzwingt ein bestimmtes Handle für das neue Objekt, oder wählt automatisch ein Handle, wenn der Parameter 0 ist. + Ist das gewünschte Handle bereits vergeben, gibt GetInitSuccess() false zurück.<br> + Der Standardwert ist 0. + @remark Nach dem Aufruf des Konstruktors kann über die Methode GetInitSuccess() abgefragt werden, ob die Konstruktion erfolgreich war.<br> + Es ist nicht notwendig alle BS_RenderObject Instanzen einzeln zu löschen. Dieses geschiet automatisch beim Löschen eines + Vorfahren oder beim Löschen des zuständigen BS_RenderObjectManager. */ BS_RenderObject(BS_RenderObjectPtr<BS_RenderObject> pParent, TYPES Type, unsigned int Handle = 0); virtual ~BS_RenderObject(); @@ -214,119 +212,145 @@ public: // Interface // --------- /** - @brief Rendert des Objekt und alle seine Unterobjekte. - @return Gibt false zurück, falls beim Rendern ein Fehler aufgetreten ist. - @remark Vor jedem Aufruf dieser Methode muss ein Aufruf von UpdateObjectState() erfolgt sein. - Dieses kann entweder direkt geschehen oder durch den Aufruf von UpdateObjectState() an einem Vorfahren-Objekt.<br> - Diese Methode darf nur von BS_RenderObjectManager aufgerufen werden. + @brief Rendert des Objekt und alle seine Unterobjekte. + @return Gibt false zurück, falls beim Rendern ein Fehler aufgetreten ist. + @remark Vor jedem Aufruf dieser Methode muss ein Aufruf von UpdateObjectState() erfolgt sein. + Dieses kann entweder direkt geschehen oder durch den Aufruf von UpdateObjectState() an einem Vorfahren-Objekt.<br> + Diese Methode darf nur von BS_RenderObjectManager aufgerufen werden. */ - bool Render(); + bool Render(); /** - @brief Bereitet das Objekt und alle seine Unterobjekte auf einen Rendervorgang vor. - Hierbei werden alle Dirty-Rectangles berechnet und die Renderreihenfolge aktualisiert. - @return Gibt false zurück, falls ein Fehler aufgetreten ist. - @remark Diese Methode darf nur von BS_RenderObjectManager aufgerufen werden. + @brief Bereitet das Objekt und alle seine Unterobjekte auf einen Rendervorgang vor. + Hierbei werden alle Dirty-Rectangles berechnet und die Renderreihenfolge aktualisiert. + @return Gibt false zurück, falls ein Fehler aufgetreten ist. + @remark Diese Methode darf nur von BS_RenderObjectManager aufgerufen werden. */ - bool UpdateObjectState(); + bool UpdateObjectState(); /** - @brief Löscht alle Kinderobjekte. + @brief Löscht alle Kinderobjekte. */ void DeleteAllChildren(); // Accessor-Methoden // ----------------- /** - @brief Setzt die Position des Objektes. - @param X die neue X-Koordinate des Objektes relativ zum Elternobjekt. - @param Y die neue Y-Koordinate des Objektes relativ zum Elternobjekt. + @brief Setzt die Position des Objektes. + @param X die neue X-Koordinate des Objektes relativ zum Elternobjekt. + @param Y die neue Y-Koordinate des Objektes relativ zum Elternobjekt. */ virtual void SetPos(int X, int Y); /** - @brief Setzt die Position des Objektes auf der X-Achse. - @param X die neue X-Koordinate des Objektes relativ zum Elternobjekt. + @brief Setzt die Position des Objektes auf der X-Achse. + @param X die neue X-Koordinate des Objektes relativ zum Elternobjekt. */ virtual void SetX(int X); /** - @brief Setzt die Position des Objektes auf der Y-Achse. - @param Y die neue Y-Koordinate des Objektes relativ zum Elternobjekt. + @brief Setzt die Position des Objektes auf der Y-Achse. + @param Y die neue Y-Koordinate des Objektes relativ zum Elternobjekt. */ virtual void SetY(int Y); /** - @brief Setzt den Z-Wert des Objektes. - @param Z der neue Z-Wert des Objektes relativ zum Elternobjekt<br> - Negative Z-Werte sind nicht zulässig. - @remark Der Z-Wert legt die Renderreihenfolge der Objekte fest. Objekte mit niedrigem Z-Wert werden vor Objekten mit höherem - Z-Wert gezeichnet. Je höher der Z-Wert desto weiter "vorne" liegt ein Objekt also.<br> - Wie alle andere Attribute ist auch dieses relativ zum Elternobjekt, ein Kinderobjekt kann also nie unter seinem - Elternobjekt liegen, auch wenn es einen Z-Wert von 0 hat. + @brief Setzt den Z-Wert des Objektes. + @param Z der neue Z-Wert des Objektes relativ zum Elternobjekt<br> + Negative Z-Werte sind nicht zulässig. + @remark Der Z-Wert legt die Renderreihenfolge der Objekte fest. Objekte mit niedrigem Z-Wert werden vor Objekten mit höherem + Z-Wert gezeichnet. Je höher der Z-Wert desto weiter "vorne" liegt ein Objekt also.<br> + Wie alle andere Attribute ist auch dieses relativ zum Elternobjekt, ein Kinderobjekt kann also nie unter seinem + Elternobjekt liegen, auch wenn es einen Z-Wert von 0 hat. */ virtual void SetZ(int Z); /** - @brief Setzt die Sichtbarkeit eine Objektes. - @param Visible der neue Sichtbarkeits-Zustand des Objektes<br> - true entspricht sichtbar, false entspricht unsichtbar. + @brief Setzt die Sichtbarkeit eine Objektes. + @param Visible der neue Sichtbarkeits-Zustand des Objektes<br> + true entspricht sichtbar, false entspricht unsichtbar. */ virtual void SetVisible(bool Visible); /** - @brief Gibt die Position des Objektes auf der X-Achse relativ zum Elternobjekt zurück. + @brief Gibt die Position des Objektes auf der X-Achse relativ zum Elternobjekt zurück. */ - virtual int GetX() const { return m_X; } + virtual int GetX() const { + return m_X; + } /** - @brief Gibt die Position des Objektes auf der Y-Achse relativ zum Elternobjekt zurück. + @brief Gibt die Position des Objektes auf der Y-Achse relativ zum Elternobjekt zurück. */ - virtual int GetY() const { return m_Y; } + virtual int GetY() const { + return m_Y; + } /** - @brief Gibt die absolute Position des Objektes auf der X-Achse zurück. + @brief Gibt die absolute Position des Objektes auf der X-Achse zurück. */ - virtual int GetAbsoluteX() const { return m_AbsoluteX; } + virtual int GetAbsoluteX() const { + return m_AbsoluteX; + } /** - @brief Gibt die absolute Position des Objektes auf der Y-Achse zurück. + @brief Gibt die absolute Position des Objektes auf der Y-Achse zurück. */ - virtual int GetAbsoluteY() const { return m_AbsoluteY; } + virtual int GetAbsoluteY() const { + return m_AbsoluteY; + } /** - @brief Gibt den Z-Wert des Objektes relativ zum Elternobjekt zurück. - @remark Der Z-Wert legt die Renderreihenfolge der Objekte fest. Objekte mit niedrigem Z-Wert werden vor Objekten mit höherem - Z-Wert gezeichnet. Je höher der Z-Wert desto weiter "vorne" liegt ein Objekt also.<br> - Wie alle andere Attribute ist auch dieses relativ zum Elternobjekt, ein Kinderobjekt kann also nie unter seinem - Elternobjekt liegen, auch wenn es einen Z-Wert von 0 hat. + @brief Gibt den Z-Wert des Objektes relativ zum Elternobjekt zurück. + @remark Der Z-Wert legt die Renderreihenfolge der Objekte fest. Objekte mit niedrigem Z-Wert werden vor Objekten mit höherem + Z-Wert gezeichnet. Je höher der Z-Wert desto weiter "vorne" liegt ein Objekt also.<br> + Wie alle andere Attribute ist auch dieses relativ zum Elternobjekt, ein Kinderobjekt kann also nie unter seinem + Elternobjekt liegen, auch wenn es einen Z-Wert von 0 hat. */ - int GetZ() const { return m_Z; } + int GetZ() const { + return m_Z; + } /** - @brief Gibt die Breite des Objektes zurück. + @brief Gibt die Breite des Objektes zurück. */ - int GetWidth() const { return m_Width; } + int GetWidth() const { + return m_Width; + } /** - @brief Gibt die Höhe des Objektes zurück. + @brief Gibt die Höhe des Objektes zurück. */ - int GetHeight() const { return m_Height; } + int GetHeight() const { + return m_Height; + } /** - @brief Gibt den Sichtbarkeitszustand des Objektes zurück. - @return Gibt den Sichtbarkeitszustand des Objektes zurück.<br> - true entspricht sichtbar, false entspricht unsichtbar. + @brief Gibt den Sichtbarkeitszustand des Objektes zurück. + @return Gibt den Sichtbarkeitszustand des Objektes zurück.<br> + true entspricht sichtbar, false entspricht unsichtbar. */ - bool IsVisible() const { return m_Visible; } + bool IsVisible() const { + return m_Visible; + } /** - @brief Gibt den Typ des Objektes zurück. + @brief Gibt den Typ des Objektes zurück. */ - TYPES GetType() const { return m_Type; } + TYPES GetType() const { + return m_Type; + } /** - @brief Gibt zurück, ob das Objekt erfolgreich initialisiert wurde. - @remark Hässlicher Workaround um das Problem, dass Konstruktoren keine Rückgabewerte haben. + @brief Gibt zurück, ob das Objekt erfolgreich initialisiert wurde. + @remark Hässlicher Workaround um das Problem, dass Konstruktoren keine Rückgabewerte haben. */ - bool GetInitSuccess() const { return m_InitSuccess; } + bool GetInitSuccess() const { + return m_InitSuccess; + } /** - @brief Gibt die Bounding-Box des Objektes zurück. - @remark Diese Angabe erfolgt ausnahmsweise in Bildschirmkoordianten und nicht relativ zum Elternobjekt. + @brief Gibt die Bounding-Box des Objektes zurück. + @remark Diese Angabe erfolgt ausnahmsweise in Bildschirmkoordianten und nicht relativ zum Elternobjekt. */ - const BS_Rect& GetBBox() const { return m_BBox; } + const BS_Rect &GetBBox() const { + return m_BBox; + } /** - @brief Stellt sicher, dass das Objekt im nächsten Frame neu gezeichnet wird. + @brief Stellt sicher, dass das Objekt im nächsten Frame neu gezeichnet wird. */ - void ForceRefresh() { m_RefreshForced = true; }; + void ForceRefresh() { + m_RefreshForced = true; + }; /** - @brief Gibt das Handle des Objekte zurück. + @brief Gibt das Handle des Objekte zurück. */ - unsigned int GetHandle() const { return m_Handle; } + unsigned int GetHandle() const { + return m_Handle; + } // Persistenz-Methoden // ------------------- @@ -341,28 +365,28 @@ public: protected: // Typen // ----- - typedef Common::List<BS_RenderObjectPtr<BS_RenderObject> > RENDEROBJECT_LIST; - typedef Common::List<BS_RenderObjectPtr<BS_RenderObject> >::iterator RENDEROBJECT_ITER; - - int m_X; ///< Die X-Position des Objektes relativ zum Eltern-Objekt - int m_Y; ///< Die Y-Position des Objektes relativ zum Eltern-Objekt - int m_AbsoluteX; ///< Die absolute X-Position des Objektes - int m_AbsoluteY; ///< Die absolute Y-Position des Objektes - int m_Z; ///< Der Z-Wert des Objektes relativ zum Eltern-Objekt - int m_Width; ///< Die Breite des Objektes - int m_Height; ///< Die Höhe des Objektes - bool m_Visible; ///< Ist true, wenn das Objekt sichtbar ist - bool m_ChildChanged; ///< Ist true, wenn sich ein Kinderobjekt verändert hat - TYPES m_Type; ///< Der Objekttyp - bool m_InitSuccess; ///< Ist true, wenn Objekt erfolgreich intialisiert werden konnte - BS_Rect m_BBox; ///< Die Bounding-Box des Objektes in Bildschirmkoordinaten + typedef Common::List<BS_RenderObjectPtr<BS_RenderObject> > RENDEROBJECT_LIST; + typedef Common::List<BS_RenderObjectPtr<BS_RenderObject> >::iterator RENDEROBJECT_ITER; + + int m_X; ///< Die X-Position des Objektes relativ zum Eltern-Objekt + int m_Y; ///< Die Y-Position des Objektes relativ zum Eltern-Objekt + int m_AbsoluteX; ///< Die absolute X-Position des Objektes + int m_AbsoluteY; ///< Die absolute Y-Position des Objektes + int m_Z; ///< Der Z-Wert des Objektes relativ zum Eltern-Objekt + int m_Width; ///< Die Breite des Objektes + int m_Height; ///< Die Höhe des Objektes + bool m_Visible; ///< Ist true, wenn das Objekt sichtbar ist + bool m_ChildChanged; ///< Ist true, wenn sich ein Kinderobjekt verändert hat + TYPES m_Type; ///< Der Objekttyp + bool m_InitSuccess; ///< Ist true, wenn Objekt erfolgreich intialisiert werden konnte + BS_Rect m_BBox; ///< Die Bounding-Box des Objektes in Bildschirmkoordinaten // Kopien der Variablen, die für die Errechnung des Dirty-Rects und zur Bestimmung der Objektveränderung notwendig sind - BS_Rect m_OldBBox; - int m_OldX; - int m_OldY; - int m_OldZ; - bool m_OldVisible; + BS_Rect m_OldBBox; + int m_OldX; + int m_OldY; + int m_OldZ; + bool m_OldVisible; /// Ein Pointer auf den BS_RenderObjektManager, der das Objekt verwaltet. BS_RenderObjectManager *m_ManagerPtr; @@ -370,13 +394,13 @@ protected: // Render-Methode // -------------- /** - @brief Einschubmethode, die den tatsächlichen Redervorgang durchführt. + @brief Einschubmethode, die den tatsächlichen Redervorgang durchführt. - Diese Methode wird von Render() aufgerufen um das Objekt darzustellen. - Diese Methode sollte von allen Klassen implementiert werden, die von BS_RederObject erben, um das Zeichnen umzusetzen. + Diese Methode wird von Render() aufgerufen um das Objekt darzustellen. + Diese Methode sollte von allen Klassen implementiert werden, die von BS_RederObject erben, um das Zeichnen umzusetzen. - @return Gibt false zurück, falls das Rendern fehlgeschlagen ist. - @remark + @return Gibt false zurück, falls das Rendern fehlgeschlagen ist. + @remark */ virtual bool DoRender() = 0; // { return true; }; @@ -393,27 +417,29 @@ protected: // / | \. // / | \. // Background Interface Maus - // / \ / | \. + // / \ / | \. // / \ / | \. // George Tür Icn1 Icn2 Icn3 - // + // // Wenn jetzt das Interface mit SetVisible() ausgeblendet würde, verschwinden auch die Icons, die sich im Interface // befinden. // Wenn der Hintergrund bewegt wird (Scrolling), bewegen sich auch die darauf befindlichen Gegenstände und Personen. /// Ein Pointer auf das Elternobjekt. - BS_RenderObjectPtr<BS_RenderObject> m_ParentPtr; + BS_RenderObjectPtr<BS_RenderObject> m_ParentPtr; /// Die Liste der Kinderobjekte nach der Renderreihenfolge geordnet - RENDEROBJECT_LIST m_Children; + RENDEROBJECT_LIST m_Children; /** - @brief Gibt einen Pointer auf den BS_RenderObjektManager zurück, der das Objekt verwaltet. + @brief Gibt einen Pointer auf den BS_RenderObjektManager zurück, der das Objekt verwaltet. */ - BS_RenderObjectManager* GetManager() const { return m_ManagerPtr; } + BS_RenderObjectManager *GetManager() const { + return m_ManagerPtr; + } /** - @brief Fügt dem Objekt ein neues Kinderobjekt hinzu. - @param pObject ein Pointer auf das einzufügende Objekt - @return Gibt false zurück, falls das Objekt nicht eingefügt werden konnte. + @brief Fügt dem Objekt ein neues Kinderobjekt hinzu. + @param pObject ein Pointer auf das einzufügende Objekt + @return Gibt false zurück, falls das Objekt nicht eingefügt werden konnte. */ bool AddObject(BS_RenderObjectPtr<BS_RenderObject> pObject); @@ -424,67 +450,69 @@ private: unsigned int m_Handle; /** - @brief Entfernt ein Objekt aus der Kinderliste. - @param pObject ein Pointer auf das zu entfernende Objekt - @return Gibt false zurück, falls das zu entfernende Objekt nicht in der Liste gefunden werden konnte. + @brief Entfernt ein Objekt aus der Kinderliste. + @param pObject ein Pointer auf das zu entfernende Objekt + @return Gibt false zurück, falls das zu entfernende Objekt nicht in der Liste gefunden werden konnte. */ - bool DetatchChildren(BS_RenderObjectPtr<BS_RenderObject> pObject); + bool DetatchChildren(BS_RenderObjectPtr<BS_RenderObject> pObject); /** - @brief Berechnet die Bounding-Box und registriert das Dirty-Rect beim BS_RenderObjectManager. + @brief Berechnet die Bounding-Box und registriert das Dirty-Rect beim BS_RenderObjectManager. */ - void UpdateBoxes(); + void UpdateBoxes(); /** - @brief Berechnet die Bounding-Box des Objektes. - @return Gibt die Bounding-Box des Objektes in Bildschirmkoordinaten zurück. + @brief Berechnet die Bounding-Box des Objektes. + @return Gibt die Bounding-Box des Objektes in Bildschirmkoordinaten zurück. */ BS_Rect CalcBoundingBox() const; /** - @brief Berechnet das Dirty-Rectangle des Objektes. - @return Gibt das Dirty-Rectangle des Objektes in Bildschirmkoordinaten zurück. + @brief Berechnet das Dirty-Rectangle des Objektes. + @return Gibt das Dirty-Rectangle des Objektes in Bildschirmkoordinaten zurück. */ BS_Rect CalcDirtyRect() const; /** - @brief Berechnet die absolute Position des Objektes. + @brief Berechnet die absolute Position des Objektes. */ void CalcAbsolutePos(int &X, int &Y) const; /** - @brief Berechnet die absolute Position des Objektes auf der X-Achse. + @brief Berechnet die absolute Position des Objektes auf der X-Achse. */ int CalcAbsoluteX() const; /** - @brief Berechnet die absolute Position des Objektes. + @brief Berechnet die absolute Position des Objektes. */ int CalcAbsoluteY() const; /** - @brief Sortiert alle Kinderobjekte nach ihrem Renderang. + @brief Sortiert alle Kinderobjekte nach ihrem Renderang. */ void SortRenderObjects(); /** - @brief Validiert den Zustand eines Objektes nachdem die durch die Veränderung verursachten Folgen abgearbeitet wurden. + @brief Validiert den Zustand eines Objektes nachdem die durch die Veränderung verursachten Folgen abgearbeitet wurden. */ - void ValidateObject(); + void ValidateObject(); /** - @brief Berechnet die absolute Position des Objektes und aller seiner Kinderobjekte neu. + @brief Berechnet die absolute Position des Objektes und aller seiner Kinderobjekte neu. - Diese Methode muss aufgerufen werden, wann immer sich die Position des Objektes verändert. Damit die Kinderobjekte immer die - richtige absolute Position haben. + Diese Methode muss aufgerufen werden, wann immer sich die Position des Objektes verändert. Damit die Kinderobjekte immer die + richtige absolute Position haben. */ void UpdateAbsolutePos(); /** - @brief Teilt dem Objekt mit, dass sich eines seiner Kinderobjekte dahingehend verändert hat, die eine erneute Bestimmung der - Rendereihenfolge verlangt. + @brief Teilt dem Objekt mit, dass sich eines seiner Kinderobjekte dahingehend verändert hat, die eine erneute Bestimmung der + Rendereihenfolge verlangt. */ - void SignalChildChange() { m_ChildChanged = true; } + void SignalChildChange() { + m_ChildChanged = true; + } /** - @brief Berechnet des Schnittrechteck der Bounding-Box des Objektes mit einem anderen Objekt. - @param pObjekt ein Pointer auf das Objekt mit dem geschnitten werden soll - @param Result das Ergebnisrechteck - @return Gibt false zurück, falls sich die Objekte gar nicht schneiden. + @brief Berechnet des Schnittrechteck der Bounding-Box des Objektes mit einem anderen Objekt. + @param pObjekt ein Pointer auf das Objekt mit dem geschnitten werden soll + @param Result das Ergebnisrechteck + @return Gibt false zurück, falls sich die Objekte gar nicht schneiden. */ - bool GetObjectIntersection(BS_RenderObjectPtr<BS_RenderObject> pObject, BS_Rect& Result); + bool GetObjectIntersection(BS_RenderObjectPtr<BS_RenderObject> pObject, BS_Rect &Result); /** - @brief Vergleichsoperator der auf Objektpointern basiert statt auf Objekten. - @remark Diese Methode wird fürs Sortieren der Kinderliste nach der Rendereihenfolge benutzt. + @brief Vergleichsoperator der auf Objektpointern basiert statt auf Objekten. + @remark Diese Methode wird fürs Sortieren der Kinderliste nach der Rendereihenfolge benutzt. */ static bool Greater(const BS_RenderObjectPtr<BS_RenderObject> lhs, const BS_RenderObjectPtr<BS_RenderObject> rhs); }; |