DDNet documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
menus_settings_controls.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_COMPONENTS_MENUS_SETTINGS_CONTROLS_H
4
#define GAME_CLIENT_COMPONENTS_MENUS_SETTINGS_CONTROLS_H
5
6
#include <
game/client/component.h
>
7
#include <
game/client/components/binds.h
>
8
#include <
game/client/lineinput.h
>
9
#include <
game/client/ui.h
>
10
#include <
game/client/ui_scrollregion.h
>
11
12
#include <vector>
13
14
enum class
EBindOptionGroup
15
{
16
MOVEMENT
,
17
WEAPON
,
18
VOTING
,
19
CHAT
,
20
DUMMY
,
21
MISCELLANEOUS
,
22
CUSTOM
,
23
NUM,
24
};
25
26
class
CBindSlotUiElement
27
{
28
public
:
29
CBindSlot
m_Bind
;
30
CButtonContainer
m_KeyReaderButton
;
31
CButtonContainer
m_KeyResetButton
;
32
bool
m_ToBeDeleted
=
false
;
33
34
bool
operator<
(
const
CBindSlotUiElement
&Other)
const
;
35
};
36
37
class
CBindOption
38
{
39
public
:
40
EBindOptionGroup
m_Group
;
41
const
char
*
m_pLabel
;
42
std::string
m_Command
;
43
std::vector<CBindSlotUiElement>
m_vCurrentBinds
;
44
CButtonContainer
m_AddBindButtonContainer
;
45
char
m_TooltipButtonId
;
46
bool
m_AddNewBind
=
false
;
47
bool
m_AddNewBindActivate
=
false
;
48
bool
m_ToBeDeleted
=
false
;
49
50
std::vector<CBindSlotUiElement>::iterator
GetBindSlotElement
(
const
CBindSlot
&BindSlot);
51
bool
MatchesSearch
(
const
char
*pSearch)
const
;
52
};
53
54
class
CMenusSettingsControls
:
public
CComponentInterfaces
55
{
56
public
:
57
void
OnInterfacesInit
(
CGameClient
*pClient)
override
;
58
void
Render
(
CUIRect
MainView);
59
60
private
:
61
bool
m_aBindGroupExpanded
[(int)
EBindOptionGroup::NUM
];
62
CButtonContainer
m_aBindGroupExpandButtons
[(int)
EBindOptionGroup::NUM
];
63
std::vector<CBindOption>
m_vBindOptions
;
64
size_t
m_NumPredefinedBindOptions
;
65
void
UpdateBindOptions
();
66
67
CScrollRegion
m_SettingsScrollRegion
;
68
CButtonContainer
m_ResetToDefaultButton
;
69
CLineInputBuffered<128>
m_FilterInput
;
70
int
m_CurrentSearchMatch
= 0;
71
std::vector<int>
m_vSearchMatches
;
72
bool
m_SearchMatchReveal
=
false
;
73
void
UpdateSearchMatches
();
74
75
void
RenderSettingsBlock
(
float
Height,
CUIRect
*pParentRect,
const
char
*pTitle,
76
bool
*pExpanded,
CButtonContainer
*pExpandButton,
const
std::function<
void
(
CUIRect
Rect)> &RenderContentFunction);
77
78
void
RenderSettingsBindsBlock
(
EBindOptionGroup
Group,
CUIRect
*pParentRect,
const
char
*pTitle);
79
float
MeasureSettingsBindsHeight
(
EBindOptionGroup
Group)
const
;
80
void
RenderSettingsBinds
(
EBindOptionGroup
Group,
CUIRect
View);
81
82
float
MeasureSettingsMouseHeight
()
const
;
83
void
RenderSettingsMouse
(
CUIRect
View);
84
85
std::vector<CButtonContainer>
m_vJoystickIngameModeButtonContainers
= {{}, {}};
86
char
m_aaJoystickAxisCheckboxIds
[
NUM_JOYSTICK_AXES
][2];
// 2 for X and Y buttons
87
CScrollRegion
m_JoystickDropDownScrollRegion
;
88
CUi::SDropDownState
m_JoystickDropDownState
;
89
float
MeasureSettingsJoystickHeight
()
const
;
90
void
RenderSettingsJoystick
(
CUIRect
View);
91
void
RenderJoystickAxisPicker
(
CUIRect
View);
92
void
RenderJoystickBar
(
const
CUIRect
*pRect,
float
Current,
float
Tolerance,
bool
Active);
93
};
94
95
#endif
binds.h
CBindOption
Definition
menus_settings_controls.h:38
CBindOption::GetBindSlotElement
std::vector< CBindSlotUiElement >::iterator GetBindSlotElement(const CBindSlot &BindSlot)
Definition
menus_settings_controls.cpp:47
CBindOption::MatchesSearch
bool MatchesSearch(const char *pSearch) const
Definition
menus_settings_controls.cpp:54
CBindOption::m_ToBeDeleted
bool m_ToBeDeleted
Definition
menus_settings_controls.h:48
CBindOption::m_AddNewBind
bool m_AddNewBind
Definition
menus_settings_controls.h:46
CBindOption::m_AddNewBindActivate
bool m_AddNewBindActivate
Definition
menus_settings_controls.h:47
CBindOption::m_TooltipButtonId
char m_TooltipButtonId
Definition
menus_settings_controls.h:45
CBindOption::m_vCurrentBinds
std::vector< CBindSlotUiElement > m_vCurrentBinds
Definition
menus_settings_controls.h:43
CBindOption::m_AddBindButtonContainer
CButtonContainer m_AddBindButtonContainer
Definition
menus_settings_controls.h:44
CBindOption::m_Group
EBindOptionGroup m_Group
Definition
menus_settings_controls.h:40
CBindOption::m_Command
std::string m_Command
Definition
menus_settings_controls.h:42
CBindOption::m_pLabel
const char * m_pLabel
Definition
menus_settings_controls.h:41
CBindSlotUiElement
Definition
menus_settings_controls.h:27
CBindSlotUiElement::operator<
bool operator<(const CBindSlotUiElement &Other) const
Definition
menus_settings_controls.cpp:33
CBindSlotUiElement::m_KeyReaderButton
CButtonContainer m_KeyReaderButton
Definition
menus_settings_controls.h:30
CBindSlotUiElement::m_Bind
CBindSlot m_Bind
Definition
menus_settings_controls.h:29
CBindSlotUiElement::m_ToBeDeleted
bool m_ToBeDeleted
Definition
menus_settings_controls.h:32
CBindSlotUiElement::m_KeyResetButton
CButtonContainer m_KeyResetButton
Definition
menus_settings_controls.h:31
CBindSlot
Definition
binds.h:27
CButtonContainer
Definition
ui.h:269
CComponentInterfaces
Definition
component.h:15
CGameClient
Definition
gameclient.h:151
CLineInputBuffered
Definition
lineinput.h:202
CMenusSettingsControls
Definition
menus_settings_controls.h:55
CMenusSettingsControls::MeasureSettingsBindsHeight
float MeasureSettingsBindsHeight(EBindOptionGroup Group) const
Definition
menus_settings_controls.cpp:442
CMenusSettingsControls::OnInterfacesInit
void OnInterfacesInit(CGameClient *pClient) override
Definition
menus_settings_controls.cpp:60
CMenusSettingsControls::UpdateSearchMatches
void UpdateSearchMatches()
Definition
menus_settings_controls.cpp:344
CMenusSettingsControls::m_vSearchMatches
std::vector< int > m_vSearchMatches
Definition
menus_settings_controls.h:71
CMenusSettingsControls::RenderSettingsBinds
void RenderSettingsBinds(EBindOptionGroup Group, CUIRect View)
Definition
menus_settings_controls.cpp:460
CMenusSettingsControls::m_JoystickDropDownScrollRegion
CScrollRegion m_JoystickDropDownScrollRegion
Definition
menus_settings_controls.h:87
CMenusSettingsControls::RenderSettingsBindsBlock
void RenderSettingsBindsBlock(EBindOptionGroup Group, CUIRect *pParentRect, const char *pTitle)
Definition
menus_settings_controls.cpp:435
CMenusSettingsControls::m_aBindGroupExpanded
bool m_aBindGroupExpanded[(int) EBindOptionGroup::NUM]
Definition
menus_settings_controls.h:61
CMenusSettingsControls::RenderJoystickBar
void RenderJoystickBar(const CUIRect *pRect, float Current, float Tolerance, bool Active)
Definition
menus_settings_controls.cpp:759
CMenusSettingsControls::RenderSettingsJoystick
void RenderSettingsJoystick(CUIRect View)
Definition
menus_settings_controls.cpp:597
CMenusSettingsControls::m_NumPredefinedBindOptions
size_t m_NumPredefinedBindOptions
Definition
menus_settings_controls.h:64
CMenusSettingsControls::m_vBindOptions
std::vector< CBindOption > m_vBindOptions
Definition
menus_settings_controls.h:63
CMenusSettingsControls::m_vJoystickIngameModeButtonContainers
std::vector< CButtonContainer > m_vJoystickIngameModeButtonContainers
Definition
menus_settings_controls.h:85
CMenusSettingsControls::m_JoystickDropDownState
CUi::SDropDownState m_JoystickDropDownState
Definition
menus_settings_controls.h:88
CMenusSettingsControls::MeasureSettingsJoystickHeight
float MeasureSettingsJoystickHeight() const
Definition
menus_settings_controls.cpp:580
CMenusSettingsControls::m_aBindGroupExpandButtons
CButtonContainer m_aBindGroupExpandButtons[(int) EBindOptionGroup::NUM]
Definition
menus_settings_controls.h:62
CMenusSettingsControls::m_aaJoystickAxisCheckboxIds
char m_aaJoystickAxisCheckboxIds[NUM_JOYSTICK_AXES][2]
Definition
menus_settings_controls.h:86
CMenusSettingsControls::MeasureSettingsMouseHeight
float MeasureSettingsMouseHeight() const
Definition
menus_settings_controls.cpp:561
CMenusSettingsControls::m_SearchMatchReveal
bool m_SearchMatchReveal
Definition
menus_settings_controls.h:72
CMenusSettingsControls::RenderSettingsMouse
void RenderSettingsMouse(CUIRect View)
Definition
menus_settings_controls.cpp:566
CMenusSettingsControls::m_ResetToDefaultButton
CButtonContainer m_ResetToDefaultButton
Definition
menus_settings_controls.h:68
CMenusSettingsControls::m_CurrentSearchMatch
int m_CurrentSearchMatch
Definition
menus_settings_controls.h:70
CMenusSettingsControls::m_FilterInput
CLineInputBuffered< 128 > m_FilterInput
Definition
menus_settings_controls.h:69
CMenusSettingsControls::RenderJoystickAxisPicker
void RenderJoystickAxisPicker(CUIRect View)
Definition
menus_settings_controls.cpp:689
CMenusSettingsControls::UpdateBindOptions
void UpdateBindOptions()
Definition
menus_settings_controls.cpp:203
CMenusSettingsControls::m_SettingsScrollRegion
CScrollRegion m_SettingsScrollRegion
Definition
menus_settings_controls.h:67
CMenusSettingsControls::Render
void Render(CUIRect MainView)
Definition
menus_settings_controls.cpp:119
CMenusSettingsControls::RenderSettingsBlock
void RenderSettingsBlock(float Height, CUIRect *pParentRect, const char *pTitle, bool *pExpanded, CButtonContainer *pExpandButton, const std::function< void(CUIRect Rect)> &RenderContentFunction)
Definition
menus_settings_controls.cpp:372
CScrollRegion
Definition
ui_scrollregion.h:101
CUIRect
Definition
ui_rect.h:12
component.h
NUM_JOYSTICK_AXES
@ NUM_JOYSTICK_AXES
Definition
keys.h:341
lineinput.h
EBindOptionGroup
EBindOptionGroup
Definition
menus_settings_controls.h:15
EBindOptionGroup::WEAPON
@ WEAPON
Definition
menus_settings_controls.h:17
EBindOptionGroup::VOTING
@ VOTING
Definition
menus_settings_controls.h:18
EBindOptionGroup::NUM
@ NUM
Definition
menus_settings_controls.h:23
EBindOptionGroup::CHAT
@ CHAT
Definition
menus_settings_controls.h:19
EBindOptionGroup::CUSTOM
@ CUSTOM
Definition
menus_settings_controls.h:22
EBindOptionGroup::MISCELLANEOUS
@ MISCELLANEOUS
Definition
menus_settings_controls.h:21
EBindOptionGroup::DUMMY
@ DUMMY
Definition
menus_settings_controls.h:20
EBindOptionGroup::MOVEMENT
@ MOVEMENT
Definition
menus_settings_controls.h:16
CUi::SDropDownState
Definition
ui.h:833
ui.h
ui_scrollregion.h
src
game
client
components
menus_settings_controls.h
Generated by
1.18.0