Add invert analog input option

This commit is contained in:
ahnada
2024-01-31 21:40:22 +01:00
committed by icex2
parent bdf493d2fb
commit f37f216c69
8 changed files with 76 additions and 9 deletions
+25
View File
@@ -54,6 +54,7 @@ static void analog_ui_populate_controls(HWND hwnd);
static INT_PTR analog_ui_handle_device_change(HWND hwnd);
static INT_PTR analog_ui_handle_control_change(HWND hwnd);
static INT_PTR analog_ui_handle_sensitivity_change(HWND hwnd);
static INT_PTR analog_ui_handle_invert_change(HWND hwnd);
static INT_PTR analog_ui_handle_tick(HWND hwnd);
static INT_PTR analog_ui_handle_fini(HWND hwnd);
@@ -213,6 +214,15 @@ analog_ui_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
return FALSE;
}
case BN_CLICKED:
switch (LOWORD(wparam)) {
case IDC_ANALOG_INVERT:
return analog_ui_handle_invert_change(hwnd);
default:
return FALSE;
}
default:
return FALSE;
}
@@ -519,6 +529,21 @@ static INT_PTR analog_ui_handle_sensitivity_change(HWND hwnd)
return TRUE;
}
static INT_PTR analog_ui_handle_invert_change(HWND hwnd)
{
struct analog_ui *ui;
HWND btn;
bool invert;
ui = (struct analog_ui *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
btn = GetDlgItem(hwnd, IDC_ANALOG_INVERT);
invert = SendMessage(btn, BM_GETCHECK, 0, 0) == BST_CHECKED;
mapper_set_analog_invert(ui->def->tag, invert);
return TRUE;
}
static INT_PTR analog_ui_handle_tick(HWND hwnd)
{
struct analog_ui *ui;
+4 -3
View File
@@ -22,18 +22,19 @@ IDR_USAGES USAGES "config/usages.txt"
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_ANALOG DIALOG 0, 0, 220, 100
IDD_ANALOG DIALOG 0, 0, 220, 115
STYLE DS_3DLOOK | DS_CENTER | DS_SHELLFONT | WS_VISIBLE | WS_CHILDWINDOW
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "Ms Shell Dlg"
{
GROUPBOX "", IDC_GROUP, 5, 5, 210, 90
GROUPBOX "", IDC_GROUP, 5, 5, 210, 105
CONTROL "", IDC_SENSITIVITY, TRACKBAR_CLASS, WS_TABSTOP | TBS_AUTOTICKS, 10, 75, 200, 15
LTEXT "Device", IDC_STATIC, 15, 15, 24, 8, SS_LEFT
COMBOBOX IDC_DEVICE, 15, 25, 135, 30, WS_GROUP | WS_TABSTOP | CBS_DROPDOWNLIST | CBS_HASSTRINGS
COMBOBOX IDC_CONTROL, 15, 50, 135, 30, WS_TABSTOP | CBS_DROPDOWNLIST | CBS_HASSTRINGS
LTEXT "Sensitivity", IDC_STATIC, 15, 65, 32, 8, SS_LEFT
LTEXT "Control", IDC_STATIC, 15, 40, 23, 8, SS_LEFT
AUTOCHECKBOX "Invert Axis", IDC_ANALOG_INVERT, 15, 95, 141, 8
CONTROL "", IDC_POSITION, "spinner", 0x50020000, 160, 15, 50, 50, 0x02002000
}
@@ -126,7 +127,7 @@ FONT 8, "Ms Shell Dlg"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_TAB_ANALOGS DIALOG 0, 0, 220, 215
IDD_TAB_ANALOGS DIALOG 0, 0, 220, 230
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Analogs"
FONT 8, "Ms Shell Dlg"
+1
View File
@@ -30,6 +30,7 @@
#define IDC_DEVICE 1005
#define IDC_BINDING_EDIT 1006
#define IDC_CONTROL 1006
#define IDC_ANALOG_INVERT 1007
#define IDC_BINDING_CLEAR 1007
#define IDC_BINDING_MIN 1008
#define IDC_PAGE_TEXT 1008