tcMenu
Loading...
Searching...
No Matches
src
tcMenuKeyboard.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 https://www.thecoderscorner.com (Dave Cherry).
3
* This product is licensed under an Apache license, see the LICENSE file in the top-level directory.
4
*/
5
6
#ifndef _TCMENU_KEYBOARD_H_
7
#define _TCMENU_KEYBOARD_H_
8
9
#include <KeyboardManager.h>
10
18
enum
MenuEditingKeyMode
: uint8_t {
19
KEYEDIT_NONE,
20
KEYEDIT_ANALOG_EDIT_WHOLE,
21
KEYEDIT_ANALOG_EDIT_FRACT,
22
KEYEDIT_MULTIEDIT_INT_START = 100,
23
};
24
25
typedef
void (*DirectionalItemCallback)(
MenuItem
* item, uint16_t currentValue);
26
27
class
EditableLargeNumberMenuItem
;
28
class
ScrollChoiceMenuItem
;
29
30
#define KEY_NOT_CONFIGURED 0xff
31
44
class
MenuEditingKeyListener
:
public
KeyboardListener {
45
private
:
46
BaseMenuRenderer
* baseRenderer;
47
WholeAndFraction
currentValue;
48
MenuItem
* currentEditor;
49
MenuEditingKeyMode
mode;
50
uint8_t deleteKey;
51
uint8_t enterKey;
52
uint8_t backKey;
53
uint8_t nextKey;
54
public
:
63
explicit
MenuEditingKeyListener
(uint8_t enterKey =
'*'
, uint8_t deleteKey =
'#'
, uint8_t backKey =
'A'
, uint8_t nextKey =
'B'
);
64
70
void
keyPressed
(
char
key,
bool
held)
override
;
71
76
void
keyReleased
(
char
key)
override
;
77
83
void
createInternalEncoder
();
84
85
private
:
86
void
processDirectionalIndexItem(
MenuItem
*item, uint16_t currVal,
char
key, DirectionalItemCallback callback);
87
void
processSimpleValueKeyPress(
ValueMenuItem
* item,
char
key);
88
void
processScrollValueKeyPress(
ScrollChoiceMenuItem
* item,
char
key);
89
void
processAnalogKeyPress(
AnalogMenuItem
* item,
char
key);
90
void
processMultiEditKeyPress(
TextMenuItem
* item,
char
key);
91
void
processIntegerMultiEdit(
EditableMultiPartMenuItem
* item,
char
key);
92
void
processLargeNumberPress(
EditableLargeNumberMenuItem
*,
char
key);
93
void
processListMenuSelection(
ListRuntimeMenuItem
*item,
char
key);
94
void
clearState();
95
96
void
workOutEditorPosition();
97
};
98
99
#endif
// _TCMENU_KEYBOARD_H_
AnalogMenuItem
Definition
MenuItems.h:476
BaseMenuRenderer
Definition
BaseRenderers.h:282
EditableLargeNumberMenuItem
Definition
EditableLargeNumberMenuItem.h:182
EditableMultiPartMenuItem
Definition
RuntimeMenuItem.h:230
ListRuntimeMenuItem
Definition
RuntimeMenuItem.h:198
MenuEditingKeyListener
Definition
tcMenuKeyboard.h:44
MenuEditingKeyListener::createInternalEncoder
void createInternalEncoder()
Definition
tcMenuKeyboard.cpp:268
MenuEditingKeyListener::keyReleased
void keyReleased(char key) override
Definition
tcMenuKeyboard.cpp:86
MenuEditingKeyListener::keyPressed
void keyPressed(char key, bool held) override
Definition
tcMenuKeyboard.cpp:20
MenuItem
Definition
MenuItems.h:329
ScrollChoiceMenuItem
Definition
ScrollChoiceMenuItem.h:34
TextMenuItem
Definition
RuntimeMenuItem.h:268
ValueMenuItem
Definition
MenuItems.h:424
WholeAndFraction
Definition
MenuItems.h:445
MenuEditingKeyMode
MenuEditingKeyMode
Definition
tcMenuKeyboard.h:18