mirror of
https://git.citron-emu.org/citron/emulator
synced 2025-12-19 18:53:32 +00:00
feat: Controller Overlay
This commit is contained in:
38
src/citron/controller_overlay.h
Normal file
38
src/citron/controller_overlay.h
Normal file
@@ -0,0 +1,38 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
|
||||
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;
|
||||
};
|
||||
Reference in New Issue
Block a user