diff options
Diffstat (limited to 'src/yuzu/util/overlay_dialog.h')
-rw-r--r-- | src/yuzu/util/overlay_dialog.h | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/yuzu/util/overlay_dialog.h b/src/yuzu/util/overlay_dialog.h deleted file mode 100644 index 62f9da311..000000000 --- a/src/yuzu/util/overlay_dialog.h +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include <atomic> -#include <memory> -#include <thread> - -#include <QDialog> - -#include "common/common_types.h" - -class InputInterpreter; - -namespace Core { -class System; -} - -namespace Core::HID { -enum class NpadButton : u64; -} - -namespace Ui { -class OverlayDialog; -} - -/** - * An OverlayDialog is an interactive dialog that accepts controller input (while a game is running) - * This dialog attempts to replicate the look and feel of the Nintendo Switch's overlay dialogs and - * provide some extra features such as embedding HTML/Rich Text content in a QTextBrowser. - * The OverlayDialog provides 2 modes: one to embed regular text into a QLabel and another to embed - * HTML/Rich Text content into a QTextBrowser. - */ -class OverlayDialog final : public QDialog { - Q_OBJECT - -public: - explicit OverlayDialog(QWidget* parent, Core::System& system, const QString& title_text, - const QString& body_text, const QString& left_button_text, - const QString& right_button_text, - Qt::Alignment alignment = Qt::AlignCenter, bool use_rich_text_ = false); - ~OverlayDialog() override; - -private: - /** - * Initializes a text dialog with a QLabel storing text. - * Only use this for short text as the dialog buttons would be squashed with longer text. - * - * @param title_text Title text to be displayed - * @param body_text Main text to be displayed - * @param left_button_text Left button text. If empty, the button is hidden and disabled - * @param right_button_text Right button text. If empty, the button is hidden and disabled - * @param alignment Main text alignment - */ - void InitializeRegularTextDialog(const QString& title_text, const QString& body_text, - const QString& left_button_text, - const QString& right_button_text, Qt::Alignment alignment); - - /** - * Initializes a text dialog with a QTextBrowser storing text. - * This is ideal for longer text or rich text content. A scrollbar is shown for longer text. - * - * @param title_text Title text to be displayed - * @param body_text Main text to be displayed - * @param left_button_text Left button text. If empty, the button is hidden and disabled - * @param right_button_text Right button text. If empty, the button is hidden and disabled - * @param alignment Main text alignment - */ - void InitializeRichTextDialog(const QString& title_text, const QString& body_text, - const QString& left_button_text, const QString& right_button_text, - Qt::Alignment alignment); - - /// Moves and resizes the dialog to be fully overlaid on top of the parent window. - void MoveAndResizeWindow(); - - /** - * Handles button presses and converts them into keyboard input. - * - * @tparam HIDButton The list of buttons that can be converted into keyboard input. - */ - template <Core::HID::NpadButton... T> - void HandleButtonPressedOnce(); - - /** - * Translates a button press to focus or click either the left or right buttons. - * - * @param button The button press to process. - */ - void TranslateButtonPress(Core::HID::NpadButton button); - - void StartInputThread(); - void StopInputThread(); - - /// The thread where input is being polled and processed. - void InputThread(); - void keyPressEvent(QKeyEvent* e) override; - - std::unique_ptr<Ui::OverlayDialog> ui; - - bool use_rich_text; - - std::unique_ptr<InputInterpreter> input_interpreter; - - std::thread input_thread; - - std::atomic<bool> input_thread_running{}; -}; |