ddnet/src/game/client/ui_ex.h

64 lines
1.6 KiB
C
Raw Normal View History

#ifndef GAME_CLIENT_UI_EX_H
#define GAME_CLIENT_UI_EX_H
#include <base/system.h>
2021-05-31 09:43:02 +00:00
#include <engine/input.h>
#include <engine/kernel.h>
#include <game/client/ui.h>
class IInput;
class ITextRender;
class IKernel;
class IGraphics;
class CRenderTools;
class CUIEx
{
CUI *m_pUI;
IInput *m_pInput;
ITextRender *m_pTextRender;
IKernel *m_pKernel;
IGraphics *m_pGraphics;
CRenderTools *m_pRenderTools;
2021-05-31 09:43:02 +00:00
IInput::CEvent *m_pInputEventsArray;
int *m_pInputEventCount;
2021-10-07 19:18:55 +00:00
bool m_MouseIsPress = false;
bool m_HasSelection = false;
int m_MousePressX = 0;
int m_MousePressY = 0;
int m_MouseCurX = 0;
int m_MouseCurY = 0;
2021-11-26 20:55:31 +00:00
bool m_MouseSlow;
int m_CurSelStart = 0;
int m_CurSelEnd = 0;
void *m_pSelItem = nullptr;
int m_CurCursor = 0;
protected:
2021-11-26 20:55:31 +00:00
CUI *UI() const { return m_pUI; }
IInput *Input() const { return m_pInput; }
ITextRender *TextRender() const { return m_pTextRender; }
IKernel *Kernel() const { return m_pKernel; }
IGraphics *Graphics() const { return m_pGraphics; }
CRenderTools *RenderTools() const { return m_pRenderTools; }
public:
CUIEx();
2021-05-31 09:43:02 +00:00
void Init(CUI *pUI, IKernel *pKernel, CRenderTools *pRenderTools, IInput::CEvent *pInputEventsArray, int *pInputEventCount);
2021-11-26 20:55:31 +00:00
void ConvertMouseMove(float *pX, float *pY) const;
void ResetMouseSlow() { m_MouseSlow = false; }
float DoScrollbarV(const void *pID, const CUIRect *pRect, float Current);
float DoScrollbarH(const void *pID, const CUIRect *pRect, float Current, const ColorRGBA *pColorInner = NULL);
int DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned StrSize, float FontSize, float *Offset, bool Hidden = false, int Corners = CUI::CORNER_ALL, const char *pEmptyText = "");
};
#endif