DDraceNetwork Docs
touch_controls.h
Go to the documentation of this file.
1#ifndef GAME_CLIENT_COMPONENTS_TOUCH_CONTROLS_H
2#define GAME_CLIENT_COMPONENTS_TOUCH_CONTROLS_H
3
4#include <base/color.h>
5#include <base/vmath.h>
6
7#include <engine/input.h>
8
10#include <game/client/ui_rect.h>
11
12#include <chrono>
13#include <functional>
14#include <memory>
15#include <optional>
16#include <string>
17#include <vector>
18
19class CJsonWriter;
20typedef struct _json_value json_value;
21
23{
24public:
26 {
27 DISABLED,
28 ACTION,
29 AIM,
30 FIRE,
31 HOOK,
32 NUM_STATES
33 };
35 {
36 DISABLED,
37 AIM,
38 NUM_STATES
39 };
40
41 int Sizeof() const override { return sizeof(*this); }
42 void OnInit() override;
43 void OnReset() override;
44 void OnWindowResize() override;
45 bool OnTouchState(const std::vector<IInput::CTouchFingerState> &vTouchFingerStates) override;
46 void OnRender() override;
47
48 bool LoadConfigurationFromFile(int StorageType);
52
55 {
57 m_EditingChanges = true;
58 }
61 {
63 m_EditingChanges = true;
64 }
65 bool IsEditingActive() const { return m_EditingActive; }
66 void SetEditingActive(bool EditingActive) { m_EditingActive = EditingActive; }
67 bool HasEditingChanges() const { return m_EditingChanges; }
68 void SetEditingChanges(bool EditingChanges) { m_EditingChanges = EditingChanges; }
69
70private:
71 static constexpr const char *const DIRECT_TOUCH_INGAME_MODE_NAMES[(int)EDirectTouchIngameMode::NUM_STATES] = {"disabled", "action", "aim", "fire", "hook"};
72 static constexpr const char *const DIRECT_TOUCH_SPECTATE_MODE_NAMES[(int)EDirectTouchSpectateMode::NUM_STATES] = {"disabled", "aim"};
73
74 enum class EButtonShape
75 {
76 RECT,
77 CIRCLE,
78 NUM_SHAPES
79 };
80
81 static constexpr const char *const SHAPE_NAMES[(int)EButtonShape::NUM_SHAPES] = {"rect", "circle"};
82
84 {
85 INGAME,
86 ZOOM_ALLOWED,
87 VOTE_ACTIVE,
88 DUMMY_ALLOWED,
89 DUMMY_CONNECTED,
90 RCON_AUTHED,
91 DEMO_PLAYER,
92 EXTRA_MENU_1,
93 EXTRA_MENU_2,
94 EXTRA_MENU_3,
95 EXTRA_MENU_4,
96 EXTRA_MENU_5,
97 NUM_VISIBILITIES
98 };
99
101 {
102 public:
105
107 m_Type(Type), m_Parity(Parity) {}
108 };
109
111 {
112 public:
113 const char *m_pId;
114 std::function<bool()> m_Function;
115 };
116
118
119 enum
120 {
125 };
126
128 {
129 public:
130 enum class EType
131 {
135 PLAIN,
140 LOCALIZED,
144 ICON,
148 NUM_TYPES
149 };
150
152 const char *m_pLabel;
153 };
154
155 static constexpr const char *const LABEL_TYPE_NAMES[(int)CButtonLabel::EType::NUM_TYPES] = {"plain", "localized", "icon"};
156
158 {
159 public:
160 int m_X;
161 int m_Y;
162 int m_W;
163 int m_H;
164 };
165
167
169 {
170 public:
171 CTouchButton(CTouchControls *pTouchControls);
172 CTouchButton(CTouchButton &&Other) noexcept;
173 CTouchButton(const CTouchButton &Other) = delete;
174
175 CTouchButton &operator=(const CTouchButton &Other) = delete;
176 CTouchButton &operator=(CTouchButton &&Other) noexcept;
177
179
182
184 int m_BackgroundCorners; // only used with EButtonShape::RECT
185
186 std::vector<CButtonVisibility> m_vVisibilities;
187 std::unique_ptr<CTouchButtonBehavior> m_pBehavior;
188
190 std::chrono::nanoseconds m_VisibilityStartTime;
191
192 void UpdatePointers();
195
196 vec2 ClampTouchPosition(vec2 TouchPosition) const;
197 bool IsInside(vec2 TouchPosition) const;
198 void UpdateVisibility();
199 bool IsVisible() const;
200 void Render() const;
201 void WriteToConfiguration(CJsonWriter *pWriter);
202 };
203
205 {
206 public:
209
210 bool m_Active; // variables below must only be used when active
214 std::chrono::nanoseconds m_ActivationStartTime;
215
216 virtual ~CTouchButtonBehavior() = default;
217 virtual void Init(CTouchButton *pTouchButton);
218
219 void Reset();
220 void SetActive(const IInput::CTouchFingerState &FingerState);
221 void SetInactive();
222 bool IsActive() const;
223 bool IsActive(const IInput::CTouchFinger &Finger) const;
224
225 virtual CButtonLabel GetLabel() const = 0;
226 virtual void OnActivate() {}
227 virtual void OnDeactivate() {}
228 virtual void OnUpdate() {}
229 virtual void WriteToConfiguration(CJsonWriter *pWriter) = 0;
230 };
231
238 {
239 public:
240 static constexpr const char *const BEHAVIOR_TYPE = "predefined";
241
243 m_pId(pId) {}
244
249 void WriteToConfiguration(CJsonWriter *pWriter) override;
250
251 private:
252 const char *m_pId;
253 };
254
256 {
257 public:
258 static constexpr const char *const BEHAVIOR_ID = "ingame-menu";
259
262
263 CButtonLabel GetLabel() const override;
264 void OnDeactivate() override;
265 };
266
268 {
269 public:
270 static constexpr const char *const BEHAVIOR_ID = "extra-menu";
271
273
274 CButtonLabel GetLabel() const override;
275 void OnDeactivate() override;
276 void WriteToConfiguration(CJsonWriter *pWriter) override;
277
278 private:
280 char m_aLabel[16];
281 };
282
284 {
285 public:
286 static constexpr const char *const BEHAVIOR_ID = "emoticon";
287
290
291 CButtonLabel GetLabel() const override;
292 void OnDeactivate() override;
293 };
294
296 {
297 public:
298 static constexpr const char *const BEHAVIOR_ID = "spectate";
299
302
303 CButtonLabel GetLabel() const override;
304 void OnDeactivate() override;
305 };
306
308 {
309 public:
310 static constexpr const char *const BEHAVIOR_ID = "swap-action";
311
314
315 CButtonLabel GetLabel() const override;
316 void OnActivate() override;
317 void OnDeactivate() override;
318
319 private:
321 };
322
324 {
325 public:
326 static constexpr const char *const BEHAVIOR_ID = "use-action";
327
330
331 CButtonLabel GetLabel() const override;
332 void OnActivate() override;
333 void OnDeactivate() override;
334
335 private:
337 };
338
340 {
341 public:
344
345 CButtonLabel GetLabel() const override;
346 void OnActivate() override;
347 void OnDeactivate() override;
348 void OnUpdate() override;
349 int ActiveAction() const { return m_ActiveAction; }
350 virtual int SelectedAction() const = 0;
351
352 private:
354 };
355
357 {
358 public:
359 static constexpr const char *const BEHAVIOR_ID = "joystick-action";
360
363
364 void Init(CTouchButton *pTouchButton) override;
365 int SelectedAction() const override;
366 };
367
369 {
370 public:
371 static constexpr const char *const BEHAVIOR_ID = "joystick-aim";
372
375
376 int SelectedAction() const override;
377 };
378
380 {
381 public:
382 static constexpr const char *const BEHAVIOR_ID = "joystick-fire";
383
386
387 int SelectedAction() const override;
388 };
389
391 {
392 public:
393 static constexpr const char *const BEHAVIOR_ID = "joystick-hook";
394
397
398 int SelectedAction() const override;
399 };
400
405 {
406 public:
407 static constexpr const char *const BEHAVIOR_TYPE = "bind";
408
409 CBindTouchButtonBehavior(const char *pLabel, CButtonLabel::EType LabelType, const char *pCommand) :
410 m_Label(pLabel),
411 m_LabelType(LabelType),
412 m_Command(pCommand) {}
413
414 CButtonLabel GetLabel() const override;
415 void OnActivate() override;
416 void OnDeactivate() override;
417 void OnUpdate() override;
418 void WriteToConfiguration(CJsonWriter *pWriter) override;
419
420 private:
421 std::string m_Label;
423 std::string m_Command;
424
425 bool m_Repeating = false;
426 std::chrono::nanoseconds m_LastUpdateTime;
427 std::chrono::nanoseconds m_AccumulatedRepeatingTime;
428 };
429
434 {
435 public:
436 static constexpr const char *const BEHAVIOR_TYPE = "bind-toggle";
437
439 {
440 public:
441 std::string m_Label;
443 std::string m_Command;
444
445 CCommand(const char *pLabel, CButtonLabel::EType LabelType, const char *pCommand) :
446 m_Label(pLabel),
447 m_LabelType(LabelType),
448 m_Command(pCommand) {}
449 };
450
451 CBindToggleTouchButtonBehavior(std::vector<CCommand> &&vCommands) :
452 m_vCommands(std::move(vCommands)) {}
453
454 CButtonLabel GetLabel() const override;
455 void OnActivate() override;
456 void WriteToConfiguration(CJsonWriter *pWriter) override;
457
458 private:
459 std::vector<CCommand> m_vCommands;
461 };
462
469
476
483
489 ColorRGBA m_BackgroundColorActive = ColorRGBA(0.2f, 0.2f, 0.2f, 0.25f);
490
496 std::vector<CTouchButton> m_vTouchButtons;
497
502
507
513
515 {
516 public:
517 bool m_Active = false;
519 };
520
525
532
536 bool m_EditingActive = false;
537
541 bool m_EditingChanges = false;
542
544 int NextActiveAction(int Action) const;
545 int NextDirectTouchAction() const;
546 void UpdateButtons(const std::vector<IInput::CTouchFingerState> &vTouchFingerStates);
547 void ResetButtons();
548 void RenderButtons();
550
551 bool ParseConfiguration(const void *pFileData, unsigned FileLength);
552 std::optional<EDirectTouchIngameMode> ParseDirectTouchIngameMode(const json_value *pModeValue);
553 std::optional<EDirectTouchSpectateMode> ParseDirectTouchSpectateMode(const json_value *pModeValue);
554 std::optional<ColorRGBA> ParseColor(const json_value *pColorValue, const char *pAttributeName, std::optional<ColorRGBA> DefaultColor) const;
555 std::optional<CTouchButton> ParseButton(const json_value *pButtonObject);
556 std::unique_ptr<CTouchButtonBehavior> ParseBehavior(const json_value *pBehaviorObject);
557 std::unique_ptr<CPredefinedTouchButtonBehavior> ParsePredefinedBehavior(const json_value *pBehaviorObject);
558 std::unique_ptr<CExtraMenuTouchButtonBehavior> ParseExtraMenuBehavior(const json_value *pBehaviorObject);
559 std::unique_ptr<CBindTouchButtonBehavior> ParseBindBehavior(const json_value *pBehaviorObject);
560 std::unique_ptr<CBindToggleTouchButtonBehavior> ParseBindToggleBehavior(const json_value *pBehaviorObject);
561 void WriteConfiguration(CJsonWriter *pWriter);
562};
563
564#endif
Definition: component.h:20
Definition: jsonwriter.h:15
Definition: touch_controls.h:515
IInput::CTouchFinger m_Finger
Definition: touch_controls.h:518
bool m_Active
Definition: touch_controls.h:517
std::string m_Label
Definition: touch_controls.h:441
CButtonLabel::EType m_LabelType
Definition: touch_controls.h:442
CCommand(const char *pLabel, CButtonLabel::EType LabelType, const char *pCommand)
Definition: touch_controls.h:445
std::string m_Command
Definition: touch_controls.h:443
Definition: touch_controls.h:434
CBindToggleTouchButtonBehavior(std::vector< CCommand > &&vCommands)
Definition: touch_controls.h:451
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:659
std::vector< CCommand > m_vCommands
Definition: touch_controls.h:459
static constexpr const char *const BEHAVIOR_TYPE
Definition: touch_controls.h:436
void OnActivate() override
Definition: touch_controls.cpp:665
void WriteToConfiguration(CJsonWriter *pWriter) override
Definition: touch_controls.cpp:671
size_t m_ActiveCommandIndex
Definition: touch_controls.h:460
Definition: touch_controls.h:405
CBindTouchButtonBehavior(const char *pLabel, CButtonLabel::EType LabelType, const char *pCommand)
Definition: touch_controls.h:409
std::chrono::nanoseconds m_AccumulatedRepeatingTime
Definition: touch_controls.h:427
void OnActivate() override
Definition: touch_controls.cpp:611
CButtonLabel::EType m_LabelType
Definition: touch_controls.h:422
std::chrono::nanoseconds m_LastUpdateTime
Definition: touch_controls.h:426
std::string m_Command
Definition: touch_controls.h:423
void OnUpdate() override
Definition: touch_controls.cpp:622
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:606
void WriteToConfiguration(CJsonWriter *pWriter) override
Definition: touch_controls.cpp:643
std::string m_Label
Definition: touch_controls.h:421
static constexpr const char *const BEHAVIOR_TYPE
Definition: touch_controls.h:407
void OnDeactivate() override
Definition: touch_controls.cpp:617
bool m_Repeating
Definition: touch_controls.h:425
Definition: touch_controls.h:128
EType m_Type
Definition: touch_controls.h:151
const char * m_pLabel
Definition: touch_controls.h:152
EType
Definition: touch_controls.h:131
Definition: touch_controls.h:111
std::function< bool()> m_Function
Definition: touch_controls.h:114
const char * m_pId
Definition: touch_controls.h:113
Definition: touch_controls.h:101
CButtonVisibility(EButtonVisibility Type, bool Parity)
Definition: touch_controls.h:106
EButtonVisibility m_Type
Definition: touch_controls.h:103
bool m_Parity
Definition: touch_controls.h:104
Definition: touch_controls.h:284
CEmoticonTouchButtonBehavior()
Definition: touch_controls.h:288
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:439
void OnDeactivate() override
Definition: touch_controls.cpp:444
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:286
Definition: touch_controls.h:268
void WriteToConfiguration(CJsonWriter *pWriter) override
Definition: touch_controls.cpp:430
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:270
int m_Number
Definition: touch_controls.h:279
CExtraMenuTouchButtonBehavior(int Number)
Definition: touch_controls.cpp:392
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:406
void OnDeactivate() override
Definition: touch_controls.cpp:418
char m_aLabel[16]
Definition: touch_controls.h:280
Definition: touch_controls.h:256
void OnDeactivate() override
Definition: touch_controls.cpp:384
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:258
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:379
CIngameMenuTouchButtonBehavior()
Definition: touch_controls.h:260
CJoystickActionTouchButtonBehavior()
Definition: touch_controls.h:361
void Init(CTouchButton *pTouchButton) override
Definition: touch_controls.cpp:576
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:359
int SelectedAction() const override
Definition: touch_controls.cpp:582
Definition: touch_controls.h:369
int SelectedAction() const override
Definition: touch_controls.cpp:588
CJoystickAimTouchButtonBehavior()
Definition: touch_controls.h:373
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:371
Definition: touch_controls.h:380
int SelectedAction() const override
Definition: touch_controls.cpp:594
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:382
CJoystickFireTouchButtonBehavior()
Definition: touch_controls.h:384
Definition: touch_controls.h:391
int SelectedAction() const override
Definition: touch_controls.cpp:600
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:393
CJoystickHookTouchButtonBehavior()
Definition: touch_controls.h:395
Definition: touch_controls.h:340
CJoystickTouchButtonBehavior(const char *pId)
Definition: touch_controls.h:342
int ActiveAction() const
Definition: touch_controls.h:349
void OnActivate() override
Definition: touch_controls.cpp:532
void OnDeactivate() override
Definition: touch_controls.cpp:542
int m_ActiveAction
Definition: touch_controls.h:353
void OnUpdate() override
Definition: touch_controls.cpp:551
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:523
Definition: touch_controls.h:238
void WriteToConfiguration(CJsonWriter *pWriter) override
Definition: touch_controls.cpp:369
static constexpr const char *const BEHAVIOR_TYPE
Definition: touch_controls.h:240
const char * m_pId
Definition: touch_controls.h:252
CPredefinedTouchButtonBehavior(const char *pId)
Definition: touch_controls.h:242
Definition: touch_controls.h:296
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:298
void OnDeactivate() override
Definition: touch_controls.cpp:455
CSpectateTouchButtonBehavior()
Definition: touch_controls.h:300
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:450
Definition: touch_controls.h:308
void OnDeactivate() override
Definition: touch_controls.cpp:491
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:310
void OnActivate() override
Definition: touch_controls.cpp:477
int m_ActiveAction
Definition: touch_controls.h:320
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:463
CSwapActionTouchButtonBehavior()
Definition: touch_controls.h:312
Definition: touch_controls.h:205
virtual CButtonLabel GetLabel() const =0
bool m_Active
Definition: touch_controls.h:210
virtual void OnDeactivate()
Definition: touch_controls.h:227
virtual void Init(CTouchButton *pTouchButton)
Definition: touch_controls.cpp:312
std::chrono::nanoseconds m_ActivationStartTime
Definition: touch_controls.h:214
virtual void WriteToConfiguration(CJsonWriter *pWriter)=0
IInput::CTouchFinger m_Finger
Definition: touch_controls.h:211
vec2 m_ActivePosition
Definition: touch_controls.h:212
bool IsActive() const
Definition: touch_controls.cpp:359
vec2 m_AccumulatedDelta
Definition: touch_controls.h:213
CTouchButton * m_pTouchButton
Definition: touch_controls.h:207
void SetInactive()
Definition: touch_controls.cpp:350
void SetActive(const IInput::CTouchFingerState &FingerState)
Definition: touch_controls.cpp:323
void Reset()
Definition: touch_controls.cpp:318
CTouchControls * m_pTouchControls
Definition: touch_controls.h:208
virtual void OnUpdate()
Definition: touch_controls.h:228
virtual void OnActivate()
Definition: touch_controls.h:226
Definition: touch_controls.h:169
EButtonShape m_Shape
Definition: touch_controls.h:183
bool IsVisible() const
Definition: touch_controls.cpp:223
CUnitRect m_UnitRect
Definition: touch_controls.h:180
std::unique_ptr< CTouchButtonBehavior > m_pBehavior
Definition: touch_controls.h:187
void UpdateBackgroundCorners()
Definition: touch_controls.cpp:109
void UpdateScreenFromUnitRect()
Definition: touch_controls.cpp:85
std::vector< CButtonVisibility > m_vVisibilities
Definition: touch_controls.h:186
vec2 ClampTouchPosition(vec2 TouchPosition) const
Definition: touch_controls.cpp:168
bool m_VisibilityCached
Definition: touch_controls.h:189
bool IsInside(vec2 TouchPosition) const
Definition: touch_controls.cpp:197
CTouchControls * m_pTouchControls
Definition: touch_controls.h:178
CTouchButton & operator=(const CTouchButton &Other)=delete
void Render() const
Definition: touch_controls.cpp:229
CUIRect m_ScreenRect
Definition: touch_controls.h:181
std::chrono::nanoseconds m_VisibilityStartTime
Definition: touch_controls.h:190
int m_BackgroundCorners
Definition: touch_controls.h:184
void WriteToConfiguration(CJsonWriter *pWriter)
Definition: touch_controls.cpp:277
CTouchButton(CTouchControls *pTouchControls)
Definition: touch_controls.cpp:51
void UpdateVisibility()
Definition: touch_controls.cpp:211
void UpdatePointers()
Definition: touch_controls.cpp:80
CTouchButton(const CTouchButton &Other)=delete
Definition: touch_controls.h:158
int m_Y
Definition: touch_controls.h:161
int m_X
Definition: touch_controls.h:160
int m_H
Definition: touch_controls.h:163
int m_W
Definition: touch_controls.h:162
Definition: touch_controls.h:324
int m_ActiveAction
Definition: touch_controls.h:336
CUseActionTouchButtonBehavior()
Definition: touch_controls.h:328
void OnDeactivate() override
Definition: touch_controls.cpp:516
static constexpr const char *const BEHAVIOR_ID
Definition: touch_controls.h:326
void OnActivate() override
Definition: touch_controls.cpp:510
CButtonLabel GetLabel() const override
Definition: touch_controls.cpp:501
Definition: touch_controls.h:23
void UpdateButtons(const std::vector< IInput::CTouchFingerState > &vTouchFingerStates)
Definition: touch_controls.cpp:906
void OnWindowResize() override
Definition: touch_controls.cpp:713
void RenderButtons()
Definition: touch_controls.cpp:1087
void OnReset() override
Definition: touch_controls.cpp:707
std::optional< EDirectTouchIngameMode > ParseDirectTouchIngameMode(const json_value *pModeValue)
Definition: touch_controls.cpp:1201
void WriteConfiguration(CJsonWriter *pWriter)
Definition: touch_controls.cpp:1596
int m_DirectTouchLastAction
Definition: touch_controls.h:512
int NextActiveAction(int Action) const
Definition: touch_controls.cpp:856
void SaveConfigurationToClipboard()
Definition: touch_controls.cpp:796
int m_ActionSelected
Definition: touch_controls.h:506
void SetEditingActive(bool EditingActive)
Definition: touch_controls.h:66
void OnRender() override
Definition: touch_controls.cpp:742
int NextDirectTouchAction() const
Definition: touch_controls.cpp:870
EButtonShape
Definition: touch_controls.h:75
static constexpr const char *const SHAPE_NAMES[(int) EButtonShape::NUM_SHAPES]
Definition: touch_controls.h:81
bool m_aExtraMenuActive[(int) EButtonVisibility::EXTRA_MENU_5 -(int) EButtonVisibility::EXTRA_MENU_1+1]
Definition: touch_controls.h:501
bool IsEditingActive() const
Definition: touch_controls.h:65
int Sizeof() const override
Definition: touch_controls.h:41
EDirectTouchSpectateMode DirectTouchSpectate() const
Definition: touch_controls.h:59
bool LoadConfigurationFromClipboard()
Definition: touch_controls.cpp:776
std::optional< EDirectTouchSpectateMode > ParseDirectTouchSpectateMode(const json_value *pModeValue)
Definition: touch_controls.cpp:1231
std::optional< CTouchButton > ParseButton(const json_value *pButtonObject)
Definition: touch_controls.cpp:1282
std::unique_ptr< CBindTouchButtonBehavior > ParseBindBehavior(const json_value *pBehaviorObject)
Definition: touch_controls.cpp:1482
bool m_EditingActive
Definition: touch_controls.h:536
vec2 CalculateScreenSize() const
Definition: touch_controls.cpp:1104
std::unique_ptr< CBindToggleTouchButtonBehavior > ParseBindToggleBehavior(const json_value *pBehaviorObject)
Definition: touch_controls.cpp:1530
CActionState m_aDirectTouchActionStates[NUM_ACTIONS]
Definition: touch_controls.h:524
static constexpr const char *const DIRECT_TOUCH_SPECTATE_MODE_NAMES[(int) EDirectTouchSpectateMode::NUM_STATES]
Definition: touch_controls.h:72
std::vector< CTouchButton > m_vTouchButtons
Definition: touch_controls.h:496
@ ACTION_AIM
Definition: touch_controls.h:121
@ ACTION_HOOK
Definition: touch_controls.h:123
@ NUM_ACTIONS
Definition: touch_controls.h:124
@ ACTION_FIRE
Definition: touch_controls.h:122
bool LoadConfigurationFromFile(int StorageType)
Definition: touch_controls.cpp:761
void OnInit() override
Definition: touch_controls.cpp:698
void SetDirectTouchSpectate(EDirectTouchSpectateMode DirectTouchSpectate)
Definition: touch_controls.h:60
void SetEditingChanges(bool EditingChanges)
Definition: touch_controls.h:68
std::unique_ptr< CExtraMenuTouchButtonBehavior > ParseExtraMenuBehavior(const json_value *pBehaviorObject)
Definition: touch_controls.cpp:1465
EDirectTouchIngameMode
Definition: touch_controls.h:26
ColorRGBA m_BackgroundColorInactive
Definition: touch_controls.h:482
EDirectTouchIngameMode DirectTouchIngame() const
Definition: touch_controls.h:53
bool HasEditingChanges() const
Definition: touch_controls.h:67
std::unique_ptr< CPredefinedTouchButtonBehavior > ParsePredefinedBehavior(const json_value *pBehaviorObject)
Definition: touch_controls.cpp:1426
void SetDirectTouchIngame(EDirectTouchIngameMode DirectTouchIngame)
Definition: touch_controls.h:54
ColorRGBA m_BackgroundColorActive
Definition: touch_controls.h:489
bool ParseConfiguration(const void *pFileData, unsigned FileLength)
Definition: touch_controls.cpp:1111
void ResetButtons()
Definition: touch_controls.cpp:1075
bool OnTouchState(const std::vector< IInput::CTouchFingerState > &vTouchFingerStates) override
Definition: touch_controls.cpp:722
CButtonVisibilityData m_aVisibilityFunctions[(int) EButtonVisibility::NUM_VISIBILITIES]
Definition: touch_controls.h:117
static constexpr const char *const LABEL_TYPE_NAMES[(int) CButtonLabel::EType::NUM_TYPES]
Definition: touch_controls.h:155
std::unique_ptr< CTouchButtonBehavior > ParseBehavior(const json_value *pBehaviorObject)
Definition: touch_controls.cpp:1391
EDirectTouchIngameMode m_DirectTouchIngame
Definition: touch_controls.h:468
std::optional< ColorRGBA > ParseColor(const json_value *pColorValue, const char *pAttributeName, std::optional< ColorRGBA > DefaultColor) const
Definition: touch_controls.cpp:1261
bool SaveConfigurationToFile()
Definition: touch_controls.cpp:782
bool m_EditingChanges
Definition: touch_controls.h:541
EButtonVisibility
Definition: touch_controls.h:84
EDirectTouchSpectateMode
Definition: touch_controls.h:35
CJoystickActionTouchButtonBehavior * m_pPrimaryJoystickTouchButtonBehavior
Definition: touch_controls.h:531
void InitVisibilityFunctions()
Definition: touch_controls.cpp:804
static constexpr const char *const DIRECT_TOUCH_INGAME_MODE_NAMES[(int) EDirectTouchIngameMode::NUM_STATES]
Definition: touch_controls.h:71
EDirectTouchSpectateMode m_DirectTouchSpectate
Definition: touch_controls.h:475
Definition: ui_rect.h:11
Definition: color.h:210
Definition: input.h:136
Definition: input.h:122
struct _json_value json_value
Definition: serverbrowser.h:17