diff options
author | Zach Hilman <zachhilman@gmail.com> | 2018-11-10 02:12:12 +0100 |
---|---|---|
committer | Zach Hilman <zachhilman@gmail.com> | 2018-11-18 16:53:47 +0100 |
commit | de16c1e45326a5bb587a2c270b9b39042b245f7c (patch) | |
tree | a40fe3605cab81dd5265687dc341446ee94ea2e9 /src/core/hle/service/am/applets/software_keyboard.h | |
parent | frontend/applets: Add frontend software keyboard provider and default (diff) | |
download | yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar.gz yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar.bz2 yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar.lz yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar.xz yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.tar.zst yuzu-de16c1e45326a5bb587a2c270b9b39042b245f7c.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/am/applets/software_keyboard.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/core/hle/service/am/applets/software_keyboard.h b/src/core/hle/service/am/applets/software_keyboard.h new file mode 100644 index 000000000..9a37ba45f --- /dev/null +++ b/src/core/hle/service/am/applets/software_keyboard.h @@ -0,0 +1,57 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_funcs.h" +#include "core/hle/service/am/applets/applets.h" + +namespace Service::AM::Applets { + +enum class KeysetDisable : u32 { + Space = 0x02, + Address = 0x04, + Percent = 0x08, + Slashes = 0x10, + Numbers = 0x40, + DownloadCode = 0x80, +}; + +struct KeyboardConfig { + INSERT_PADDING_BYTES(4); + std::array<char16_t, 9> submit_text; + u16_le left_symbol_key; + u16_le right_symbol_key; + INSERT_PADDING_BYTES(1); + KeysetDisable keyset_disable_bitmask; + u32_le initial_cursor_position; + std::array<char16_t, 65> header_text; + std::array<char16_t, 129> sub_text; + std::array<char16_t, 257> guide_text; + u32_le length_limit; + INSERT_PADDING_BYTES(4); + u32_le is_password; + INSERT_PADDING_BYTES(6); + bool draw_background; + u32_le initial_string_offset; + u32_le initial_string_size; + u32_le user_dictionary_offset; + u32_le user_dictionary_size; + bool text_check; + u64_le text_check_callback; +}; +static_assert(sizeof(KeyboardConfig) == 0x3E0, "KeyboardConfig has incorrect size."); + +class SoftwareKeyboard final : public Applet { +public: + void Initialize(std::vector<std::shared_ptr<IStorage>> storage) override; + + IStorage Execute() override; + +private: + KeyboardConfig config; + std::u16string initial_text; +}; + +} // namespace Service::AM::Applets |