Play-/Source/ui_win32/FrameDebugger/GsPacketListView.h

68 lines
1.7 KiB
C
Raw Normal View History

#pragma once
#include <memory>
#include <set>
#include <vector>
#include "win32/Window.h"
#include "win32/TreeView.h"
#include "win32/Button.h"
#include "win32/GdiObj.h"
#include "../../gs/GSHandler.h"
class CGsPacketListView : public Framework::Win32::CWindow
{
public:
enum
{
NOTIFICATION_SELCHANGED = 0xA000,
};
struct SELCHANGED_INFO : public NMHDR
{
uint32 selectedCmdIndex;
};
CGsPacketListView(HWND, const RECT&);
virtual ~CGsPacketListView();
void SetFrameDump(CFrameDump*);
uint32 GetSelectedItemIndex() const;
protected:
2017-02-14 09:37:00 -05:00
long OnSize(unsigned int, unsigned int, unsigned int) override;
long OnCommand(unsigned short, unsigned short, HWND) override;
LRESULT OnNotify(WPARAM, NMHDR*) override;
private:
struct PACKETINFO
{
2017-02-14 09:37:00 -05:00
HTREEITEM treeViewItem = nullptr;
uint32 cmdIndexStart = 0;
};
struct WRITEINFO
{
2017-02-14 09:37:00 -05:00
HTREEITEM treeViewItem = nullptr;
};
uint32 GetItemIndexFromTreeViewItem(TVITEM*) const;
long OnPacketsTreeViewCustomDraw(NMTVCUSTOMDRAW*);
void OnPacketsTreeViewItemExpanding(NMTREEVIEW*);
void OnPacketsTreeViewSelChanged(NMTREEVIEW*);
void GoToWrite(uint32);
void OnPrevDrawKick();
void OnNextDrawKick();
std::unique_ptr<Framework::Win32::CTreeView> m_packetsTreeView;
Framework::Win32::CFont m_drawCallItemFont;
std::unique_ptr<Framework::Win32::CButton> m_prevDrawKickButton;
std::unique_ptr<Framework::Win32::CButton> m_nextDrawKickButton;
CFrameDump* m_frameDump = nullptr;
std::vector<PACKETINFO> m_packetInfos;
std::vector<WRITEINFO> m_writeInfos;
};