DDNet documentation
Loading...
Searching...
No Matches
ui.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_CLIENT_UI_H
4#define GAME_CLIENT_UI_H
5
6#include "lineinput.h"
7#include "ui_rect.h"
8
9#include <engine/input.h>
10#include <engine/textrender.h>
11
12#include <chrono>
13#include <string>
14#include <vector>
15
16class CScrollRegion;
17class IClient;
18class IGraphics;
19class IKernel;
20
29
30template<typename T>
36
38{
42
43 std::chrono::nanoseconds m_Time;
44 float m_Value;
45
46 float m_XOffset;
47 float m_YOffset;
48 float m_WOffset;
49 float m_HOffset;
50};
51
53{
54public:
55 virtual ~IScrollbarScale() = default;
56 virtual float ToRelative(int AbsoluteValue, int Min, int Max) const = 0;
57 virtual int ToAbsolute(float RelativeValue, int Min, int Max) const = 0;
58};
60{
61public:
62 float ToRelative(int AbsoluteValue, int Min, int Max) const override
63 {
64 return (AbsoluteValue - Min) / (float)(Max - Min);
65 }
66 int ToAbsolute(float RelativeValue, int Min, int Max) const override
67 {
68 return round_to_int(RelativeValue * (Max - Min) + Min + 0.1f);
69 }
70};
72{
73private:
75
76public:
77 CLogarithmicScrollbarScale(int MinAdjustment)
78 {
79 m_MinAdjustment = std::max(MinAdjustment, 1); // must be at least 1 to support Min == 0 with logarithm
80 }
81 float ToRelative(int AbsoluteValue, int Min, int Max) const override
82 {
83 if(Min < m_MinAdjustment)
84 {
85 AbsoluteValue += m_MinAdjustment;
86 Min += m_MinAdjustment;
87 Max += m_MinAdjustment;
88 }
89 return (std::log(AbsoluteValue) - std::log(Min)) / (float)(std::log(Max) - std::log(Min));
90 }
91 int ToAbsolute(float RelativeValue, int Min, int Max) const override
92 {
93 int ResultAdjustment = 0;
94 if(Min < m_MinAdjustment)
95 {
96 Min += m_MinAdjustment;
97 Max += m_MinAdjustment;
98 ResultAdjustment = -m_MinAdjustment;
99 }
100 return round_to_int(std::exp(RelativeValue * (std::log(Max) - std::log(Min)) + std::log(Min))) + ResultAdjustment;
101 }
102};
103
105{
106public:
107 virtual ~IButtonColorFunction() = default;
108 virtual ColorRGBA GetColor(bool Active, bool Hovered) const = 0;
109};
111{
112public:
113 ColorRGBA GetColor(bool Active, bool Hovered) const override
114 {
115 if(Active)
116 return ColorRGBA(0.15f, 0.15f, 0.15f, 0.25f);
117 else if(Hovered)
118 return ColorRGBA(0.5f, 0.5f, 0.5f, 0.25f);
119 return ColorRGBA(0.0f, 0.0f, 0.0f, 0.25f);
120 }
121};
123{
124public:
125 ColorRGBA GetColor(bool Active, bool Hovered) const override
126 {
127 if(Active)
128 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.4f);
129 else if(Hovered)
130 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.6f);
131 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.5f);
132 }
133};
135{
136public:
137 ColorRGBA GetColor(bool Active, bool Hovered) const override
138 {
139 if(Active)
140 return ColorRGBA(0.9f, 0.9f, 0.9f, 1.0f);
141 else if(Hovered)
142 return ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f);
143 return ColorRGBA(0.8f, 0.8f, 0.8f, 1.0f);
144 }
145};
146
147class CUi;
148
150{
151 friend class CUi;
152
154
155 CUIElement(CUi *pUI, int RequestedRectCount) { Init(pUI, RequestedRectCount); }
156
157public:
159 {
161
162 public:
165
166 float m_X;
167 float m_Y;
168 float m_Width;
169 float m_Height;
172
173 std::string m_Text;
175
177
180
182
184
185 void Reset();
186 void Draw(const CUIRect *pRect, ColorRGBA Color, int Corners, float Rounding);
187 };
188
189protected:
190 CUi *Ui() const { return m_pUI; }
191 std::vector<SUIElementRect> m_vUIRects;
192
193public:
194 CUIElement() = default;
195
196 void Init(CUi *pUI, int RequestedRectCount);
197
198 SUIElementRect *Rect(size_t Index)
199 {
200 return &m_vUIRects[Index];
201 }
202
204 {
205 return !m_vUIRects.empty();
206 }
207
208 void InitRects(int RequestedRectCount);
209};
210
212{
213 float m_MaxWidth = -1;
214 bool m_StopAtEnd = false;
215 bool m_EllipsisAtEnd = false;
217 float m_MinimumFontSize = 5.0f;
218 std::vector<STextColorSplit> m_vColorSplits;
219
220 void SetColor(const ColorRGBA &Color);
221};
222
224{
225public:
227};
228
238
240{
241 int m_Checked = 0;
244 bool m_UseIconFont = false;
245 bool m_ShowDropDownIcon = false;
247 float m_Rounding = 5.0f;
248 float m_FontFactor = 0.0f;
249 ColorRGBA m_Color = ColorRGBA(1.0f, 1.0f, 1.0f, 0.5f);
251};
252
254{
255private:
256 static CUi *ms_pUi;
257
258public:
259 static void Init(CUi *pUI) { ms_pUi = pUI; }
260
261 IClient *Client() const;
262 IGraphics *Graphics() const;
263 IInput *Input() const;
264 ITextRender *TextRender() const;
265 CUi *Ui() const { return ms_pUi; }
266};
267
269{
270};
271
273{
274 bool m_UseScroll = true;
275 int64_t m_Step = 1;
276 float m_Scale = 1.0f;
277 bool m_IsHex = false;
278 int m_HexPrefix = 6;
279 ColorRGBA m_Color = ColorRGBA(0.0f, 0.0f, 0.0f, 0.4f);
280};
281
283{
284 float m_Progress = -1.0f; // between 0.0f and 1.0f, or negative for indeterminate progress
285 ColorRGBA m_Color = ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f);
286 int m_Segments = 64;
287};
288
293{
294};
295
297{
299 ColorRGBA m_BorderColor = ColorRGBA(0.5f, 0.5f, 0.5f, 0.75f);
300 ColorRGBA m_BackgroundColor = ColorRGBA(0.0f, 0.0f, 0.0f, 0.75f);
301};
302
312{
314 std::string m_Text;
315 float m_FontSize = -1.0f;
316 float m_LineWidth = -1.0f;
318 STextBoundingBox m_BoundingBox = {0.0f, 0.0f, 0.0f, 0.0f};
320
321public:
322 CCachedText() = default;
323 // Copying would leave two owners for the same text container.
324 CCachedText(const CCachedText &) = delete;
326
327 void Update(ITextRender *pTextRender, const char *pText, float FontSize, float LineWidth = -1.0f, int CursorFlags = TEXTFLAG_RENDER);
328 void Render(ITextRender *pTextRender, vec2 Pos, ColorRGBA Color) const;
329 void Reset(ITextRender *pTextRender);
330
331 float Width() const { return m_BoundingBox.m_W; }
332 float MaxCharacterHeight() const { return m_MaxCharacterHeight; }
333};
334
335class CUi
336{
337public:
358
369 typedef EPopupMenuFunctionResult (*FPopupMenuFunction)(void *pContext, CUIRect View, bool Active);
370
374 typedef std::function<void()> FPopupMenuClosedCallback;
375
380 {
381 friend class CUi;
382
386
387 public:
388 bool m_AnyPressed = false;
389 bool m_PrimaryPressed = false;
390 bool m_SecondaryPressed = false;
391 vec2 m_PrimaryPosition = vec2(-1.0f, -1.0f);
392 vec2 m_PrimaryDelta = vec2(0.0f, 0.0f);
393 vec2 m_ScrollAmount = vec2(0.0f, 0.0f);
394 };
395
396private:
398
399 const void *m_pHotItem = nullptr;
400 const void *m_pActiveItem = nullptr;
401 const void *m_pLastActiveItem = nullptr; // only used internally to track active CLineInput
402 const void *m_pBecomingHotItem = nullptr;
405 bool m_ActiveItemValid = false;
406
410 {
411 public:
412 const void *m_pLastClickedId = nullptr;
413 float m_LastClickTime = -1.0f;
414 vec2 m_LastClickPos = vec2(-1.0f, -1.0f);
415 };
417 const void *m_pLastEditingItem = nullptr;
418 const void *m_pLastActiveScrollbar = nullptr;
423 {
424 public:
425 int m_Button = -1;
426 bool m_DidScroll = false;
427 float m_ScrollValue = 0.0f;
429 const void *m_pLastTextId = nullptr;
430 };
432
433 vec2 m_UpdatedMousePos = vec2(0.0f, 0.0f); // in window screen space
434 vec2 m_UpdatedMouseDelta = vec2(0.0f, 0.0f); // in window screen space
435 vec2 m_MousePos = vec2(0.0f, 0.0f); // in gui space
436 vec2 m_MouseDelta = vec2(0.0f, 0.0f); // in gui space
438 unsigned m_MouseButtons = 0;
439 unsigned m_LastMouseButtons = 0;
441 bool m_MouseSlow = false;
442 bool m_MouseLock = false;
443 const void *m_pMouseLockId = nullptr;
444
445 unsigned m_HotkeysPressed = 0;
446
447 enum class EBackButtonOp
448 {
452 };
456 CUIRect m_BackButtonRect = {0.0f, 0.0f, 0.0f, 0.0f};
457 const char m_BackButtonId = 0;
458
459 std::function<void(const IInput::CEvent &Event)> m_DispatchInputFunction;
460 std::function<void()> m_OnBackButtonPressedFunction;
461
463
464 std::vector<CUIRect> m_vClips;
465 void UpdateClipping();
466
468 {
469 static constexpr float POPUP_BORDER = 1.0f;
470 static constexpr float POPUP_MARGIN = 4.0f;
471
477 };
478 std::vector<SPopupMenu> m_vPopupMenus;
480
481 static CUi::EPopupMenuFunctionResult PopupMessage(void *pContext, CUIRect View, bool Active);
482 static CUi::EPopupMenuFunctionResult PopupConfirm(void *pContext, CUIRect View, bool Active);
483 static CUi::EPopupMenuFunctionResult PopupSelection(void *pContext, CUIRect View, bool Active);
484 static CUi::EPopupMenuFunctionResult PopupColorPicker(void *pContext, CUIRect View, bool Active);
485
490
491 std::vector<CUIElement *> m_vpOwnUIElements; // ui elements maintained by CUi class
492 std::vector<CUIElement *> m_vpUIElements;
493
494public:
500
501 static const float ms_FontmodHeight;
502
503 void Init(IKernel *pKernel);
504 IClient *Client() const { return m_pClient; }
505 IGraphics *Graphics() const { return m_pGraphics; }
506 IInput *Input() const { return m_pInput; }
508
509 CUi();
510 ~CUi();
511
512 enum EHotkey : unsigned
513 {
514 HOTKEY_ENTER = 1 << 0,
516 HOTKEY_UP = 1 << 2,
517 HOTKEY_DOWN = 1 << 3,
518 HOTKEY_LEFT = 1 << 4,
519 HOTKEY_RIGHT = 1 << 5,
521 HOTKEY_TAB = 1 << 7,
524 HOTKEY_PAGE_UP = 1 << 10,
526 HOTKEY_HOME = 1 << 12,
527 HOTKEY_END = 1 << 13,
528 };
529
530 void ResetUIElement(CUIElement &UIElement) const;
531
532 CUIElement *GetNewUIElement(int RequestedRectCount);
533
534 void AddUIElement(CUIElement *pElement);
535 void OnElementsReset();
536 void OnWindowResize();
537 void OnCursorMove(float X, float Y);
538
540 bool Enabled() const { return m_Enabled; }
541 void Update();
542 void DebugRender(float X, float Y);
543
544 vec2 MousePos() const { return m_MousePos; }
545 float MouseX() const { return m_MousePos.x; }
546 float MouseY() const { return m_MousePos.y; }
547 vec2 MouseDelta() const { return m_MouseDelta; }
548 float MouseDeltaX() const { return m_MouseDelta.x; }
549 float MouseDeltaY() const { return m_MouseDelta.y; }
552 int MouseButton(int Index) const { return (m_MouseButtons >> Index) & 1; }
553 int MouseButtonClicked(int Index) const { return MouseButton(Index) && !((m_LastMouseButtons >> Index) & 1); }
555 {
558 return m_MouseLock;
559 }
560 void EnableMouseLock(const void *pId)
561 {
562 m_MouseLock = true;
563 m_pMouseLockId = pId;
564 }
565 void DisableMouseLock() { m_MouseLock = false; }
566
567 void SetHotItem(const void *pId) { m_pBecomingHotItem = pId; }
568 void SetActiveItem(const void *pId)
569 {
570 m_ActiveItemValid = true;
571 m_pActiveItem = pId;
572 if(pId)
573 m_pLastActiveItem = pId;
574 }
575 bool CheckActiveItem(const void *pId)
576 {
577 if(m_pActiveItem == pId)
578 {
579 m_ActiveItemValid = true;
580 return true;
581 }
582 return false;
583 }
585 const void *HotItem() const { return m_pHotItem; }
586 const void *NextHotItem() const { return m_pBecomingHotItem; }
587 const void *ActiveItem() const { return m_pActiveItem; }
589
590 void StartCheck() { m_ActiveItemValid = false; }
592 {
593 if(!m_ActiveItemValid && m_pActiveItem != nullptr)
594 {
595 SetActiveItem(nullptr);
596 m_pHotItem = nullptr;
597 m_pBecomingHotItem = nullptr;
598 }
599 }
600
601 bool MouseInside(const CUIRect *pRect) const;
602 bool MouseInsideClip() const { return !IsClipped() || MouseInside(ClipArea()); }
603 bool MouseHovered(const CUIRect *pRect) const { return MouseInside(pRect) && MouseInsideClip(); }
604 void ConvertMouseMove(float *pX, float *pY, IInput::ECursorType CursorType) const;
605 void UpdateTouchState(CTouchState &State) const;
606 void SetMouseSlow(bool MouseSlow) { m_MouseSlow = MouseSlow; }
607
608 bool ConsumeHotkey(EHotkey Hotkey);
610 bool OnInput(const IInput::CEvent &Event);
611
612 constexpr float ButtonColorMulActive() const { return 0.5f; }
613 constexpr float ButtonColorMulHot() const { return 1.5f; }
614 constexpr float ButtonColorMulDefault() const { return 1.0f; }
615 float ButtonColorMul(const void *pId);
616
617 const CUIRect *Screen();
618 void MapScreen();
619 float PixelSize();
620
621 void ClipEnable(const CUIRect *pRect);
622 void ClipDisable();
623 const CUIRect *ClipArea() const;
624 bool IsClipped() const { return !m_vClips.empty(); }
625
626 int DoButtonLogic(const void *pId, int Checked, const CUIRect *pRect, unsigned Flags);
627 int DoDraggableButtonLogic(const void *pId, int Checked, const CUIRect *pRect, bool *pClicked, bool *pAbrupted);
628 bool DoDoubleClickLogic(const void *pId);
629 EEditState DoPickerLogic(const void *pId, const CUIRect *pRect, float *pX, float *pY);
630 void DoSmoothScrollLogic(float *pScrollOffset, float *pScrollOffsetChange, float ViewPortSize, float TotalSize, bool SmoothClamp = false, float ScrollSpeed = 10.0f) const;
631 static vec2 CalcAlignedCursorPos(const CUIRect *pRect, vec2 TextSize, int Align, const float *pBiggestCharHeight = nullptr);
632
633 CLabelResult DoLabel(const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps = {}) const;
634 CLabelResult DoLabel_AutoLineSize(const char *pText, float FontSize, int Align, CUIRect *pRect, float LineSize, const SLabelProperties &LabelProps = {}) const;
635
636 void DoLabel(CUIElement::SUIElementRect &RectEl, const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps = {}, int StrLen = -1, const CTextCursor *pReadCursor = nullptr) const;
637 void DoLabelStreamed(CUIElement::SUIElementRect &RectEl, const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps = {}, int StrLen = -1, const CTextCursor *pReadCursor = nullptr) const;
638
655 bool DoEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners = IGraphics::CORNER_ALL, const std::vector<STextColorSplit> &vColorSplits = {});
656
673 bool DoClearableEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners = IGraphics::CORNER_ALL, const std::vector<STextColorSplit> &vColorSplits = {});
674
691 bool DoEditBox_Search(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, bool HotkeyEnabled);
692
693 int DoButton_Menu(CUIElement &UIElement, const CButtonContainer *pId, const std::function<const char *()> &GetTextLambda, const CUIRect *pRect, const SMenuButtonProperties &Props = {});
694 int DoButton_FontIcon(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, unsigned Flags, int Corners = IGraphics::CORNER_ALL, bool Enabled = true, std::optional<ColorRGBA> ButtonColor = std::nullopt);
695 // only used for popup menus
696 int DoButton_PopupMenu(CButtonContainer *pButtonContainer, const char *pText, const CUIRect *pRect, float Size, int Align, float Padding = 0.0f, bool TransparentInactive = false, bool Enabled = true, std::optional<ColorRGBA> ButtonColor = std::nullopt);
697
698 // value selector
699 SEditResult<int64_t> DoValueSelectorWithState(const void *pId, const CUIRect *pRect, const char *pLabel, int64_t Current, int64_t Min, int64_t Max, const SValueSelectorProperties &Props = {});
700 int64_t DoValueSelector(const void *pId, const CUIRect *pRect, const char *pLabel, int64_t Current, int64_t Min, int64_t Max, const SValueSelectorProperties &Props = {});
701
702 // scrollbars
703 enum
704 {
709 };
710 float DoScrollbarV(const void *pId, const CUIRect *pRect, float Current);
711 float DoScrollbarH(const void *pId, const CUIRect *pRect, float Current, const ColorRGBA *pColorInner = nullptr);
712 bool DoScrollbarOption(const void *pId, int *pOption, const CUIRect *pRect, const char *pStr, int Min, int Max, const IScrollbarScale *pScale = &ms_LinearScrollbarScale, unsigned Flags = 0u, const char *pSuffix = "");
713
714 // progress bar
715 void RenderProgressBar(CUIRect ProgressBar, float Progress);
716
717 // render time with hundredths or thousands aligned to the right of the UIRect
718 void RenderTime(CUIRect TimeRect, float FontSize, int Seconds, bool NotFinished, int Millis, bool TrueMilliseconds, CCachedText &SecondsText, CCachedText &MillisText, ColorRGBA Color) const;
719
720 // progress spinner
721 void RenderProgressSpinner(vec2 Center, float OuterRadius, const SProgressSpinnerProperties &Props = {}) const;
722
723 // virtual back button
724 void DoBackButton();
725 void RenderBackButton();
726 void SetDispatchInputCallback(std::function<void(const IInput::CEvent &Event)> pfnCallback) { m_DispatchInputFunction = std::move(pfnCallback); }
727 // Fired the moment the back button transitions to active (mouse-down inside it).
728 void SetOnBackButtonPressedCallback(std::function<void()> pfnCallback) { m_OnBackButtonPressedFunction = std::move(pfnCallback); }
729
730 // popup menu
731 void DoPopupMenu(const SPopupMenuId *pId, float X, float Y, float Width, float Height, void *pContext, FPopupMenuFunction pfnFunc, const SPopupMenuProperties &Props = {});
732 void RenderPopupMenus();
733 void ClosePopupMenu(const SPopupMenuId *pId, bool IncludeDescendants = false);
734 void ClosePopupMenus();
735 bool IsPopupOpen() const;
736 bool IsPopupOpen(const SPopupMenuId *pId) const;
737 bool IsPopupHovered() const;
739
741 {
742 static constexpr float POPUP_MAX_WIDTH = 200.0f;
743 static constexpr float POPUP_FONT_SIZE = 10.0f;
744
745 CUi *m_pUI; // set by CUi when popup is shown
746 char m_aMessage[1024];
748
749 void DefaultColor(class ITextRender *pTextRender);
750 void ErrorColor();
751 };
752 void ShowPopupMessage(float X, float Y, SMessagePopupContext *pContext);
753
755 {
762 static constexpr float POPUP_MAX_WIDTH = 200.0f;
763 static constexpr float POPUP_FONT_SIZE = 10.0f;
764 static constexpr float POPUP_BUTTON_HEIGHT = 12.0f;
765 static constexpr float POPUP_BUTTON_SPACING = 5.0f;
766
767 CUi *m_pUI; // set by CUi when popup is shown
770 char m_aMessage[1024];
772
775
777 void Reset();
778 void YesNoButtons();
779 };
780 void ShowPopupConfirm(float X, float Y, SConfirmPopupContext *pContext);
781
783 {
784 CUi *m_pUI; // set by CUi when popup is shown
787 char m_aMessage[256];
788 std::vector<std::string> m_vEntries;
789 std::vector<CButtonContainer> m_vButtonContainers;
790 const std::string *m_pSelection;
796 float m_Width;
799
801 void Reset();
802 };
803 void ShowPopupSelection(float X, float Y, SSelectionPopupContext *pContext);
804
806 {
814
815 CUi *m_pUI; // set by CUi when popup is shown
817 bool m_Alpha = false;
818 unsigned int *m_pHslaColor = nullptr; // may be nullptr
822 // UI element IDs
823 const char m_HuePickerId = 0;
824 const char m_ColorPickerId = 0;
825 const char m_aValueSelectorIds[5] = {0};
828 };
829 void ShowPopupColorPicker(float X, float Y, SColorPickerPopupContext *pContext);
830
831 // dropdown menu
839 int DoDropDown(CUIRect *pRect, int CurSelection, const char **pStrs, int Num, SDropDownState &State);
840};
841
842#endif
Definition ui.h:269
Definition ui.h:312
float m_MaxCharacterHeight
Definition ui.h:319
float MaxCharacterHeight() const
Definition ui.h:332
void Update(ITextRender *pTextRender, const char *pText, float FontSize, float LineWidth=-1.0f, int CursorFlags=TEXTFLAG_RENDER)
Definition ui.cpp:1583
float m_LineWidth
Definition ui.h:316
float Width() const
Definition ui.h:331
int m_CursorFlags
Definition ui.h:317
STextContainerIndex m_TextContainerIndex
Definition ui.h:313
CCachedText()=default
float m_FontSize
Definition ui.h:315
std::string m_Text
Definition ui.h:314
void Reset(ITextRender *pTextRender)
Definition ui.cpp:1625
CCachedText & operator=(const CCachedText &)=delete
void Render(ITextRender *pTextRender, vec2 Pos, ColorRGBA Color) const
Definition ui.cpp:1616
STextBoundingBox m_BoundingBox
Definition ui.h:318
CCachedText(const CCachedText &)=delete
Definition ui.h:111
ColorRGBA GetColor(bool Active, bool Hovered) const override
Definition ui.h:113
Definition ui.h:224
bool m_Truncated
Definition ui.h:226
Definition ui.h:123
ColorRGBA GetColor(bool Active, bool Hovered) const override
Definition ui.h:125
Definition lineinput.h:215
Definition ui.h:60
float ToRelative(int AbsoluteValue, int Min, int Max) const override
Definition ui.h:62
int ToAbsolute(float RelativeValue, int Min, int Max) const override
Definition ui.h:66
Definition ui.h:72
float ToRelative(int AbsoluteValue, int Min, int Max) const override
Definition ui.h:81
int ToAbsolute(float RelativeValue, int Min, int Max) const override
Definition ui.h:91
int m_MinAdjustment
Definition ui.h:74
CLogarithmicScrollbarScale(int MinAdjustment)
Definition ui.h:77
Definition ui.h:135
ColorRGBA GetColor(bool Active, bool Hovered) const override
Definition ui.h:137
Definition ui_scrollregion.h:101
Definition textrender.h:116
Definition ui.h:254
IClient * Client() const
Definition ui.cpp:104
IInput * Input() const
Definition ui.cpp:106
static void Init(CUi *pUI)
Definition ui.h:259
static CUi * ms_pUi
Definition ui.h:256
ITextRender * TextRender() const
Definition ui.cpp:107
IGraphics * Graphics() const
Definition ui.cpp:105
CUi * Ui() const
Definition ui.h:265
Definition ui.h:150
CUi * m_pUI
Definition ui.h:153
friend class CUi
Definition ui.h:151
bool AreRectsInit()
Definition ui.h:203
std::vector< SUIElementRect > m_vUIRects
Definition ui.h:191
SUIElementRect * Rect(size_t Index)
Definition ui.h:198
CUi * Ui() const
Definition ui.h:190
CUIElement(CUi *pUI, int RequestedRectCount)
Definition ui.h:155
void InitRects(int RequestedRectCount)
Definition ui.cpp:31
void Init(CUi *pUI, int RequestedRectCount)
Definition ui.cpp:23
CUIElement()=default
Definition ui_rect.h:12
Definition ui.h:410
float m_LastClickTime
Definition ui.h:413
vec2 m_LastClickPos
Definition ui.h:414
const void * m_pLastClickedId
Definition ui.h:412
Definition ui.h:380
bool m_AnyPressed
Definition ui.h:388
vec2 m_PrimaryDelta
Definition ui.h:392
float m_SecondaryActivationTime
Definition ui.h:384
friend class CUi
Definition ui.h:381
bool m_SecondaryPressedNext
Definition ui.h:383
bool m_PrimaryPressed
Definition ui.h:389
bool m_SecondaryPressed
Definition ui.h:390
vec2 m_PrimaryPosition
Definition ui.h:391
vec2 m_ScrollAmount
Definition ui.h:393
vec2 m_SecondaryActivationDelta
Definition ui.h:385
Definition ui.h:423
CLineInputNumber m_NumberInput
Definition ui.h:428
bool m_DidScroll
Definition ui.h:426
float m_ScrollValue
Definition ui.h:427
const void * m_pLastTextId
Definition ui.h:429
int m_Button
Definition ui.h:425
Definition ui.h:336
void DoPopupMenu(const SPopupMenuId *pId, float X, float Y, float Width, float Height, void *pContext, FPopupMenuFunction pfnFunc, const SPopupMenuProperties &Props={})
Definition ui_popups.cpp:14
void ResetUIElement(CUIElement &UIElement) const
Definition ui.cpp:151
void ClipEnable(const CUIRect *pRect)
Definition ui.cpp:473
@ SCROLLBAR_OPTION_MULTILINE
Definition ui.h:707
@ SCROLLBAR_OPTION_INFINITE
Definition ui.h:705
@ SCROLLBAR_OPTION_DELAYUPDATE
Definition ui.h:708
@ SCROLLBAR_OPTION_NOCLAMPVALUE
Definition ui.h:706
EEditState DoPickerLogic(const void *pId, const CUIRect *pRect, float *pX, float *pY)
Definition ui.cpp:638
static const CLogarithmicScrollbarScale ms_LogarithmicScrollbarScale
Definition ui.h:496
vec2 m_UpdatedMouseDelta
Definition ui.h:434
void SetMouseSlow(bool MouseSlow)
Definition ui.h:606
void FinishCheck()
Definition ui.h:591
void RenderProgressSpinner(vec2 Center, float OuterRadius, const SProgressSpinnerProperties &Props={}) const
Definition ui.cpp:1685
bool OnInput(const IInput::CEvent &Event)
Definition ui.cpp:399
CTouchState m_TouchState
Definition ui.h:440
std::function< void()> FPopupMenuClosedCallback
Definition ui.h:374
std::vector< SPopupMenu > m_vPopupMenus
Definition ui.h:478
void EnableMouseLock(const void *pId)
Definition ui.h:560
vec2 m_MousePos
Definition ui.h:435
const void * HotItem() const
Definition ui.h:585
void SetPopupMenuClosedCallback(FPopupMenuClosedCallback pfnCallback)
Definition ui_popups.cpp:129
bool MouseInside(const CUIRect *pRect) const
Definition ui.cpp:277
std::vector< CUIElement * > m_vpOwnUIElements
Definition ui.h:491
unsigned m_UpdatedMouseButtons
Definition ui.h:437
IGraphics * m_pGraphics
Definition ui.h:487
const void * m_pActiveItem
Definition ui.h:400
bool IsPopupHovered() const
Definition ui_popups.cpp:124
unsigned m_HotkeysPressed
Definition ui.h:445
constexpr float ButtonColorMulHot() const
Definition ui.h:613
void SetEnabled(bool Enabled)
Definition ui.h:539
vec2 MousePos() const
Definition ui.h:544
void SetActiveItem(const void *pId)
Definition ui.h:568
EHotkey
Definition ui.h:513
@ HOTKEY_TAB
Definition ui.h:521
@ HOTKEY_PAGE_DOWN
Definition ui.h:525
@ HOTKEY_DELETE
Definition ui.h:520
@ HOTKEY_SCROLL_UP
Definition ui.h:522
@ HOTKEY_ESCAPE
Definition ui.h:515
@ HOTKEY_END
Definition ui.h:527
@ HOTKEY_SCROLL_DOWN
Definition ui.h:523
@ HOTKEY_ENTER
Definition ui.h:514
@ HOTKEY_PAGE_UP
Definition ui.h:524
@ HOTKEY_LEFT
Definition ui.h:518
@ HOTKEY_RIGHT
Definition ui.h:519
@ HOTKEY_DOWN
Definition ui.h:517
@ HOTKEY_HOME
Definition ui.h:526
@ HOTKEY_UP
Definition ui.h:516
int DoDropDown(CUIRect *pRect, int CurSelection, const char **pStrs, int Num, SDropDownState &State)
Definition ui_popups.cpp:321
bool IsClipped() const
Definition ui.h:624
float PixelSize()
Definition ui.cpp:468
CScrollRegion * m_pBecomingHotScrollRegion
Definition ui.h:404
std::function< void()> m_OnBackButtonPressedFunction
Definition ui.h:460
static const CLinearScrollbarScale ms_LinearScrollbarScale
Definition ui.h:495
bool DoEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners=IGraphics::CORNER_ALL, const std::vector< STextColorSplit > &vColorSplits={})
Definition ui.cpp:919
vec2 m_BackButtonInitialMouse
Definition ui.h:455
bool IsPopupOpen() const
Definition ui_popups.cpp:114
void DoLabelStreamed(CUIElement::SUIElementRect &RectEl, const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps={}, int StrLen=-1, const CTextCursor *pReadCursor=nullptr) const
Definition ui.cpp:855
void SetOnBackButtonPressedCallback(std::function< void()> pfnCallback)
Definition ui.h:728
void DebugRender(float X, float Y)
Definition ui.cpp:268
void DoBackButton()
Definition ui.cpp:1725
constexpr float ButtonColorMulDefault() const
Definition ui.h:614
~CUi()
Definition ui.cpp:128
void RenderBackButton()
Definition ui.cpp:1795
void OnCursorMove(float X, float Y)
Definition ui.cpp:174
static vec2 CalcAlignedCursorPos(const CUIRect *pRect, vec2 TextSize, int Align, const float *pBiggestCharHeight=nullptr)
Definition ui.cpp:784
int m_ScrollbarValue
Definition ui.h:419
static CUi::EPopupMenuFunctionResult PopupSelection(void *pContext, CUIRect View, bool Active)
Definition ui_popups.cpp:244
void SetDispatchInputCallback(std::function< void(const IInput::CEvent &Event)> pfnCallback)
Definition ui.h:726
vec2 UpdatedMousePos() const
Definition ui.h:550
int64_t DoValueSelector(const void *pId, const CUIRect *pRect, const char *pLabel, int64_t Current, int64_t Min, int64_t Max, const SValueSelectorProperties &Props={})
Definition ui.cpp:1208
void RenderTime(CUIRect TimeRect, float FontSize, int Seconds, bool NotFinished, int Millis, bool TrueMilliseconds, CCachedText &SecondsText, CCachedText &MillisText, ColorRGBA Color) const
Definition ui.cpp:1636
vec2 m_MouseDelta
Definition ui.h:436
FPopupMenuClosedCallback m_pfnPopupMenuClosedCallback
Definition ui.h:479
bool ConsumeHotkey(EHotkey Hotkey)
Definition ui.cpp:392
int m_ActiveDraggableButtonLogicButton
Definition ui.h:408
void RenderProgressBar(CUIRect ProgressBar, float Progress)
Definition ui.cpp:1575
void UpdateTouchState(CTouchState &State) const
Definition ui.cpp:304
IClient * m_pClient
Definition ui.h:486
static CUi::EPopupMenuFunctionResult PopupConfirm(void *pContext, CUIRect View, bool Active)
Definition ui_popups.cpp:196
IClient * Client() const
Definition ui.h:504
static const CDarkButtonColorFunction ms_DarkButtonColorFunction
Definition ui.h:497
static const CScrollBarColorFunction ms_ScrollBarColorFunction
Definition ui.h:499
bool Enabled() const
Definition ui.h:540
ITextRender * m_pTextRender
Definition ui.h:489
bool MouseHovered(const CUIRect *pRect) const
Definition ui.h:603
unsigned m_MouseButtons
Definition ui.h:438
IInput * Input() const
Definition ui.h:506
int DoButton_FontIcon(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, unsigned Flags, int Corners=IGraphics::CORNER_ALL, bool Enabled=true, std::optional< ColorRGBA > ButtonColor=std::nullopt)
Definition ui.cpp:1168
EBackButtonOp
Definition ui.h:448
@ CLICKED
Definition ui.h:450
@ DRAGGING
Definition ui.h:451
@ NONE
Definition ui.h:449
void MapScreen()
Definition ui.cpp:460
void DisableMouseLock()
Definition ui.h:565
void ConvertMouseMove(float *pX, float *pY, IInput::ECursorType CursorType) const
Definition ui.cpp:282
float MouseY() const
Definition ui.h:546
float DoScrollbarV(const void *pId, const CUIRect *pRect, float Current)
Definition ui.cpp:1340
bool m_ActiveItemValid
Definition ui.h:405
float ButtonColorMul(const void *pId)
Definition ui.cpp:444
int DoButtonLogic(const void *pId, int Checked, const CUIRect *pRect, unsigned Flags)
Definition ui.cpp:525
int DoButton_PopupMenu(CButtonContainer *pButtonContainer, const char *pText, const CUIRect *pRect, float Size, int Align, float Padding=0.0f, bool TransparentInactive=false, bool Enabled=true, std::optional< ColorRGBA > ButtonColor=std::nullopt)
Definition ui.cpp:1196
ITextRender * TextRender() const
Definition ui.h:507
float MouseDeltaY() const
Definition ui.h:549
void AddUIElement(CUIElement *pElement)
Definition ui.cpp:146
unsigned m_LastMouseButtons
Definition ui.h:439
int MouseButton(int Index) const
Definition ui.h:552
CScrollRegion * m_pHotScrollRegion
Definition ui.h:403
int m_ActiveButtonLogicButton
Definition ui.h:407
static CUi::EPopupMenuFunctionResult PopupMessage(void *pContext, CUIRect View, bool Active)
Definition ui_popups.cpp:144
const void * m_pLastActiveItem
Definition ui.h:401
bool MouseInsideClip() const
Definition ui.h:602
int DoButton_Menu(CUIElement &UIElement, const CButtonContainer *pId, const std::function< const char *()> &GetTextLambda, const CUIRect *pRect, const SMenuButtonProperties &Props={})
Definition ui.cpp:1066
void ShowPopupMessage(float X, float Y, SMessagePopupContext *pContext)
Definition ui_popups.cpp:156
void ClosePopupMenu(const SPopupMenuId *pId, bool IncludeDescendants=false)
Definition ui_popups.cpp:88
vec2 m_BackButtonDragOffset
Definition ui.h:454
bool DoDoubleClickLogic(const void *pId)
Definition ui.cpp:623
static const CLightButtonColorFunction ms_LightButtonColorFunction
Definition ui.h:498
void ClearHotkeys()
Definition ui.h:609
CLabelResult DoLabel_AutoLineSize(const char *pText, float FontSize, int Align, CUIRect *pRect, float LineSize, const SLabelProperties &LabelProps={}) const
Definition ui.cpp:911
std::vector< CUIRect > m_vClips
Definition ui.h:464
IGraphics * Graphics() const
Definition ui.h:505
float m_ActiveScrollbarOffset
Definition ui.h:420
void OnWindowResize()
Definition ui.cpp:169
EPopupMenuFunctionResult(* FPopupMenuFunction)(void *pContext, CUIRect View, bool Active)
Definition ui.h:369
const void * m_pLastEditingItem
Definition ui.h:417
void UpdateClipping()
Definition ui.cpp:505
const void * m_pLastActiveScrollbar
Definition ui.h:418
static CUi::EPopupMenuFunctionResult PopupColorPicker(void *pContext, CUIRect View, bool Active)
Definition ui_popups.cpp:365
vec2 UpdatedMouseDelta() const
Definition ui.h:551
const CScrollRegion * HotScrollRegion() const
Definition ui.h:588
vec2 m_UpdatedMousePos
Definition ui.h:433
float MouseDeltaX() const
Definition ui.h:548
void ShowPopupSelection(float X, float Y, SSelectionPopupContext *pContext)
Definition ui_popups.cpp:292
bool m_MouseSlow
Definition ui.h:441
void SetHotScrollRegion(CScrollRegion *pId)
Definition ui.h:584
int MouseButtonClicked(int Index) const
Definition ui.h:553
const void * ActiveItem() const
Definition ui.h:587
int DoDraggableButtonLogic(const void *pId, int Checked, const CUIRect *pRect, bool *pClicked, bool *pAbrupted)
Definition ui.cpp:562
const CUIRect * Screen()
Definition ui.cpp:453
void Update()
Definition ui.cpp:185
CUIRect m_BackButtonRect
Definition ui.h:456
static const float ms_FontmodHeight
Definition ui.h:501
CUi()
Definition ui.cpp:120
IInput * m_pInput
Definition ui.h:488
const char m_BackButtonId
Definition ui.h:457
void ShowPopupConfirm(float X, float Y, SConfirmPopupContext *pContext)
Definition ui_popups.cpp:183
float DoScrollbarH(const void *pId, const CUIRect *pRect, float Current, const ColorRGBA *pColorInner=nullptr)
Definition ui.cpp:1410
std::vector< CUIElement * > m_vpUIElements
Definition ui.h:492
vec2 MouseDelta() const
Definition ui.h:547
const void * m_pBecomingHotItem
Definition ui.h:402
void OnElementsReset()
Definition ui.cpp:161
const CUIRect * ClipArea() const
Definition ui.cpp:499
bool CheckActiveItem(const void *pId)
Definition ui.h:575
CUIRect m_Screen
Definition ui.h:462
const void * m_pMouseLockId
Definition ui.h:443
EBackButtonOp m_BackButtonOp
Definition ui.h:453
void StartCheck()
Definition ui.h:590
SEditResult< int64_t > DoValueSelectorWithState(const void *pId, const CUIRect *pRect, const char *pLabel, int64_t Current, int64_t Min, int64_t Max, const SValueSelectorProperties &Props={})
Definition ui.cpp:1213
constexpr float ButtonColorMulActive() const
Definition ui.h:612
bool CheckMouseLock()
Definition ui.h:554
void ClipDisable()
Definition ui.cpp:492
void Init(IKernel *pKernel)
Definition ui.cpp:109
EPopupMenuFunctionResult
Definition ui.h:342
@ POPUP_KEEP_OPEN
Definition ui.h:346
@ POPUP_CLOSE_CURRENT_AND_DESCENDANTS
Definition ui.h:356
@ POPUP_CLOSE_CURRENT
Definition ui.h:351
void SetHotItem(const void *pId)
Definition ui.h:567
CUIElement * GetNewUIElement(int RequestedRectCount)
Definition ui.cpp:137
bool DoEditBox_Search(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, bool HotkeyEnabled)
Definition ui.cpp:1047
bool DoClearableEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners=IGraphics::CORNER_ALL, const std::vector< STextColorSplit > &vColorSplits={})
Definition ui.cpp:1026
CDoubleClickState m_DoubleClickState
Definition ui.h:416
CLabelResult DoLabel(const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps={}) const
Definition ui.cpp:811
std::function< void(const IInput::CEvent &Event)> m_DispatchInputFunction
Definition ui.h:459
bool m_Enabled
Definition ui.h:397
bool m_MouseLock
Definition ui.h:442
void DoSmoothScrollLogic(float *pScrollOffset, float *pScrollOffsetChange, float ViewPortSize, float TotalSize, bool SmoothClamp=false, float ScrollSpeed=10.0f) const
Definition ui.cpp:679
const void * NextHotItem() const
Definition ui.h:586
void ShowPopupColorPicker(float X, float Y, SColorPickerPopupContext *pContext)
Definition ui_popups.cpp:640
const void * m_pHotItem
Definition ui.h:399
void RenderPopupMenus()
Definition ui_popups.cpp:34
CValueSelectorState m_ActiveValueSelectorState
Definition ui.h:431
void ClosePopupMenus()
Definition ui_popups.cpp:103
float m_ProgressSpinnerOffset
Definition ui.h:421
float MouseX() const
Definition ui.h:545
bool DoScrollbarOption(const void *pId, int *pOption, const CUIRect *pRect, const char *pStr, int Min, int Max, const IScrollbarScale *pScale=&ms_LinearScrollbarScale, unsigned Flags=0u, const char *pSuffix="")
Definition ui.cpp:1513
Definition color.h:146
Definition color.h:176
Definition color.h:183
Definition ui.h:105
virtual ColorRGBA GetColor(bool Active, bool Hovered) const =0
virtual ~IButtonColorFunction()=default
Definition client.h:42
Definition graphics.h:240
@ CORNER_ALL
Definition graphics.h:529
Definition input.h:22
Definition input.h:18
ECursorType
Definition input.h:42
Definition kernel.h:34
Definition ui.h:53
virtual float ToRelative(int AbsoluteValue, int Min, int Max) const =0
virtual int ToAbsolute(float RelativeValue, int Min, int Max) const =0
virtual ~IScrollbarScale()=default
Definition textrender.h:194
constexpr int round_to_int(float f)
Definition math.h:17
Definition ui.h:159
CUIElement * m_pParent
Definition ui.h:160
float m_Y
Definition ui.h:167
CTextCursor m_Cursor
Definition ui.h:176
float m_Height
Definition ui.h:169
float m_Width
Definition ui.h:168
ColorRGBA m_TextColor
Definition ui.h:178
int m_ReadCursorGlyphCount
Definition ui.h:174
int m_UIRectQuadContainer
Definition ui.h:163
ColorRGBA m_TextOutlineColor
Definition ui.h:179
void Draw(const CUIRect *pRect, ColorRGBA Color, int Corners, float Rounding)
Definition ui.cpp:59
std::string m_Text
Definition ui.h:173
SUIElementRect()
Definition ui.cpp:39
float m_Rounding
Definition ui.h:170
void Reset()
Definition ui.cpp:41
STextContainerIndex m_UITextContainer
Definition ui.h:164
ColorRGBA m_QuadColor
Definition ui.h:183
int m_Corners
Definition ui.h:171
float m_X
Definition ui.h:166
EColorPickerMode m_ColorMode
Definition ui.h:816
CUi * m_pUI
Definition ui.h:815
EColorPickerMode
Definition ui.h:808
@ MODE_UNSET
Definition ui.h:809
@ MODE_HSVA
Definition ui.h:810
@ MODE_HSLA
Definition ui.h:812
@ MODE_RGBA
Definition ui.h:811
const char m_HuePickerId
Definition ui.h:823
bool m_Alpha
Definition ui.h:817
const char m_ColorPickerId
Definition ui.h:824
ColorRGBA m_RgbaColor
Definition ui.h:820
EEditState m_State
Definition ui.h:827
CButtonContainer m_aModeButtons[(int) MODE_HSLA+1]
Definition ui.h:826
const char m_aValueSelectorIds[5]
Definition ui.h:825
ColorHSLA m_HslaColor
Definition ui.h:821
unsigned int * m_pHslaColor
Definition ui.h:818
ColorHSVA m_HsvaColor
Definition ui.h:819
Definition ui.h:755
static constexpr float POPUP_FONT_SIZE
Definition ui.h:763
static constexpr float POPUP_BUTTON_SPACING
Definition ui.h:765
static constexpr float POPUP_MAX_WIDTH
Definition ui.h:762
EConfirmationResult
Definition ui.h:757
@ CONFIRMED
Definition ui.h:759
@ CANCELED
Definition ui.h:760
@ UNSET
Definition ui.h:758
char m_aNegativeButtonLabel[128]
Definition ui.h:769
static constexpr float POPUP_BUTTON_HEIGHT
Definition ui.h:764
CButtonContainer m_ConfirmButton
Definition ui.h:774
char m_aPositiveButtonLabel[128]
Definition ui.h:768
CUi * m_pUI
Definition ui.h:767
void Reset()
Definition ui_popups.cpp:172
char m_aMessage[1024]
Definition ui.h:770
CButtonContainer m_CancelButton
Definition ui.h:773
SConfirmPopupContext()
Definition ui_popups.cpp:167
EConfirmationResult m_Result
Definition ui.h:771
void YesNoButtons()
Definition ui_popups.cpp:177
Definition ui.h:833
CUIElement m_UiElement
Definition ui.h:835
CButtonContainer m_ButtonContainer
Definition ui.h:836
bool m_Init
Definition ui.h:837
SSelectionPopupContext m_SelectionPopupContext
Definition ui.h:834
Definition ui.h:741
void ErrorColor()
Definition ui_popups.cpp:139
static constexpr float POPUP_MAX_WIDTH
Definition ui.h:742
char m_aMessage[1024]
Definition ui.h:746
ColorRGBA m_TextColor
Definition ui.h:747
CUi * m_pUI
Definition ui.h:745
void DefaultColor(class ITextRender *pTextRender)
Definition ui_popups.cpp:134
static constexpr float POPUP_FONT_SIZE
Definition ui.h:743
Definition ui.h:468
void * m_pContext
Definition ui.h:475
static constexpr float POPUP_MARGIN
Definition ui.h:470
const SPopupMenuId * m_pId
Definition ui.h:472
static constexpr float POPUP_BORDER
Definition ui.h:469
CUIRect m_Rect
Definition ui.h:474
FPopupMenuFunction m_pfnFunc
Definition ui.h:476
SPopupMenuProperties m_Props
Definition ui.h:473
Definition ui.h:783
float m_AlignmentHeight
Definition ui.h:797
int m_SelectionIndex
Definition ui.h:791
float m_EntryHeight
Definition ui.h:792
float m_EntrySpacing
Definition ui.h:794
bool m_TransparentButtons
Definition ui.h:798
char m_aMessage[256]
Definition ui.h:787
const std::string * m_pSelection
Definition ui.h:790
SSelectionPopupContext()
Definition ui_popups.cpp:222
float m_EntryPadding
Definition ui.h:793
void Reset()
Definition ui_popups.cpp:227
std::vector< CButtonContainer > m_vButtonContainers
Definition ui.h:789
CUi * m_pUI
Definition ui.h:784
SPopupMenuProperties m_Props
Definition ui.h:786
float m_Width
Definition ui.h:796
std::vector< std::string > m_vEntries
Definition ui.h:788
float m_FontSize
Definition ui.h:795
CScrollRegion * m_pScrollRegion
Definition ui.h:785
Definition ui.h:32
T m_Value
Definition ui.h:34
EEditState m_State
Definition ui.h:33
Definition ui.h:212
void SetColor(const ColorRGBA &Color)
Definition ui.cpp:85
float m_MaxWidth
Definition ui.h:213
std::vector< STextColorSplit > m_vColorSplits
Definition ui.h:218
bool m_StopAtEnd
Definition ui.h:214
float m_MinimumFontSize
Definition ui.h:217
bool m_EllipsisAtEnd
Definition ui.h:215
bool m_EnableWidthCheck
Definition ui.h:216
Definition ui.h:240
ColorRGBA m_Color
Definition ui.h:249
bool m_UseIconFont
Definition ui.h:244
bool m_ShowDropDownIcon
Definition ui.h:245
bool m_HintRequiresStringCheck
Definition ui.h:242
bool m_HintCanChangePositionOrSize
Definition ui.h:243
unsigned m_Flags
Definition ui.h:250
float m_FontFactor
Definition ui.h:248
float m_Rounding
Definition ui.h:247
int m_Corners
Definition ui.h:246
int m_Checked
Definition ui.h:241
Definition ui.h:293
Definition ui.h:297
ColorRGBA m_BackgroundColor
Definition ui.h:300
int m_Corners
Definition ui.h:298
ColorRGBA m_BorderColor
Definition ui.h:299
Definition ui.h:283
int m_Segments
Definition ui.h:286
ColorRGBA m_Color
Definition ui.h:285
float m_Progress
Definition ui.h:284
Definition textrender.h:87
Definition textrender.h:175
Definition ui.h:38
std::chrono::nanoseconds m_Time
Definition ui.h:43
bool m_ScaleLabel
Definition ui.h:40
float m_Value
Definition ui.h:44
float m_XOffset
Definition ui.h:46
bool m_Active
Definition ui.h:39
float m_HOffset
Definition ui.h:49
float m_WOffset
Definition ui.h:48
bool m_RepositionLabel
Definition ui.h:41
float m_YOffset
Definition ui.h:47
Definition ui.h:273
int64_t m_Step
Definition ui.h:275
ColorRGBA m_Color
Definition ui.h:279
float m_Scale
Definition ui.h:276
int m_HexPrefix
Definition ui.h:278
bool m_UseScroll
Definition ui.h:274
bool m_IsHex
Definition ui.h:277
@ TEXTFLAG_RENDER
Definition textrender.h:16
EButtonFlags
Definition ui.h:230
@ BUTTONFLAG_MIDDLE
Definition ui.h:234
@ BUTTONFLAG_ALL
Definition ui.h:236
@ BUTTONFLAG_LEFT
Definition ui.h:232
@ BUTTONFLAG_RIGHT
Definition ui.h:233
@ BUTTONFLAG_NONE
Definition ui.h:231
EEditState
Definition ui.h:22
@ EDITING
Definition ui.h:25
@ ONE_GO
Definition ui.h:27
@ START
Definition ui.h:24
@ END
Definition ui.h:26
@ NONE
Definition ui.h:23
vector2_base< float > vec2
Definition vmath.h:168