From 61d9808660bfe8266283a277aa5c25aa9f9cbfa8 Mon Sep 17 00:00:00 2001 From: collecting Date: Wed, 29 Oct 2025 05:25:53 +0000 Subject: [PATCH] feat: Controller Overlay --- src/citron/controller_overlay.h | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/citron/controller_overlay.h diff --git a/src/citron/controller_overlay.h b/src/citron/controller_overlay.h new file mode 100644 index 000000000..69ab4427a --- /dev/null +++ b/src/citron/controller_overlay.h @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include +#include + +class GMainWindow; +class PlayerControlPreview; +class QSizeGrip; + +class ControllerOverlay : public QWidget { + Q_OBJECT + +public: + explicit ControllerOverlay(GMainWindow* parent); + ~ControllerOverlay() override; + +protected: + void paintEvent(QPaintEvent* event) override; + void mousePressEvent(QMouseEvent* event) override; + void mouseMoveEvent(QMouseEvent* event) override; + void mouseReleaseEvent(QMouseEvent* event) override; + void resizeEvent(QResizeEvent* event) override; + +private slots: + void UpdateControllerState(); + +private: + GMainWindow* main_window; + QTimer update_timer; + + PlayerControlPreview* controller_widget; + QSizeGrip* size_grip; + + bool is_dragging = false; + QPoint drag_start_pos; +}; \ No newline at end of file