applet: Add operation completed callback
This commit is contained in:
parent
6209fe0c27
commit
19b2571aec
8 changed files with 34 additions and 9 deletions
|
@ -18,10 +18,12 @@ void DefaultSoftwareKeyboardApplet::RequestText(
|
|||
out(parameters.initial_text);
|
||||
}
|
||||
|
||||
void DefaultSoftwareKeyboardApplet::SendTextCheckDialog(std::u16string error_message) const {
|
||||
void DefaultSoftwareKeyboardApplet::SendTextCheckDialog(
|
||||
std::u16string error_message, std::function<void()> finished_check) const {
|
||||
LOG_WARNING(Service_AM,
|
||||
"(STUBBED) called - Default fallback software keyboard does not support text "
|
||||
"check! (error_message={})",
|
||||
Common::UTF16ToUTF8(error_message));
|
||||
finished_check();
|
||||
}
|
||||
} // namespace Core::Frontend
|
||||
|
|
|
@ -39,14 +39,16 @@ public:
|
|||
|
||||
virtual void RequestText(std::function<void(std::optional<std::u16string>)> out,
|
||||
SoftwareKeyboardParameters parameters) const = 0;
|
||||
virtual void SendTextCheckDialog(std::u16string error_message) const = 0;
|
||||
virtual void SendTextCheckDialog(std::u16string error_message,
|
||||
std::function<void()> finished_check) const = 0;
|
||||
};
|
||||
|
||||
class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet {
|
||||
public:
|
||||
void RequestText(std::function<void(std::optional<std::u16string>)> out,
|
||||
SoftwareKeyboardParameters parameters) const override;
|
||||
void SendTextCheckDialog(std::u16string error_message) const override;
|
||||
void SendTextCheckDialog(std::u16string error_message,
|
||||
std::function<void()> finished_check) const override;
|
||||
};
|
||||
|
||||
} // namespace Core::Frontend
|
||||
|
|
|
@ -605,8 +605,10 @@ private:
|
|||
ASSERT(applet != nullptr);
|
||||
|
||||
applet->Initialize(storage_stack);
|
||||
storage_stack.clear();
|
||||
interactive_storage_stack.clear();
|
||||
while (!storage_stack.empty())
|
||||
storage_stack.pop();
|
||||
while (!interactive_storage_stack.empty())
|
||||
interactive_storage_stack.pop();
|
||||
applet->Execute([this](IStorage storage) { AppletStorageProxyOutData(storage); },
|
||||
[this](IStorage storage) { AppletStorageProxyOutInteractiveData(storage); },
|
||||
[this] { state_changed_event->Signal(); });
|
||||
|
|
|
@ -87,7 +87,7 @@ void SoftwareKeyboard::ReceiveInteractiveData(std::shared_ptr<IStorage> storage)
|
|||
std::array<char16_t, SWKBD_OUTPUT_INTERACTIVE_BUFFER_SIZE / 2 - 2> string;
|
||||
std::memcpy(string.data(), data.data() + 4, string.size() * 2);
|
||||
frontend.SendTextCheckDialog(
|
||||
Common::UTF16StringFromFixedZeroTerminatedBuffer(string.data(), string.size()));
|
||||
Common::UTF16StringFromFixedZeroTerminatedBuffer(string.data(), string.size()), state);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue