mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-14 22:24:05 +00:00
Move global UI status out of WndMainWindow.cpp, simplify the menu translation code(it doesn't need to dictate checked or enabled items, the UI already does it later on anyway), and clear out a few old menu items that have been removed.
This commit is contained in:
parent
2d084ec747
commit
e8fd5881b8
@ -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_));
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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(""));
|
||||
}
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user