2
1
Fork 0
mirror of https://github.com/yuzu-emu/yuzu.git synced 2024-07-04 23:31:19 +01:00

yuzu: Update overlay applet

This commit is contained in:
german77 2021-09-20 20:50:32 -05:00 committed by Narr the Reg
parent 510c7d2953
commit 1b82d5bb4f
2 changed files with 21 additions and 16 deletions

View file

@ -6,7 +6,8 @@
#include <QScreen> #include <QScreen>
#include "core/core.h" #include "core/core.h"
#include "core/frontend/input_interpreter.h" #include "core/hid/hid_types.h"
#include "core/hid/input_interpreter.h"
#include "ui_overlay_dialog.h" #include "ui_overlay_dialog.h"
#include "yuzu/util/overlay_dialog.h" #include "yuzu/util/overlay_dialog.h"
@ -179,9 +180,9 @@ void OverlayDialog::MoveAndResizeWindow() {
QDialog::resize(width, height); QDialog::resize(width, height);
} }
template <HIDButton... T> template <Core::HID::NpadButton... T>
void OverlayDialog::HandleButtonPressedOnce() { void OverlayDialog::HandleButtonPressedOnce() {
const auto f = [this](HIDButton button) { const auto f = [this](Core::HID::NpadButton button) {
if (input_interpreter->IsButtonPressedOnce(button)) { if (input_interpreter->IsButtonPressedOnce(button)) {
TranslateButtonPress(button); TranslateButtonPress(button);
} }
@ -190,7 +191,7 @@ void OverlayDialog::HandleButtonPressedOnce() {
(f(T), ...); (f(T), ...);
} }
void OverlayDialog::TranslateButtonPress(HIDButton button) { void OverlayDialog::TranslateButtonPress(Core::HID::NpadButton button) {
QPushButton* left_button = use_rich_text ? ui->button_cancel_rich : ui->button_cancel; QPushButton* left_button = use_rich_text ? ui->button_cancel_rich : ui->button_cancel;
QPushButton* right_button = use_rich_text ? ui->button_ok_rich : ui->button_ok_label; QPushButton* right_button = use_rich_text ? ui->button_ok_rich : ui->button_ok_label;
@ -198,20 +199,20 @@ void OverlayDialog::TranslateButtonPress(HIDButton button) {
// TODO (Morph): focusPrevious/NextChild() doesn't work well with the rich text dialog, fix it // TODO (Morph): focusPrevious/NextChild() doesn't work well with the rich text dialog, fix it
switch (button) { switch (button) {
case HIDButton::A: case Core::HID::NpadButton::A:
case HIDButton::B: case Core::HID::NpadButton::B:
if (left_button->hasFocus()) { if (left_button->hasFocus()) {
left_button->click(); left_button->click();
} else if (right_button->hasFocus()) { } else if (right_button->hasFocus()) {
right_button->click(); right_button->click();
} }
break; break;
case HIDButton::DLeft: case Core::HID::NpadButton::Left:
case HIDButton::LStickLeft: case Core::HID::NpadButton::StickLLeft:
focusPreviousChild(); focusPreviousChild();
break; break;
case HIDButton::DRight: case Core::HID::NpadButton::Right:
case HIDButton::LStickRight: case Core::HID::NpadButton::StickLRight:
focusNextChild(); focusNextChild();
break; break;
default: default:
@ -241,8 +242,10 @@ void OverlayDialog::InputThread() {
while (input_thread_running) { while (input_thread_running) {
input_interpreter->PollInput(); input_interpreter->PollInput();
HandleButtonPressedOnce<HIDButton::A, HIDButton::B, HIDButton::DLeft, HIDButton::DRight, HandleButtonPressedOnce<Core::HID::NpadButton::A, Core::HID::NpadButton::B,
HIDButton::LStickLeft, HIDButton::LStickRight>(); Core::HID::NpadButton::Left, Core::HID::NpadButton::Right,
Core::HID::NpadButton::StickLLeft,
Core::HID::NpadButton::StickLRight>();
std::this_thread::sleep_for(std::chrono::milliseconds(50)); std::this_thread::sleep_for(std::chrono::milliseconds(50));
} }

View file

@ -13,14 +13,16 @@
#include "common/common_types.h" #include "common/common_types.h"
enum class HIDButton : u8;
class InputInterpreter; class InputInterpreter;
namespace Core { namespace Core {
class System; class System;
} }
namespace Core::HID {
enum class NpadButton : u64;
}
namespace Ui { namespace Ui {
class OverlayDialog; class OverlayDialog;
} }
@ -79,7 +81,7 @@ private:
* *
* @tparam HIDButton The list of buttons that can be converted into keyboard input. * @tparam HIDButton The list of buttons that can be converted into keyboard input.
*/ */
template <HIDButton... T> template <Core::HID::NpadButton... T>
void HandleButtonPressedOnce(); void HandleButtonPressedOnce();
/** /**
@ -87,7 +89,7 @@ private:
* *
* @param button The button press to process. * @param button The button press to process.
*/ */
void TranslateButtonPress(HIDButton button); void TranslateButtonPress(Core::HID::NpadButton button);
void StartInputThread(); void StartInputThread();
void StopInputThread(); void StopInputThread();