summaryrefslogtreecommitdiff
path: root/src/yuzu/util/overlay_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/util/overlay_dialog.h')
-rw-r--r--src/yuzu/util/overlay_dialog.h108
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{};
-};