64 virtual void Start()
override;
66 virtual void SetVisible(
bool visible)
override;
70 virtual void PrepareTick(std::vector<NodePtrWeak>& outTickNodes,
bool game,
bool recurse)
override;
71 virtual void Render()
override;
74 virtual bool IsWidget()
const override;
76 const Widget* GetParentWidget()
const;
77 Widget* GetChildWidget(int32_t index);
79 virtual void PreRender();
85 void SetWidth(
float width);
86 void SetHeight(
float height);
88 void SetXRatio(
float x);
89 void SetYRatio(
float y);
90 void SetWidthRatio(
float width);
91 void SetHeightRatio(
float height);
93 void SetLeftMargin(
float left);
94 void SetTopMargin(
float top);
95 void SetRightMargin(
float right);
96 void SetBottomMargin(
float bottom);
98 virtual void SetPosition(
float x,
float y);
99 virtual void SetDimensions(
float width,
float height);
100 void SetPosition(glm::vec2 position);
101 void SetDimensions(glm::vec2 dimensions);
102 void SetRect(
float x,
float y,
float width,
float height);
103 void SetRect(glm::vec2 position, glm::vec2 dimensions);
104 void SetRect(
Rect rect);
106 void SetRatios(
float x,
float y,
float width,
float height);
107 void SetMargins(
float left,
float top,
float right,
float bottom);
112 void SetOffset(
float x,
float y);
113 glm::vec2 GetOffset()
const;
118 void SetSize(
float x,
float y);
119 glm::vec2 GetSize()
const;
127 inline bool StretchX()
const {
return AnchorStretchesX(mAnchorMode); }
128 inline bool StretchY()
const {
return AnchorStretchesY(mAnchorMode); }
129 inline bool FillsX()
const {
return AnchorFillsX(mAnchorMode); }
130 inline bool FillsY()
const {
return AnchorFillsY(mAnchorMode); }
131 glm::vec2 GetAnchorRatio()
const;
132 void SetFullScreen();
138 float GetWidth()
const;
139 float GetHeight()
const;
141 glm::vec2 GetPosition()
const;
142 glm::vec2 GetDimensions()
const;
144 virtual void UpdateRect();
146 void FitInsideParent();
154 static bool ComputeGamePreviewLetterbox(glm::uvec4& outVp, glm::vec2& outExtraScale);
161 void SetParentRectOverride(
const Rect& rect);
162 void ClearParentRectOverride();
165 float GetParentWidth()
const;
166 float GetParentHeight()
const;
168 virtual void SetColor(glm::vec4 color);
169 glm::vec4 GetColor()
const;
171 void SetOpacity(uint8_t opacity);
172 uint8_t GetOpacity()
const;
174 void SetOpacityFloat(
float opacity);
175 float GetOpacityFloat()
const;
177 virtual bool ShouldHandleInput();
179 virtual void MarkDirty();
181 bool IsDirty()
const;
183 static float InterfaceToNormalized(
float interfaceCoord,
float interfaceSize);
184 static bool IsMouseInside(
Rect rect);
186 bool ContainsMouse(
bool testScissor =
true)
const;
187 virtual bool ContainsPoint(int32_t x, int32_t y);
188 void MoveToMousePosition();
190 const glm::mat3& GetTransform();
191 void SetRotation(
float degrees);
192 float GetRotation()
const;
194 void SetPivot(glm::vec2 pivot);
195 glm::vec2 GetPivot()
const;
197 void SetScale(glm::vec2 scale);
198 glm::vec2 GetScale()
const;
201 bool IsScissorEnabled()
const;
202 void EnableScissor(
bool enable);
203 Rect GetScissorRect()
const;
205 void SetUseGameResolution(
bool use);
206 bool GetUseGameResolution()
const;
209 void SetTooltipName(
const std::string& name);
210 const std::string& GetTooltipName()
const;
211 void SetTooltipDescription(
const std::string& description);
212 const std::string& GetTooltipDescription()
const;
213 bool HasTooltip()
const;
218 static const char* sAnchorModeStrings[];
224 float PixelsToRatioX(
float x)
const;
225 float PixelsToRatioY(
float y)
const;
226 float RatioToPixelsX(
float x)
const;
227 float RatioToPixelsY(
float y)
const;
247 bool mUseGameResolution =
false;
248 bool mHasParentRectOverride =
false;
256 bool mDirty[MAX_FRAMES] = {};