89 lines
2.2 KiB
C
Raw Normal View History

2019-05-08 23:15:00 +02:00
#pragma once
#include "common.h"
#include "ui.h"
#include "touchcal.h"
2019-05-08 23:15:00 +02:00
// special key ids
enum {
KEY_DUMMY = 0x80,
KEY_BKSPC = 0x81,
KEY_INSERT = 0x82,
KEY_ENTER = 0x83,
KEY_CAPS = 0x84,
KEY_SPECIAL = 0x85,
KEY_NUMPAD = 0x86,
KEY_ALPHA = 0x87,
KEY_LEFT = 0x88,
KEY_RIGHT = 0x89,
KEY_ESCAPE = 0x8A,
KEY_SWITCH = 0x8B,
2019-05-08 23:15:00 +02:00
KEY_TXTBOX = 0xFF
};
// special key strings
#define SWKBD_KEYSTR "", "DEL", "INS", "SUBMIT", "CAPS", "#$@", "123", "ABC", "\x1b", "\x1a", "ESC", "SWITCH"
2019-05-08 23:15:00 +02:00
#define COLOR_SWKBD_NORMAL COLOR_GREY
#define COLOR_SWKBD_PRESSED COLOR_LIGHTGREY
#define COLOR_SWKBD_BOX COLOR_DARKGREY
#define COLOR_SWKBD_CHARS COLOR_BLACK
#define COLOR_SWKBD_ENTER COLOR_TINTEDBLUE
#define COLOR_SWKBD_CAPS COLOR_TINTEDYELLOW
#define SWKBD_TEXTBOX_WIDTH 240
#define SWKBD_STDKEY_WIDTH 18
#define SWKBD_STDKEY_HEIGHT 20
#define SWKDB_KEY_SPACING 1
#define SWKBD_KEYS_ALPHABET \
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '+', '-', KEY_BKSPC, \
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '&', KEY_ENTER, \
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', '(', ')', '[', ']', \
'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '_', '#', '!', \
KEY_CAPS, ' ', KEY_NUMPAD, KEY_SPECIAL, KEY_LEFT, KEY_RIGHT
#define SWKBD_KEYS_SPECIAL \
'(', ')', '{', '}', '[', ']', \
'.', ',', '?', '!', '`', '\'', \
'^', '*', '+', '-', '_', '=', \
'@', '#', '$', '%', '&', '~', \
KEY_ALPHA, ' ', KEY_BKSPC
#define SWKBD_KEYS_NUMPAD \
'7', '8', '9', 'F', 'E', \
'4', '5', '6', 'D', 'C', \
'3', '2', '1', 'B', 'A', \
'0', '.', '_', KEY_LEFT, KEY_RIGHT, \
KEY_ALPHA, ' ', KEY_BKSPC
// offset, num of keys in row, width of special keys (...), 0
#define SWKBD_LAYOUT_ALPHABET \
13, 32, 0, \
12, 51, 0, \
13, 0, \
12, 0, \
6, 32, 123, 32, 32, 18, 18, 0, \
0
#define SWKBD_LAYOUT_SPECIAL \
6, 0, \
6, 0, \
6, 0, \
6, 0, \
3, 32, 46, 32, 0, \
0
#define SWKBD_LAYOUT_NUMPAD \
5, 0, \
5, 0, \
5, 0, \
5, 18, 18, 0, \
3, 30, 34, 30, 0, \
0
#define ShowKeyboardOrPrompt (TouchIsCalibrated() ? ShowKeyboard : ShowStringPrompt)
2019-05-08 23:15:00 +02:00
bool ShowKeyboard(char* inputstr, u32 max_size, const char *format, ...);