diff --git a/desmume/src/windows/DeSmuME_2005.vcproj b/desmume/src/windows/DeSmuME_2005.vcproj index d9270d545..433496934 100644 --- a/desmume/src/windows/DeSmuME_2005.vcproj +++ b/desmume/src/windows/DeSmuME_2005.vcproj @@ -886,6 +886,10 @@ RelativePath="..\bios.h" > + + diff --git a/desmume/src/windows/DeSmuME_2008.vcproj b/desmume/src/windows/DeSmuME_2008.vcproj index 5878cf7bb..679acf021 100644 --- a/desmume/src/windows/DeSmuME_2008.vcproj +++ b/desmume/src/windows/DeSmuME_2008.vcproj @@ -1,7 +1,7 @@ + + diff --git a/desmume/src/windows/inputdx.cpp b/desmume/src/windows/inputdx.cpp index a98a855ec..c5f036fb3 100644 --- a/desmume/src/windows/inputdx.cpp +++ b/desmume/src/windows/inputdx.cpp @@ -609,7 +609,7 @@ void S9xUpdateJoyState() else { CheckAxis_game(JoyStatus.lX,-10000,10000,Joystick[0].Left,Joystick[0].Right); - CheckAxis_game(JoyStatus.lY,-10000,10000,Joystick[0].Down,Joystick[0].Up); + CheckAxis_game(JoyStatus.lY,-10000,10000,Joystick[0].Up,Joystick[0].Down); switch (JoyStatus.rgdwPOV[0]) { @@ -1127,7 +1127,7 @@ COLORREF CheckHotKey( WORD Key, int modifiers) return white; } -void InitInputCustomControl() +static void InitCustomControls() { WNDCLASSEX wc; @@ -1148,12 +1148,6 @@ void InitInputCustomControl() RegisterClassEx(&wc); -} -void InitKeyCustomControl() -{ - - WNDCLASSEX wc; - wc.cbSize = sizeof(wc); wc.lpszClassName = szHotkeysClassName; wc.hInstance = GetModuleHandle(0); @@ -1171,22 +1165,7 @@ void InitKeyCustomControl() RegisterClassEx(&wc); } -//HWND CreateInputCustom(HWND hwndParent) -//{ -// HWND hwndCtrl; -// -// hwndCtrl = CreateWindowEx( -// WS_EX_CLIENTEDGE, // give it a standard border -// szClassName, -// _T("A custom control"), -// WS_VISIBLE | WS_CHILD, -// 0, 0, 100, 100, -// hwndParent, -// NULL, GetModuleHandle(0), NULL -// ); -// -// return hwndCtrl; -//} + InputCust * GetInputCustom(HWND hwnd) { return (InputCust *)GetWindowLong(hwnd, 0); @@ -1759,7 +1738,6 @@ INT_PTR CALLBACK DlgInputConfig(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lPara //HBRUSH g_hbrBackground; - InitInputCustomControl(); switch(msg) { case WM_INITDIALOG: @@ -2197,37 +2175,21 @@ void S9xWinScanJoypads () //#endif } -//void NDS_inputInit() -//{ -// int i; -// memset(keyPad, 0, sizeof(keyPad)); -// -// for (i=0; i < MAXKEYPAD; i++) -// { -// char buf[64]; -// memset(buf, 0, sizeof(buf)); -// wsprintf(buf,"Key_%s", keyPadNames[i]); -// keyPad[i] = GetPrivateProfileInt("NDS_Input",buf,keyPadDefs[i], IniName); -// if (keyPad[i]>255) -// { -// if (!input->JoystickEnabled()) -// { -// keyPad[i] = keyPadDefs[i]; -// } -// } -// } -// -// FeedbackON = NDS_inputFeedback; -//} - void input_feedback(BOOL enable) { - //input->JoystickFeedback(enable); + if (!Feedback) return; + if (!pEffect) return; + + if (enable) + pEffect->Start(2, 0); + else + pEffect->Stop(); } void input_init() { + InitCustomControls(); di_init(); FeedbackON = input_feedback; } @@ -2259,10 +2221,14 @@ void input_process() void RunInputConfig() { - DialogBox(hAppInst, MAKEINTRESOURCE(IDD_INPUTCONFIG), MainWindow->getHWnd(), DlgInputConfig); } +void RunHotkeyConfig() +{ + DialogBox(hAppInst, MAKEINTRESOURCE(IDD_KEYCUSTOM), MainWindow->getHWnd(), DlgInputConfig); +} + /********************************************************************************** Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index adf18de07..21a6ee872 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -1144,8 +1144,6 @@ int WINAPI WinMain (HINSTANCE hThisInstance, } InitializeCriticalSection(&win_sync); - InitInputCustomControl(); - InitKeyCustomControl(); #ifdef GDB_STUB gdbstub_handle_t arm9_gdb_stub; @@ -1689,6 +1687,131 @@ void OpenRecentROM(int listNum) NDS_UnPause(); } +LRESULT OpenFile() +{ + HWND hwnd = MainWindow->getHWnd(); + + int filterSize = 0, i = 0; + OPENFILENAME ofn; + char filename[MAX_PATH] = "", + fileFilter[512]=""; + NDS_Pause(); //Stop emulation while opening new rom + + ZeroMemory(&ofn, sizeof(ofn)); + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwnd; + + // To avoid #ifdef hell, we'll do a little trick, as lpstrFilter + // needs 0 terminated string, and standard string library, of course, + // can't help us with string creation: just put a '|' were a string end + // should be, and later transform prior assigning to the OPENFILENAME structure + strncpy (fileFilter, "NDS ROM file (*.nds)|*.nds|NDS/GBA ROM File (*.ds.gba)|*.ds.gba|",512); +#ifdef HAVE_LIBZZIP + strncpy (fileFilter, "All Usable Files (*.nds, *.ds.gba, *.zip, *.gz)|*.nds;*.ds.gba;*.zip;*.gz|",512); +#endif + +#ifdef HAVE_LIBZZIP + strncat (fileFilter, "Zipped NDS ROM file (*.zip)|*.zip|",512 - strlen(fileFilter)); +#endif +#ifdef HAVE_LIBZ + strncat (fileFilter, "GZipped NDS ROM file (*.gz)|*.gz|",512 - strlen(fileFilter)); +#endif + strncat (fileFilter, "Any file (*.*)|*.*||",512 - strlen(fileFilter)); + + filterSize = strlen(fileFilter); + for (i = 0; i < filterSize; i++) + { + if (fileFilter[i] == '|') fileFilter[i] = '\0'; + } + ofn.lpstrFilter = fileFilter; + ofn.nFilterIndex = 1; + ofn.lpstrFile = filename; + ofn.nMaxFile = MAX_PATH; + ofn.lpstrDefExt = "nds"; + ofn.Flags = OFN_NOCHANGEDIR; + + if(!GetOpenFileName(&ofn)) + { + if (romloaded) + NDS_UnPause(); //Restart emulation if no new rom chosen + return 0; + } + + //LOG("%s\r\n", filename); +#ifdef EXPERIMENTAL_GBASLOT + if(LoadROM(filename)) +#else + if(LoadROM(filename, bad_glob_cflash_disk_image_file)) +#endif + { + EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_CHEATS_LIST, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_CHEATS_SEARCH, MF_ENABLED); + romloaded = TRUE; + NDS_UnPause(); + } + + return 0; +} + +//TODO - async key state? for real? +int GetModifiers(int key) +{ + int modifiers = 0; + + if (key == VK_MENU || key == VK_CONTROL || key == VK_SHIFT) + return 0; + + if(GetAsyncKeyState(VK_MENU )) modifiers |= CUSTKEY_ALT_MASK; + if(GetAsyncKeyState(VK_CONTROL)) modifiers |= CUSTKEY_CTRL_MASK; + if(GetAsyncKeyState(VK_SHIFT )) modifiers |= CUSTKEY_SHIFT_MASK; + return modifiers; +} + +int HandleKeyMessage(WPARAM wParam, LPARAM lParam, int modifiers) +{ + //some crap from snes9x I dont understand with toggles and macros... + + bool hitHotKey = false; + + if((wParam == 0 || wParam == VK_ESCAPE)) // if it's the 'disabled' key, it's never pressed as a hotkey + return 0; + + return 0; +} + +void RunConfig(int num) +{ + HWND hwnd = MainWindow->getHWnd(); + bool tpaused=false; + if (execute) + { + tpaused=true; + NDS_Pause(); + } + + switch(num) { + case 0: + void RunInputConfig(); + RunInputConfig(); + break; + case 1: + /*void RunHotkeyConfig(); + RunHotkeyConfig();*/ + break; + case 2: + DialogBox(hAppInst,MAKEINTRESOURCE(IDD_FIRMSETTINGS), hwnd, (DLGPROC) FirmConfig_Proc); + break; + } + + if (tpaused) + NDS_UnPause(); +} + //======================================================================================== LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { @@ -1877,72 +2000,7 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM return 0; case ACCEL_CTRL_O: case IDM_OPEN: - { - int filterSize = 0, i = 0; - OPENFILENAME ofn; - char filename[MAX_PATH] = "", - fileFilter[512]=""; - NDS_Pause(); //Stop emulation while opening new rom - - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwnd; - - // To avoid #ifdef hell, we'll do a little trick, as lpstrFilter - // needs 0 terminated string, and standard string library, of course, - // can't help us with string creation: just put a '|' were a string end - // should be, and later transform prior assigning to the OPENFILENAME structure - strncpy (fileFilter, "NDS ROM file (*.nds)|*.nds|NDS/GBA ROM File (*.ds.gba)|*.ds.gba|",512); -#ifdef HAVE_LIBZZIP - strncpy (fileFilter, "All Usable Files (*.nds, *.ds.gba, *.zip, *.gz)|*.nds;*.ds.gba;*.zip;*.gz|",512); -#endif - -#ifdef HAVE_LIBZZIP - strncat (fileFilter, "Zipped NDS ROM file (*.zip)|*.zip|",512 - strlen(fileFilter)); -#endif -#ifdef HAVE_LIBZ - strncat (fileFilter, "GZipped NDS ROM file (*.gz)|*.gz|",512 - strlen(fileFilter)); -#endif - strncat (fileFilter, "Any file (*.*)|*.*||",512 - strlen(fileFilter)); - - filterSize = strlen(fileFilter); - for (i = 0; i < filterSize; i++) - { - if (fileFilter[i] == '|') fileFilter[i] = '\0'; - } - ofn.lpstrFilter = fileFilter; - ofn.nFilterIndex = 1; - ofn.lpstrFile = filename; - ofn.nMaxFile = MAX_PATH; - ofn.lpstrDefExt = "nds"; - ofn.Flags = OFN_NOCHANGEDIR; - - if(!GetOpenFileName(&ofn)) - { - if (romloaded) - NDS_UnPause(); //Restart emulation if no new rom chosen - return 0; - } - - //LOG("%s\r\n", filename); -#ifdef EXPERIMENTAL_GBASLOT - if(LoadROM(filename)) -#else - if(LoadROM(filename, bad_glob_cflash_disk_image_file)) -#endif - { - EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); - EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); - EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); - EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); - EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); - EnableMenuItem(mainMenu, IDM_CHEATS_LIST, MF_ENABLED); - EnableMenuItem(mainMenu, IDM_CHEATS_SEARCH, MF_ENABLED); - romloaded = TRUE; - NDS_UnPause(); - } - } - return 0; + return OpenFile(); case IDM_PRINTSCREEN: { OPENFILENAME ofn; @@ -2418,35 +2476,17 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM if(tpaused) NDS_UnPause(); } return 0; - case IDM_CONFIG: - { - bool tpaused=false; - if (execute) - { - tpaused=true; - NDS_Pause(); - } - //InputConfig(hwnd); - void RunInputConfig(); - RunInputConfig(); - if (tpaused) - NDS_UnPause(); - } - return 0; + + case IDM_CONFIG: + RunConfig(0); + return 0; + case IDM_HOTKEY_CONFIG: + RunConfig(1); + return 0; case IDM_FIRMSETTINGS: - { - bool tpaused=false; - if (execute) - { - tpaused=true; - NDS_Pause(); - } - DialogBox(hAppInst,MAKEINTRESOURCE(IDD_FIRMSETTINGS), hwnd, (DLGPROC) FirmConfig_Proc); - if (tpaused) - NDS_UnPause(); - - return 0; - } + RunConfig(2); + return 0; + case IDC_FRAMESKIPAUTO: case IDC_FRAMESKIP0: case IDC_FRAMESKIP1: @@ -2604,6 +2644,14 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM WritePrivateProfileInt("Video", "Window height", (rc.bottom - rc.top), IniName); } break; + + case WM_SYSKEYDOWN: + { + int modifiers = GetModifiers(wParam); + if(!HandleKeyMessage(wParam,lParam, modifiers)) + return 0; + break; + } case IDM_DEFSIZE: { diff --git a/desmume/src/windows/resource.h b/desmume/src/windows/resource.h index df198ee9d..d56c54f80 100644 --- a/desmume/src/windows/resource.h +++ b/desmume/src/windows/resource.h @@ -450,3 +450,83 @@ #define IDC_AUTO_UPDATE2 111 #define IDC_VISIBLE 1019 #define IDM_ABOUT 40003 +#define IDC_LABEL_HK1 60001 +#define IDC_LABEL_HK4 60002 +#define IDC_LABEL_HK2 60003 +#define IDC_LABEL_HK3 60004 +#define IDC_LABEL_HK6 60005 +#define IDC_LABEL_HK11 60006 +#define IDC_LABEL_HK8 60007 +#define IDC_LABEL_HK12 60008 +#define IDC_LABEL_HK9 60009 +#define IDC_LABEL_HK7 60010 +#define IDC_HOTKEY1 60011 +#define IDC_HOTKEY2 60012 +#define IDC_HOTKEY3 60013 +#define IDC_HOTKEY4 60014 +#define IDC_HOTKEY5 60015 +#define IDC_HOTKEY6 60016 +#define IDC_HOTKEY7 60017 +#define IDC_HOTKEY8 60018 +#define IDC_HOTKEY9 60019 +#define IDC_HOTKEY10 60020 +#define IDC_HOTKEY11 60021 +#define IDC_HOTKEY12 60022 +#define IDC_HOTKEY13 60023 +#define IDC_SAVE1 60024 +#define IDC_LABEL_UP1 60025 +#define IDC_SAVE2 60026 +#define IDC_LABEL_UP2 60027 +#define IDC_SAVE3 60028 +#define IDC_LABEL_UP3 60029 +#define IDC_SAVE4 60030 +#define IDC_LABEL_UP4 60031 +#define IDC_SAVE5 60032 +#define IDC_LABEL_UP5 60033 +#define IDC_SAVE6 60034 +#define IDC_LABEL_UP6 60035 +#define IDC_SAVE7 60036 +#define IDC_LABEL_UP7 60037 +#define IDC_SAVE8 60038 +#define IDC_LABEL_UP8 60039 +#define IDC_SAVE9 60040 +#define IDC_LABEL_UP9 60041 +#define IDC_SAVE10 60042 +#define IDC_LABEL_UP10 60043 +#define IDC_SAVE11 60044 +#define IDC_LABEL_UP11 60045 +#define IDC_SAVE12 60046 +#define IDC_LABEL_UP12 60047 +#define IDC_SAVE13 60048 +#define IDC_LABEL_UP13 60049 +#define IDC_SAVE14 60050 +#define IDC_LABEL_UP14 60051 +#define IDC_SAVE15 60052 +#define IDC_LABEL_UP15 60053 +#define IDC_SAVE16 60054 +#define IDC_LABEL_UP16 60055 +#define IDC_SAVE17 60056 +#define IDC_LABEL_UP17 60057 +#define IDC_SAVE18 60058 +#define IDC_LABEL_UP18 60059 +#define IDC_SAVE19 60060 +#define IDC_LABEL_UP19 60061 +#define IDC_SAVE20 60062 +#define IDC_LABEL_UP20 60063 +#define IDC_SAVE21 60064 +#define IDC_LABEL_UP21 60065 +#define IDC_LABEL_HK5 60066 +#define IDC_LABEL_HK10 60067 +#define IDC_LABEL_HK13 60068 +#define IDC_LABEL_UP22 60069 +#define IDC_SLOTMINUS 60070 +#define IDC_LABEL_UP23 60071 +#define IDC_SLOTPLUS 60072 +#define IDC_LABEL_UP24 60073 +#define IDC_SLOTSAVE 60074 +#define IDC_LABEL_UP25 60075 +#define IDC_SLOTLOAD 60076 +#define IDC_HKCOMBO 60077 +#define IDD_KEYCUSTOM 60078 +#define IDM_HOTKEY_CONFIG 60079 + diff --git a/desmume/src/windows/resources.rc b/desmume/src/windows/resources.rc index d47d86fac..d75f5d4e5 100644 --- a/desmume/src/windows/resources.rc +++ b/desmume/src/windows/resources.rc @@ -120,6 +120,7 @@ BEGIN END MENUITEM "3D settings", IDM_3DCONFIG MENUITEM "Indput Indstillinger", IDM_CONFIG + MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG MENUITEM "Lyd Indstillinger", IDM_SOUNDSETTINGS MENUITEM "Firmware Indstillinger", IDM_FIRMSETTINGS POPUP "&Frame Skip" @@ -274,6 +275,7 @@ BEGIN END MENUITEM "3D Settings", IDM_3DCONFIG MENUITEM "Control Config", IDM_CONFIG + MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG MENUITEM "Sound Settings", IDM_SOUNDSETTINGS MENUITEM "Firmware Settings", IDM_FIRMSETTINGS POPUP "&Frame Skip" @@ -428,6 +430,7 @@ BEGIN END MENUITEM "Config. 3D", IDM_3DCONFIG MENUITEM "Config. des contrôles", IDM_CONFIG + MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG MENUITEM "Config. du son", IDM_SOUNDSETTINGS MENUITEM "Config. du firmware", IDM_FIRMSETTINGS POPUP "&Frame Skip" @@ -767,81 +770,6 @@ BEGIN END - -LANGUAGE LANG_DANISH, SUBLANG_DANISH_DENMARK -IDD_CONFIG DIALOGEX 0, 0, 125, 227 -STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU -CAPTION "Konfigurer Input" -FONT 8, "MS Sans Serif", 0, 0, 1 -BEGIN - DEFPUSHBUTTON "OK", IDC_FERMER, 67, 208, 50, 14, BS_DEFPUSHBUTTON - PUSHBUTTON "Standard", IDC_BUTTON1, 7, 208, 50, 14, BS_PUSHBUTTON - COMBOBOX IDC_COMBO1, 46, 13, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Op:", IDC_STATIC, 17, 14, 27, 10, SS_LEFT - COMBOBOX IDC_COMBO4, 46, 29, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Ned:", IDC_STATIC, 17, 31, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO2, 46, 45, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Venstre:", IDC_STATIC, 17, 47, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO3, 46, 61, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Højre:", IDC_STATIC, 17, 63, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO7, 46, 77, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "A:", IDC_STATIC, 18, 78, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO8, 46, 92, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "B:", IDC_STATIC, 17, 94, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO10, 46, 108, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "L:", IDC_STATIC, 17, 110, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO11, 46, 124, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "R:", IDC_STATIC, 17, 126, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO6, 46, 140, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "X:", IDC_STATIC, 17, 142, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO5, 46, 156, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Y:", IDC_STATIC, 17, 158, 28, 9, SS_LEFT - GROUPBOX "", IDC_STATIC, 7, 3, 111, 203 - COMBOBOX IDC_COMBO9, 46, 172, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Start:", IDC_STATIC, 17, 174, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO12, 46, 188, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Select:", IDC_STATIC, 17, 190, 28, 9, SS_LEFT -END - - - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -IDD_CONFIG DIALOGEX 0, 0, 125, 227 -STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU -CAPTION "Configure Keys" -FONT 8, "MS Sans Serif", 0, 0, 1 -BEGIN - DEFPUSHBUTTON "OK", IDC_FERMER, 67, 208, 50, 14, BS_DEFPUSHBUTTON - PUSHBUTTON "Default", IDC_BUTTON1, 7, 208, 50, 14, BS_PUSHBUTTON - COMBOBOX IDC_COMBO1, 46, 13, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Up:", IDC_STATIC, 17, 14, 27, 10, SS_LEFT - COMBOBOX IDC_COMBO4, 46, 29, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Down:", IDC_STATIC, 17, 31, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO2, 46, 45, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Left:", IDC_STATIC, 17, 47, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO3, 46, 61, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Right:", IDC_STATIC, 17, 63, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO7, 46, 77, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "A:", IDC_STATIC, 18, 78, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO8, 46, 92, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "B:", IDC_STATIC, 17, 94, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO10, 46, 108, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "L:", IDC_STATIC, 17, 110, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO11, 46, 124, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "R:", IDC_STATIC, 17, 126, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO6, 46, 140, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "X:", IDC_STATIC, 17, 142, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO5, 46, 156, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Y:", IDC_STATIC, 17, 158, 28, 9, SS_LEFT - GROUPBOX "", IDC_STATIC, 7, 3, 111, 203 - COMBOBOX IDC_COMBO9, 46, 172, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Start:", IDC_STATIC, 17, 174, 28, 9, SS_LEFT - COMBOBOX IDC_COMBO12, 46, 188, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST - LTEXT "Select:", IDC_STATIC, 17, 190, 28, 9, SS_LEFT -END - - - LANGUAGE LANG_DANISH, SUBLANG_DANISH_DENMARK IDD_DESASSEMBLEUR_VIEWER7 DIALOGEX 0, 0, 380, 186 STYLE DS_CENTER | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME @@ -2319,6 +2247,90 @@ BEGIN CONTROL " ",IDC_DEBUG,"InputCustom",WS_DISABLED | WS_TABSTOP,163,120,71,12,WS_EX_CLIENTEDGE END +IDD_KEYCUSTOM DIALOGEX 0, 0, 349, 203 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION +CAPTION "Customize Special Keys" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + PUSHBUTTON "Cancel",IDCANCEL,66,182,50,14 + PUSHBUTTON "OK",IDOK,16,182,50,14 + RTEXT "speed +",IDC_LABEL_HK1,4,8,58,8 + RTEXT "frame advance",IDC_LABEL_HK4,2,47,59,8 + RTEXT "speed -",IDC_LABEL_HK2,3,21,59,8 + RTEXT "pause",IDC_LABEL_HK3,2,34,60,8 + RTEXT "skip +",IDC_LABEL_HK6,2,74,60,8 + RTEXT "movie frame count",IDC_LABEL_HK11,0,138,62,8 + RTEXT "superscope turbo",IDC_LABEL_HK8,0,98,62,8 + RTEXT "movie read-only",IDC_LABEL_HK12,3,150,59,8 + RTEXT "superscope pause",IDC_LABEL_HK9,2,111,60,8 + RTEXT "skip -",IDC_LABEL_HK7,3,85,59,8 + CONTROL "",IDC_HOTKEY1,"InputCustomHot",WS_TABSTOP,66,5,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY2,"InputCustomHot",WS_TABSTOP,66,18,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY3,"InputCustomHot",WS_TABSTOP,66,31,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY4,"InputCustomHot",WS_TABSTOP,66,45,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY5,"InputCustomHot",WS_TABSTOP,66,58,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY6,"InputCustomHot",WS_TABSTOP,66,70,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY7,"InputCustomHot",WS_TABSTOP,66,83,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY8,"InputCustomHot",WS_TABSTOP,66,96,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY9,"InputCustomHot",WS_TABSTOP,66,109,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY10,"InputCustomHot",WS_TABSTOP,66,122,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY11,"InputCustomHot",WS_TABSTOP,66,135,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY12,"InputCustomHot",WS_TABSTOP,66,149,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_HOTKEY13,"InputCustomHot",WS_TABSTOP,66,162,98,12,WS_EX_CLIENTEDGE + CONTROL "",IDC_SAVE1,"InputCustomHot",WS_TABSTOP,192,5,60,12,WS_EX_CLIENTEDGE + RTEXT "save1",IDC_LABEL_UP2,170,21,20,8 + CONTROL "",IDC_SAVE2,"InputCustomHot",WS_TABSTOP,192,18,60,12,WS_EX_CLIENTEDGE + RTEXT "save2",IDC_LABEL_UP3,170,34,20,8 + CONTROL "",IDC_SAVE3,"InputCustomHot",WS_TABSTOP,192,31,60,12,WS_EX_CLIENTEDGE + RTEXT "save3",IDC_LABEL_UP4,170,47,20,8 + CONTROL "",IDC_SAVE4,"InputCustomHot",WS_TABSTOP,192,45,60,12,WS_EX_CLIENTEDGE + RTEXT "save4",IDC_LABEL_UP5,170,58,20,8 + CONTROL "",IDC_SAVE5,"InputCustomHot",WS_TABSTOP,192,58,60,12,WS_EX_CLIENTEDGE + RTEXT "save5",IDC_LABEL_UP6,170,72,20,8 + CONTROL "",IDC_SAVE6,"InputCustomHot",WS_TABSTOP,192,71,60,12,WS_EX_CLIENTEDGE + RTEXT "save6",IDC_LABEL_UP7,170,85,20,8 + CONTROL "",IDC_SAVE7,"InputCustomHot",WS_TABSTOP,192,82,60,12,WS_EX_CLIENTEDGE + RTEXT "save7",IDC_LABEL_UP8,170,98,20,8 + CONTROL "",IDC_SAVE8,"InputCustomHot",WS_TABSTOP,192,96,60,12,WS_EX_CLIENTEDGE + RTEXT "save8",IDC_LABEL_UP9,170,112,20,8 + CONTROL "",IDC_SAVE9,"InputCustomHot",WS_TABSTOP,192,109,60,12,WS_EX_CLIENTEDGE + RTEXT "save9",IDC_LABEL_UP10,170,125,20,8 + CONTROL "",IDC_SAVE10,"InputCustomHot",WS_TABSTOP,192,122,60,12,WS_EX_CLIENTEDGE + RTEXT "save0",IDC_LABEL_UP11,170,8,20,8 + CONTROL "",IDC_SAVE11,"InputCustomHot",WS_TABSTOP,279,5,60,12,WS_EX_CLIENTEDGE + RTEXT "load1",IDC_LABEL_UP12,257,21,20,8 + CONTROL "",IDC_SAVE12,"InputCustomHot",WS_TABSTOP,279,18,60,12,WS_EX_CLIENTEDGE + RTEXT "load2",IDC_LABEL_UP13,257,34,20,8 + CONTROL "",IDC_SAVE13,"InputCustomHot",WS_TABSTOP,279,31,60,12,WS_EX_CLIENTEDGE + RTEXT "load3",IDC_LABEL_UP14,257,48,20,8 + CONTROL "",IDC_SAVE14,"InputCustomHot",WS_TABSTOP,279,45,60,12,WS_EX_CLIENTEDGE + RTEXT "load4",IDC_LABEL_UP15,257,61,20,8 + CONTROL "",IDC_SAVE15,"InputCustomHot",WS_TABSTOP,279,58,60,12,WS_EX_CLIENTEDGE + RTEXT "load5",IDC_LABEL_UP16,257,72,20,8 + CONTROL "",IDC_SAVE16,"InputCustomHot",WS_TABSTOP,279,71,60,12,WS_EX_CLIENTEDGE + RTEXT "load6",IDC_LABEL_UP17,257,85,20,8 + CONTROL "",IDC_SAVE17,"InputCustomHot",WS_TABSTOP,279,82,60,12,WS_EX_CLIENTEDGE + RTEXT "load7",IDC_LABEL_UP18,257,98,20,8 + CONTROL "",IDC_SAVE18,"InputCustomHot",WS_TABSTOP,279,96,60,12,WS_EX_CLIENTEDGE + RTEXT "load8",IDC_LABEL_UP19,257,111,20,8 + CONTROL "",IDC_SAVE19,"InputCustomHot",WS_TABSTOP,279,109,60,12,WS_EX_CLIENTEDGE + RTEXT "load9",IDC_LABEL_UP20,257,125,20,8 + CONTROL "",IDC_SAVE20,"InputCustomHot",WS_TABSTOP,279,122,60,12,WS_EX_CLIENTEDGE + RTEXT "load0",IDC_LABEL_UP21,257,8,20,8 + RTEXT "fast forward",IDC_LABEL_HK5,3,61,58,8 + RTEXT "show pressed keys",IDC_LABEL_HK10,1,125,61,8 + RTEXT "save screenshot",IDC_LABEL_HK13,3,163,59,8 + RTEXT "slot-",IDC_LABEL_UP22,170,138,20,8 + CONTROL "",IDC_SLOTMINUS,"InputCustomHot",WS_TABSTOP,192,135,60,12,WS_EX_CLIENTEDGE + RTEXT "slot+",IDC_LABEL_UP23,257,138,20,8 + CONTROL "",IDC_SLOTPLUS,"InputCustomHot",WS_TABSTOP,279,135,60,12,WS_EX_CLIENTEDGE + RTEXT "save#",IDC_LABEL_UP24,166,151,23,8 + CONTROL "",IDC_SLOTSAVE,"InputCustomHot",WS_TABSTOP,192,149,60,12,WS_EX_CLIENTEDGE + RTEXT "load#",IDC_LABEL_UP25,253,151,23,8 + CONTROL "",IDC_SLOTLOAD,"InputCustomHot",WS_TABSTOP,279,149,60,12,WS_EX_CLIENTEDGE + LTEXT "Blue means the hotkey is already mapped.\nPink means it conflicts with a game button.\nRed means it's reserved by Windows.\nA hotkey can be disabled using Escape.",IDC_LABEL_BLUE,208,164,136,32 + COMBOBOX IDC_HKCOMBO,134,183,60,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP +END // // Accelerator resources