class
#include <Spore ModAPI/Spore/UTFWin/Window.h>
Window
Base classes
- class ILayoutElement
- This class represents an element that is part of a user interfaces.
- class IWindow
- An interface that represents a component in the user interface.
Derived classes
- class UI::Minimap
- class InteractiveWindow
- class SporeAnimatedIconWin
Public static variables
Constructors, destructors, conversion operators
Public functions
- auto AddRef() -> int override
- auto Release() -> int override
-
auto Cast(uint32_
t type) const -> void* override - auto SetSerializer(Serializer& dst) -> void override
-
auto GetProxyID() const -> uint32_
t override - Returns the ID that identifies this type of element in a SPUI file.
- auto GetParent() const -> IWindow* override
- Returns the parent IWindow of this window, or nullptr if it has no parent window.
- auto GetWindowManager() const -> IWindowManager* override
- Returns the WindowManager that is operating on this window.
- auto func6() const -> int override
-
auto GetControlID() const -> uint32_
t override - Sets the unique ID of this object.
-
auto GetCommandID() const -> uint32_
t override - Get the message ID sent by this window.
-
auto GetCursorID() const -> uint32_
t override - Returns the ID which assigns a cursor to this window.
- auto GetFlags() const -> WindowFlags override
- Gets the current window flags.
- auto GetState() const -> int override
- Gets the current state (selected, pressed, mouse hover, etc) of this window.
- auto GetShadeColor() const -> int override
- Returns the color modulation value.
-
auto GetArea() const -> const Math::
Rectangle& override - Gets the rectangular extent of this window, relative to the window's parent.
-
auto GetRealArea() const -> const Math::
Rectangle& override - Gets the real rectangular extent of this window, in window coordinates.
-
auto GetCaption() const -> const char16_
t* override - Returns the text contents or title of the window.
-
auto GetTextFontID() const -> uint32_
t override - Returns the text font style ID used in this window.
-
auto func17() const -> const char16_
t* override - auto func18() const -> int override
- auto func19() const -> int override
-
auto SetControlID(uint32_
t controlID) -> void override - Sets the unique ID of this object.
-
auto SetCommandID(uint32_
t commandID) -> void override - Set the message ID sent by this window.
- auto SetState(int state) -> void override
- Sets the current state (selected, pressed, mouse hover, etc) of this window.
- auto SetShadeColor(Color color) -> void override
- Returns the color modulation value.
-
auto SetArea(const Math::
Rectangle& area) -> void override - Sets the rectangular extent of this window.
- auto SetLocation(float fX, float fY) -> void override
- Sets the location of this window, relative to its parent.
- auto SetSize(float fWidth, float fHeight) -> void override
- Assigns the width and height of this window.
-
auto SetLayoutArea(const Math::
Rectangle& layoutArea) -> void override - Sets the area that this component should have, relative to its parent window, after all layout styles are applied.
- auto SetLayoutLocation(float fX, float fY) -> void override
- Assigns the location, relative to the parent window, that this window should have after all layouts are applied.
- auto SetLayoutSize(float fWidth, float fHeight) -> void override
- Assigns the width and height that this window should have after all layouts are applied.
-
auto SetCursorID(uint32_
t id) -> void override - Sets the ID which assigns a cursor to this window.
- auto SetFlag(WindowFlags nFlag, bool bValue) -> void override
- Assigns the given value to the specified window flag.
-
auto SetCaption(const char16_
t* pCaption) -> void override - Assigns the text contents or title of the window.
-
auto SetTextFontID(uint32_
t styleID) -> void override - Sets the text font style ID used in this window.
- auto func34(int) -> void override
- auto func35(int) -> void override
- auto Invalidate() -> int override
- auto Revalidate() -> void override
- Updates the real area of this window and all its children, using the 'area' property and applying all the ILayoutStyle objects (added as IWinProc) in this window.
- auto InvalidateTransform() -> int override
- auto func39() -> int override
- auto func40() -> int override
- auto GetFillColor() const -> int override
- Returns the fill color of this window.
- auto GetDrawable() const -> IDrawable* override
- Returns the fill drawable of this window.
- auto SetFillColor(Color color) -> void override
- Sets the fill color of this window.
- auto SetDrawable(IDrawable* drawable) -> void override
- Sets the fill drawable of this window.
- auto func45(int) -> int override
- auto func46(int, int) -> int override
-
auto ContainsPoint(struct Math::
Point) -> bool override -
auto ToGlobalCoordinates(struct Math::
Point) -> Math:: Point override -
auto ToLocalCoordinates(struct Math::
Point) -> Math:: Point override -
auto ToLocalCoordinates2(struct Math::
Point, Math:: Point& dst) -> bool override - auto GetChildrenBegin() -> IWindowList_t::iterator override
- Returns the begin iterator of the list of children windows contained in this window.
- auto GetChildrenEnd() -> IWindowList_t::iterator override
- Returns the end iterator of the list of children windows contained in this window.
- auto LocateChild(const IWindow* pChild) const -> IWindowList_t::iterator override
- Converts a pointer to a child window in the list back to an iterator, or returns end() if it is not part of the children list.
- auto AddWindow(IWindow* pWindow) -> void override
- Adds the given window to this IWindow's children.
- auto RemoveWindow(IWindow* pWindow) -> void override
- Removes the given window from this IWindow's children.
- auto DisposeWindowFamily(IWindow* pChildWindow) -> void override
- Disposes the given window and all its hierarchy.
- auto DisposeAllWindowFamilies() -> void override
- Disposes all the children windows and all their hierarchy.
- auto BringToFront(IWindow* pWindow) -> void override
- Moves the specified child window at the front of the rest of its siblings, so it is the last one to be rendered.
- auto SendToBack(IWindow* pWindow) -> void override
- Moves the specified child window at the back of the rest of its siblings, so it is the first one to be rendered.
-
auto FindWindowByID(uint32_
t controlID, bool bRecursive) -> IWindow* override - Returns the first child window that has the given controlID.
-
auto FindWindowTypeByID(uint32_
t controlID, uint32_ t type, bool bRecursive) -> IWindow* override - Returns the first child window that has the given controlID and is of the given type.
- auto IsAncestorOf(const IWindow* pChildWindow) -> bool override
- Checks if the given window is contained in the component hierarchy of this IWindow.
- auto func63(int index) -> bool override
- auto func64(int index) -> bool override
- auto AddWinProc(IWinProc* pWinProc) -> void override
- Adds the given IWinProc at the end of this window's list.
- auto RemoveWinProc(IWinProc* pWinProc) -> void override
- Removes the given IWinProc from this window's list.
- auto GetNextWinProc(const IWinProc* pWinProc) const -> IWinProc* override
- Gets the IWinProc in this window that follows the given procedure.
- auto func68(int) -> int override
- auto SendMsg(Message& msg) -> bool override
- Sends the given message through this window, using this window as the source.
- auto GetComponentName() const -> const char* override
- Returns the name of this component type (e.g.
Protected types
- struct UnkMatrix4
- using IWinProcList_t = eastl::list<eastl::pair<IWinProcPtr, int>, FixedPoolAllocatorAdapter>
Protected functions
- auto Initialize() -> bool virtual
- A function that initializes this window.
- auto Dispose() -> bool virtual
- A function that disposes this window, preparing it to be deleted.
-
auto DoMessage(const UTFWin::
Message& msg) -> bool virtual - A function called every time a message arrives to this window.
- auto OnPaint(UIRenderer* pRenderer) -> bool virtual
- A method called every time this window needs to be painted.
Protected variables
- int field_10
- int field_14
- int field_18
- int field_1C
- int field_20
- int field_24
- int mnRefCount
- int mnFlags
- bool field_30
-
int8_
t field_31 - IWindowManager* mpWindowManager
- WindowPtr mpParentWindow
-
IWindowList_
t mChildrenWindows - FixedPoolAllocator mPoolAllocator
-
IWinProcList_
t mWinProcs - int field_74
- int field_78
- int field_7C
-
uint32_
t mControlID -
uint32_
t mCommandID -
Math::
Rectangle mRealArea -
Math::
Rectangle mArea -
uint32_
t mCursorID - int mnStateFlags
- eastl::string16 mCaption
-
uint32_
t mTextFontID - UnkMatrix4 field_C4
- UnkMatrix4 field_108
- UnkMatrix4 field_14C
- UnkMatrix4 field_190
- int field_1D4
-
Math::
Color mShadeColor -
Math::
Color mFillColor - IDrawablePtr mpDrawable
- ObjectPtr field_1E4
- ObjectPtr field_1E8
- eastl::hash_map<int, int> field_1EC
Function documentation
IWindowManager* UTFWin:: Window:: GetWindowManager() const override
Returns the WindowManager that is operating on this window.
Returns | A pointer to the WindowManager being used in this window. |
---|
uint32_ t UTFWin:: Window:: GetControlID() const override
Sets the unique ID of this object.
Returns | The value of the 'controlID' property. |
---|
This ID is used to identfy windows, as it is the one used by FindWindowByID(). This ID can also be used on message handling, to check what window raised the message.
uint32_ t UTFWin:: Window:: GetCommandID() const override
Get the message ID sent by this window.
Returns | The value of the 'commandID' property. |
---|
WindowFlags UTFWin:: Window:: GetFlags() const override
Gets the current window flags.
Returns | The value of the 'flags' property. |
---|
This can be used, for example, to check if a window is visible:
IWindow* pWindow = ....; if (pWindow->GetFlags() & kWinFlagVisible) ...
int UTFWin:: Window:: GetShadeColor() const override
Returns the color modulation value.
Returns | The integer color representation of the value of the 'shadeColor' property. |
---|
This color acts as a tint: after the window is painted, it gets multiplied by this color.
const Math:: Rectangle& UTFWin:: Window:: GetArea() const override
Gets the rectangular extent of this window, relative to the window's parent.
Returns | The area of this window, in screen coordinates. |
---|
Note this is the 'area' property, but the real area of the window might be different depending on its parent and the IWinProcs operating in this window.
const Math:: Rectangle& UTFWin:: Window:: GetRealArea() const override
Gets the real rectangular extent of this window, in window coordinates.
Returns | The real Math:: |
---|
This has all the IWinProcs and parent position applied, so this is the real area of the window that gets painted onto the screen.
const char16_ t* UTFWin:: Window:: GetCaption() const override
Returns the text contents or title of the window.
Returns | The char16_t* caption used in this window. |
---|
This value might be used or not depending on the implementation and type of window.
uint32_ t UTFWin:: Window:: GetTextFontID() const override
Returns the text font style ID used in this window.
Returns | The text font ID used in this window. |
---|
This value might be used or not depending on the implementation and type of window.
void UTFWin:: Window:: SetControlID(uint32_ t controlID) override
Sets the unique ID of this object.
Parameters | |
---|---|
controlID | The new value of the 'controlID' property. |
This ID is used to identify windows, as it is the one used by FindWindowByID(). This ID can also be used on message handling, to check what window raised the message.
void UTFWin:: Window:: SetCommandID(uint32_ t commandID) override
Set the message ID sent by this window.
Parameters | |
---|---|
commandID | The new value of the 'commandID' property. |
void UTFWin:: Window:: SetShadeColor(Color color) override
Returns the color modulation value.
Parameters | |
---|---|
color | The color to use as the 'shadeColor' property. |
This color acts as a tint: after the window is painted, it gets multiplied by this color.
void UTFWin:: Window:: SetArea(const Math:: Rectangle& area) override
Sets the rectangular extent of this window.
Parameters | |
---|---|
area | The new value of the 'area' property. |
Note that this will only affect the 'area' property of the window; the real area might use these values differently depending on the IWinProc objects operating on this window (e.g. SimpleLayout). Calling this method effectively calls the Revalidate() method, which ensures the real area of the window is updated using the new values.
void UTFWin:: Window:: SetLocation(float fX,
float fY) override
Sets the location of this window, relative to its parent.
Parameters | |
---|---|
fX | The X coordinate to use in the 'area' property. |
fY | The Y coordinate to use in the 'area' property. |
Note that this will only affect the 'area' property of the window; the real area might use these values differently depending on the IWinProc objects operating on this window (e.g. SimpleLayout). Calling this method effectively calls the Revalidate() method, which ensures the real area of the window is updated using the new values.
void UTFWin:: Window:: SetSize(float fWidth,
float fHeight) override
Assigns the width and height of this window.
Parameters | |
---|---|
fWidth | The width to use in the 'area' property. |
fHeight | The height to use in the 'area' property. |
Note that this will only affect the 'area' property of the window; the real area might use these values differently depending on the IWinProc objects operating on this window (e.g. SimpleLayout). Calling this method effectively calls the Revalidate() method, which ensures the real area of the window is updated using the new values.
void UTFWin:: Window:: SetLayoutArea(const Math:: Rectangle& layoutArea) override
Sets the area that this component should have, relative to its parent window, after all layout styles are applied.
Parameters | |
---|---|
layoutArea | The area this window should have. |
This will call the ILayoutStyle::
void UTFWin:: Window:: SetLayoutLocation(float fX,
float fY) override
Assigns the location, relative to the parent window, that this window should have after all layouts are applied.
Parameters | |
---|---|
fX | The X coordinate, relative to the parent, that this window's location should have. |
fY | The Y coordinate, relative to the parent, that this window's location should have. |
This will call the ILayoutStyle::
void UTFWin:: Window:: SetLayoutSize(float fWidth,
float fHeight) override
Assigns the width and height that this window should have after all layouts are applied.
Parameters | |
---|---|
fWidth | The width this window should have. |
fHeight | The height this window should have. |
This will call the ILayoutStyle::
void UTFWin:: Window:: SetCursorID(uint32_ t id) override
Sets the ID which assigns a cursor to this window.
The ID must have been loaded with cCursorManager::LoadCursor()
void UTFWin:: Window:: SetFlag(WindowFlags nFlag,
bool bValue) override
Assigns the given value to the specified window flag.
Parameters | |
---|---|
nFlag | The window flag whose value will be changed. |
bValue | The value that will be assigned to the flag. |
This can be used, for example, to toggle visibility:
IWindow* pWindow = ....; pWindow->SetFlag(kWinFlagVisible, false); // hide this window
void UTFWin:: Window:: SetCaption(const char16_ t* pCaption) override
Assigns the text contents or title of the window.
Parameters | |
---|---|
pCaption | The text to be used as caption. |
This value might be used or not depending on the implementation and type of window.
void UTFWin:: Window:: SetTextFontID(uint32_ t styleID) override
Sets the text font style ID used in this window.
Parameters | |
---|---|
styleID | The ID of the text font to use. |
This value might be used or not depending on the implementation and type of window. This method will not update the current text font.
int UTFWin:: Window:: GetFillColor() const override
Returns the fill color of this window.
Returns | The integer color representation of the value of the 'fillColor' property. |
---|
The fill color acts as a background color: when rendering the window, the area will be filled with the fill color and then the fill drawable will be drawn on top of it.
IDrawable* UTFWin:: Window:: GetDrawable() const override
Returns the fill drawable of this window.
Returns | The drawable used in this window. |
---|
When rendering the window, the area will be filled with the fill color and then the fill drawable will be drawn on top of it.
void UTFWin:: Window:: SetFillColor(Color color) override
Sets the fill color of this window.
Parameters | |
---|---|
color | The color to use as the 'fillColor' property. |
The fill color acts as a background color: when rendering the window, the area will be filled with the fill color and then the fill drawable will be drawn on top of it.
void UTFWin:: Window:: SetDrawable(IDrawable* drawable) override
Sets the fill drawable of this window.
When rendering the window, the area will be filled with the fill color and then the fill drawable will be drawn on top of it.
IWindowList_t::iterator UTFWin:: Window:: GetChildrenBegin() override
Returns the begin iterator of the list of children windows contained in this window.
Pair it with GetChildrenEnd() to iterate through the children. Children windows are listed according to their Z-index; that is, the first children is the one on front, and the last children is the one on the bottom.
IWindowList_t::iterator UTFWin:: Window:: GetChildrenEnd() override
Returns the end iterator of the list of children windows contained in this window.
Pair it with GetChildrenBegin() to iterate through the children. Children windows are listed according to their Z-index; that is, the first children is the one on front, and the last children is the one on the bottom.
IWindowList_t::iterator UTFWin:: Window:: LocateChild(const IWindow* pChild) const override
Converts a pointer to a child window in the list back to an iterator, or returns end() if it is not part of the children list.
Parameters | |
---|---|
pChild | The IWindow whose next sibling will be returned. |
Returns | The iterator to the next sibling of pChild. |
This can be used to check if a window is a direct child of this window, using "LocateChild(pChild) != GetChildrenEnd()
void UTFWin:: Window:: RemoveWindow(IWindow* pWindow) override
Removes the given window from this IWindow's children.
Parameters | |
---|---|
pWindow | The window to remove from this object's children. |
pWindow will be removed from its parent hierarchy even if its parent is not this object. The parent of pWindow will be set to nullptr.
void UTFWin:: Window:: DisposeWindowFamily(IWindow* pChildWindow) override
Disposes the given window and all its hierarchy.
Parameters | |
---|---|
pChildWindow | The IWindow to dispose. |
If pChildWindow is a child of this window, it will be removed from it. The pChildWindow hierarchy will be disposed even if it is not a child of this window.
void UTFWin:: Window:: DisposeAllWindowFamilies() override
Disposes all the children windows and all their hierarchy.
After this method is called, this window will not have any children.
void UTFWin:: Window:: BringToFront(IWindow* pWindow) override
Moves the specified child window at the front of the rest of its siblings, so it is the last one to be rendered.
Parameters | |
---|---|
pWindow | The child window to bring to the front. |
This is the equivalent to setting the Z-index to the highest. Note that the window will remain behind of windows with the flag kWinFlagAlwaysInFront set to true.
void UTFWin:: Window:: SendToBack(IWindow* pWindow) override
Moves the specified child window at the back of the rest of its siblings, so it is the first one to be rendered.
Parameters | |
---|---|
pWindow | The child window to send to the back. |
This is the equivalent to setting the Z-index to the lowest. Note that the window will remain behind of windows with the flag kWinFlagAlwaysInFront set to true.
IWindow* UTFWin:: Window:: FindWindowByID(uint32_ t controlID,
bool bRecursive) override
Returns the first child window that has the given controlID.
Parameters | |
---|---|
controlID | The controlID of the window to find. |
bRecursive | Whether the children hierarchy should be checked as well, true by default. |
Returns | The first window in the hierarchy that has the given controlID, or nullptr if there is no match. |
By default, this also checks on the children' children, so the controlID is searched in all the window hierarchy.
IWindow* UTFWin:: Window:: FindWindowTypeByID(uint32_ t controlID,
uint32_ t type,
bool bRecursive) override
Returns the first child window that has the given controlID and is of the given type.
Parameters | |
---|---|
controlID | The controlID of the window to find. |
type | The type of the window to find. It will be used calling Cast(type) on the match. |
bRecursive | Whether the children hierarchy should be checked as well, true by default. |
Returns | The first window in the hierarchy that has the given controlID and type, or nullptr if there is no match. |
The type is something like WinButton::TYPE, so it is safe to assume that the returned type will be a WinButton in this case. If a window with the given controlID is found but calling Cast(type) on it returns nullptr, nullptr will be returned (so it will stop searching). By default, this also checks on the children' children, so the controlID is searched in all the window hierarchy.
bool UTFWin:: Window:: IsAncestorOf(const IWindow* pChildWindow) override
Checks if the given window is contained in the component hierarchy of this IWindow.
Parameters | |
---|---|
pChildWindow | The child window to check. |
Returns | True if pChildWindow is contained in the hierarchy of this window, false otherwise. |
All the hierarchy will be checked, so the function can return true even if this window is not a direct parent of pChildWindow.
void UTFWin:: Window:: AddWinProc(IWinProc* pWinProc) override
Adds the given IWinProc at the end of this window's list.
Parameters | |
---|---|
pWinProc | The IWinProc to add. |
IWinProcs are called when a message is received in the window. Also some of them might be called on layout-related methods. Some IWinProcs can also act as effects.
void UTFWin:: Window:: RemoveWinProc(IWinProc* pWinProc) override
Removes the given IWinProc from this window's list.
Parameters | |
---|---|
pWinProc | The IWinProc to remove from this window. |
IWinProcs are called when a message is received in the window. Also some of them might be called on layout-related methods. Some IWinProcs can also act as effects.
IWinProc* UTFWin:: Window:: GetNextWinProc(const IWinProc* pWinProc) const override
Gets the IWinProc in this window that follows the given procedure.
Parameters | |
---|---|
pWinProc | The IWinProc that comes after this one will be returned. nullptr to return the first one. |
Returns | The next IWinProc, or nullptr if there's none. |
If pWinProc is not included in this window, nullptr will be returned. If pWinProc is nullptr, the first IWinProc in this window will be returned.
const char* UTFWin:: Window:: GetComponentName() const override
Returns the name of this component type (e.g.
"Window", "WinButton").
bool UTFWin:: Window:: Initialize() virtual protected
A function that initializes this window.
It is not always called so you should not rely on it.
bool UTFWin:: Window:: OnPaint(UIRenderer* pRenderer) virtual protected
A method called every time this window needs to be painted.
This does not paint the children windows.