UI_Lib  a1366e08a59cc549a65fa26081e6409aa12f26d5
This is a user interface library for graphical LCDs. It offers many different controls and indicators that can be nested depending on the element types.
Loading...
Searching...
No Matches
VirtualKeys.h
Go to the documentation of this file.
1
5
6#ifndef VIRTUALKEYS_H_
7#define VIRTUALKEYS_H_
8
9#include "../Core/UIElement.h"
12
17class VirtualKeys : public UIElement
18{
19 private:
41 static void _onButton0Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY0); }
42 static void _onButton1Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY1); }
43 static void _onButton2Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY2); }
44 static void _onButton3Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY3); }
45 static void _onButton4Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY4); }
46 static void _onButton5Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY5); }
47 static void _onButton6Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY6); }
48 static void _onButton7Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY7); }
49 static void _onButton8Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY8); }
50 static void _onButton9Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEY9); }
51 static void _onButtonLeftClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYLEFT); }
52 static void _onButtonRightClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYRIGHT); }
53 static void _onButtonMilliClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYMILLI); }
54 static void _onButtonKiloClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYKILO); }
55 static void _onButtonX1Click(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYX1); }
56 static void _onButtonMinusClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYMINUS); }
57 static void _onButtonUpClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYUP); }
58 static void _onButtonOkClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYOK); }
59 static void _onButtonDownClick(void* controlContext) { ((VirtualKeys*)controlContext)->_handleButtonPress(KEYDOWN); }
60 static void _onButtonExitVirtualKeysClick(void* controlContext) { ((VirtualKeys*)controlContext)->ExitVirtualKeys(); }
61
66 void _handleButtonPress(Keys_t key);
69
70 public:
72
77 VirtualKeys(void(*onVirtualKeyPressed)(Keys_t key) = NULL);
78
83 void ShowVirtualKeys(UIElement* targetElement);
84
88 void ExitVirtualKeys();
89
93 virtual void Draw(bool redraw) override;
94
101 virtual bool KeyInput(Keys_t key) override;
102
110 virtual bool TouchInput(uint16_t x, uint16_t y, TouchTypes touchType) override;
111
115 virtual void RecalculateDimensions() override;
116
120 virtual void RecalculateLayout() override;
121};
122
123#endif /* VIRTUALKEYS_H_ */
Containing a class for a button control that is showing a clickable button used to trigger some actio...
Containing a class for a container that is showing all items at a time in a fixed grid layout.
@ KEY6
Number 6 key.
Definition Keys.h:24
@ KEY2
Number 2 key.
Definition Keys.h:20
@ KEYOK
OK (Enter) key.
Definition Keys.h:36
@ KEY4
Number 4 key.
Definition Keys.h:22
@ KEY5
Number 5 key.
Definition Keys.h:23
@ KEYDOWN
Down arrow key.
Definition Keys.h:35
@ KEYMINUS
Minus (negate) key.
Definition Keys.h:31
@ KEY9
Number 9 key.
Definition Keys.h:27
@ KEY8
Number 8 key.
Definition Keys.h:26
@ KEYUP
Up arrow key.
Definition Keys.h:34
@ KEYLEFT
Left arrow key.
Definition Keys.h:32
@ KEY3
Number 3 key.
Definition Keys.h:21
@ KEY1
Number 1 key.
Definition Keys.h:19
@ KEYMILLI
Milli (/1000) key.
Definition Keys.h:29
@ KEY0
Number 0 key.
Definition Keys.h:18
@ KEYRIGHT
Right arrow key.
Definition Keys.h:33
@ KEY7
Number 7 key.
Definition Keys.h:25
@ KEYX1
x1 (*1) key
Definition Keys.h:30
@ KEYKILO
Kilo (*1000) key.
Definition Keys.h:28
enum Keys Keys_t
Available input keys.
TouchTypes
Available touch types.
Definition TouchTypes.h:13
Containing the abstract base class for all user interface elements (controls, indicators,...
Class for a button control that is showing a clickable button used to trigger some action.
Definition ButtonControl.h:17
Class for a container that is showing all items at a time in a fixed grid layout.
Definition ContainerGrid.h:47
UIElement(UIElementType type)
Constructor of the UIElement.
Definition UIElement.h:43
Class for a control that can be used to emulate key presses via touch inputs.
Definition VirtualKeys.h:18
ButtonControl _buttonDown
Virtual keys button Down.
Definition VirtualKeys.h:39
ButtonControl _buttonUp
Virtual keys button Up.
Definition VirtualKeys.h:37
ButtonControl _buttonKilo
Virtual keys button Kilo.
Definition VirtualKeys.h:34
virtual bool TouchInput(uint16_t x, uint16_t y, TouchTypes touchType) override
Process a touch input at the given point (x, y)
Definition VirtualKeys.cpp:115
ButtonControl _buttonMinus
Virtual keys button Minus.
Definition VirtualKeys.h:36
UIElement * _targetElement
UI_Element that is edited by the virtual keys.
Definition VirtualKeys.h:67
ButtonControl _button7
Virtual keys button 7.
Definition VirtualKeys.h:28
void _handleButtonPress(Keys_t key)
Method that is called whenever a button is pressed.
Definition VirtualKeys.cpp:38
ButtonControl _buttonRight
Virtual keys button Right.
Definition VirtualKeys.h:32
ButtonControl _button4
Virtual keys button 4.
Definition VirtualKeys.h:25
virtual void RecalculateLayout() override
Recalculate the UIElement layout (containers update the X- and Y-Location of all their items,...
Definition VirtualKeys.cpp:125
virtual void RecalculateDimensions() override
Recalculate the Height and Width of the UIElement.
Definition VirtualKeys.cpp:120
ButtonControl _button1
Virtual keys button 1.
Definition VirtualKeys.h:22
ButtonControl _button5
Virtual keys button 5.
Definition VirtualKeys.h:26
ButtonControl _buttonMilli
Virtual keys button Milli.
Definition VirtualKeys.h:33
void(* OnVirtualKeyPressed)(Keys_t key)
Function pointer for OnVirtualKeyPressed event.
Definition VirtualKeys.h:71
void ShowVirtualKeys(UIElement *targetElement)
Change the visual tree root to show the virtual keys with the given target element that will be edite...
Definition VirtualKeys.cpp:57
void ExitVirtualKeys()
Exit the virtual keys and change the visual tree root back to the _previousVisualTreeRoot.
Definition VirtualKeys.cpp:101
ButtonControl _buttonLeft
Virtual keys button Left.
Definition VirtualKeys.h:31
ButtonControl _buttonX1
Virtual keys button x1.
Definition VirtualKeys.h:35
ButtonControl _button0
Virtual keys button 0.
Definition VirtualKeys.h:21
VirtualKeys(void(*onVirtualKeyPressed)(Keys_t key)=NULL)
Constructor of the VirtualKeys.
Definition VirtualKeys.cpp:11
ButtonControl _buttonExitVirtualKeys
Virtual keys button Exit.
Definition VirtualKeys.h:40
ButtonControl _button6
Virtual keys button 6.
Definition VirtualKeys.h:27
ButtonControl _buttonOk
Virtual keys button Ok.
Definition VirtualKeys.h:38
ContainerGrid _grid
Grid used to combine all virtual keys.
Definition VirtualKeys.h:20
ButtonControl _button8
Virtual keys button 8.
Definition VirtualKeys.h:29
virtual void Draw(bool redraw) override
Method used for drawing of the VirtualKeys.
Definition VirtualKeys.cpp:44
UIElement * _previousVisualTreeRoot
Previous visual tree root.
Definition VirtualKeys.h:68
ButtonControl _button3
Virtual keys button 3.
Definition VirtualKeys.h:24
virtual bool KeyInput(Keys_t key) override
Process the given key.
Definition VirtualKeys.cpp:110
ButtonControl _button9
Virtual keys button 9.
Definition VirtualKeys.h:30
ButtonControl _button2
Virtual keys button 2.
Definition VirtualKeys.h:23