mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Add an UI for modifying controls for PC
This commit is contained in:
parent
32f344d6bd
commit
7ff4f34a48
5 changed files with 330 additions and 68 deletions
|
@ -67,4 +67,142 @@ int KeyboardDevice::UpdateState(InputState &input_state) {
|
|||
input_state.pad_lstick_x += analogX;
|
||||
input_state.pad_lstick_y += analogY;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
struct key_name {
|
||||
unsigned char key;
|
||||
char name[10];
|
||||
};
|
||||
|
||||
const key_name key_name_map[] = {
|
||||
{'A', "A"},
|
||||
{'B', "B"},
|
||||
{'C', "C"},
|
||||
{'D', "D"},
|
||||
{'E', "E"},
|
||||
{'F', "F"},
|
||||
{'G', "G"},
|
||||
{'H', "H"},
|
||||
{'I', "I"},
|
||||
{'J', "J"},
|
||||
{'K', "K"},
|
||||
{'L', "L"},
|
||||
{'M', "M"},
|
||||
{'N', "N"},
|
||||
{'O', "O"},
|
||||
{'P', "P"},
|
||||
{'Q', "Q"},
|
||||
{'R', "R"},
|
||||
{'S', "S"},
|
||||
{'T', "T"},
|
||||
{'U', "U"},
|
||||
{'V', "V"},
|
||||
{'W', "W"},
|
||||
{'X', "X"},
|
||||
{'Y', "Y"},
|
||||
{'Z', "Z"},
|
||||
{'1', "1"},
|
||||
{'2', "2"},
|
||||
{'3', "3"},
|
||||
{'4', "4"},
|
||||
{'5', "5"},
|
||||
{'6', "6"},
|
||||
{'7', "7"},
|
||||
{'8', "8"},
|
||||
{'9', "9"},
|
||||
{'0', "0"},
|
||||
{VK_BACK, "Backspace"},
|
||||
{VK_TAB, "Tab"},
|
||||
{VK_CLEAR, "Clear"},
|
||||
{VK_RETURN, "Return"},
|
||||
{VK_SHIFT, "Shift"},
|
||||
{VK_CONTROL, "Ctrl"},
|
||||
{VK_MENU, "Alt"},
|
||||
{VK_PAUSE, "Pause"},
|
||||
{VK_CAPITAL, "Caps"},
|
||||
{VK_ESCAPE, "Esc"},
|
||||
{VK_SPACE, "Space"},
|
||||
{VK_PRIOR, "PgUp"},
|
||||
{VK_NEXT, "PgDown"},
|
||||
{VK_END, "End"},
|
||||
{VK_HOME, "Home"},
|
||||
{VK_LEFT, "Left"},
|
||||
{VK_UP, "Up"},
|
||||
{VK_RIGHT, "Right"},
|
||||
{VK_DOWN, "Down"},
|
||||
{VK_SELECT, "Select"},
|
||||
{VK_INSERT, "Insert"},
|
||||
{VK_DELETE, "Delete"},
|
||||
{VK_HELP, "Help"},
|
||||
{VK_NUMPAD0, "Num 0"},
|
||||
{VK_NUMPAD1, "Num 1"},
|
||||
{VK_NUMPAD2, "Num 2"},
|
||||
{VK_NUMPAD3, "Num 3"},
|
||||
{VK_NUMPAD4, "Num 4"},
|
||||
{VK_NUMPAD5, "Num 5"},
|
||||
{VK_NUMPAD6, "Num 6"},
|
||||
{VK_NUMPAD7, "Num 7"},
|
||||
{VK_NUMPAD8, "Num 8"},
|
||||
{VK_NUMPAD9, "Num 9"},
|
||||
{VK_MULTIPLY, "Num *"},
|
||||
{VK_ADD, "Num +"},
|
||||
{VK_SEPARATOR, "Num Sep"},
|
||||
{VK_SUBTRACT, "Num -"},
|
||||
{VK_DECIMAL, "Num ."},
|
||||
{VK_DIVIDE, "Num /"},
|
||||
{VK_F1, "F1"},
|
||||
{VK_F2, "F2"},
|
||||
{VK_F3, "F3"},
|
||||
{VK_F4, "F4"},
|
||||
{VK_F5, "F5"},
|
||||
{VK_F6, "F6"},
|
||||
{VK_F7, "F7"},
|
||||
{VK_F8, "F8"},
|
||||
{VK_F9, "F9"},
|
||||
{VK_F10, "F10"},
|
||||
{VK_F11, "F11"},
|
||||
{VK_F12, "F12"},
|
||||
{VK_OEM_NEC_EQUAL, "Num ="},
|
||||
{VK_OEM_1, ";"},
|
||||
{VK_OEM_PLUS, "+"},
|
||||
{VK_OEM_COMMA, ","},
|
||||
{VK_OEM_MINUS, "-"},
|
||||
{VK_OEM_PERIOD, "."},
|
||||
{VK_OEM_2, "?"},
|
||||
{VK_OEM_3, "~"},
|
||||
{VK_OEM_4, "["},
|
||||
{VK_OEM_5, "|"},
|
||||
{VK_OEM_6, "]"},
|
||||
{VK_OEM_7, "'"}
|
||||
};
|
||||
|
||||
const int key_name_map_size = sizeof(key_name_map) / sizeof(key_name);
|
||||
|
||||
const char * getVirtualKeyName(unsigned char key)
|
||||
{
|
||||
for (int i = 0; i < key_name_map_size; i++) {
|
||||
if (key_name_map[i].key == key)
|
||||
return key_name_map[i].name;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool saveControlsToFile() {
|
||||
FILE *wfp = fopen("PPSSPPControls.dat", "wb");
|
||||
if (!wfp)
|
||||
return false;
|
||||
fwrite(key_pad_map, 1, sizeof(key_pad_map), wfp);
|
||||
fwrite(analog_ctrl_map, 1, sizeof(analog_ctrl_map), wfp);
|
||||
fclose(wfp);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool loadControlsFromFile() {
|
||||
FILE *rfp = fopen("PPSSPPControls.dat", "rb");
|
||||
if (!rfp)
|
||||
return false;
|
||||
fread(key_pad_map, 1, sizeof(key_pad_map), rfp);
|
||||
fread(analog_ctrl_map, 1, sizeof(analog_ctrl_map), rfp);
|
||||
fclose(rfp);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
#include <atlimage.h>
|
||||
|
||||
#include "base/NativeApp.h"
|
||||
#include "Globals.h"
|
||||
|
@ -45,6 +46,12 @@ static RECT g_normalRC = {0};
|
|||
|
||||
extern InputState input_state;
|
||||
|
||||
extern unsigned short analog_ctrl_map[];
|
||||
extern unsigned int key_pad_map[];
|
||||
extern const char * getVirtualKeyName(unsigned char key);
|
||||
extern bool saveControlsToFile();
|
||||
extern bool loadControlsFromFile();
|
||||
|
||||
namespace MainWindow
|
||||
{
|
||||
HWND hwndMain;
|
||||
|
@ -358,6 +365,7 @@ namespace MainWindow
|
|||
switch (message)
|
||||
{
|
||||
case WM_CREATE:
|
||||
loadControlsFromFile();
|
||||
break;
|
||||
|
||||
case WM_MOVE:
|
||||
|
@ -822,47 +830,144 @@ namespace MainWindow
|
|||
"Rapid Fire\tShift",
|
||||
};
|
||||
|
||||
// Message handler for controls box.
|
||||
static HHOOK pKeydownHook;
|
||||
static const int control_map_size = IDC_EDIT_KEY_ANALOG_RIGHT - IDC_EDIT_KEY_TURBO + 1;
|
||||
static u8 control_map[control_map_size];
|
||||
RECT getRedrawRect(HWND hWnd) {
|
||||
RECT rc;
|
||||
HWND hDlg = GetParent(hWnd);
|
||||
GetWindowRect(hWnd, &rc);
|
||||
POINT pt = {0, 0};
|
||||
ScreenToClient(hDlg, &pt);
|
||||
rc.left += pt.x;
|
||||
rc.right += pt.x;
|
||||
rc.top += pt.y;
|
||||
rc.bottom += pt.y;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND hEdit = GetFocus();
|
||||
UINT nCtrlID = GetDlgCtrlID(hEdit);
|
||||
if (nCtrlID < IDC_EDIT_KEY_TURBO || nCtrlID > IDC_EDIT_KEY_ANALOG_RIGHT) {
|
||||
return CallNextHookEx(pKeydownHook, nCode, wParam, lParam);
|
||||
}
|
||||
if (!(lParam&(1<<31))) {
|
||||
// key down
|
||||
HWND hDlg = GetParent(hEdit);
|
||||
const char *str = getVirtualKeyName(wParam);
|
||||
if (str) {
|
||||
control_map[nCtrlID - IDC_EDIT_KEY_TURBO] = wParam;
|
||||
SetWindowTextA(hEdit, str);
|
||||
RECT rc = getRedrawRect(hEdit);
|
||||
InvalidateRect(hDlg, &rc, false);
|
||||
}
|
||||
else
|
||||
MessageBoxA(hDlg, "Not supported!", "controller", MB_OK);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL LoadImageFromResource(CImage *image, HINSTANCE hInstance, LPCTSTR pszResourceName, LPCTSTR lpType)
|
||||
{
|
||||
HRSRC hrsrc = FindResource(hInstance, pszResourceName, lpType);
|
||||
if (!hrsrc)
|
||||
return FALSE;
|
||||
DWORD dwlen = SizeofResource(hInstance, hrsrc);
|
||||
BYTE *lpRsrc = (BYTE*)LoadResource(hInstance, hrsrc);
|
||||
if (!lpRsrc)
|
||||
return FALSE;
|
||||
HGLOBAL hMem = GlobalAlloc(GMEM_FIXED, dwlen);
|
||||
BYTE* pmem = (BYTE*)GlobalLock(hMem);
|
||||
memcpy(pmem, lpRsrc, dwlen);
|
||||
GlobalUnlock(hMem);
|
||||
IStream* pstm;
|
||||
CreateStreamOnHGlobal(hMem, FALSE, &pstm);
|
||||
BOOL bResult = (image->Load(pstm) == S_OK);
|
||||
pstm->Release();
|
||||
GlobalFree(hMem);
|
||||
FreeResource(lpRsrc);
|
||||
return bResult;
|
||||
}
|
||||
|
||||
// Message handler for control box.
|
||||
LRESULT CALLBACK Controls(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
static CImage image;
|
||||
switch (message)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
W32Util::CenterWindow(hDlg);
|
||||
{
|
||||
// TODO: connect to keyboard device instead
|
||||
HWND list = GetDlgItem(hDlg, IDC_LISTCONTROLS);
|
||||
int stops[1] = {80};
|
||||
SendMessage(list, LB_SETTABSTOPS, 1, (LPARAM)stops);
|
||||
for (int i = 0; i < sizeof(controllist)/sizeof(controllist[0]); i++) {
|
||||
SendMessage(list, LB_INSERTSTRING, -1, (LPARAM)controllist[i]);
|
||||
}
|
||||
|
||||
ComboBox_AddString(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), "None");
|
||||
ComboBox_AddString(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), "XInput");
|
||||
ComboBox_AddString(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), "DirectInput");
|
||||
if ((g_Config.iForceInputDevice < 0) || (g_Config.iForceInputDevice > 1))
|
||||
{
|
||||
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), (g_Config.iForceInputDevice + 1));
|
||||
if (image.IsNull())
|
||||
LoadImageFromResource(&image, hInst, MAKEINTRESOURCE(IDB_IMAGE_PSP), "JPG");
|
||||
int key_pad_size = (IDC_EDIT_KEYRIGHT - IDC_EDIT_KEY_TURBO + 1);
|
||||
for (u32 i = 0; i <= IDC_EDIT_KEY_ANALOG_RIGHT - IDC_EDIT_KEY_TURBO; i++) {
|
||||
HWND hEdit = GetDlgItem(hDlg, IDC_EDIT_KEY_TURBO + i);
|
||||
if (IDC_EDIT_KEY_TURBO + i <= IDC_EDIT_KEYRIGHT)
|
||||
control_map[i] = key_pad_map[i * 2];
|
||||
else
|
||||
control_map[i] = analog_ctrl_map[(i - key_pad_size) * 2];
|
||||
SetWindowTextA(hEdit, getVirtualKeyName(control_map[i]));
|
||||
}
|
||||
DWORD dwThreadID = GetWindowThreadProcessId(hDlg,NULL);
|
||||
pKeydownHook = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc, NULL, dwThreadID);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
case WM_PAINT:
|
||||
{
|
||||
case IDOK:
|
||||
g_Config.iForceInputDevice = (ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE)) - 1);
|
||||
EndDialog(hDlg, IDOK);
|
||||
return TRUE;
|
||||
|
||||
case IDCANCEL:
|
||||
EndDialog(hDlg, IDCANCEL);
|
||||
return TRUE;
|
||||
PAINTSTRUCT pst;
|
||||
HDC hdc = BeginPaint(hDlg, &pst);
|
||||
int width = image.GetWidth();
|
||||
int height = image.GetHeight();
|
||||
image.BitBlt(hdc, 0, 0, width, height, 0 , 100);
|
||||
EndPaint(hDlg, &pst);
|
||||
return TRUE;
|
||||
}
|
||||
case WM_CTLCOLORSTATIC:
|
||||
{
|
||||
HDC hdc=(HDC)wParam;
|
||||
SetBkMode(hdc, TRANSPARENT);
|
||||
return (LRESULT)GetStockObject(NULL_BRUSH);
|
||||
}
|
||||
case WM_CTLCOLOREDIT:
|
||||
{
|
||||
HDC hdc = (HDC)wParam;
|
||||
SetBkMode(hdc, TRANSPARENT);
|
||||
SetTextColor(hdc, RGB(255, 0, 0));
|
||||
HWND hEdit = (HWND)lParam;
|
||||
RECT rc = getRedrawRect(hEdit);
|
||||
RECT clientrc;
|
||||
GetClientRect(hEdit, &clientrc);
|
||||
image.BitBlt(hdc, 0, 0, rc.right - rc.left, rc.bottom - rc.top, rc.left, rc.top + 100);
|
||||
char str[11];
|
||||
clientrc.left += 1;
|
||||
clientrc.right += 1;
|
||||
clientrc.top += 1;
|
||||
clientrc.bottom += 1;
|
||||
GetWindowTextA(hEdit, str, 10);
|
||||
DrawTextA(hdc, str, strlen(str), &clientrc, DT_CENTER|DT_SINGLELINE);
|
||||
return (LRESULT)GetStockObject(NULL_BRUSH);
|
||||
}
|
||||
case WM_COMMAND:
|
||||
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
|
||||
{
|
||||
if (LOWORD(wParam) == IDOK) {
|
||||
int key_pad_size = (IDC_EDIT_KEYRIGHT - IDC_EDIT_KEY_TURBO + 1);
|
||||
for (u32 i = 0; i <= IDC_EDIT_KEY_ANALOG_RIGHT - IDC_EDIT_KEY_TURBO; i++) {
|
||||
if (IDC_EDIT_KEY_TURBO + i <= IDC_EDIT_KEYRIGHT)
|
||||
key_pad_map[i * 2] = control_map[i];
|
||||
else
|
||||
analog_ctrl_map[(i - key_pad_size) * 2] = control_map[i];
|
||||
}
|
||||
saveControlsToFile();
|
||||
}
|
||||
UnhookWindowsHookEx(pKeydownHook);
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -94,6 +94,33 @@ BEGIN
|
|||
CONTROL "",IDC_TABDATATYPE,"SysTabControl32",TCS_BUTTONS,0,1,205,15
|
||||
END
|
||||
|
||||
IDD_CONTROLS DIALOGEX 0, 0, 443, 234
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Controls"
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,176,217,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,230,217,50,14
|
||||
LTEXT "Xbox 360 controllers are supported! Just plug one in and use it!",IDC_STATIC,14,6,201,8
|
||||
LTEXT "Turbo Mode:",IDC_STATIC,339,203,42,8
|
||||
EDITTEXT IDC_EDIT_KEYUP,52,73,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEYLEFT,30,91,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEYRIGHT,72,91,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEYDOWN,52,112,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_TRIANGLE,362,67,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_RECTANGLE,339,91,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_CIRCLE,386,91,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_CROSS,364,114,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_LEFT_THUMB,49,26,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_RIGHT_THUMB,361,25,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_SELECT,289,161,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_START,323,161,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_ANALOG_UP,54,130,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_ANALOG_LEFT,38,145,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_ANALOG_RIGHT,71,145,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_ANALOG_DOWN,54,159,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_KEY_TURBO,382,200,33,14,ES_CENTER | ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -143,6 +170,12 @@ BEGIN
|
|||
RIGHTMARGIN, 247
|
||||
BOTTOMMARGIN, 413
|
||||
END
|
||||
|
||||
IDD_CONTROLS, DIALOG
|
||||
BEGIN
|
||||
MOCKUP, 1, 100, 0, -100, ".\psp.jpg"
|
||||
RIGHTMARGIN, 440
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
@ -158,44 +191,6 @@ IDI_PPSSPP ICON "ppsspp.ico"
|
|||
IDI_STOP ICON "icon1.ico"
|
||||
IDI_STOPDISABLE ICON "stop1.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_CONTROLS DIALOGEX 0, 0, 287, 238
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Controls"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,176,217,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,230,217,50,14
|
||||
LTEXT "NOTE: Currently controls are NOT configurable.\nHowever: Xbox 360 controllers are supported! Just plug one in and use it!",IDC_STATIC,7,7,188,30
|
||||
LISTBOX IDC_LISTCONTROLS,7,39,273,176,LBS_SORT | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Force device:",IDC_STATIC,10,220,45,11
|
||||
COMBOBOX IDC_FORCE_INPUT_DEVICE,59,219,84,140,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_CONTROLS, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 280
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 231
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
|
@ -353,6 +348,12 @@ END
|
|||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// JPG
|
||||
//
|
||||
|
||||
IDB_IMAGE_PSP JPG "psp.jpg"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
|
BIN
Windows/psp.jpg
Normal file
BIN
Windows/psp.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
|
@ -224,6 +224,24 @@
|
|||
#define ID_FILE_LOAD_MEMSTICK 40143
|
||||
#define ID_EMULATION_SOUND 40144
|
||||
#define ID_OPTIONS_MIPMAP 40145
|
||||
#define IDB_IMAGE_PSP 40146
|
||||
#define IDC_EDIT_KEY_TURBO 40147
|
||||
#define IDC_EDIT_KEY_START 40148
|
||||
#define IDC_EDIT_KEY_SELECT 40149
|
||||
#define IDC_EDIT_KEY_RECTANGLE 40150
|
||||
#define IDC_EDIT_KEY_TRIANGLE 40151
|
||||
#define IDC_EDIT_KEY_CIRCLE 40152
|
||||
#define IDC_EDIT_KEY_CROSS 40153
|
||||
#define IDC_EDIT_KEY_LEFT_THUMB 40154
|
||||
#define IDC_EDIT_KEY_RIGHT_THUMB 40155
|
||||
#define IDC_EDIT_KEYUP 40156
|
||||
#define IDC_EDIT_KEYDOWN 40157
|
||||
#define IDC_EDIT_KEYLEFT 40158
|
||||
#define IDC_EDIT_KEYRIGHT 40159
|
||||
#define IDC_EDIT_KEY_ANALOG_UP 40160
|
||||
#define IDC_EDIT_KEY_ANALOG_DOWN 40161
|
||||
#define IDC_EDIT_KEY_ANALOG_LEFT 40162
|
||||
#define IDC_EDIT_KEY_ANALOG_RIGHT 40163
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
|
|
Loading…
Add table
Reference in a new issue