5 #include "../../keycodes.h"
16 KEYBOARD_LAYOUT_ALPHABETICAL,
17 KEYBOARD_LAYOUT_NUMERICAL,
22 bool cancelled =
false;
33 KEYBOARD_MODE_UPPERCASE,
34 KEYBOARD_MODE_LOWERCASE
44 using Widget::clean_up;
57 void set_mode(KeyboardMode mode);
59 using Widget::set_font;
61 void move_row(
int dir);
63 KeyboardLayout layout_ = KEYBOARD_LAYOUT_ALPHABETICAL;
64 KeyboardMode mode_ = KEYBOARD_MODE_UPPERCASE;
65 std::shared_ptr<WidgetStyle> default_style_;
66 std::shared_ptr<WidgetStyle> highlighted_style_;
72 uint8_t option_count = 0;
73 uint16_t options[4] = {0};
77 std::map<uint16_t, ButtonInfo> buttons_;
78 void set_enabled(
Button* btn,
bool value);
80 Frame* main_frame_ =
nullptr;
81 Frame* rows_[5] = {0, 0, 0, 0, 0};
88 void generate_alphabetical_layout(
bool uppercase=
true);
89 void generate_numerical_layout();
95 virtual UIDim calculate_content_dimensions(
Px text_width,
Px text_height)
override;
97 void on_transformation_change_attempted()
override;
98 void set_font(FontPtr font)
override;
103 ACTION_FLAGS_BACKSPACE = 0x2,
104 ACTION_FLAGS_CASE_TOGGLE = 0x4,
105 ACTION_FLAGS_SPACEBAR = 0x8,
106 ACTION_FLAGS_ENTER = 0xF,
107 ACTION_FLAGS_DEFAULT = ACTION_FLAGS_BACKSPACE
110 void populate_action_row(
Frame* target, uint32_t action_flags=ACTION_FLAGS_DEFAULT);
112 std::vector<sig::connection> update_connections_;
114 std::shared_ptr<bool> alive_marker_ = std::make_shared<bool>(
true);