Play-/Source/ui_qt/DebugSupport/DebugView.h

57 lines
1.5 KiB
C
Raw Normal View History

2019-08-31 12:33:24 -04:00
#pragma once
#include <string>
#include <functional>
#include <QWidget>
#include <QTabWidget>
#include <QMdiArea>
#include <QMdiSubWindow>
2019-12-11 14:52:12 +00:00
#include "DisAsmWnd.h"
2019-12-19 11:58:52 +00:00
#include "MemoryViewMIPSWnd.h"
2019-08-31 12:33:24 -04:00
#include "RegViewWnd.h"
#include "CallStackWnd.h"
2019-08-31 12:33:24 -04:00
#include "VirtualMachineStateView.h"
class CBiosDebugInfoProvider;
class CDebugView : public CVirtualMachineStateView
{
public:
2019-12-19 21:37:47 +00:00
typedef std::function<void(void)> StepFunction;
2019-08-31 12:33:24 -04:00
CDebugView(QWidget*, QMdiArea*, CVirtualMachine&, CMIPS*, const StepFunction&, CBiosDebugInfoProvider*, const char*, int, CQtDisAsmTableModel::DISASM_TYPE = CQtDisAsmTableModel::DISASM_STANDARD);
2019-08-31 12:33:24 -04:00
virtual ~CDebugView();
void HandleMachineStateChange() override;
void HandleRunningStateChange(CVirtualMachine::STATUS) override;
CMIPS* GetContext();
2019-12-11 14:52:12 +00:00
CDisAsmWnd* GetDisassemblyWindow();
2019-12-19 11:58:52 +00:00
CMemoryViewMIPSWnd* GetMemoryViewWindow();
2019-08-31 12:33:24 -04:00
CRegViewWnd* GetRegisterViewWindow();
CCallStackWnd* GetCallStackWindow();
2019-08-31 12:33:24 -04:00
void Step();
const char* GetName() const;
void Hide();
CBiosDebugInfoProvider* GetBiosDebugInfoProvider() const;
protected:
void OnCallStackWndFunctionDblClick(uint32_t);
private:
std::string m_name;
CVirtualMachine& m_virtualMachine;
CMIPS* m_ctx;
QMdiSubWindow* m_disAsmWnd;
2020-02-05 21:17:51 +00:00
QMdiSubWindow* m_memoryViewWnd;
2020-02-05 21:47:31 +00:00
QMdiSubWindow* m_regViewWnd;
2020-02-05 21:33:18 +00:00
QMdiSubWindow* m_callStackWnd;
2019-08-31 12:33:24 -04:00
StepFunction m_stepFunction;
CBiosDebugInfoProvider* m_biosDebugInfoProvider;
2019-12-12 01:44:55 +00:00
CCallStackWnd::OnFunctionDblClickSignal::Connection m_OnFunctionDblClickConnection;
2019-08-31 12:33:24 -04:00
QTabWidget* m_viewTabs;
};