mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Fix menu command shortcut keys.
This commit is contained in:
parent
f569125ed5
commit
d489915d70
3 changed files with 48 additions and 24 deletions
|
@ -703,7 +703,7 @@ namespace MainWindow
|
|||
break;
|
||||
case WM_KEYDOWN:
|
||||
{
|
||||
static int mojs=0;
|
||||
static int mojs = 0;
|
||||
mojs ^= 1;
|
||||
//SetSkinMode(mojs);
|
||||
}
|
||||
|
@ -779,8 +779,8 @@ namespace MainWindow
|
|||
|
||||
|
||||
case WM_MENUSELECT:
|
||||
// This happens when a menu drops down, so this is the only place
|
||||
// we need to call UpdateMenus.
|
||||
// Unfortunately, accelerate keys (hotkeys) shares the same enabled/disabled states
|
||||
// with corresponding menu items.
|
||||
UpdateMenus();
|
||||
break;
|
||||
|
||||
|
@ -832,24 +832,8 @@ namespace MainWindow
|
|||
CHECKITEM(ID_OPTIONS_FRAMESKIP, g_Config.iFrameSkip != 0);
|
||||
CHECKITEM(ID_OPTIONS_USEMEDIAENGINE, g_Config.bUseMediaEngine);
|
||||
CHECKITEM(ID_OPTIONS_MIPMAP, g_Config.bMipMap);
|
||||
CHECKITEM(ID_EMULATION_SOUND, g_Config.bEnableSound);
|
||||
CHECKITEM(ID_TEXTURESCALING_DEPOSTERIZE, g_Config.bTexDeposterize);
|
||||
|
||||
EnableMenuItem(menu,ID_EMULATION_RUN, (Core_IsStepping() || globalUIState == UISTATE_PAUSEMENU) ? MF_ENABLED : MF_GRAYED);
|
||||
EnableMenuItem(menu,ID_EMULATION_PAUSE, globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED);
|
||||
EnableMenuItem(menu,ID_EMULATION_STOP, globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED);
|
||||
EnableMenuItem(menu,ID_EMULATION_RESET, globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED);
|
||||
|
||||
UINT enable = globalUIState == UISTATE_MENU ? MF_ENABLED : MF_GRAYED;
|
||||
EnableMenuItem(menu,ID_FILE_LOAD,enable);
|
||||
EnableMenuItem(menu,ID_FILE_LOAD_MEMSTICK,enable);
|
||||
EnableMenuItem(menu,ID_FILE_SAVESTATEFILE,!enable);
|
||||
EnableMenuItem(menu,ID_FILE_LOADSTATEFILE,!enable);
|
||||
EnableMenuItem(menu,ID_FILE_QUICKSAVESTATE,!enable);
|
||||
EnableMenuItem(menu,ID_FILE_QUICKLOADSTATE,!enable);
|
||||
EnableMenuItem(menu,ID_CPU_DYNAREC,enable);
|
||||
EnableMenuItem(menu,ID_CPU_INTERPRETER,enable);
|
||||
EnableMenuItem(menu,ID_EMULATION_STOP,!enable);
|
||||
CHECKITEM(ID_EMULATION_SOUND, g_Config.bEnableSound);
|
||||
CHECKITEM(ID_TEXTURESCALING_DEPOSTERIZE, g_Config.bTexDeposterize);
|
||||
|
||||
static const int zoomitems[4] = {
|
||||
ID_OPTIONS_SCREEN1X,
|
||||
|
@ -881,6 +865,39 @@ namespace MainWindow
|
|||
for (int i = 0; i < 4; i++) {
|
||||
CheckMenuItem(menu, texscalingtypeitems[i], MF_BYCOMMAND | ((i == g_Config.iTexScalingType) ? MF_CHECKED : MF_UNCHECKED));
|
||||
}
|
||||
|
||||
UpdateCommands();
|
||||
}
|
||||
|
||||
void UpdateCommands()
|
||||
{
|
||||
static GlobalUIState lastGlobalUIState = UISTATE_PAUSEMENU;
|
||||
static CoreState lastCoreState = CORE_ERROR;
|
||||
|
||||
if (lastGlobalUIState == globalUIState && lastCoreState == coreState)
|
||||
return;
|
||||
|
||||
lastCoreState = coreState;
|
||||
lastGlobalUIState = globalUIState;
|
||||
|
||||
HMENU menu = GetMenu(GetHWND());
|
||||
EnableMenuItem(menu,ID_EMULATION_RUN, (Core_IsStepping() || globalUIState == UISTATE_PAUSEMENU) ? MF_ENABLED : MF_GRAYED);
|
||||
|
||||
UINT ingameEnable = globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED;
|
||||
EnableMenuItem(menu,ID_EMULATION_PAUSE, ingameEnable);
|
||||
EnableMenuItem(menu,ID_EMULATION_STOP, ingameEnable);
|
||||
EnableMenuItem(menu,ID_EMULATION_RESET, ingameEnable);
|
||||
|
||||
UINT menuEnable = globalUIState == UISTATE_MENU ? MF_ENABLED : MF_GRAYED;
|
||||
EnableMenuItem(menu,ID_FILE_LOAD, menuEnable);
|
||||
EnableMenuItem(menu,ID_FILE_LOAD_MEMSTICK, menuEnable);
|
||||
EnableMenuItem(menu,ID_FILE_SAVESTATEFILE, !menuEnable);
|
||||
EnableMenuItem(menu,ID_FILE_LOADSTATEFILE, !menuEnable);
|
||||
EnableMenuItem(menu,ID_FILE_QUICKSAVESTATE, !menuEnable);
|
||||
EnableMenuItem(menu,ID_FILE_QUICKLOADSTATE, !menuEnable);
|
||||
EnableMenuItem(menu,ID_CPU_DYNAREC, menuEnable);
|
||||
EnableMenuItem(menu,ID_CPU_INTERPRETER, menuEnable);
|
||||
EnableMenuItem(menu,ID_EMULATION_STOP, !menuEnable);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ namespace MainWindow
|
|||
BOOL Show(HINSTANCE hInstance, int nCmdShow);
|
||||
void Close();
|
||||
void UpdateMenus();
|
||||
void UpdateCommands();
|
||||
void Update();
|
||||
void Redraw();
|
||||
HWND GetHWND();
|
||||
|
|
|
@ -136,9 +136,15 @@ int WINAPI WinMain(HINSTANCE _hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLin
|
|||
{
|
||||
//DSound_UpdateSound();
|
||||
|
||||
//hack to make it possible to get to main window from floating windows with Esc
|
||||
if (msg.hwnd != hwndMain && msg.message==WM_KEYDOWN && msg.wParam==VK_ESCAPE)
|
||||
BringWindowToTop(hwndMain);
|
||||
if (msg.message == WM_KEYDOWN)
|
||||
{
|
||||
//hack to enable/disable menu command accelerate keys
|
||||
MainWindow::UpdateCommands();
|
||||
|
||||
//hack to make it possible to get to main window from floating windows with Esc
|
||||
if (msg.hwnd != hwndMain && msg.wParam == VK_ESCAPE)
|
||||
BringWindowToTop(hwndMain);
|
||||
}
|
||||
|
||||
//Translate accelerators and dialog messages...
|
||||
if (!TranslateAccelerator(hwndMain, hAccelTable, &msg))
|
||||
|
|
Loading…
Add table
Reference in a new issue