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

71 lines
1.6 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;
};
2018-04-30 21:01:23 +01:00
CGsPacketListView(HWND, const RECT&);
virtual ~CGsPacketListView();
2018-04-30 21:01:23 +01:00
void SetFrameDump(CFrameDump*);
uint32 GetSelectedItemIndex() const;
protected:
2018-04-30 21:01:23 +01:00
long OnSize(unsigned int, unsigned int, unsigned int) override;
long OnCommand(unsigned short, unsigned short, HWND) override;
LRESULT OnNotify(WPARAM, NMHDR*) override;
long OnCopy() override;
private:
struct PACKETINFO
{
2017-02-14 09:37:00 -05:00
HTREEITEM treeViewItem = nullptr;
2018-04-30 21:01:23 +01:00
uint32 cmdIndexStart = 0;
};
struct WRITEINFO
{
2018-04-30 21:01:23 +01:00
HTREEITEM treeViewItem = nullptr;
2017-02-16 08:52:21 -05:00
CGSHandler::RegisterWrite registerWrite;
};
2018-04-30 21:01:23 +01:00
uint32 GetItemIndexFromTreeViewItem(TVITEM*) const;
2018-04-30 21:01:23 +01:00
long OnPacketsTreeViewCustomDraw(NMTVCUSTOMDRAW*);
void OnPacketsTreeViewItemExpanding(NMTREEVIEW*);
void OnPacketsTreeViewSelChanged(NMTREEVIEW*);
void OnPacketsTreeViewKeyDown(const NMTVKEYDOWN*);
2018-04-30 21:01:23 +01:00
void GoToWrite(uint32);
void OnPrevDrawKick();
void OnNextDrawKick();
2018-04-30 21:01:23 +01:00
std::unique_ptr<Framework::Win32::CTreeView> m_packetsTreeView;
Framework::Win32::CFont m_drawCallItemFont;
2018-04-30 21:01:23 +01:00
std::unique_ptr<Framework::Win32::CButton> m_prevDrawKickButton;
std::unique_ptr<Framework::Win32::CButton> m_nextDrawKickButton;
2018-04-30 21:01:23 +01:00
CFrameDump* m_frameDump = nullptr;
std::vector<PACKETINFO> m_packetInfos;
std::vector<WRITEINFO> m_writeInfos;
};