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

56 lines
1.1 KiB
C
Raw Normal View History

2020-01-05 22:46:47 +00:00
#pragma once
#include <QWidget>
#include <QTableView>
#include "MIPS.h"
#include "VirtualMachineStateView.h"
#include "QtMemoryViewModel.h"
2020-02-07 07:23:23 +00:00
#include "signal/Signal.h"
2020-01-05 22:46:47 +00:00
class QResizeEvent;
class CMemoryViewTable : public QTableView, public CVirtualMachineStateView
{
public:
2020-01-06 12:40:18 +00:00
CMemoryViewTable(QWidget*);
2020-02-06 14:12:26 +00:00
~CMemoryViewTable() = default;
2020-01-05 22:46:47 +00:00
2020-01-06 12:40:18 +00:00
void Setup(CVirtualMachine* = nullptr, CMIPS* = nullptr, bool = false);
2020-01-05 22:46:47 +00:00
void HandleMachineStateChange() override;
int GetBytesPerLine();
void SetBytesPerLine(int);
void SetData(CQtMemoryViewModel::getByteProto, int);
void ShowEvent();
void ResizeEvent();
Framework::CSignal<void(uint32)> OnSelectionChange;
protected:
int sizeHintForColumn(int) const override;
2020-01-05 22:46:47 +00:00
private:
void ShowContextMenu(const QPoint&);
void AutoColumn();
void GotoAddress();
void FollowPointer();
void SetActiveUnit(int);
void SetSelectionStart(uint32);
void SelectionChanged();
2020-01-06 12:40:18 +00:00
CMIPS* m_context = nullptr;
CVirtualMachine* m_virtualMachine = nullptr;
2021-02-12 11:59:22 -05:00
CQtMemoryViewModel* m_model = nullptr;
2020-01-05 22:46:47 +00:00
uint32 m_selected = 0;
int m_cwidth = 0;
int m_bytesPerLine = 0;
int m_maxUnits = 0;
2021-02-12 11:59:22 -05:00
bool m_enableMemoryJumps = false;
2020-01-05 22:46:47 +00:00
};