GE Debugger: Add a menu to the GE debugger window.

This will allow adding more features without making the UI a mess.
This commit is contained in:
Unknown W. Brackets 2022-01-22 11:46:49 -08:00
parent b5e8c21042
commit a4a72ed7c1
3 changed files with 39 additions and 7 deletions

View file

@ -129,6 +129,8 @@ void CGEDebugger::Init() {
CGEDebugger::CGEDebugger(HINSTANCE _hInstance, HWND _hParent)
: Dialog((LPCSTR)IDD_GEDEBUGGER, _hInstance, _hParent)
, stepCountDlg(_hInstance, m_hDlg) {
SetMenu(m_hDlg, LoadMenu(_hInstance, MAKEINTRESOURCE(IDR_GEDBG_MENU)));
// minimum size = a little more than the default
RECT windowRect;
GetWindowRect(m_hDlg, &windowRect);
@ -185,8 +187,8 @@ CGEDebugger::CGEDebugger(HINSTANCE _hInstance, HWND _hParent)
// set window position
int x = g_Config.iGEWindowX == -1 ? windowRect.left : g_Config.iGEWindowX;
int y = g_Config.iGEWindowY == -1 ? windowRect.top : g_Config.iGEWindowY;
int w = g_Config.iGEWindowW == -1 ? minWidth_ : g_Config.iGEWindowW;
int h = g_Config.iGEWindowH == -1 ? minHeight_ : g_Config.iGEWindowH;
int w = g_Config.iGEWindowW == -1 ? minWidth_ : std::max(minWidth_, g_Config.iGEWindowW);
int h = g_Config.iGEWindowH == -1 ? minHeight_ : std::max(minHeight_, g_Config.iGEWindowH);
MoveWindow(m_hDlg,x,y,w,h,FALSE);
SetTimer(m_hDlg, 1, USER_TIMER_MINIMUM, nullptr);
@ -704,11 +706,10 @@ void CGEDebugger::UpdateSize(WORD width, WORD height) {
MoveWindow(tabControl,tabRect.left,tabRect.top,tabRect.right-tabRect.left,tabRect.bottom-tabRect.top,TRUE);
}
void CGEDebugger::SavePosition()
{
void CGEDebugger::SavePosition() {
RECT rc;
if (GetWindowRect(m_hDlg, &rc))
{
// Don't save while we're still loading.
if (tabs && GetWindowRect(m_hDlg, &rc)) {
g_Config.iGEWindowX = rc.left;
g_Config.iGEWindowY = rc.top;
g_Config.iGEWindowW = rc.right - rc.left;

View file

@ -662,6 +662,33 @@ BEGIN
END
END
IDR_GEDBG_MENU MENUEX
BEGIN
POPUP "&Actions", ID_GEDBG_ACTIONS_MENU
BEGIN
MENUITEM "Rec&ord Next Frame", IDC_GEDBG_RECORD
END
POPUP "&Step", ID_GEDBG_STEP_MENU
BEGIN
MENUITEM "Next &Instruction", IDC_GEDBG_STEP
MENUITEM "To Cou&nter...", IDC_GEDBG_STEPCOUNT
MENUITEM "Next &Primitive", IDC_GEDBG_STEPPRIM
MENUITEM "Next &Curve", IDC_GEDBG_STEPCURVE
MENUITEM "Next &Texture", IDC_GEDBG_STEPTEX
MENUITEM "Next &Draw Flush", IDC_GEDBG_STEPDRAW
MENUITEM "Next &Frame", IDC_GEDBG_STEPFRAME
END
POPUP "&Breakpoints", ID_GEDBG_BREAK_MENU
BEGIN
MENUITEM "&Resume", IDC_GEDBG_RESUME
MENUITEM "", 0, MFT_SEPARATOR
MENUITEM "Te&xture Pointer...", IDC_GEDBG_BREAKTEX
MENUITEM "Render Target Pointer...", IDC_GEDBG_BREAKTARGET
END
END
IDR_POPUPMENUS MENU
BEGIN
POPUP "memview"

View file

@ -11,6 +11,7 @@
#define IDC_RAM 107
#define IDC_STEPOVER 108
#define IDC_TABDATATYPE 109
#define IDR_GEDBG_MENU 110
#define ID_MEMVIEW_GOTOINDISASM 112
#define IDI_PPSSPP 115
#define IDI_STOPDISABLE 118
@ -318,6 +319,9 @@
#define IDC_MEMVIEW_STATUS 40206
#define ID_MEMVIEW_EXTENTBEGIN 40207
#define ID_MEMVIEW_EXTENTEND 40208
#define ID_GEDBG_ACTIONS_MENU 40209
#define ID_GEDBG_STEP_MENU 40210
#define ID_GEDBG_BREAK_MENU 40211
// Dummy option to let the buffered rendering hotkey cycle through all the options.
#define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500
@ -330,7 +334,7 @@
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 256
#define _APS_NEXT_COMMAND_VALUE 40209
#define _APS_NEXT_COMMAND_VALUE 40212
#define _APS_NEXT_CONTROL_VALUE 1202
#define _APS_NEXT_SYMED_VALUE 101
#endif