aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/gfx/renderobject.h
diff options
context:
space:
mode:
authorEugene Sandulenko2010-08-06 13:13:25 +0000
committerEugene Sandulenko2010-10-12 22:35:55 +0000
commit47904bc7b2992189bb554833f00a79ff0fea9fb8 (patch)
tree1cec51758c6741b970bd064fafee77607b9f884f /engines/sword25/gfx/renderobject.h
parentca17def625154e5f758b797e4fc48c76b0566320 (diff)
downloadscummvm-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.h444
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);
};