82 lines
2.7 KiB
C++
82 lines
2.7 KiB
C++
#pragma once
|
|
#include "DebuggerUI.h"
|
|
#include <Project64\UserInterface\WTLControls\TooltipDialog.h>
|
|
|
|
class CDebugCPULogView :
|
|
public CDebugDialog<CDebugCPULogView>,
|
|
public CDialogResize<CDebugCPULogView>,
|
|
public CToolTipDialog<CDebugCPULogView>
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
IDD = IDD_Debugger_CPULog
|
|
};
|
|
|
|
CDebugCPULogView(CDebuggerUI * debugger);
|
|
virtual ~CDebugCPULogView(void);
|
|
|
|
void RefreshList(bool bUpdateBuffer = true);
|
|
|
|
private:
|
|
CCPULog * m_CPULogCopy;
|
|
|
|
int m_RowHeight;
|
|
int m_LogStartIndex;
|
|
|
|
CListViewCtrl m_CPUListView;
|
|
CEdit m_StateInfoEdit;
|
|
CEditNumber32 m_BuffSizeEdit;
|
|
CButton m_EnabledChk;
|
|
CScrollBar m_Scrollbar;
|
|
CButton m_ExportBtn;
|
|
|
|
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL & /*bHandled*/);
|
|
LRESULT OnClicked(WORD wNotifyCode, WORD wID, HWND /*hWndCtl*/, BOOL & bHandled);
|
|
LRESULT OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled);
|
|
LRESULT OnListDblClicked(NMHDR * pNMHDR);
|
|
LRESULT OnListItemChanged(NMHDR * pNMHDR);
|
|
LRESULT OnMeasureItem(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL & /*bHandled*/);
|
|
LRESULT OnScroll(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL & /*bHandled*/);
|
|
void OnExitSizeMove(void);
|
|
LRESULT OnDestroy(void);
|
|
|
|
void InterceptMouseWheel(WPARAM wParam, LPARAM lParam);
|
|
|
|
static CDebugCPULogView * _this;
|
|
static HHOOK hWinMessageHook;
|
|
static LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam);
|
|
|
|
void ToggleLoggingEnabled(void);
|
|
void ShowRegStates(size_t stateIndex);
|
|
void Export(void);
|
|
|
|
int GetNumVisibleRows(CListViewCtrl & list);
|
|
bool MouseHovering(WORD ctrlId, int xMargin = 0, int yMargin = 0);
|
|
|
|
BEGIN_MSG_MAP_EX(CDebugCPULogView)
|
|
{
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog);
|
|
COMMAND_CODE_HANDLER(BN_CLICKED, OnClicked);
|
|
MESSAGE_HANDLER(WM_ACTIVATE, OnActivate);
|
|
NOTIFY_HANDLER_EX(IDC_CPU_LIST, NM_DBLCLK, OnListDblClicked);
|
|
NOTIFY_HANDLER_EX(IDC_CPU_LIST, LVN_ITEMCHANGED, OnListItemChanged);
|
|
MESSAGE_HANDLER(WM_MEASUREITEM, OnMeasureItem);
|
|
MESSAGE_HANDLER(WM_VSCROLL, OnScroll);
|
|
MSG_WM_EXITSIZEMOVE(OnExitSizeMove);
|
|
CHAIN_MSG_MAP(CDialogResize<CDebugCPULogView>);
|
|
}
|
|
END_MSG_MAP()
|
|
|
|
BEGIN_DLGRESIZE_MAP(CDebugCPULogView)
|
|
DLGRESIZE_CONTROL(IDC_CPU_LIST, DLSZ_SIZE_X | DLSZ_SIZE_Y)
|
|
DLGRESIZE_CONTROL(IDC_REGSTATES_GRP, DLSZ_MOVE_X | DLSZ_SIZE_Y)
|
|
DLGRESIZE_CONTROL(IDC_STATEINFO_EDIT, DLSZ_MOVE_X | DLSZ_SIZE_Y)
|
|
DLGRESIZE_CONTROL(IDC_SCRL_BAR, DLSZ_SIZE_Y)
|
|
END_DLGRESIZE_MAP()
|
|
|
|
BEGIN_TOOLTIP_MAP()
|
|
TOOLTIP(IDC_BUFFSIZE_EDIT, "Maximum number of states to keep (1024 = 416kB)") // sizeof(CPUState)
|
|
END_TOOLTIP_MAP()
|
|
};
|