DDNet documentation
Loading...
Searching...
No Matches
tooltips.h
Go to the documentation of this file.
1#ifndef GAME_CLIENT_TOOLTIPS_H
2#define GAME_CLIENT_TOOLTIPS_H
3
6
7#include <cstdint>
8#include <functional>
9#include <optional>
10#include <unordered_map>
11
13{
14public:
15 CTooltip(const void *pId, const CUIRect &Rect, const char *pText, float WidthHint, float FontSize, bool Truncated) :
16 m_pId(pId), m_Rect(Rect), m_pText(pText), m_WidthHint(WidthHint), m_FontSize(FontSize), m_Truncated(Truncated), m_OnScreen(false) {}
17
18 const void *m_pId;
20 const char *m_pText;
24 bool m_OnScreen; // used to know if the tooltip should be rendered.
25};
26
27class CUi;
28class ITextRender;
29
36{
37 std::unordered_map<uintptr_t, CTooltip> m_Tooltips;
38 std::optional<std::reference_wrapper<CTooltip>> m_ActiveTooltip;
39 std::optional<std::reference_wrapper<CTooltip>> m_PreviousTooltip;
40 int64_t m_HoverTime;
41
45 void SetActiveTooltip(CTooltip &Tooltip);
46
47 inline void ClearActiveTooltip();
50 CUi *Ui() { return m_pUi; }
52
53public:
54 CTooltips() = default;
55 void Init(CUi *pUi, ITextRender *pTextRender);
56
57 void DoToolTip(const CTooltip &Tooltip);
58
59 void OnReset();
60 void OnRender();
61};
62
63#endif
Definition tooltips.h:13
float m_WidthHint
Definition tooltips.h:21
CUIRect m_Rect
Definition tooltips.h:19
const char * m_pText
Definition tooltips.h:20
CTooltip(const void *pId, const CUIRect &Rect, const char *pText, float WidthHint, float FontSize, bool Truncated)
Definition tooltips.h:15
bool m_OnScreen
Definition tooltips.h:24
float m_FontSize
Definition tooltips.h:22
const void * m_pId
Definition tooltips.h:18
bool m_Truncated
Definition tooltips.h:23
void OnReset()
Definition tooltips.cpp:18
void Init(CUi *pUi, ITextRender *pTextRender)
Definition tooltips.cpp:11
std::optional< std::reference_wrapper< CTooltip > > m_ActiveTooltip
Definition tooltips.h:38
CUi * Ui()
Definition tooltips.h:50
CUi * m_pUi
Definition tooltips.h:48
std::unordered_map< uintptr_t, CTooltip > m_Tooltips
Definition tooltips.h:37
std::optional< std::reference_wrapper< CTooltip > > m_PreviousTooltip
Definition tooltips.h:39
ITextRender * m_pTextRender
Definition tooltips.h:49
void DoToolTip(const CTooltip &Tooltip)
Definition tooltips.cpp:36
void OnRender()
Definition tooltips.cpp:56
int64_t m_HoverTime
Definition tooltips.h:40
ITextRender * TextRender()
Definition tooltips.h:51
void ClearActiveTooltip()
Definition tooltips.cpp:30
void SetActiveTooltip(CTooltip &Tooltip)
Definition tooltips.cpp:25
CTooltips()=default
Definition ui_rect.h:12
Definition ui.h:340
Definition textrender.h:194