software_keyboard: Make GetText asynchronous

a
This commit is contained in:
Zach Hilman 2018-11-12 11:08:09 -05:00
parent 7cfb29de23
commit 8b433beff3
9 changed files with 64 additions and 29 deletions

View file

@ -9,12 +9,13 @@
namespace Core::Frontend {
SoftwareKeyboardApplet::~SoftwareKeyboardApplet() = default;
std::optional<std::u16string> DefaultSoftwareKeyboardApplet::GetText(
void DefaultSoftwareKeyboardApplet::RequestText(
std::function<void(std::optional<std::u16string>)> out,
SoftwareKeyboardParameters parameters) const {
if (parameters.initial_text.empty())
return u"yuzu";
out(u"yuzu");
return parameters.initial_text;
out(parameters.initial_text);
}
void DefaultSoftwareKeyboardApplet::SendTextCheckDialog(std::u16string error_message) const {

View file

@ -4,6 +4,7 @@
#pragma once
#include <functional>
#include <optional>
#include <string>
#include "common/bit_field.h"
@ -36,13 +37,15 @@ class SoftwareKeyboardApplet {
public:
virtual ~SoftwareKeyboardApplet();
virtual std::optional<std::u16string> GetText(SoftwareKeyboardParameters parameters) const = 0;
virtual void RequestText(std::function<void(std::optional<std::u16string>)> out,
SoftwareKeyboardParameters parameters) const = 0;
virtual void SendTextCheckDialog(std::u16string error_message) const = 0;
};
class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet {
public:
std::optional<std::u16string> GetText(SoftwareKeyboardParameters parameters) const override;
void RequestText(std::function<void(std::optional<std::u16string>)> out,
SoftwareKeyboardParameters parameters) const override;
void SendTextCheckDialog(std::u16string error_message) const override;
};