Mobile: Split KEYBOARD_TYPE_NUMBER into KEYBOARD_TYPE_NUMBER and KEYBOARD_TYPE_INTEGER

Only makes a difference on iOS devices though apparently
This commit is contained in:
UnknownShadow200 2021-10-11 22:14:23 +11:00
parent 93aee245a6
commit 7584819595
5 changed files with 13 additions and 10 deletions

View File

@ -670,7 +670,8 @@ public class MainActivity extends Activity
public int getKeyboardType() { public int getKeyboardType() {
// TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_TEXT_VARIATION_PASSWORD - API level 3 // TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_TEXT_VARIATION_PASSWORD - API level 3
if (keyboardType == 2) return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD; if (keyboardType == 2) return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD;
if (keyboardType == 1) return InputType.TYPE_CLASS_NUMBER; if (keyboardType == 1) return InputType.TYPE_CLASS_NUMBER; // KEYBOARD_TYPE_NUMERIC
if (keyboardType == 3) return InputType.TYPE_CLASS_INTEGER; // KEYBOARD_TYPE_INTEGER
return InputType.TYPE_CLASS_TEXT; return InputType.TYPE_CLASS_TEXT;
} }

View File

@ -430,7 +430,7 @@ static void ColoursScreen_Init(struct LScreen* s_) {
for (i = 0; i < 5 * 3; i++) { for (i = 0; i < 5 * 3; i++) {
LInput_Init(s_, &s->iptColours[i], 55, NULL); LInput_Init(s_, &s->iptColours[i], 55, NULL);
s->iptColours[i].type = KEYBOARD_TYPE_NUMBER; s->iptColours[i].type = KEYBOARD_TYPE_INTEGER;
s->iptColours[i].TextFilter = ColoursScreen_InputFilter; s->iptColours[i].TextFilter = ColoursScreen_InputFilter;
s->iptColours[i].TextChanged = ColoursScreen_TextChanged; s->iptColours[i].TextChanged = ColoursScreen_TextChanged;
} }
@ -650,7 +650,7 @@ static void MFAScreen_Init(struct LScreen* s_) {
s->btnSignIn.OnClick = MFAScreen_SignIn; s->btnSignIn.OnClick = MFAScreen_SignIn;
s->btnCancel.OnClick = MFAScreen_Cancel; s->btnCancel.OnClick = MFAScreen_Cancel;
s->iptCode.type = KEYBOARD_TYPE_NUMBER; s->iptCode.type = KEYBOARD_TYPE_INTEGER;
} }
static void MFAScreen_Show(struct LScreen* s_) { static void MFAScreen_Show(struct LScreen* s_) {

View File

@ -1077,7 +1077,7 @@ static void GenLevelScreen_Make(struct GenLevelScreen* s, int i, int def) {
TextWidget_Init(&s->labels[i]); TextWidget_Init(&s->labels[i]);
s->labels[i].col = PackedCol_Make(224, 224, 224, 255); s->labels[i].col = PackedCol_Make(224, 224, 224, 255);
/* TODO placeholder */ /* TODO placeholder */
s->inputs[i].onscreenType = KEYBOARD_TYPE_NUMBER; s->inputs[i].onscreenType = KEYBOARD_TYPE_INTEGER;
} }
static int GenLevelScreen_KeyDown(void* screen, int key) { static int GenLevelScreen_KeyDown(void* screen, int key) {
@ -2121,7 +2121,6 @@ static void MenuInputOverlay_Default(void* screen, void* widget) {
static void MenuInputOverlay_Init(void* screen) { static void MenuInputOverlay_Init(void* screen) {
struct MenuInputOverlay* s = (struct MenuInputOverlay*)screen; struct MenuInputOverlay* s = (struct MenuInputOverlay*)screen;
cc_bool is_number;
s->widgets = menuInput_widgets; s->widgets = menuInput_widgets;
s->numWidgets = Array_Elems(menuInput_widgets); s->numWidgets = Array_Elems(menuInput_widgets);
s->maxVertices = MENUINPUT_MAX_VERTICES; s->maxVertices = MENUINPUT_MAX_VERTICES;
@ -2130,8 +2129,11 @@ static void MenuInputOverlay_Init(void* screen) {
ButtonWidget_Init(&s->Default, 200, MenuInputOverlay_Default); ButtonWidget_Init(&s->Default, 200, MenuInputOverlay_Default);
ButtonWidget_Init(&s->ok, Input_TouchMode ? 200 : 40, MenuInputOverlay_OK); ButtonWidget_Init(&s->ok, Input_TouchMode ? 200 : 40, MenuInputOverlay_OK);
is_number = s->desc->VTABLE == &IntInput_VTABLE || s->desc->VTABLE == &FloatInput_VTABLE; if (s->desc->VTABLE == &IntInput_VTABLE) {
s->input.onscreenType = is_number ? KEYBOARD_TYPE_NUMBER : KEYBOARD_TYPE_TEXT; s->input.onscreenType = KEYBOARD_TYPE_INTEGER;
} else if (s->desc->VTABLE == &FloatInput_VTABLE) {
s->input.onscreenType = KEYBOARD_TYPE_NUMBER;
}
} }
static void MenuInputOverlay_Update(void* screen, double delta) { static void MenuInputOverlay_Update(void* screen, double delta) {

View File

@ -34,7 +34,7 @@ struct Bitmap;
struct DynamicLibSym; struct DynamicLibSym;
/* The states the window can be in. */ /* The states the window can be in. */
enum WindowState { WINDOW_STATE_NORMAL, WINDOW_STATE_FULLSCREEN, WINDOW_STATE_MINIMISED }; enum WindowState { WINDOW_STATE_NORMAL, WINDOW_STATE_FULLSCREEN, WINDOW_STATE_MINIMISED };
enum KeyboardType { KEYBOARD_TYPE_TEXT, KEYBOARD_TYPE_NUMBER, KEYBOARD_TYPE_PASSWORD }; enum KeyboardType { KEYBOARD_TYPE_TEXT, KEYBOARD_TYPE_NUMBER, KEYBOARD_TYPE_PASSWORD, KEYBOARD_TYPE_INTEGER };
enum SoftKeyboard { SOFT_KEYBOARD_NONE, SOFT_KEYBOARD_RESIZE, SOFT_KEYBOARD_SHIFT }; enum SoftKeyboard { SOFT_KEYBOARD_NONE, SOFT_KEYBOARD_RESIZE, SOFT_KEYBOARD_SHIFT };
/* (can't name these structs Window/Display, as that conflicts with X11's Window/Display typedef) */ /* (can't name these structs Window/Display, as that conflicts with X11's Window/Display typedef) */

View File

@ -595,10 +595,10 @@ mergeInto(LibraryManager.library, {
var elem = window.cc_inputElem; var elem = window.cc_inputElem;
var shown = true; var shown = true;
if (!elem) { if (!elem) {
if (type == 1) { if (type == 1 || type == 3) { // KEYBOARD_TYPE_NUMBER, KEYBOARD_TYPE_INTEGER
elem = document.createElement('input'); elem = document.createElement('input');
elem.setAttribute('type', 'text') elem.setAttribute('type', 'text')
elem.setAttribute('inputmode', 'decimal'); elem.setAttribute('inputmode', type == 1 ? 'decimal' : 'numeric');
} else { } else {
elem = document.createElement('textarea'); elem = document.createElement('textarea');
} }