Files
firestorm/Gameleap/code/mw4/Tools/ContentTrack/NodeObjectReferenceView1.cpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

127 lines
3.4 KiB
C++

// NodeObjectReferenceView1.cpp : implementation file
//
#include "stdafx.h"
#include "contenttrack.h"
#include "NodeObjectReferenceView1.h"
#include "NodeDataValueFileDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNodeObjectReferenceView
IMPLEMENT_DYNCREATE(CNodeObjectReferenceView, CListView)
CNodeObjectReferenceView::CNodeObjectReferenceView()
{
}
CNodeObjectReferenceView::~CNodeObjectReferenceView()
{
}
BEGIN_MESSAGE_MAP(CNodeObjectReferenceView, CListView)
//{{AFX_MSG_MAP(CNodeObjectReferenceView)
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemchanged)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNodeObjectReferenceView drawing
void CNodeObjectReferenceView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CNodeObjectReferenceView diagnostics
#ifdef _DEBUG
void CNodeObjectReferenceView::AssertValid() const
{
CListView::AssertValid();
}
void CNodeObjectReferenceView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CNodeObjectReferenceView message handlers
BOOL CNodeObjectReferenceView::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL;
return CListView::PreCreateWindow(cs);
}
void CNodeObjectReferenceView::OnInitialUpdate()
{
CListCtrl *pCtrl = &GetListCtrl();
pCtrl->InsertColumn(0,"Object references",LVCFMT_LEFT,300);
CListView::OnInitialUpdate();
}
void CNodeObjectReferenceView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CListCtrl *pCtrl = &GetListCtrl();
pCtrl->DeleteAllItems();
if (GetDocument()->IsKindOf(RUNTIME_CLASS(CNodeDataValueFileDoc)))
{
CNodeDataValueFileDoc *pDoc = (CNodeDataValueFileDoc *)GetDocument();
if (pDoc->m_pActiveChild)
{
CNodeObject *pNode = pDoc->m_pActiveChild;
while (pNode && !pNode->IsFile())
pNode = pNode->GetParentNode();
if (pNode)
{
CNodeDisk *pDisk = ((CNodeDataValueFile *)pNode)->GetNodeDisk();
int i=0;
POSITION pos = pDisk->GetFirstReference();
while (pos)
{
CNodeObject *pChild = pDisk->GetNextReference(pos);
// Find the file node to the disk
while (pChild && (!pChild->IsFile() ||(pChild->GetClassID() == CLASS_CNODEDATAVALUEFILEPROJECT)))
pChild = pChild->GetParentNode();
// Find the node that loaded this file
while (pChild && !pChild->IsFile())
pChild = pChild->GetParentNode();
if (pChild)
{
CNodeDisk *pDisk = ((CNodeDataValueFile *)pChild)->GetNodeDisk();
int index = pCtrl->InsertItem(i,pDisk->GetPath());
pCtrl->SetItemData(index,(DWORD)pChild);
i++;
}
}
}
}
}
}
void CNodeObjectReferenceView::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->uNewState & LVIS_SELECTED)
{
CNodeObject *pNode = (CNodeObject *)pNMListView->lParam;
if (pNode)
GetDocument()->UpdateAllViews(this,(DWORD)pNode,NULL);
}
*pResult = 0;
}