summaryrefslogtreecommitdiffstats
path: root/src/yuzu/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/main.h')
-rw-r--r--src/yuzu/main.h35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 04d37d4ae..7f1e50a5b 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -37,9 +37,13 @@ enum class GameListRemoveTarget;
enum class InstalledEntryType;
class GameListPlaceholder;
+class QtSoftwareKeyboardDialog;
+
namespace Core::Frontend {
struct ControllerParameters;
-struct SoftwareKeyboardParameters;
+struct InlineAppearParameters;
+struct InlineTextParameters;
+struct KeyboardInitializeParameters;
} // namespace Core::Frontend
namespace DiscordRPC {
@@ -57,8 +61,11 @@ class InputSubsystem;
}
namespace Service::AM::Applets {
+enum class SwkbdResult : u32;
+enum class SwkbdTextCheckResult : u32;
+enum class SwkbdReplyType : u32;
enum class WebExitReason : u32;
-}
+} // namespace Service::AM::Applets
enum class EmulatedDirectoryTarget {
NAND,
@@ -128,8 +135,10 @@ signals:
void ProfileSelectorFinishedSelection(std::optional<Common::UUID> uuid);
- void SoftwareKeyboardFinishedText(std::optional<std::u16string> text);
- void SoftwareKeyboardFinishedCheckDialog();
+ void SoftwareKeyboardSubmitNormalText(Service::AM::Applets::SwkbdResult result,
+ std::u16string submitted_text);
+ void SoftwareKeyboardSubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type,
+ std::u16string submitted_text, s32 cursor_position);
void WebBrowserExtractOfflineRomFS();
void WebBrowserClosed(Service::AM::Applets::WebExitReason exit_reason, std::string last_url);
@@ -139,15 +148,24 @@ public slots:
void OnExecuteProgram(std::size_t program_index);
void ControllerSelectorReconfigureControllers(
const Core::Frontend::ControllerParameters& parameters);
- void ErrorDisplayDisplayError(QString body);
+ void SoftwareKeyboardInitialize(
+ bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters);
+ void SoftwareKeyboardShowNormal();
+ void SoftwareKeyboardShowTextCheck(Service::AM::Applets::SwkbdTextCheckResult text_check_result,
+ std::u16string text_check_message);
+ void SoftwareKeyboardShowInline(Core::Frontend::InlineAppearParameters appear_parameters);
+ void SoftwareKeyboardHideInline();
+ void SoftwareKeyboardInlineTextChanged(Core::Frontend::InlineTextParameters text_parameters);
+ void SoftwareKeyboardExit();
+ void ErrorDisplayDisplayError(QString error_code, QString error_text);
void ProfileSelectorSelectProfile();
- void SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters);
- void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message);
void WebBrowserOpenWebPage(std::string_view main_url, std::string_view additional_args,
bool is_local);
void OnAppFocusStateChanged(Qt::ApplicationState state);
private:
+ void RegisterMetaTypes();
+
void InitializeWidgets();
void InitializeDebugWidgets();
void InitializeRecentFileMenuActions();
@@ -334,6 +352,9 @@ private:
// Disables the web applet for the rest of the emulated session
bool disable_web_applet{};
+ // Applets
+ QtSoftwareKeyboardDialog* software_keyboard = nullptr;
+
protected:
void dropEvent(QDropEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override;