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.
228 lines
5.3 KiB
C++
228 lines
5.3 KiB
C++
// TexturePropertyView.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "Megatron.h"
|
|
#include "TexturePropertyView.h"
|
|
#include "MegatronDoc.h"
|
|
#include "TexturePropPage.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTexturePropertyView
|
|
|
|
IMPLEMENT_DYNCREATE(CTexturePropertyView, CView)
|
|
|
|
CTexturePropertyView::CTexturePropertyView()
|
|
{
|
|
}
|
|
|
|
CTexturePropertyView::~CTexturePropertyView()
|
|
{
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CTexturePropertyView, CView)
|
|
//{{AFX_MSG_MAP(CTexturePropertyView)
|
|
ON_WM_ERASEBKGND()
|
|
ON_WM_SIZE()
|
|
ON_WM_DESTROY()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTexturePropertyView drawing
|
|
|
|
void CTexturePropertyView::OnDraw(CDC* pDC)
|
|
{
|
|
CDocument* pDoc = GetDocument();
|
|
// TODO: add draw code here
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTexturePropertyView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CTexturePropertyView::AssertValid() const
|
|
{
|
|
CView::AssertValid();
|
|
}
|
|
|
|
void CTexturePropertyView::Dump(CDumpContext& dc) const
|
|
{
|
|
CView::Dump(dc);
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTexturePropertyView message handlers
|
|
|
|
//CDialog dlg;
|
|
|
|
void CTexturePropertyView::OnInitialUpdate()
|
|
{
|
|
CRect rc;
|
|
GetClientRect(&rc);
|
|
|
|
//m_wndPropertySheet.Construct("My Sheet",this);
|
|
|
|
CTexturePropPage *page = new CTexturePropPage();
|
|
m_wndPropertySheet.AddPage(page);
|
|
|
|
m_wndPropertySheet.Construct("My Sheet",this);
|
|
m_wndPropertySheet.EnableStackedTabs(false);
|
|
m_wndPropertySheet.Create(this, WS_VISIBLE | WS_CHILD | DS_MODALFRAME);
|
|
m_wndPropertySheet.ShowWindow(SW_SHOW);
|
|
m_wndPropertySheet.MoveWindow(rc);
|
|
|
|
CTabCtrl *pTab = m_wndPropertySheet.GetTabControl();
|
|
m_wndPropertySheet.GetClientRect(&rc);
|
|
rc.top-=15 * pTab->GetRowCount();
|
|
rc.left+=2;
|
|
pTab->AdjustRect(false,&rc);
|
|
pTab->MoveWindow(&rc);
|
|
|
|
m_wndPropertySheet.SetActivePage(0);
|
|
|
|
CView::OnInitialUpdate();
|
|
}
|
|
|
|
void CTexturePropertyView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
|
|
{
|
|
switch (lHint)
|
|
{
|
|
case UPDATE_HINTFILES:
|
|
case UPDATE_BUILDFILES:
|
|
{
|
|
|
|
break;
|
|
}
|
|
case UPDATE_TEXTUREHINT:
|
|
{
|
|
LockWindowUpdate();
|
|
|
|
CTexturePropPage *activepage = (CTexturePropPage *)m_wndPropertySheet.GetActivePage();
|
|
activepage->m_pPage = NULL;
|
|
for (int x=m_wndPropertySheet.GetPageCount();x;x--)
|
|
{
|
|
CPropertyPage *page = m_wndPropertySheet.GetPage(x-1);
|
|
if (page != activepage)
|
|
{
|
|
m_wndPropertySheet.RemovePage(page);
|
|
delete page;
|
|
}
|
|
}
|
|
m_wndPropertySheet.RemovePage(activepage);
|
|
delete activepage;
|
|
|
|
CPtrList *list = (CPtrList *)pHint;
|
|
if (list->GetCount())
|
|
{
|
|
POSITION pos = list->GetHeadPosition();
|
|
while (pos)
|
|
{
|
|
Stuff::Page *page = (Stuff::Page *)list->GetNext(pos);
|
|
CString imagename = page->GetName();
|
|
|
|
CTexturePropPage *ppage = new CTexturePropPage();
|
|
ppage->m_psp.dwFlags |= PSP_USETITLE;
|
|
ppage->m_psp.pszTitle = imagename;
|
|
ppage->m_pPage = page;
|
|
m_wndPropertySheet.AddPage(ppage);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
CTexturePropPage *page = new CTexturePropPage();
|
|
m_wndPropertySheet.AddPage(page);
|
|
}
|
|
m_wndPropertySheet.SetActivePage(0);
|
|
|
|
UnlockWindowUpdate();
|
|
break;
|
|
}
|
|
case UPDATE_IMAGESELECT:
|
|
{
|
|
Image *pImage = (Image *)pHint;
|
|
|
|
CTexturePropPage *page = (CTexturePropPage *)m_wndPropertySheet.GetActivePage();
|
|
//if (page)
|
|
// page->SetImageData(pImage);
|
|
|
|
for (int x=m_wndPropertySheet.GetPageCount();x;x--)
|
|
{
|
|
CTexturePropPage *page = (CTexturePropPage *)m_wndPropertySheet.GetPage(x-1);
|
|
page->SetImageData(pImage);
|
|
}
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
BOOL CTexturePropertyView::OnCommand(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
return CView::OnCommand(wParam, lParam);
|
|
}
|
|
|
|
BOOL CTexturePropertyView::OnEraseBkgnd(CDC* pDC)
|
|
{
|
|
return true ;
|
|
return CView::OnEraseBkgnd(pDC);
|
|
}
|
|
|
|
void CTexturePropertyView::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
CView::OnSize(nType, cx, cy);
|
|
if (m_wndPropertySheet.GetSafeHwnd())
|
|
{
|
|
m_wndPropertySheet.MoveWindow(0,0,cx,cy);
|
|
CTabCtrl *pTab = m_wndPropertySheet.GetTabControl();
|
|
RECT rc;
|
|
m_wndPropertySheet.GetClientRect(&rc);
|
|
rc.top-=15 * pTab->GetRowCount();
|
|
rc.left+=2;
|
|
pTab->AdjustRect(false,&rc);
|
|
pTab->MoveWindow(&rc);
|
|
}
|
|
}
|
|
|
|
void CTexturePropertyView::OnDestroy()
|
|
{
|
|
CTexturePropPage *activepage = (CTexturePropPage *)m_wndPropertySheet.GetActivePage();
|
|
activepage->m_pPage = NULL;
|
|
for (int x=m_wndPropertySheet.GetPageCount();x;x--)
|
|
{
|
|
CPropertyPage *page = m_wndPropertySheet.GetPage(x-1);
|
|
if (page != activepage)
|
|
{
|
|
m_wndPropertySheet.RemovePage(page);
|
|
delete page;
|
|
}
|
|
}
|
|
m_wndPropertySheet.RemovePage(activepage);
|
|
delete activepage;
|
|
|
|
/*
|
|
while (m_wndPropertySheet.GetPageCount())
|
|
{
|
|
CPropertyPage *page = m_wndPropertySheet.GetPage(0);
|
|
//m_wndPropertySheet.RemovePage(page);
|
|
delete page;
|
|
}
|
|
*/
|
|
CView::OnDestroy();
|
|
}
|
|
|
|
BOOL CTexturePropertyView::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
|
{
|
|
return CView::OnNotify(wParam, lParam, pResult);
|
|
}
|