tiny refactoring around the input config dialog

This commit is contained in:
RSDuck
2023-03-02 14:41:46 +01:00
parent ca221381e9
commit 4ba7a2c5e6
2 changed files with 91 additions and 71 deletions

View File

@ -21,6 +21,56 @@
#include <QDialog>
#include <QPushButton>
#include <initializer_list>
#include "Config.h"
static constexpr int keypad_num = 12;
static constexpr std::initializer_list<int> hk_addons =
{
HK_SolarSensorIncrease,
HK_SolarSensorDecrease,
};
static constexpr std::initializer_list<const char*> hk_addons_labels =
{
"[Boktai] Sunlight + ",
"[Boktai] Sunlight - ",
};
static_assert(hk_addons.size() == hk_addons_labels.size());
static constexpr std::initializer_list<int> hk_general =
{
HK_Pause,
HK_Reset,
HK_FrameStep,
HK_FastForward,
HK_FastForwardToggle,
HK_FullscreenToggle,
HK_Lid,
HK_Mic,
HK_SwapScreens,
HK_SwapScreenEmphasis
};
static constexpr std::initializer_list<const char*> hk_general_labels =
{
"Pause/resume",
"Reset",
"Frame step",
"Fast forward",
"Toggle FPS limit",
"Toggle fullscreen",
"Close/open lid",
"Microphone",
"Swap screens",
"Swap screen emphasis"
};
static_assert(hk_general.size() == hk_general_labels.size());
namespace Ui { class InputConfigDialog; }
class InputConfigDialog;
@ -60,14 +110,16 @@ private slots:
void on_cbxJoystick_currentIndexChanged(int id);
private:
void populatePage(QWidget* page, int num, const char** labels, int* keymap, int* joymap);
void populatePage(QWidget* page,
const std::initializer_list<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];
int keypadKeyMap[12], keypadJoyMap[12];
int addonsKeyMap[hk_addons.size()], addonsJoyMap[hk_addons.size()];
int hkGeneralKeyMap[hk_general.size()], hkGeneralJoyMap[hk_general.size()];
};