diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 59a679152..af3af1574 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -166,9 +166,11 @@ void EmuScreen::sendMessage(const char *message, const char *value) { bootGame(value); } else if (!strcmp(message, "control mapping")) { + globalUIState = UISTATE_MENU; screenManager()->push(new ControlMappingScreen()); } else if (!strcmp(message, "settings")) { + globalUIState = UISTATE_MENU; screenManager()->push(new GameSettingsScreen(gamePath_)); } } diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 42342422a..ea9ea13ad 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -44,7 +44,6 @@ namespace MainWindow { enum { WM_USER_LOG_STATUS_CHANGED = WM_USER + 101, - WM_USER_ATRAC_STATUS_CHANGED = WM_USER + 102, }; extern HWND hwndMain; } diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index 8b6b37bb3..833a0ba74 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -559,9 +559,11 @@ void MainScreen::sendMessage(const char *message, const char *value) { screenManager()->RecreateAllViews(); } if (!strcmp(message, "control mapping")) { + globalUIState = UISTATE_MENU; screenManager()->push(new ControlMappingScreen()); } if (!strcmp(message, "settings")) { + globalUIState = UISTATE_MENU; screenManager()->push(new GameSettingsScreen("")); } } diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index e561a2748..c84845f2e 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -433,16 +433,28 @@ namespace MainWindow langMenuCreated = true; } - void TranslateMenuItembyText(const int menuID, const char *menuText, const char *category="", const bool enabled = true, const bool checked = false, const std::wstring& accelerator = L"") { + void _TranslateMenuItem(const int menuID, const char *text, const char *category, const std::wstring& accelerator = L"") { I18NCategory *c = GetI18NCategory(category); - std::string key = c->T(menuText); + + std::string key = c->T(text); std::wstring translated = ConvertUTF8ToWString(key); translated.append(accelerator); - ModifyMenu(menu, menuID, MF_STRING - | (enabled? MF_ENABLED : MF_GRAYED) - | (checked? MF_CHECKED : MF_UNCHECKED), - menuID, translated.c_str()); + ModifyMenu(menu, menuID, MF_STRING, menuID, translated.c_str()); + } + + // Replaces TranslateMenuItemByText. Use this for menu items that change text dynamically + // like "Run/Pause". + void TranslateMenuItem(const int menuID, const char *category, const char *menuText, const std::wstring& accelerator = L"") { + if(menuText == nullptr || !strcmp(menuText, "")) + _TranslateMenuItem(menuID, GetMenuItemInitialText(menuID).c_str(), category, accelerator); + else + _TranslateMenuItem(menuID, menuText, category, accelerator); + } + + // Use this one for menu items that don't change. + void TranslateMenuItem(const int menuID, const char *category, const std::wstring& accelerator = L"") { + _TranslateMenuItem(menuID, GetMenuItemInitialText(menuID).c_str(), category, accelerator); } void TranslateMenuHeader(HMENU menu, const char *category, const char *key, const MenuID id, const std::wstring& accelerator = L"") { @@ -463,17 +475,6 @@ namespace MainWindow ModifyMenu(subMenu, subMenuID, MF_BYPOSITION | MF_STRING, 0, translated.c_str()); } - void TranslateMenuItem(const int menuID, const char *category, const bool enabled = true, const bool checked = false, const std::wstring& accelerator = L"") { - I18NCategory *c = GetI18NCategory(category); - std::string key = c->T(GetMenuItemInitialText(menuID).c_str()); - std::wstring translated = ConvertUTF8ToWString(key); - translated.append(accelerator); - ModifyMenu(menu, menuID, MF_STRING - | (enabled? MF_ENABLED : MF_GRAYED) - | (checked? MF_CHECKED : MF_UNCHECKED), - menuID, translated.c_str()); - } - void TranslateMenus() { const char *desktopUI = "DesktopUI"; @@ -482,24 +483,20 @@ namespace MainWindow TranslateMenuItem(ID_FILE_LOAD_DIR, desktopUI); TranslateMenuItem(ID_FILE_LOAD_MEMSTICK, desktopUI); TranslateMenuItem(ID_FILE_MEMSTICK, desktopUI); - TranslateMenuItem(ID_FILE_QUICKLOADSTATE, desktopUI, false, false, L"\tF4"); - TranslateMenuItem(ID_FILE_QUICKSAVESTATE, desktopUI, false, false, L"\tF2"); - TranslateMenuItem(ID_FILE_LOADSTATEFILE, desktopUI, false, false); - TranslateMenuItem(ID_FILE_SAVESTATEFILE, desktopUI, false, false); - TranslateMenuItem(ID_FILE_EXIT, desktopUI, true, false, L"\tAlt+F4"); + TranslateMenuItem(ID_FILE_QUICKLOADSTATE, desktopUI, L"\tF4"); + TranslateMenuItem(ID_FILE_QUICKSAVESTATE, desktopUI, L"\tF2"); + TranslateMenuItem(ID_FILE_LOADSTATEFILE, desktopUI); + TranslateMenuItem(ID_FILE_SAVESTATEFILE, desktopUI); + TranslateMenuItem(ID_FILE_EXIT, desktopUI, L"\tAlt+F4"); // Emulation menu - bool isPaused = Core_IsStepping() && globalUIState == UISTATE_INGAME; - TranslateMenuItembyText(ID_TOGGLE_PAUSE, isPaused ? "Run" : "Pause", "DesktopUI", false, false, L"\tF8"); - TranslateMenuItem(ID_EMULATION_STOP, desktopUI, false, false, L"\tCtrl+W"); - TranslateMenuItem(ID_EMULATION_RESET, desktopUI, false, false, L"\tCtrl+B"); + bool isPaused = Core_IsStepping() && (globalUIState == UISTATE_INGAME); + TranslateMenuItem(ID_TOGGLE_PAUSE, desktopUI, isPaused ? "Run" : "Pause", L"\tF8"); + TranslateMenuItem(ID_EMULATION_STOP, desktopUI, L"\tCtrl+W"); + TranslateMenuItem(ID_EMULATION_RESET, desktopUI, L"\tCtrl+B"); TranslateMenuItem(ID_DEBUG_RUNONLOAD, desktopUI); - TranslateMenuItem(ID_EMULATION_SOUND, desktopUI, true, true); - TranslateMenuItem(ID_EMULATION_ATRAC3_SOUND, desktopUI, true, false); - TranslateMenuItem(ID_EMULATION_CHEATS, desktopUI,true, true, L"\tCtrl+T"); - TranslateMenuItem(ID_EMULATION_RENDER_MODE_OGL, desktopUI, true, true); - TranslateMenuItem(ID_EMULATION_RENDER_MODE_SOFT, desktopUI); - TranslateMenuItem(ID_CPU_DYNAREC, desktopUI); + TranslateMenuItem(ID_EMULATION_SOUND, desktopUI); + TranslateMenuItem(ID_EMULATION_CHEATS, desktopUI, L"\tCtrl+T"); TranslateMenuItem(ID_CPU_MULTITHREADED, desktopUI); TranslateMenuItem(ID_IO_MULTITHREADED, desktopUI); @@ -509,22 +506,22 @@ namespace MainWindow TranslateMenuItem(ID_DEBUG_RESETSYMBOLTABLE, desktopUI); TranslateMenuItem(ID_DEBUG_DUMPNEXTFRAME, desktopUI); TranslateMenuItem(ID_DEBUG_SHOWDEBUGSTATISTICS, desktopUI); - TranslateMenuItem(ID_DEBUG_TAKESCREENSHOT, desktopUI, true, false, L"\tF12"); - TranslateMenuItem(ID_DEBUG_DISASSEMBLY, desktopUI, true, false, L"\tCtrl+D"); - TranslateMenuItem(ID_DEBUG_LOG, desktopUI, true, false, L"\tCtrl+L"); - TranslateMenuItem(ID_DEBUG_MEMORYVIEW, desktopUI, true, false, L"\tCtrl+M"); + TranslateMenuItem(ID_DEBUG_TAKESCREENSHOT, desktopUI, L"\tF12"); + TranslateMenuItem(ID_DEBUG_DISASSEMBLY, desktopUI, L"\tCtrl+D"); + TranslateMenuItem(ID_DEBUG_LOG, desktopUI, L"\tCtrl+L"); + TranslateMenuItem(ID_DEBUG_MEMORYVIEW, desktopUI, L"\tCtrl+M"); // Options menu - TranslateMenuItem(ID_OPTIONS_FULLSCREEN, desktopUI, true, false, L"\tAlt+Return, F11"); + TranslateMenuItem(ID_OPTIONS_FULLSCREEN, desktopUI, L"\tAlt+Return, F11"); TranslateMenuItem(ID_OPTIONS_TOPMOST, desktopUI); TranslateMenuItem(ID_OPTIONS_STRETCHDISPLAY, desktopUI); TranslateMenuItem(ID_OPTIONS_SCREENAUTO, desktopUI); // Skip rendering resolution 2x-5x.. // Skip window size 1x-4x.. - TranslateMenuItem(ID_OPTIONS_NONBUFFEREDRENDERING, desktopUI, true, false); - TranslateMenuItem(ID_OPTIONS_BUFFEREDRENDERING, desktopUI, true, true); - TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYCPU, desktopUI, true, false); - TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYGPU, desktopUI, true, false); + TranslateMenuItem(ID_OPTIONS_NONBUFFEREDRENDERING, desktopUI); + TranslateMenuItem(ID_OPTIONS_BUFFEREDRENDERING, desktopUI); + TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYCPU, desktopUI); + TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYGPU, desktopUI); TranslateMenuItem(ID_OPTIONS_FRAMESKIP_0, desktopUI); TranslateMenuItem(ID_OPTIONS_FRAMESKIP_AUTO, desktopUI); // Skip frameskipping 1-8.. @@ -541,7 +538,7 @@ namespace MainWindow TranslateMenuItem(ID_TEXTURESCALING_BICUBIC, desktopUI); TranslateMenuItem(ID_TEXTURESCALING_HYBRID_BICUBIC, desktopUI); TranslateMenuItem(ID_TEXTURESCALING_DEPOSTERIZE, desktopUI); - TranslateMenuItem(ID_OPTIONS_HARDWARETRANSFORM, desktopUI, true, true, L"\tF6"); + TranslateMenuItem(ID_OPTIONS_HARDWARETRANSFORM, desktopUI, L"\tF6"); TranslateMenuItem(ID_OPTIONS_VERTEXCACHE, desktopUI); TranslateMenuItem(ID_OPTIONS_MIPMAP, desktopUI); TranslateMenuItem(ID_OPTIONS_ANTIALIASING, desktopUI); @@ -1108,14 +1105,6 @@ namespace MainWindow NativeMessageReceived("reset", ""); break; - case ID_EMULATION_RENDER_MODE_OGL: - g_Config.bSoftwareRendering = false; - break; - - case ID_EMULATION_RENDER_MODE_SOFT: - g_Config.bSoftwareRendering = true; - break; - case ID_FILE_LOADSTATEFILE: if (W32Util::BrowseForFileName(true, hWnd, L"Load state",0,L"Save States (*.ppst)\0*.ppst\0All files\0*.*\0\0",L"ppst",fn)) { SetCursor(LoadCursor(0, IDC_WAIT)); @@ -1351,35 +1340,17 @@ namespace MainWindow case ID_OPTIONS_CONTROLS: NativeMessageReceived("control mapping", ""); - globalUIState = UISTATE_MENU; break; case ID_OPTIONS_MORE_SETTINGS: NativeMessageReceived("settings", ""); - globalUIState = UISTATE_MENU; break; case ID_EMULATION_SOUND: g_Config.bEnableSound = !g_Config.bEnableSound; if(!g_Config.bEnableSound) { - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED); if(!IsAudioInitialised()) Audio_Init(); - } else { - if(Atrac3plus_Decoder::IsInstalled()) - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_ENABLED); - } - break; - - case ID_EMULATION_ATRAC3_SOUND: - g_Config.bEnableAtrac3plus = !g_Config.bEnableAtrac3plus; - - if(Atrac3plus_Decoder::IsInstalled()) { - if(g_Config.bEnableAtrac3plus) - Atrac3plus_Decoder::Init(); - else Atrac3plus_Decoder::Shutdown(); - } else { - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED); } break; @@ -1558,13 +1529,6 @@ namespace MainWindow } break; - case WM_USER_ATRAC_STATUS_CHANGED: - if(g_Config.bEnableAtrac3plus && Atrac3plus_Decoder::IsInstalled()) - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_ENABLED); - else - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED); - break; - case WM_USER_UPDATE_UI: CreateLanguageMenu(); TranslateMenus(); @@ -1621,9 +1585,6 @@ namespace MainWindow CHECKITEM(ID_OPTIONS_TOPMOST, g_Config.bTopMost); CHECKITEM(ID_EMULATION_SOUND, g_Config.bEnableSound); CHECKITEM(ID_TEXTURESCALING_DEPOSTERIZE, g_Config.bTexDeposterize); - CHECKITEM(ID_EMULATION_ATRAC3_SOUND, g_Config.bEnableAtrac3plus); - CHECKITEM(ID_EMULATION_RENDER_MODE_OGL, g_Config.bSoftwareRendering == false); - CHECKITEM(ID_EMULATION_RENDER_MODE_SOFT, g_Config.bSoftwareRendering == true); CHECKITEM(ID_EMULATION_CHEATS, g_Config.bEnableCheats); static const int zoomitems[6] = { @@ -1780,7 +1741,7 @@ namespace MainWindow HMENU menu = GetMenu(GetHWND()); bool isPaused = Core_IsStepping() && globalUIState == UISTATE_INGAME; - TranslateMenuItembyText(ID_TOGGLE_PAUSE, isPaused ? "Run" : "Pause", "DesktopUI", false, false, L"\tF8"); + TranslateMenuItem(ID_TOGGLE_PAUSE, "DesktopUI", isPaused ? "Run" : "Pause", L"\tF8"); UINT ingameEnable = globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED; EnableMenuItem(menu, ID_TOGGLE_PAUSE, ingameEnable); @@ -1796,9 +1757,6 @@ namespace MainWindow EnableMenuItem(menu, ID_CPU_MULTITHREADED, menuEnable); EnableMenuItem(menu, ID_IO_MULTITHREADED, menuEnable); EnableMenuItem(menu, ID_DEBUG_LOG, !g_Config.bEnableLogging); - EnableMenuItem(menu, ID_EMULATION_RENDER_MODE_OGL, menuEnable); - EnableMenuItem(menu, ID_EMULATION_RENDER_MODE_SOFT, menuEnable); - EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, !Atrac3plus_Decoder::IsInstalled()); } // Message handler for about box. diff --git a/Windows/WndMainWindow.h b/Windows/WndMainWindow.h index 576990c43..53100b881 100644 --- a/Windows/WndMainWindow.h +++ b/Windows/WndMainWindow.h @@ -10,9 +10,8 @@ namespace MainWindow enum { WM_USER_SAVESTATE_FINISH = WM_USER + 100, WM_USER_LOG_STATUS_CHANGED = WM_USER + 101, - WM_USER_ATRAC_STATUS_CHANGED = WM_USER + 102, - WM_USER_UPDATE_UI = WM_USER + 103, - WM_USER_UPDATE_SCREEN = WM_USER + 104, + WM_USER_UPDATE_UI = WM_USER + 102, + WM_USER_UPDATE_SCREEN = WM_USER + 103, }; enum { diff --git a/Windows/resource.h b/Windows/resource.h index 5059e9d7b..58b74087c 100644 --- a/Windows/resource.h +++ b/Windows/resource.h @@ -237,14 +237,11 @@ #define ID_OPTIONS_FRAMESKIP_7 40084 #define ID_OPTIONS_FRAMESKIP_8 40085 #define ID_OPTIONS_FRAMESKIP_AUTO 40087 -#define ID_OPTIONS_FRAMESKIPDUMMY 40088 -#define ID_OPTIONS_RESOLUTIONDUMMY 40089 +#define ID_OPTIONS_FRAMESKIPDUMMY 40088 +#define ID_OPTIONS_RESOLUTIONDUMMY 40089 #define ID_DISASM_ASSEMBLE 40090 #define ID_DISASM_ADDNEWBREAKPOINT 40091 #define ID_DISASM_EDITBREAKPOINT 40092 -#define ID_EMULATION_ATRAC3_SOUND 40093 -#define ID_EMULATION_RENDER_MODE_OGL 40094 -#define ID_EMULATION_RENDER_MODE_SOFT 40095 #define ID_EMULATION_CHEATS 40096 #define ID_HELP_CHINESE_FORUM 40097 #define ID_OPTIONS_MORE_SETTINGS 40098