Add gamepad navigation support for everything except context menus and dialogs

This commit is contained in:
Cameron Gutman
2018-09-30 13:41:32 -07:00
parent 9fb0bffd61
commit d706e81cd4
9 changed files with 291 additions and 14 deletions
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include <QTimer>
#include <QEvent>
#include <SDL.h>
class SdlGamepadKeyNavigation : public QObject
{
Q_OBJECT
public:
SdlGamepadKeyNavigation();
~SdlGamepadKeyNavigation();
Q_INVOKABLE void enable();
Q_INVOKABLE void disable();
Q_INVOKABLE void setSettingsMode(bool settingsMode);
private:
void sendKey(QEvent::Type type, Qt::Key key, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
private slots:
void onPollingTimerFired();
private:
QTimer* m_PollingTimer;
QList<SDL_GameController*> m_Gamepads;
bool m_Enabled;
bool m_SettingsMode;
};