Files
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

121 lines
2.9 KiB
C++

// NotationView.cpp : implementation file
//
#include "stdafx.h"
#include "Multitron.h"
#include "NotationView.h"
#include "NotationDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNotationView
IMPLEMENT_DYNCREATE(CNotationView, CView)
CNotationView::CNotationView()
{
}
CNotationView::~CNotationView()
{
}
BEGIN_MESSAGE_MAP(CNotationView, CView)
//{{AFX_MSG_MAP(CNotationView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNotationView drawing
void CNotationView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CNotationView diagnostics
#ifdef _DEBUG
void CNotationView::AssertValid() const
{
CView::AssertValid();
}
void CNotationView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CNotationView message handlers
BOOL CNotationView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
return CView::PreCreateWindow(cs);
}
void CNotationView::OnInitialUpdate()
{
CRect rc;
GetClientRect(&rc);
if (!m_wndTreeCtrl.Create(WS_VISIBLE | WS_CHILD | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS | TVS_TRACKSELECT | TVS_FULLROWSELECT,rc,this,0))
{
return;
}
CView::OnInitialUpdate();
}
void CNotationView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CNotationDoc *pDoc = (CNotationDoc *)GetDocument();
Stuff::Plug *plug = pDoc->m_pNote;
if (NULL == plug)
plug = pDoc->m_pPage;
m_wndTreeCtrl.DeleteAllItems();
Stuff::NotationFile::PageIterator *pages = pDoc->GetNotationFile()->MakePageIterator();
Stuff::Page *page;
while (NULL != (page = pages->ReadAndNext()))
{
CString pagename = page->GetName();
HTREEITEM hPage = m_wndTreeCtrl.InsertItem(pagename,TVI_ROOT);
m_wndTreeCtrl.SetItemData(hPage,(DWORD)page);
if (page == plug)
m_wndTreeCtrl.SelectItem(hPage);
Stuff::Page::NoteIterator *notes = page->MakeNoteIterator();
Stuff::Note *note;
while (NULL != (note = notes->ReadAndNext()))
{
CString notename = note->GetName();
const char *entry;
note->GetEntry(&entry);
CString str;
str.Format("%s=%s",notename,entry);
HTREEITEM hNote = m_wndTreeCtrl.InsertItem(str,hPage);
m_wndTreeCtrl.SetItemData(hNote,(DWORD)note);
if (note == plug)
m_wndTreeCtrl.SelectItem(hNote);
}
delete notes;
m_wndTreeCtrl.Expand(hPage,TVE_EXPAND);
}
delete pages;
}