3#ifndef GAME_CLIENT_UI_H
4#define GAME_CLIENT_UI_H
116 return ColorRGBA(0.15f, 0.15f, 0.15f, 0.25f);
118 return ColorRGBA(0.5f, 0.5f, 0.5f, 0.25f);
119 return ColorRGBA(0.0f, 0.0f, 0.0f, 0.25f);
128 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.4f);
130 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.6f);
131 return ColorRGBA(1.0f, 1.0f, 1.0f, 0.5f);
140 return ColorRGBA(0.9f, 0.9f, 0.9f, 1.0f);
142 return ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f);
143 return ColorRGBA(0.8f, 0.8f, 0.8f, 1.0f);
Definition textrender.h:207
IClient * Client() const
Definition ui.cpp:102
IInput * Input() const
Definition ui.cpp:104
static void Init(CUi *pUI)
Definition ui.h:252
static CUi * ms_pUi
Definition ui.h:249
ITextRender * TextRender() const
Definition ui.cpp:105
IGraphics * Graphics() const
Definition ui.cpp:103
CUi * Ui() const
Definition ui.h:258
CUi * m_pUI
Definition ui.h:153
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:29
void Init(CUi *pUI, int RequestedRectCount)
Definition ui.cpp:21
float m_LastClickTime
Definition ui.h:374
vec2 m_LastClickPos
Definition ui.h:375
const void * m_pLastClickedId
Definition ui.h:373
bool m_AnyPressed
Definition ui.h:349
vec2 m_PrimaryDelta
Definition ui.h:353
float m_SecondaryActivationTime
Definition ui.h:345
bool m_SecondaryPressedNext
Definition ui.h:344
bool m_PrimaryPressed
Definition ui.h:350
bool m_SecondaryPressed
Definition ui.h:351
vec2 m_PrimaryPosition
Definition ui.h:352
vec2 m_ScrollAmount
Definition ui.h:354
vec2 m_SecondaryActivationDelta
Definition ui.h:346
CLineInputNumber m_NumberInput
Definition ui.h:389
bool m_DidScroll
Definition ui.h:387
float m_ScrollValue
Definition ui.h:388
const void * m_pLastTextId
Definition ui.h:390
int m_Button
Definition ui.h:386
void DoPopupMenu(const SPopupMenuId *pId, float X, float Y, float Width, float Height, void *pContext, FPopupMenuFunction pfnFunc, const SPopupMenuProperties &Props={})
Definition ui.cpp:1611
void ResetUIElement(CUIElement &UIElement) const
Definition ui.cpp:149
void ClipEnable(const CUIRect *pRect)
Definition ui.cpp:465
EEditState DoPickerLogic(const void *pId, const CUIRect *pRect, float *pX, float *pY)
Definition ui.cpp:625
static const CLogarithmicScrollbarScale ms_LogarithmicScrollbarScale
Definition ui.h:443
vec2 m_UpdatedMouseDelta
Definition ui.h:395
void FinishCheck()
Definition ui.h:541
void RenderProgressSpinner(vec2 Center, float OuterRadius, const SProgressSpinnerProperties &Props={}) const
Definition ui.cpp:1569
bool OnInput(const IInput::CEvent &Event)
Definition ui.cpp:393
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)
Definition ui.cpp:1183
CTouchState m_TouchState
Definition ui.h:402
std::function< void()> FPopupMenuClosedCallback
Definition ui.h:335
std::vector< SPopupMenu > m_vPopupMenus
Definition ui.h:425
void EnableMouseLock(const void *pId)
Definition ui.h:510
vec2 m_MousePos
Definition ui.h:396
const void * HotItem() const
Definition ui.h:535
void DoLabel(const CUIRect *pRect, const char *pText, float Size, int Align, const SLabelProperties &LabelProps={}) const
Definition ui.cpp:799
void SetPopupMenuClosedCallback(FPopupMenuClosedCallback pfnCallback)
Definition ui.cpp:1726
bool MouseInside(const CUIRect *pRect) const
Definition ui.cpp:276
@ SCROLLBAR_OPTION_MULTILINE
Definition ui.h:657
@ SCROLLBAR_OPTION_INFINITE
Definition ui.h:655
@ SCROLLBAR_OPTION_DELAYUPDATE
Definition ui.h:658
@ SCROLLBAR_OPTION_NOCLAMPVALUE
Definition ui.h:656
std::vector< CUIElement * > m_vpOwnUIElements
Definition ui.h:438
void ResetMouseSlow()
Definition ui.h:556
unsigned m_UpdatedMouseButtons
Definition ui.h:399
IGraphics * m_pGraphics
Definition ui.h:434
const void * m_pActiveItem
Definition ui.h:361
bool IsPopupHovered() const
Definition ui.cpp:1721
unsigned m_HotkeysPressed
Definition ui.h:407
constexpr float ButtonColorMulHot() const
Definition ui.h:563
void SetEnabled(bool Enabled)
Definition ui.h:486
vec2 MousePos() const
Definition ui.h:491
void SetActiveItem(const void *pId)
Definition ui.h:518
EHotkey
Definition ui.h:460
@ HOTKEY_TAB
Definition ui.h:468
@ HOTKEY_PAGE_DOWN
Definition ui.h:472
@ HOTKEY_DELETE
Definition ui.h:467
@ HOTKEY_SCROLL_UP
Definition ui.h:469
@ HOTKEY_ESCAPE
Definition ui.h:462
@ HOTKEY_END
Definition ui.h:474
@ HOTKEY_SCROLL_DOWN
Definition ui.h:470
@ HOTKEY_ENTER
Definition ui.h:461
@ HOTKEY_PAGE_UP
Definition ui.h:471
@ HOTKEY_LEFT
Definition ui.h:465
@ HOTKEY_RIGHT
Definition ui.h:466
@ HOTKEY_DOWN
Definition ui.h:464
@ HOTKEY_HOME
Definition ui.h:473
@ HOTKEY_UP
Definition ui.h:463
int DoDropDown(CUIRect *pRect, int CurSelection, const char **pStrs, int Num, SDropDownState &State)
Definition ui.cpp:1920
bool IsClipped() const
Definition ui.h:574
float PixelSize()
Definition ui.cpp:460
CScrollRegion * m_pBecomingHotScrollRegion
Definition ui.h:365
static const CLinearScrollbarScale ms_LinearScrollbarScale
Definition ui.h:442
bool DoEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners=IGraphics::CORNER_ALL, const std::vector< STextColorSplit > &vColorSplits={})
Definition ui.cpp:906
bool IsPopupOpen() const
Definition ui.cpp:1711
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:842
void DebugRender(float X, float Y)
Definition ui.cpp:267
constexpr float ButtonColorMulDefault() const
Definition ui.h:564
~CUi()
Definition ui.cpp:126
void OnCursorMove(float X, float Y)
Definition ui.cpp:172
static vec2 CalcAlignedCursorPos(const CUIRect *pRect, vec2 TextSize, int Align, const float *pBiggestCharHeight=nullptr)
Definition ui.cpp:772
int m_ScrollbarValue
Definition ui.h:380
vec2 m_MouseWorldPos
Definition ui.h:398
static CUi::EPopupMenuFunctionResult PopupSelection(void *pContext, CUIRect View, bool Active)
Definition ui.cpp:1841
vec2 UpdatedMousePos() const
Definition ui.h:500
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:1195
vec2 m_MouseDelta
Definition ui.h:397
FPopupMenuClosedCallback m_pfnPopupMenuClosedCallback
Definition ui.h:426
bool ConsumeHotkey(EHotkey Hotkey)
Definition ui.cpp:386
int m_ActiveDraggableButtonLogicButton
Definition ui.h:369
void RenderProgressBar(CUIRect ProgressBar, float Progress)
Definition ui.cpp:1561
void UpdateTouchState(CTouchState &State) const
Definition ui.cpp:305
IClient * m_pClient
Definition ui.h:433
static CUi::EPopupMenuFunctionResult PopupConfirm(void *pContext, CUIRect View, bool Active)
Definition ui.cpp:1793
IClient * Client() const
Definition ui.h:451
vec2 MouseWorldPos() const
Definition ui.h:497
static const CDarkButtonColorFunction ms_DarkButtonColorFunction
Definition ui.h:444
static const CScrollBarColorFunction ms_ScrollBarColorFunction
Definition ui.h:446
bool Enabled() const
Definition ui.h:487
ITextRender * m_pTextRender
Definition ui.h:436
float MouseWorldX() const
Definition ui.h:498
bool MouseHovered(const CUIRect *pRect) const
Definition ui.h:553
unsigned m_MouseButtons
Definition ui.h:400
IInput * Input() const
Definition ui.h:453
void MapScreen()
Definition ui.cpp:454
void DisableMouseLock()
Definition ui.h:515
void ConvertMouseMove(float *pX, float *pY, IInput::ECursorType CursorType) const
Definition ui.cpp:281
float MouseY() const
Definition ui.h:493
float DoScrollbarV(const void *pId, const CUIRect *pRect, float Current)
Definition ui.cpp:1327
bool m_ActiveItemValid
Definition ui.h:366
float ButtonColorMul(const void *pId)
Definition ui.cpp:438
int DoButtonLogic(const void *pId, int Checked, const CUIRect *pRect, unsigned Flags)
Definition ui.cpp:512
ITextRender * TextRender() const
Definition ui.h:454
float MouseDeltaY() const
Definition ui.h:496
void AddUIElement(CUIElement *pElement)
Definition ui.cpp:144
unsigned m_LastMouseButtons
Definition ui.h:401
int MouseButton(int Index) const
Definition ui.h:502
CScrollRegion * m_pHotScrollRegion
Definition ui.h:364
int m_ActiveButtonLogicButton
Definition ui.h:368
static CUi::EPopupMenuFunctionResult PopupMessage(void *pContext, CUIRect View, bool Active)
Definition ui.cpp:1741
const void * m_pLastActiveItem
Definition ui.h:362
bool MouseInsideClip() const
Definition ui.h:552
int DoButton_Menu(CUIElement &UIElement, const CButtonContainer *pId, const std::function< const char *()> &GetTextLambda, const CUIRect *pRect, const SMenuButtonProperties &Props={})
Definition ui.cpp:1053
void ShowPopupMessage(float X, float Y, SMessagePopupContext *pContext)
Definition ui.cpp:1753
void ClosePopupMenu(const SPopupMenuId *pId, bool IncludeDescendants=false)
Definition ui.cpp:1685
bool DoDoubleClickLogic(const void *pId)
Definition ui.cpp:610
static const CLightButtonColorFunction ms_LightButtonColorFunction
Definition ui.h:445
void ClearHotkeys()
Definition ui.h:559
std::vector< CUIRect > m_vClips
Definition ui.h:411
IGraphics * Graphics() const
Definition ui.h:452
float m_ActiveScrollbarOffset
Definition ui.h:381
void OnWindowResize()
Definition ui.cpp:167
EPopupMenuFunctionResult(* FPopupMenuFunction)(void *pContext, CUIRect View, bool Active)
Definition ui.h:330
const void * m_pLastEditingItem
Definition ui.h:378
void UpdateClipping()
Definition ui.cpp:497
const void * m_pLastActiveScrollbar
Definition ui.h:379
static CUi::EPopupMenuFunctionResult PopupColorPicker(void *pContext, CUIRect View, bool Active)
Definition ui.cpp:1964
vec2 UpdatedMouseDelta() const
Definition ui.h:501
const CScrollRegion * HotScrollRegion() const
Definition ui.h:538
vec2 m_UpdatedMousePos
Definition ui.h:394
float MouseDeltaX() const
Definition ui.h:495
void ShowPopupSelection(float X, float Y, SSelectionPopupContext *pContext)
Definition ui.cpp:1891
bool m_MouseSlow
Definition ui.h:403
void SetHotScrollRegion(CScrollRegion *pId)
Definition ui.h:534
int MouseButtonClicked(int Index) const
Definition ui.h:503
const void * ActiveItem() const
Definition ui.h:537
int DoDraggableButtonLogic(const void *pId, int Checked, const CUIRect *pRect, bool *pClicked, bool *pAbrupted)
Definition ui.cpp:549
const CUIRect * Screen()
Definition ui.cpp:447
static const float ms_FontmodHeight
Definition ui.h:448
CUi()
Definition ui.cpp:118
IInput * m_pInput
Definition ui.h:435
void ShowPopupConfirm(float X, float Y, SConfirmPopupContext *pContext)
Definition ui.cpp:1780
float DoScrollbarH(const void *pId, const CUIRect *pRect, float Current, const ColorRGBA *pColorInner=nullptr)
Definition ui.cpp:1397
std::vector< CUIElement * > m_vpUIElements
Definition ui.h:439
vec2 MouseDelta() const
Definition ui.h:494
const void * m_pBecomingHotItem
Definition ui.h:363
void OnElementsReset()
Definition ui.cpp:159
const CUIRect * ClipArea() const
Definition ui.cpp:491
bool CheckActiveItem(const void *pId)
Definition ui.h:525
int DoButton_FontIcon(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, unsigned Flags, int Corners=IGraphics::CORNER_ALL, bool Enabled=true)
Definition ui.cpp:1155
CUIRect m_Screen
Definition ui.h:409
const void * m_pMouseLockId
Definition ui.h:405
void StartCheck()
Definition ui.h:540
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:1200
void Update(vec2 MouseWorldPos=vec2(-1.0f, -1.0f))
Definition ui.cpp:183
constexpr float ButtonColorMulActive() const
Definition ui.h:562
bool CheckMouseLock()
Definition ui.h:504
void ClipDisable()
Definition ui.cpp:484
void Init(IKernel *pKernel)
Definition ui.cpp:107
EPopupMenuFunctionResult
Definition ui.h:303
@ POPUP_KEEP_OPEN
Definition ui.h:307
@ POPUP_CLOSE_CURRENT_AND_DESCENDANTS
Definition ui.h:317
@ POPUP_CLOSE_CURRENT
Definition ui.h:312
void SetHotItem(const void *pId)
Definition ui.h:517
float MouseWorldY() const
Definition ui.h:499
CUIElement * GetNewUIElement(int RequestedRectCount)
Definition ui.cpp:135
bool DoEditBox_Search(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, bool HotkeyEnabled)
Definition ui.cpp:1034
bool DoClearableEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners=IGraphics::CORNER_ALL, const std::vector< STextColorSplit > &vColorSplits={})
Definition ui.cpp:1013
CDoubleClickState m_DoubleClickState
Definition ui.h:377
bool m_Enabled
Definition ui.h:358
bool m_MouseLock
Definition ui.h:404
void DoSmoothScrollLogic(float *pScrollOffset, float *pScrollOffsetChange, float ViewPortSize, float TotalSize, bool SmoothClamp=false, float ScrollSpeed=10.0f) const
Definition ui.cpp:666
const void * NextHotItem() const
Definition ui.h:536
void ShowPopupColorPicker(float X, float Y, SColorPickerPopupContext *pContext)
Definition ui.cpp:2239
const void * m_pHotItem
Definition ui.h:360
void RenderPopupMenus()
Definition ui.cpp:1631
CValueSelectorState m_ActiveValueSelectorState
Definition ui.h:392
void ClosePopupMenus()
Definition ui.cpp:1700
float m_ProgressSpinnerOffset
Definition ui.h:382
float MouseX() const
Definition ui.h:492
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:1500
void DoLabel_AutoLineSize(const char *pText, float FontSize, int Align, CUIRect *pRect, float LineSize, const SLabelProperties &LabelProps={}) const
Definition ui.cpp:898
Definition graphics.h:188
@ CORNER_ALL
Definition graphics.h:461
Definition textrender.h:280
constexpr int round_to_int(float f)
Definition math.h:16
constexpr T maximum(T a, T b)
Definition math.h:147
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:57
std::string m_Text
Definition ui.h:173
SUIElementRect()
Definition ui.cpp:37
float m_Rounding
Definition ui.h:170
void Reset()
Definition ui.cpp:39
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
CUIElement m_UiElement
Definition ui.h:775
CButtonContainer m_ButtonContainer
Definition ui.h:776
bool m_Init
Definition ui.h:777
SSelectionPopupContext m_SelectionPopupContext
Definition ui.h:774
T m_Value
Definition ui.h:34
EEditState m_State
Definition ui.h:33
void SetColor(const ColorRGBA &Color)
Definition ui.cpp:83
float m_MaxWidth
Definition ui.h:213
std::vector< STextColorSplit > m_vColorSplits
Definition ui.h:217
bool m_StopAtEnd
Definition ui.h:214
bool m_EllipsisAtEnd
Definition ui.h:215
bool m_EnableWidthCheck
Definition ui.h:216
int m_Segments
Definition ui.h:279
ColorRGBA m_Color
Definition ui.h:278
float m_Progress
Definition ui.h:277
Definition textrender.h:261
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
int64_t m_Step
Definition ui.h:268
ColorRGBA m_Color
Definition ui.h:272
float m_Scale
Definition ui.h:269
int m_HexPrefix
Definition ui.h:271
bool m_UseScroll
Definition ui.h:267
bool m_IsHex
Definition ui.h:270
EButtonFlags
Definition ui.h:223
@ BUTTONFLAG_MIDDLE
Definition ui.h:227
@ BUTTONFLAG_ALL
Definition ui.h:229
@ BUTTONFLAG_LEFT
Definition ui.h:225
@ BUTTONFLAG_RIGHT
Definition ui.h:226
@ BUTTONFLAG_NONE
Definition ui.h:224
EEditState
Definition ui.h:22
vector2_base< float > vec2
Definition vmath.h:161