// 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 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 header_text; std::array sub_text; std::array 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> storage) override; IStorage Execute() override; private: KeyboardConfig config; std::u16string initial_text; }; } // namespace Service::AM::Applets