diff --git a/desmume/src/frontend/windows/CWindow.cpp b/desmume/src/frontend/windows/CWindow.cpp index 9e15f646..90a99993 100644 --- a/desmume/src/frontend/windows/CWindow.cpp +++ b/desmume/src/frontend/windows/CWindow.cpp @@ -590,6 +590,11 @@ DWORD WINCLASS::checkMenu(UINT idd, bool check) return CheckMenuItem(hmenu, idd, MF_BYCOMMAND | (check?MF_CHECKED:MF_UNCHECKED)); } +void WINCLASS::enableMenu(UINT idd, bool enable) +{ + EnableMenuItem(hmenu, idd, MF_BYCOMMAND | (enable ? (MF_ENABLED) : MF_GRAYED)); +} + HWND WINCLASS::getHWnd() { return hwnd; diff --git a/desmume/src/frontend/windows/CWindow.h b/desmume/src/frontend/windows/CWindow.h index b36d8cf4..c7463671 100644 --- a/desmume/src/frontend/windows/CWindow.h +++ b/desmume/src/frontend/windows/CWindow.h @@ -241,6 +241,7 @@ public: bool setMenu(HMENU menu); bool addMenuItem(u32 item, bool byPos, LPCMENUITEMINFO info); DWORD checkMenu(UINT idd, bool check); + void enableMenu(UINT idd, bool enable); void Show(int mode); void Hide(); diff --git a/desmume/src/frontend/windows/main.cpp b/desmume/src/frontend/windows/main.cpp index c3464fc2..c86a5d92 100755 --- a/desmume/src/frontend/windows/main.cpp +++ b/desmume/src/frontend/windows/main.cpp @@ -1690,9 +1690,6 @@ int MenuInit() // DeleteMenu(configMenu,GetSubMenuIndexByHMENU(configMenu,advancedMenu),MF_BYPOSITION); //#endif - if (!gShowConsole) - DeleteMenu(toolsMenu, IDM_CONSOLE_ALWAYS_ON_TOP, MF_BYCOMMAND); - return 1; } @@ -3804,6 +3801,8 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM // Tools MainWindow->checkMenu(IDM_CONSOLE_ALWAYS_ON_TOP, gConsoleTopmost); + MainWindow->checkMenu(IDM_CONSOLE_SHOWHIDE, gShowConsole); + MainWindow->enableMenu(IDM_CONSOLE_ALWAYS_ON_TOP, gShowConsole); UpdateHotkeyAssignments(); //Add current hotkey mappings to menu item names @@ -5477,6 +5476,22 @@ DOKEYDOWN: } return 0; + case IDM_CONSOLE_SHOWHIDE: + { + gShowConsole = !gShowConsole; + WritePrivateProfileBool("Console", "Show", gShowConsole, IniName); + if(gShowConsole) + { + OpenConsole(); // Init debug console + ConsoleAlwaysTop(gConsoleTopmost); + } + else + { + CloseConsole(); + } + return 0; + } + case IDM_SHOWTOOLBAR: { u32 style = GetStyle(); diff --git a/desmume/src/frontend/windows/resource.h b/desmume/src/frontend/windows/resource.h index 9e7cf4e9..fe76a3f5 100644 --- a/desmume/src/frontend/windows/resource.h +++ b/desmume/src/frontend/windows/resource.h @@ -985,6 +985,12 @@ #define IDM_FS_MENU 40150 #define IDM_FS_WINDOW 40151 #define IDM_FS_HIDE_CURSOR 40152 +#define ID_TOOLS_SHOWCONSOLE 40153 +#define ID_TOOLS_CONSOLE 40154 +#define ID_CONSOLE_ALWAYSONTOP 40155 +#define ID_CONSOLE_SHOWCONSOLE 40156 +#define IDM_CONSOLE_SHOW 40157 +#define IDM_CONSOLE_SHOWHIDE 40158 #define ID_LABEL_HK3b 44670 #define ID_LABEL_HK3c 44671 #define ID_LABEL_HK3d 44672 @@ -1032,6 +1038,9 @@ #define IDC_KILLSTYLUS 50039 #define IDC_KILLSTYLUSTOP 50039 #define IDC_KILLSTYLUSOFF 50040 +#define ID_LABEL_S_0_ALPHA_BLEND 50186 +#define ID_LABEL_DEPTH_EQUALS_TT 50187 +#define ID_LABEL_DEPTH_L_EQUAL_PF 50188 #define IDC_LUASCRIPT_RESERVE_START 58000 #define IDC_LUASCRIPT_RESERVE_END 58099 #define IDD_LUARECENT_RESERVE_START 58100 @@ -1094,10 +1103,6 @@ #define ID_LABEL_GPU_COLOR_DEPTH 64006 #define ID_LABEL_TEXTURE_SCALING 64007 #define ID_LABEL_SHADOW_POLYGONS 64009 -#define ID_LABEL_S_0_ALPHA_BLEND 640010 -#define ID_LABEL_DEPTH_EQUALS_TT 640011 -#define ID_LABEL_DEPTH_L_EQUAL_PF 640012 - // Next default values for new objects // @@ -1105,7 +1110,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 128 -#define _APS_NEXT_COMMAND_VALUE 40153 +#define _APS_NEXT_COMMAND_VALUE 40159 #define _APS_NEXT_CONTROL_VALUE 1066 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/desmume/src/frontend/windows/resources.rc b/desmume/src/frontend/windows/resources.rc index b0a3e4c3..1cb6dac5 100644 --- a/desmume/src/frontend/windows/resources.rc +++ b/desmume/src/frontend/windows/resources.rc @@ -68,22 +68,19 @@ BEGIN CONTROL "Automatically use last visited folder",IDC_USELASTVISIT, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,27,129,10 CONTROL "Associate nds Files",IDC_ASSOCIATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,132,27,80,10 - - GROUPBOX "SaveRam",IDC_STATIC,0,42,248,44 - LTEXT "Auto save",IDC_STATIC,5,54,35,14 + GROUPBOX "SaveRam",IDC_STATIC,0,42,248,44 + LTEXT "Auto save",IDC_STATIC,5,54,35,14 EDITTEXT IDC_SAVERAMPATHEDIT,42,51,184,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSESRAM,229,51,13,14 - LTEXT "Im/export",IDC_STATIC,5,70,35,14 + LTEXT "Im/export",IDC_STATIC,5,70,35,14 EDITTEXT IDC_SRAMIMPORTPATHEDIT,42,67,184,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSESRAMIMPORT,229,67,13,14 - - GROUPBOX "States",IDC_STATIC,0,87,248,46 + GROUPBOX "States",IDC_STATIC,0,87,248,46 EDITTEXT IDC_STATEPATHEDIT,5,97,221,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSESTATES,229,97,13,14 - LTEXT "Slots",IDC_STATIC,5,116,15,14 + LTEXT "Slots",IDC_STATIC,5,116,15,14 EDITTEXT IDC_STATESLOTPATHEDIT,24,113,202,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSESTATESLOTS,229,113,13,14 - GROUPBOX "Screenshots",IDC_STATIC,0,135,248,44 EDITTEXT IDC_SCREENSHOTPATHEDIT,5,144,221,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSESCREENSHOTS,229,144,13,14 @@ -92,20 +89,17 @@ BEGIN RADIOBUTTON "BMP",IDC_BMP,65,163,29,10 LTEXT "Format:",IDC_FORMATSTATIC,95,163,26,8 EDITTEXT IDC_FORMATEDIT,124,160,118,14,ES_AUTOHSCROLL - GROUPBOX "AviFiles",IDC_STATIC,0,181,247,28 EDITTEXT IDC_AVIPATHEDIT,5,189,221,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSEAVI,229,189,13,14 - GROUPBOX "Cheats",IDC_STATIC,0,212,247,50 - EDITTEXT IDC_CHEATPATHEDIT,5,221,221,14,ES_AUTOHSCROLL + EDITTEXT IDC_CHEATPATHEDIT,5,221,221,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSECHEATS,229,221,13,14 LTEXT "R4 cheats database file name",IDC_STATIC,56,238,100,17 CONTROL "CHEAT.DAT",IDC_R4TYPE1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,160,238,54,10 CONTROL "USRCHEAT.DAT",IDC_R4TYPE2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,160,250,67,10 - GROUPBOX "Lua",IDC_STATIC,0,265,247,38 - EDITTEXT IDC_LUAPATHEDIT,5,275,221,14,ES_AUTOHSCROLL + EDITTEXT IDC_LUAPATHEDIT,5,275,221,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BROWSELUA,229,275,13,14 CONTROL "Auto-load Lua scripts with ROM",IDC_AUTOLOADLUA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,291,219,8 PUSHBUTTON "Defaults",IDC_PATHDEFAULTS,3,306,50,14 @@ -1772,7 +1766,6 @@ BEGIN MENUITEM "View &Sound State", IDM_SOUND_VIEW MENUITEM "View Nitro&FS", ID_TOOLS_VIEWFSNITRO MENUITEM SEPARATOR - MENUITEM "&Console Always On Top", IDM_CONSOLE_ALWAYS_ON_TOP POPUP "&Cheats" BEGIN MENUITEM "&List", IDM_CHEATS_LIST, INACTIVE @@ -1799,6 +1792,11 @@ BEGIN MENUITEM "Sub BG 3", IDM_SBG3, CHECKED MENUITEM "Sub OBJ", IDM_SOBJ, CHECKED END + POPUP "Console" + BEGIN + MENUITEM "Enabled", IDM_CONSOLE_SHOWHIDE + MENUITEM "Always On Top", IDM_CONSOLE_ALWAYS_ON_TOP + END MENUITEM SEPARATOR POPUP "Lua Scripting" BEGIN