Checkpoint/3ds/source/KeyboardManager.cpp
2019-07-16 21:19:25 +02:00

28 lines
No EOL
1 KiB
C++

#include "KeyboardManager.hpp"
std::u16string KeyboardManager::keyboard(const std::string& suggestion)
{
swkbdSetInitialText(&mSwkbd, suggestion.c_str());
char buf[CUSTOM_PATH_LEN] = {0};
SwkbdButton button = swkbdInputText(&mSwkbd, buf, CUSTOM_PATH_LEN);
buf[CUSTOM_PATH_LEN - 1] = '\0';
return button == SWKBD_BUTTON_CONFIRM ? StringUtils::removeForbiddenCharacters(StringUtils::UTF8toUTF16(buf)) : StringUtils::UTF8toUTF16("");
}
int KeyboardManager::numericPad(void)
{
static SwkbdState swkbd;
swkbdInit(&swkbd, SWKBD_TYPE_NUMPAD, 2, 3);
swkbdSetFeatures(&swkbd, SWKBD_FIXED_WIDTH);
swkbdSetValidation(&swkbd, SWKBD_NOTBLANK_NOTEMPTY, 0, 0);
char buf[4] = {0};
SwkbdButton button = swkbdInputText(&swkbd, buf, sizeof(buf));
buf[3] = '\0';
return button == SWKBD_BUTTON_CONFIRM ? atoi(buf) : -1;
}
KeyboardManager::KeyboardManager(void)
{
swkbdInit(&mSwkbd, SWKBD_TYPE_NORMAL, 2, CUSTOM_PATH_LEN - 1);
swkbdSetHintText(&mSwkbd, "Choose a name for your backup.");
}