2#include "TextElement.hpp"
5#define KEYCODE_COUNT 47
11 EKeyboard(std::function<
void(
char)> typeAction);
18 void just_type(
const char input);
23 const std::string& getTextInput();
24 std::string textInput;
28 std::function<void(
char)> typeAction = NULL;
32 const char* lower_keys =
"`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./";
33 const char* upper_keys =
"~!@#$\%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?";
34 int breaks[4] = { 13, 13, 11, 10 };
39 std::vector<std::string*> rows;
41 const CST_Keycode usbKeys[KEYCODE_COUNT] = {
42 SDLK_BACKQUOTE, SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5, SDLK_6, SDLK_7, SDLK_8, SDLK_9, SDLK_0, SDLK_MINUS, SDLK_EQUALS,
43 SDLK_q, SDLK_w, SDLK_e, SDLK_r, SDLK_t, SDLK_y, SDLK_u, SDLK_i, SDLK_o, SDLK_p, SDLK_LEFTBRACKET, SDLK_RIGHTBRACKET, SDLK_BACKSLASH,
44 SDLK_a, SDLK_s, SDLK_d, SDLK_f, SDLK_g, SDLK_h, SDLK_j, SDLK_k, SDLK_l, SDLK_SEMICOLON, SDLK_QUOTE,
45 SDLK_z, SDLK_x, SDLK_c, SDLK_v, SDLK_b, SDLK_n, SDLK_m, SDLK_COMMA, SDLK_PERIOD, SDLK_SLASH
48 inline int rowCount() {
49 return (
int)rows.size();
52 inline int rowLength(
int row) {
53 return (
int)rows[row]->size() / 2;
90 bool hasRoundedKeys =
false;
91 CST_Font* roundKeyFont = NULL;
93 bool touchMode =
false;
94 bool immersiveMode =
false;
97 bool preventEnterAndTab =
false;
98 bool storeOwnText =
false;
100 bool isTouchDrag =
false;
102 void type(
int y,
int x);
103 void generateEKeyboard();
void render(Element *parent)
display the current state of the display
bool process(InputEvents *event)
process any input that is received for this element
Element * parent
the parent element (can sometimes be null if it isn't set)