From 5454494adbfad3148e75b45653a255004ca989b3 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Fri, 9 Nov 2018 20:13:15 -0500 Subject: qt/applets: Provide Qt frontend implementation of software keyboard Implements all of the features of the keyboard, including length, default text, character validation, and UTF-16 character support. --- src/yuzu/applets/software_keyboard.h | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/yuzu/applets/software_keyboard.h (limited to 'src/yuzu/applets/software_keyboard.h') diff --git a/src/yuzu/applets/software_keyboard.h b/src/yuzu/applets/software_keyboard.h new file mode 100644 index 000000000..2a18419db --- /dev/null +++ b/src/yuzu/applets/software_keyboard.h @@ -0,0 +1,62 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once +#include +#include +#include "common/assert.h" +#include "core/frontend/applets/software_keyboard.h" + +class QDialogButtonBox; +class QLabel; +class QLineEdit; +class QVBoxLayout; +class QtSoftwareKeyboard; + +class QtSoftwareKeyboardValidator final : public QValidator { +public: + explicit QtSoftwareKeyboardValidator(Frontend::SoftwareKeyboardApplet::Parameters parameters); + State validate(QString&, int&) const override; + +private: + Frontend::SoftwareKeyboardApplet::Parameters parameters; +}; + +class QtSoftwareKeyboardDialog final : public QDialog { + Q_OBJECT + +public: + QtSoftwareKeyboardDialog(QWidget* parent, + Frontend::SoftwareKeyboardApplet::Parameters parameters); + void Submit(); + void Reject(); + +private: + bool ok = false; + std::u16string text; + + QDialogButtonBox* buttons; + QLabel* header_label; + QLabel* sub_label; + QLabel* guide_label; + QLineEdit* line_edit; + QVBoxLayout* layout; + + Frontend::SoftwareKeyboardApplet::Parameters parameters; + + friend class QtSoftwareKeyboard; +}; + +class QtSoftwareKeyboard final : public QObject, public Frontend::SoftwareKeyboardApplet { +public: + explicit QtSoftwareKeyboard(QWidget& parent); + bool GetText(Parameters parameters, std::u16string& text) override; + + ~QtSoftwareKeyboard() { + UNREACHABLE(); + } + +private: + QWidget& parent; +}; -- cgit v1.2.3