Skip to content

Commit e3ac119

Browse files
dkosmariDaniel K. O. (dkosmari)
andauthored
Added field to control swkbd keyboard layout. (#429)
Co-authored-by: Daniel K. O. (dkosmari) <none@none>
1 parent 1b412d2 commit e3ac119

2 files changed

Lines changed: 35 additions & 7 deletions

File tree

include/nn/swkbd/swkbd_cpp.h

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,32 @@ enum class InputFormType
104104
Default = 1,
105105
};
106106

107+
enum class KeyboardLayout
108+
{
109+
JPN_JP_QWERTY = 0,
110+
USA_EN_QWERTY = 1,
111+
USA_FR_QWERTY = 2,
112+
USA_ES_QWERTY = 3,
113+
USA_PT_QWERTY = 4,
114+
EUR_EN_QWERTY = 5,
115+
EUR_FR_AZERTY = 6,
116+
EUR_DE_QWERTZ = 7,
117+
EUR_IT_QWERTY = 8,
118+
EUR_ES_QWERTY = 9,
119+
EUR_NL_QWERTY = 10,
120+
EUR_PT_QWERTY = 11,
121+
EUR_RU_JCUKEN = 12,
122+
JPN_JP_Kana = 13,
123+
JPN_JP_Phone = 14,
124+
JPN_JP_Handwriting = 15,
125+
JPN_JP_Symbols = 16,
126+
USA_Special = 17,
127+
EUR_Special = 17,
128+
USA_Symbols = 18,
129+
EUR_Symbols = 18,
130+
LanguageDefault = 19,
131+
};
132+
107133
enum class KeyboardMode
108134
{
109135
//! The one that fully allows utf-16LE(char16_t) charaters
@@ -136,8 +162,8 @@ struct ConfigArg
136162
controllerType = ControllerType::DrcGamepad;
137163
keyboardMode = KeyboardMode::Full;
138164
accessFlags = 0x7FFFF;
139-
unk_0x10 = 19;
140-
unk_0x14 = -1;
165+
keyboardLayout = KeyboardLayout::LanguageDefault;
166+
keyboardTab = -1;
141167
unk_0x9C = 1;
142168
unk_0xA4 = -1;
143169
}
@@ -148,8 +174,8 @@ struct ConfigArg
148174
KeyboardMode keyboardMode;
149175
//! TODO: find all bit flags
150176
uint32_t accessFlags; // Bitmasked!
151-
uint32_t unk_0x10;
152-
int32_t unk_0x14;
177+
KeyboardLayout keyboardLayout;
178+
int32_t keyboardTab;
153179
bool unk_0x18;
154180
//! Text that's displayed on the "OK" button
155181
const char16_t *okString;
@@ -175,8 +201,8 @@ WUT_CHECK_OFFSET(ConfigArg, 0x00, languageType);
175201
WUT_CHECK_OFFSET(ConfigArg, 0x04, controllerType);
176202
WUT_CHECK_OFFSET(ConfigArg, 0x08, keyboardMode);
177203
WUT_CHECK_OFFSET(ConfigArg, 0x0C, accessFlags);
178-
WUT_CHECK_OFFSET(ConfigArg, 0x10, unk_0x10);
179-
WUT_CHECK_OFFSET(ConfigArg, 0x14, unk_0x14);
204+
WUT_CHECK_OFFSET(ConfigArg, 0x10, keyboardLayout);
205+
WUT_CHECK_OFFSET(ConfigArg, 0x14, keyboardTab);
180206
WUT_CHECK_OFFSET(ConfigArg, 0x18, unk_0x18);
181207
WUT_CHECK_OFFSET(ConfigArg, 0x1C, okString);
182208
WUT_CHECK_OFFSET(ConfigArg, 0x20, numpadCharLeft);

samples/cmake/swkbd/main.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <coreinit/memdefaultheap.h>
33
#include <nn/swkbd.h>
44
#include <sndcore2/core.h>
5+
#include <sysapp/launch.h>
56
#include <vpad/input.h>
67

78
#include <whb/gfx.h>
@@ -73,7 +74,8 @@ main(int argc, char **argv)
7374

7475
if (nn::swkbd::IsDecideOkButton(nullptr)) {
7576
nn::swkbd::DisappearInputForm();
76-
break;
77+
// Cause ProcUI to exit.
78+
SYSLaunchMenu();
7779
}
7880

7981
WHBGfxBeginRender();

0 commit comments

Comments
 (0)