diff options
author | Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com> | 2021-09-30 17:23:25 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 17:23:25 +0000 |
commit | 796d6033322fbd5870649c2d7a856abf81ca6b65 (patch) | |
tree | 50be57f54fc28faf0c69ea9e716a8f9c7bc64069 /src/frontend/qt_sdl/InputConfig/InputConfigDialog.h | |
parent | 737171c90687f8bfb8827849e7a4bd6734009249 (diff) |
Redesign the Input dialog (#1226)
Diffstat (limited to 'src/frontend/qt_sdl/InputConfig/InputConfigDialog.h')
-rw-r--r-- | src/frontend/qt_sdl/InputConfig/InputConfigDialog.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/frontend/qt_sdl/InputConfig/InputConfigDialog.h b/src/frontend/qt_sdl/InputConfig/InputConfigDialog.h new file mode 100644 index 0000000..069dfcb --- /dev/null +++ b/src/frontend/qt_sdl/InputConfig/InputConfigDialog.h @@ -0,0 +1,74 @@ +/* + Copyright 2016-2021 Arisotura + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef INPUTCONFIGDIALOG_H +#define INPUTCONFIGDIALOG_H + +#include <QDialog> +#include <QPushButton> + +namespace Ui { class InputConfigDialog; } +class InputConfigDialog; + +class InputConfigDialog : public QDialog +{ + Q_OBJECT + +public: + explicit InputConfigDialog(QWidget* parent); + ~InputConfigDialog(); + + static InputConfigDialog* currentDlg; + static InputConfigDialog* openDlg(QWidget* parent) + { + if (currentDlg) + { + currentDlg->activateWindow(); + return currentDlg; + } + + currentDlg = new InputConfigDialog(parent); + currentDlg->open(); + return currentDlg; + } + static void closeDlg() + { + currentDlg = nullptr; + } + +private slots: + void on_InputConfigDialog_accepted(); + void on_InputConfigDialog_rejected(); + + void on_btnKeyMapSwitch_clicked(); + void on_btnJoyMapSwitch_clicked(); + void on_cbxJoystick_currentIndexChanged(int id); + +private: + void populatePage(QWidget* page, int num, const char** labels, int* keymap, int* joymap); + void setupKeypadPage(); + + Ui::InputConfigDialog* ui; + + int keypadKeyMap[12], keypadJoyMap[12]; + int addonsKeyMap[2], addonsJoyMap[2]; + int hkGeneralKeyMap[9], hkGeneralJoyMap[9]; +}; + + +#endif // INPUTCONFIGDIALOG_H |