1150 lines
34 KiB
C++
1150 lines
34 KiB
C++
|
|
// MainFrm.cpp : CMainFrame Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "EtWorldPainter.h"
|
|||
|
|
#include "DockingPaneAdobeTheme.h"
|
|||
|
|
#include "FileServer.h"
|
|||
|
|
|
|||
|
|
#include "MainFrm.h"
|
|||
|
|
#include "PaneDefine.h"
|
|||
|
|
#include "InputDevice.h"
|
|||
|
|
#include "ActionCommander.h"
|
|||
|
|
#include "TdDummyActor.h"
|
|||
|
|
#include "CreateGridDlg.h"
|
|||
|
|
#include "DeleteGridDlg.h"
|
|||
|
|
#include "EnviControl.h"
|
|||
|
|
#include "PropertiesDlg.h"
|
|||
|
|
#include "UserMessage.h"
|
|||
|
|
#include "MoveToGridDlg.h"
|
|||
|
|
#include "EtResourceMng.h"
|
|||
|
|
#include "MakeMinimapDlg.h"
|
|||
|
|
#include "CreateEventAreaDlg.h"
|
|||
|
|
#include "CreatePropPropertyDlg.h"
|
|||
|
|
#include "ExportPropInfoDlg.h"
|
|||
|
|
|
|||
|
|
#include "EventSignalManager.h"
|
|||
|
|
#include "PropSignalManager.h"
|
|||
|
|
#include "TEtWorld.h"
|
|||
|
|
#include "TEtWorldGrid.h"
|
|||
|
|
#include "TEtWorldSector.h"
|
|||
|
|
#include "../../Common/BugReporter/BugReporter.h"
|
|||
|
|
#include "PreLogoDlg.h"
|
|||
|
|
#include "RenderBase.h"
|
|||
|
|
#include "EtWorldPainterDoc.h"
|
|||
|
|
#include "EtWorldPainterView.h"
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new DEBUG_NEW
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
CInputDevice g_InputDevice;
|
|||
|
|
// CMainFrame
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNCREATE(CMainFrame, CXTPFrameWnd)
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CMainFrame, CXTPFrameWnd)
|
|||
|
|
ON_WM_CREATE()
|
|||
|
|
ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
|
|||
|
|
ON_WM_DESTROY()
|
|||
|
|
ON_WM_CLOSE()
|
|||
|
|
ON_WM_KEYDOWN()
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROJECT_CONNECT, &CMainFrame::OnUpdateProjectConnect)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROJECT_DISCONNECT, &CMainFrame::OnUpdateProjectDisconnect)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROJECT_SAVE, &CMainFrame::OnUpdateProjectSave)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROJECT_SETTING, &CMainFrame::OnUpdateProjectSetting)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_UNDO, &CMainFrame::OnUpdateUndo)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_REDO, &CMainFrame::OnUpdateRedo)
|
|||
|
|
|
|||
|
|
ON_XTP_EXECUTE(ID_UNDO, OnUndo)
|
|||
|
|
ON_NOTIFY(XTP_LBN_SELCHANGE, ID_UNDO, OnUndoSelChange)
|
|||
|
|
ON_NOTIFY(XTP_LBN_POPUP, ID_UNDO, OnUndoPoup)
|
|||
|
|
|
|||
|
|
ON_XTP_EXECUTE(ID_REDO, OnRedo)
|
|||
|
|
ON_NOTIFY(XTP_LBN_SELCHANGE, ID_REDO, OnRedoSelChange)
|
|||
|
|
ON_NOTIFY(XTP_LBN_POPUP, ID_REDO, OnRedoPoup)
|
|||
|
|
|
|||
|
|
ON_COMMAND(ID_UNDOACCEL, &CMainFrame::OnUndoAccel)
|
|||
|
|
ON_COMMAND(ID_REDOACCEL, &CMainFrame::OnRedoAccel)
|
|||
|
|
ON_COMMAND(ID_TOGGLESIMUL, &CMainFrame::OnToggleSimul)
|
|||
|
|
ON_COMMAND(ID_ADDBRUSHSIZE, &CMainFrame::OnIncreaseBrushSize)
|
|||
|
|
ON_COMMAND(ID_MINUSBRUSHSIZE, &CMainFrame::OnDecreaseBrushSize)
|
|||
|
|
|
|||
|
|
ON_COMMAND(ID_ATTR_1, &CMainFrame::OnAttr1)
|
|||
|
|
ON_COMMAND(ID_ATTR_2, &CMainFrame::OnAttr2)
|
|||
|
|
ON_COMMAND(ID_ATTR_3, &CMainFrame::OnAttr3)
|
|||
|
|
ON_COMMAND(ID_ATTR_4, &CMainFrame::OnAttr4)
|
|||
|
|
|
|||
|
|
ON_COMMAND(ID_VIEW_TOGGLETOPVIEW, &CMainFrame::OnToggleTopView)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_TOGGLETOPVIEW, &CMainFrame::OnUpdateToggleTopView)
|
|||
|
|
|
|||
|
|
ON_XTP_CREATECONTROL()
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_SIMUL_RUN, &CMainFrame::OnUpdateSimulRun)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_SIMUL_STOP, &CMainFrame::OnUpdateSimulStop)
|
|||
|
|
ON_COMMAND(ID_SIMUL_RUN, &CMainFrame::OnSimulRun)
|
|||
|
|
ON_COMMAND(ID_SIMUL_STOP, &CMainFrame::OnSimulStop)
|
|||
|
|
ON_COMMAND(ID_GRID_CREATEGRID, &CMainFrame::OnGridCreategrid)
|
|||
|
|
ON_COMMAND(ID_GRID_DELETEGRID, &CMainFrame::OnGridDeletegrid)
|
|||
|
|
ON_COMMAND(ID_GRID_MOVEGRID, &CMainFrame::OnGridMovegrid)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_GRID_CREATEGRID, &CMainFrame::OnUpdateGridCreategrid)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_GRID_DELETEGRID, &CMainFrame::OnUpdateGridDeletegrid)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_GRID_MOVEGRID, &CMainFrame::OnUpdateGridMovegrid)
|
|||
|
|
ON_COMMAND(ID_PROPERTIES_DIRECTORYSETTING, &CMainFrame::OnPropertiesDirectorysetting)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROPERTIES_EVENTSETTING, &CMainFrame::OnUpdatePropertiesEventSetting)
|
|||
|
|
ON_COMMAND(ID_PROPERTIES_EVENTSETTING, &CMainFrame::OnPropertiesEventSetting)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_TOOLS_MAKEMINIMAP, &CMainFrame::OnUpdateToolsMakeMinimap)
|
|||
|
|
ON_COMMAND(ID_TOOLS_MAKEMINIMAP, &CMainFrame::OnToolsMakeMinimap)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_TOOLS_SAVELIGHTMAP, &CMainFrame::OnUpdateToolsSaveCurrentLightmap)
|
|||
|
|
ON_COMMAND(ID_TOOLS_SAVELIGHTMAP, &CMainFrame::OnToolsSaveCurrentLightmap)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_PROPERTIES_PROPPROPERTYSETTING, &CMainFrame::OnUpdatePropertiesPropPropertySetting)
|
|||
|
|
ON_COMMAND(ID_PROPERTIES_PROPPROPERTYSETTING, &CMainFrame::OnPropertiesPropPropertySetting)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_TOOLS_EXPORTTERRAINTO3DSMAXSCRIPTDATA, &CMainFrame::OnUpdateToolsExportTerrainto3dsmaxscriptdata)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_TOOLS_EXPORTPROPINFOTO3DSMAXSCRIPTDATA, &CMainFrame::OnUpdateToolsExportPropInfoto3dsmaxscriptdata)
|
|||
|
|
ON_COMMAND(ID_TOOLS_EXPORTTERRAINTO3DSMAXSCRIPTDATA, &CMainFrame::OnToolsExportTerrainto3dsmaxscriptdata)
|
|||
|
|
ON_COMMAND(ID_TOOLS_EXPORTPROPINFOTO3DSMAXSCRIPTDATA, &CMainFrame::OnToolsExportPropInfoto3dsmaxscriptdata)
|
|||
|
|
ON_COMMAND(ID_VIEW_CAMERA_LIGHT, &CMainFrame::OnViewCameraLight)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_CAMERA_LIGHT, &CMainFrame::OnUpdateViewCameraLight)
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
static UINT indicators[] =
|
|||
|
|
{
|
|||
|
|
ID_SEPARATOR, // <20><><EFBFBD><EFBFBD> <20><> ǥ<>ñ<EFBFBD>
|
|||
|
|
ID_INDICATOR_CAPS,
|
|||
|
|
ID_INDICATOR_NUM,
|
|||
|
|
ID_INDICATOR_SCRL,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CMainFrame <20><><EFBFBD><EFBFBD>/<2F>Ҹ<EFBFBD>
|
|||
|
|
|
|||
|
|
CMainFrame::CMainFrame()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
m_bUndoRedoAccel = true;
|
|||
|
|
m_pResMng = new CEtResourceMng( false );
|
|||
|
|
CEtResourceMng::GetInstance().AddResourcePath( ".\\Plugins" );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CMainFrame::~CMainFrame()
|
|||
|
|
{
|
|||
|
|
SAFE_DELETE( m_pResMng );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
|
|||
|
|
{
|
|||
|
|
switch( lpCreateControl->nID ) {
|
|||
|
|
case ID_UNDO:
|
|||
|
|
case ID_REDO:
|
|||
|
|
{
|
|||
|
|
CXTPControlPopup* pButtonUndo = CXTPControlPopup::CreateControlPopup(xtpControlSplitButtonPopup);
|
|||
|
|
|
|||
|
|
CXTPPopupToolBar* pUndoBar = CXTPPopupToolBar::CreatePopupToolBar(GetCommandBars());
|
|||
|
|
pUndoBar->EnableCustomization(FALSE);
|
|||
|
|
pUndoBar->SetBorders(CRect(2, 2, 2, 2));
|
|||
|
|
pUndoBar->DisableShadow();
|
|||
|
|
|
|||
|
|
|
|||
|
|
CXTPControlListBox* pControlListBox = (CXTPControlListBox*)pUndoBar->GetControls()->Add(new CXTPControlListBox(), lpCreateControl->nID);
|
|||
|
|
pControlListBox->SetWidth(200);
|
|||
|
|
pControlListBox->SetLinesMinMax(1, 6);
|
|||
|
|
pControlListBox->SetMultiplSel(TRUE);
|
|||
|
|
|
|||
|
|
CXTPControlStatic* pControlListBoxInfo = (CXTPControlStatic*)pUndoBar->GetControls()->Add(new CXTPControlStatic(), lpCreateControl->nID);
|
|||
|
|
pControlListBoxInfo->SetWidth(200);
|
|||
|
|
|
|||
|
|
|
|||
|
|
pButtonUndo->SetCommandBar(pUndoBar);
|
|||
|
|
pUndoBar->InternalRelease();
|
|||
|
|
|
|||
|
|
lpCreateControl->pControl = pButtonUndo;
|
|||
|
|
}
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
return FALSE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|||
|
|
{
|
|||
|
|
if (CXTPFrameWnd::OnCreate(lpCreateStruct) == -1)
|
|||
|
|
return -1;
|
|||
|
|
|
|||
|
|
if (!m_wndStatusBar.Create(this) ||
|
|||
|
|
!m_wndStatusBar.SetIndicators(indicators,
|
|||
|
|
sizeof(indicators)/sizeof(UINT)))
|
|||
|
|
{
|
|||
|
|
TRACE0("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.\n");
|
|||
|
|
return -1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
|
|||
|
|
}
|
|||
|
|
if (!InitCommandBars()) return -1;
|
|||
|
|
|
|||
|
|
AfxInitRichEdit();
|
|||
|
|
AfxInitRichEdit2();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20>ٿ<EFBFBD> <20>߰<EFBFBD><DFB0>Ұ͵<D2B0>.
|
|||
|
|
// Progress
|
|||
|
|
m_ProgressBar.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH, CRect(0,0,0,0), &m_wndStatusBar, 0);
|
|||
|
|
m_wndStatusBar.AddIndicator( ID_INDICATOR_PROG, 1 );
|
|||
|
|
int nIndex = m_wndStatusBar.CommandToIndex( ID_INDICATOR_PROG );
|
|||
|
|
m_wndStatusBar.SetPaneWidth(nIndex, 120);
|
|||
|
|
m_wndStatusBar.SetPaneStyle(nIndex, m_wndStatusBar.GetPaneStyle(nIndex) | SBPS_NOBORDERS);
|
|||
|
|
m_wndStatusBar.AddControl(&m_ProgressBar, ID_INDICATOR_PROG, FALSE);
|
|||
|
|
|
|||
|
|
/////////////////////////
|
|||
|
|
|
|||
|
|
// Init Thema
|
|||
|
|
XTPPaintManager()->SetTheme( xtpThemeNativeWinXP );
|
|||
|
|
|
|||
|
|
XTP_COMMANDBARS_ICONSINFO* pIconsInfo = XTPPaintManager()->GetIconsInfo();
|
|||
|
|
pIconsInfo->bUseDisabledIcons = TRUE;
|
|||
|
|
pIconsInfo->bOfficeStyleDisabledIcons = TRUE;
|
|||
|
|
|
|||
|
|
CXTPCommandBars* pCommandBars = GetCommandBars();
|
|||
|
|
CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
|
|||
|
|
|
|||
|
|
CXTPToolBar *pCommandBar, *pActionBar,*pSimulBar;
|
|||
|
|
|
|||
|
|
// XTPImageManager()->SetMaskColor(RGB(0, 255, 0));
|
|||
|
|
if (!(pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop)) ||
|
|||
|
|
!pCommandBar->LoadToolBar(IDR_MAINFRAME))
|
|||
|
|
{
|
|||
|
|
TRACE0("Failed to create toolbar\n");
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
if (!(pActionBar = (CXTPToolBar*)pCommandBars->Add(_T("Action"), xtpBarTop)) ||
|
|||
|
|
!pActionBar->LoadToolBar(IDR_ACTIONTOOLBAR))
|
|||
|
|
{
|
|||
|
|
TRACE0("Failed to create toolbar\n");
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
DockRightOf(pActionBar, pCommandBar);
|
|||
|
|
|
|||
|
|
if (!(pSimulBar = (CXTPToolBar*)pCommandBars->Add(_T("Simulation"), xtpBarTop)) ||
|
|||
|
|
!pSimulBar->LoadToolBar(IDR_SIMULATION))
|
|||
|
|
{
|
|||
|
|
TRACE0("Failed to create toolbar\n");
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
DockRightOf(pSimulBar, pActionBar);
|
|||
|
|
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().UpdateInitDesc( "Initialize DockingPaneManager.." );
|
|||
|
|
XTPDockingPaneManager()->InstallDockingPanes(this);
|
|||
|
|
// XTPDockingPaneManager()->SetTheme( xtpPaneThemeNativeWinXP ); //NativeWinXP
|
|||
|
|
|
|||
|
|
m_paneManager.SetCustomTheme(new CDockingPaneAdobeTheme);
|
|||
|
|
m_paneManager.UseSplitterTracker(FALSE);
|
|||
|
|
m_paneManager.SetDockingContext(new CDockingPaneAdobeContext);
|
|||
|
|
m_paneManager.SetDefaultPaneOptions(xtpPaneNoCloseable);
|
|||
|
|
|
|||
|
|
int nCount = sizeof(g_PaneList) / sizeof(PaneCreateStruct);
|
|||
|
|
int *nIconList = new int[nCount];
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
CXTPDockingPane *pDockPane = NULL;
|
|||
|
|
nIconList[i] = g_PaneList[i].nPaneID;
|
|||
|
|
if( g_PaneList[i].nDockPaneID != -1 ) pDockPane = g_PaneList[g_PaneList[i].nDockPaneID].pThis;
|
|||
|
|
|
|||
|
|
if( (int)g_PaneList[i].Direction == -1 ) {
|
|||
|
|
g_PaneList[i].pThis = CreatePane( g_PaneList[i].nPaneID, g_PaneList[i].pClass, CString(g_PaneList[i].szName), g_PaneList[i].Direction, pDockPane, &CRect( g_PaneList[i].nLeft, g_PaneList[i].nTop, g_PaneList[i].nRight, g_PaneList[i].nBottom ) );
|
|||
|
|
XTPDockingPaneManager()->FloatPane( g_PaneList[i].pThis, CRect( g_PaneList[i].nLeft, g_PaneList[i].nTop, g_PaneList[i].nRight, g_PaneList[i].nBottom ) );
|
|||
|
|
}
|
|||
|
|
else g_PaneList[i].pThis = CreatePane( g_PaneList[i].nPaneID, g_PaneList[i].pClass, CString(g_PaneList[i].szName), g_PaneList[i].Direction, pDockPane, &CRect( g_PaneList[i].nLeft, g_PaneList[i].nTop, g_PaneList[i].nRight, g_PaneList[i].nBottom ) );
|
|||
|
|
if( g_PaneList[i].nAttachPaneID != -1 ) {
|
|||
|
|
XTPDockingPaneManager()->AttachPane( g_PaneList[i].pThis, g_PaneList[g_PaneList[i].nAttachPaneID].pThis );
|
|||
|
|
XTPDockingPaneManager()->ShowPane( g_PaneList[g_PaneList[i].nAttachPaneID].pThis );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ƴ<EFBFBD><C6B3>´<EFBFBD>.
|
|||
|
|
delete []nIconList;
|
|||
|
|
|
|||
|
|
#ifndef _DEBUG
|
|||
|
|
LoadCommandBars(_T("EtWorldPainterCommandBars"));
|
|||
|
|
|
|||
|
|
CXTPDockingPaneLayout layoutNormal(&m_paneManager);
|
|||
|
|
if (layoutNormal.Load(_T("EtWorldPainterLayout")))
|
|||
|
|
m_paneManager.SetLayout(&layoutNormal);
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
if( g_PaneList[i].bShow == FALSE ) {
|
|||
|
|
XTPDockingPaneManager()->ClosePane( g_PaneList[i].nPaneID );
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
XTPDockingPaneManager()->ShowPane( g_PaneList[i].nPaneID );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Etc Initialize
|
|||
|
|
|
|||
|
|
CInputDevice::GetInstance().Initialize( GetSafeHwnd(), CInputDevice::MOUSE | CInputDevice::KEYBOARD );
|
|||
|
|
CFileServer::GetInstance().Initialize();
|
|||
|
|
XTPDockingPaneManager()->ShowPane( GRID_PANE );
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
|||
|
|
{
|
|||
|
|
if( !CXTPFrameWnd::PreCreateWindow(cs) )
|
|||
|
|
return FALSE;
|
|||
|
|
// TODO: CREATESTRUCT cs<63><73> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><E2BFA1>
|
|||
|
|
// Window Ŭ<><C5AC><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CMainFrame <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
void CMainFrame::AssertValid() const
|
|||
|
|
{
|
|||
|
|
CXTPFrameWnd::AssertValid();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::Dump(CDumpContext& dc) const
|
|||
|
|
{
|
|||
|
|
CXTPFrameWnd::Dump(dc);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CMainFrame <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
CXTPDockingPane* CMainFrame::CreatePane( int nID, CRuntimeClass* pNewViewClass, CString strFormat, XTPDockingPaneDirection direction, CXTPDockingPane* pNeighbour, CRect *pRect )
|
|||
|
|
{
|
|||
|
|
CRect Rect;
|
|||
|
|
if( pRect == NULL ) Rect = CRect( 0, 0, 200, 200 );
|
|||
|
|
else Rect = *pRect;
|
|||
|
|
CXTPDockingPane* pwndPane = m_paneManager.CreatePane(
|
|||
|
|
nID, Rect, direction, pNeighbour);
|
|||
|
|
|
|||
|
|
CString strTitle;
|
|||
|
|
strTitle.Format(strFormat, nID);
|
|||
|
|
pwndPane->SetTitle(strTitle);
|
|||
|
|
|
|||
|
|
CFrameWnd* pFrame = new CFrameWnd;
|
|||
|
|
|
|||
|
|
CCreateContext context;
|
|||
|
|
context.m_pNewViewClass = pNewViewClass;
|
|||
|
|
context.m_pCurrentDoc = NULL;
|
|||
|
|
|
|||
|
|
DWORD dwStyle;
|
|||
|
|
dwStyle = WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
|
|||
|
|
pFrame->Create(NULL, NULL, dwStyle, CRect(0, 0, 0, 0), this, NULL, 0, &context);
|
|||
|
|
pFrame->ModifyStyleEx( WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE | WS_EX_OVERLAPPEDWINDOW, 0 );
|
|||
|
|
pFrame->SendMessageToDescendants(WM_INITIALUPDATE, 0, 0, TRUE, TRUE);
|
|||
|
|
|
|||
|
|
|
|||
|
|
m_mapPanes.SetAt(nID, pFrame);
|
|||
|
|
|
|||
|
|
return pwndPane;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
LRESULT CMainFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam)
|
|||
|
|
{
|
|||
|
|
if (wParam == XTP_DPN_SHOWWINDOW)
|
|||
|
|
{
|
|||
|
|
// get a pointer to the docking pane being shown.
|
|||
|
|
CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;
|
|||
|
|
|
|||
|
|
if (!pPane->IsValid())
|
|||
|
|
{
|
|||
|
|
CWnd* pWnd = NULL;
|
|||
|
|
if (m_mapPanes.Lookup(pPane->GetID(), pWnd))
|
|||
|
|
{
|
|||
|
|
pPane->Attach(pWnd);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return TRUE; // handled
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (wParam == XTP_DPN_CLOSEPANE)
|
|||
|
|
{
|
|||
|
|
CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;
|
|||
|
|
|
|||
|
|
CWnd* pWnd =NULL;
|
|||
|
|
|
|||
|
|
if (!m_mapPanes.Lookup(pPane->GetID(), pWnd))
|
|||
|
|
return FALSE;
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return FALSE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CWnd *CMainFrame::GetPaneFrame( int nID )
|
|||
|
|
{
|
|||
|
|
if( XTPDockingPaneManager() == NULL ) return NULL;
|
|||
|
|
if( XTPDockingPaneManager()->GetSite() == NULL ) return NULL;
|
|||
|
|
CXTPDockingPane* pPane = XTPDockingPaneManager()->FindPane( nID );
|
|||
|
|
if( pPane == NULL ) return NULL;
|
|||
|
|
|
|||
|
|
CWnd *pWnd = NULL;
|
|||
|
|
if (!m_mapPanes.Lookup(pPane->GetID(), pWnd) ) return NULL;
|
|||
|
|
|
|||
|
|
CFrameWnd* pFrame = DYNAMIC_DOWNCAST(CFrameWnd, pWnd);
|
|||
|
|
return (CWnd*)pFrame->GetWindow( GW_CHILD );
|
|||
|
|
// return pWnd;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int CMainFrame::GetFocusPaneID()
|
|||
|
|
{
|
|||
|
|
int nCount = sizeof(g_PaneList) / sizeof(PaneCreateStruct);
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
CXTPDockingPane* pPane = XTPDockingPaneManager()->FindPane( g_PaneList[i].nPaneID );
|
|||
|
|
if( pPane->IsFocus() ) return g_PaneList[i].nPaneID;
|
|||
|
|
}
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnDestroy()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CXTPFrameWnd::OnDestroy();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnClose()
|
|||
|
|
{
|
|||
|
|
#ifndef _DEBUG
|
|||
|
|
SaveCommandBars(_T("EtWorldPainterCommandBars"));
|
|||
|
|
CXTPDockingPaneLayout layoutNormal(&m_paneManager);
|
|||
|
|
m_paneManager.GetLayout(&layoutNormal);
|
|||
|
|
layoutNormal.Save(_T("EtWorldPainterLayout"));
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
if( CGlobalValue::GetInstance().CheckSaveMessage( GetSafeHwnd(), true ) == false ) return;
|
|||
|
|
/*
|
|||
|
|
CEtWorldPainterView *pView = (CEtWorldPainterView *)CGlobalValue::GetInstance().m_pParentView;
|
|||
|
|
pView->SelectTabView(0);
|
|||
|
|
Sleep(1000);
|
|||
|
|
*/
|
|||
|
|
CWnd *pWnd = GetPaneWnd( SKINMNG_PANE );
|
|||
|
|
((CSkinManagerPaneView*)pWnd)->KillThread();
|
|||
|
|
|
|||
|
|
pWnd = GetPaneWnd( SOUNDMNG_PANE );
|
|||
|
|
((CSoundManagerPaneView*)pWnd)->KillThread();
|
|||
|
|
|
|||
|
|
pWnd = GetPaneWnd( TILEMNG_PANE );
|
|||
|
|
((CTileManagerPaneView*)pWnd)->KillThread();
|
|||
|
|
|
|||
|
|
CFileServer::GetInstance().Disconnect();
|
|||
|
|
|
|||
|
|
CXTPFrameWnd::OnClose();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateProjectConnect(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
pCmdUI->Enable( !CFileServer::GetInstance().IsConnect() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateProjectDisconnect(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
pCmdUI->Enable( CFileServer::GetInstance().IsConnect() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateProjectSave(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
bool bEnable = true;
|
|||
|
|
if( CGlobalValue::GetInstance().m_bModify ) {
|
|||
|
|
if( CGlobalValue::GetInstance().m_nVecModifyTabList.size() == 0 ) bEnable = false;
|
|||
|
|
else if( CGlobalValue::GetInstance().m_nVecModifyTabList.size() == 1 &&
|
|||
|
|
CGlobalValue::GetInstance().m_nVecModifyTabList[0] == 0 ) bEnable = false;
|
|||
|
|
}
|
|||
|
|
else bEnable = false;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateProjectSetting(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
pCmdUI->Enable( !CFileServer::GetInstance().IsConnect() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CActionCommander *CMainFrame::GetCurActionCmd()
|
|||
|
|
{
|
|||
|
|
CActionCommander *pCommander = NULL;
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView ) {
|
|||
|
|
case 0: break;
|
|||
|
|
case CGlobalValue::BRUSH: pCommander = &s_BrushActionCommander; break;
|
|||
|
|
case CGlobalValue::PROP: pCommander = &s_PropActionCommander; break;
|
|||
|
|
case CGlobalValue::NAVIGATION: pCommander = &s_NaviActionCommander; break;
|
|||
|
|
case CGlobalValue::SOUND: pCommander = &s_SoundActionCommander; break;
|
|||
|
|
case CGlobalValue::EVENT: pCommander = &s_EventActionCommander; break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return pCommander;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateUndo(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) pCmdUI->Enable( FALSE );
|
|||
|
|
else {
|
|||
|
|
pCmdUI->Enable( pCommander->IsCanUndo() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateRedo(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) pCmdUI->Enable( FALSE );
|
|||
|
|
else {
|
|||
|
|
pCmdUI->Enable( pCommander->IsCanRedo() );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUndo(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
|
{
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
|
|||
|
|
int nCount = 0;
|
|||
|
|
if( pNMHDR == NULL ) nCount = 1;
|
|||
|
|
else {
|
|||
|
|
if (((NMXTPCONTROL*)pNMHDR)->pControl->GetType() == xtpControlSplitButtonPopup) nCount = 1;
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if (pControlListBox) nCount = pControlListBox->GetListCtrl()->GetSelCount();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
if( pCommander->Undo() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnRedo(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
|
{
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
|
|||
|
|
int nCount = 0;
|
|||
|
|
if( pNMHDR == NULL ) nCount = 1;
|
|||
|
|
else {
|
|||
|
|
if (((NMXTPCONTROL*)pNMHDR)->pControl->GetType() == xtpControlSplitButtonPopup) nCount = 1;
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if (pControlListBox) nCount = pControlListBox->GetListCtrl()->GetSelCount();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
if( pCommander->Redo() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUndoSelChange(NMHDR* pNMHDR, LRESULT* pRes)
|
|||
|
|
{
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if (pControlListBox)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|||
|
|
if (pInfo)
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
str.Format(_T("Undo %i Actions"), pControlListBox->GetListCtrl()->GetSelCount());
|
|||
|
|
pInfo->SetCaption(str);
|
|||
|
|
pInfo->DelayRedrawParent();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
*pRes = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUndoPoup(NMHDR* pNMHDR, LRESULT* pRes)
|
|||
|
|
{
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if( pControlListBox ) {
|
|||
|
|
CListBox* pListBox = pControlListBox->GetListCtrl();
|
|||
|
|
pListBox->ResetContent();
|
|||
|
|
|
|||
|
|
int nCount = pCommander->GetUndoCount();
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
pListBox->AddString( pCommander->GetUndoDesc(i) );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|||
|
|
if (pInfo)
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
pInfo->SetCaption(_T("Undo 0 Actions"));
|
|||
|
|
pInfo->DelayRedrawParent();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
*pRes = 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnRedoSelChange(NMHDR* pNMHDR, LRESULT* pRes)
|
|||
|
|
{
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if (pControlListBox)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|||
|
|
if (pInfo)
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
str.Format(_T("Redo %i Actions"), pControlListBox->GetListCtrl()->GetSelCount());
|
|||
|
|
pInfo->SetCaption(str);
|
|||
|
|
pInfo->DelayRedrawParent();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
*pRes = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnRedoPoup(NMHDR* pNMHDR, LRESULT* pRes)
|
|||
|
|
{
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
|
|||
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|||
|
|
if( pControlListBox ) {
|
|||
|
|
CListBox* pListBox = pControlListBox->GetListCtrl();
|
|||
|
|
pListBox->ResetContent();
|
|||
|
|
|
|||
|
|
int nCount = pCommander->GetRedoCount();
|
|||
|
|
for( int i=0; i<nCount; i++ ) {
|
|||
|
|
pListBox->AddString( pCommander->GetRedoDesc(i) );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|||
|
|
if (pInfo)
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
pInfo->SetCaption(_T("Redo 0 Actions"));
|
|||
|
|
pInfo->DelayRedrawParent();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
*pRes = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
CXTPControlStatic* CMainFrame::FindInfoControl(CXTPControlListBox* pControlListBox)
|
|||
|
|
{
|
|||
|
|
CXTPCommandBar* pCommandBar = pControlListBox->GetParent();
|
|||
|
|
|
|||
|
|
for (int i = 0; i < pCommandBar->GetControls()->GetCount(); i++)
|
|||
|
|
{
|
|||
|
|
CXTPControlStatic* pControlStatic = DYNAMIC_DOWNCAST(CXTPControlStatic, pCommandBar->GetControl(i));
|
|||
|
|
if (pControlStatic && pControlStatic->GetID() == pControlListBox->GetID())
|
|||
|
|
{
|
|||
|
|
return pControlStatic;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return NULL;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Accel <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD> ON_MESSAGE <20><> XTP <20><> ON_XTP_EXECUTE <20><> ȣȯ<C8A3>Ǽ<EFBFBD> <20><><EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0> <20>ƴ<EFBFBD> <20><><EFBFBD>쿣 <20><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20>ߺ<EFBFBD><DFBA>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܼ<EFBFBD>
|
|||
|
|
// Accel <20><> ID <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>!!
|
|||
|
|
void CMainFrame::OnUndoAccel()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
if( !pCommander->IsCanUndo() ) return;
|
|||
|
|
OnUndo( NULL, NULL );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnRedoAccel()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CActionCommander *pCommander = GetCurActionCmd();
|
|||
|
|
if( pCommander == NULL ) return;
|
|||
|
|
if( !pCommander->IsCanRedo() ) return;
|
|||
|
|
OnRedo( NULL, NULL );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateSimulRun(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
pCmdUI->SetCheck( CGlobalValue::GetInstance().m_bSimulation );
|
|||
|
|
pCmdUI->Enable( CGlobalValue::GetInstance().m_bCanSimulation );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateSimulStop(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
if( CGlobalValue::GetInstance().m_bCanSimulation == true && CGlobalValue::GetInstance().m_bSimulation == true ) {
|
|||
|
|
pCmdUI->SetCheck( FALSE );
|
|||
|
|
pCmdUI->Enable( TRUE );
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
pCmdUI->SetCheck( TRUE );
|
|||
|
|
pCmdUI->Enable( FALSE );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnSimulRun()
|
|||
|
|
{
|
|||
|
|
CTdDummyActor::GetInstance().BeginActor();
|
|||
|
|
// if( CGlobalValue::GetInstance().m_bSimulation == true ) return;
|
|||
|
|
// CGlobalValue::GetInstance().m_bSimulation = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnSimulStop()
|
|||
|
|
{
|
|||
|
|
CTdDummyActor::GetInstance().EndActor();
|
|||
|
|
// CGlobalValue::GetInstance().m_bSimulation = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnGridCreategrid()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CFileServer::GetInstance().UpdateLoginList();
|
|||
|
|
if( CFileServer::GetInstance().GetLoginUserList()->size() > 0 ) {
|
|||
|
|
if( MessageBox( "<EFBFBD><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>鷡?", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_YESNO ) == IDNO )
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CCreateGridDlg Dlg;
|
|||
|
|
Dlg.DoModal();
|
|||
|
|
|
|||
|
|
CWnd *pWnd = GetPaneWnd( GRID_PANE );
|
|||
|
|
if( pWnd ) SendMessage( UM_REFRESH_PANE_VIEW );
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnGridDeletegrid()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CFileServer::GetInstance().UpdateLoginList();
|
|||
|
|
if( CFileServer::GetInstance().GetLoginUserList()->size() > 0 ) {
|
|||
|
|
if( MessageBox( "<EFBFBD><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>?", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_YESNO ) == IDNO )
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CDeleteGridDlg Dlg;
|
|||
|
|
if( Dlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
CWnd *pWnd = GetPaneWnd( GRID_PANE );
|
|||
|
|
if( pWnd ) SendMessage( UM_REFRESH_PANE_VIEW );
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnGridMovegrid()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CFileServer::GetInstance().UpdateLoginList();
|
|||
|
|
if( CFileServer::GetInstance().GetLoginUserList()->size() > 0 ) {
|
|||
|
|
if( MessageBox( "<EFBFBD><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ѹ<EFBFBD> <20>ű淡?", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_YESNO ) == IDNO )
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CMoveToGridDlg Dlg;
|
|||
|
|
if( Dlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
CWnd *pWnd = GetPaneWnd( GRID_PANE );
|
|||
|
|
if( pWnd ) SendMessage( UM_REFRESH_PANE_VIEW );
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateGridCreategrid(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView != CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateGridDeletegrid(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView != CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateGridMovegrid(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView != CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnPropertiesDirectorysetting()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CPropertiesDlg Dlg;
|
|||
|
|
Dlg.DoModal();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdatePropertiesEventSetting(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView != CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnPropertiesEventSetting()
|
|||
|
|
{
|
|||
|
|
if( CEventSignalManager::GetInstance().IsCanCheckOut() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( CEventSignalManager::GetInstance().CheckOut() == false ) {
|
|||
|
|
MessageBox( "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
CCreateEventAreaDlg Dlg;
|
|||
|
|
Dlg.SetCurrentView( CEventEditWizardCommon::SELECT_EDIT_TYPE );
|
|||
|
|
|
|||
|
|
if( Dlg.DoModal() == IDOK ) {
|
|||
|
|
if( CEventSignalManager::GetInstance().Save() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>̺<EFBFBD>Ʈ <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( CEventSignalManager::GetInstance().CheckIn() == false ) {
|
|||
|
|
MessageBox( "üũ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::SetFocus( int nID )
|
|||
|
|
{
|
|||
|
|
CXTPDockingPane* pPane = XTPDockingPaneManager()->FindPane( nID );
|
|||
|
|
XTPDockingPaneManager()->ShowPane( pPane );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
|
|||
|
|
{
|
|||
|
|
if( nChar == VK_ESCAPE ) {
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateToolsMakeMinimap(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView == CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToolsMakeMinimap()
|
|||
|
|
{
|
|||
|
|
CMakeMinimapDlg Dlg(this);
|
|||
|
|
if( Dlg.DoModal() != IDOK ) return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateToolsSaveCurrentLightmap(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = FALSE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() )
|
|||
|
|
{
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView == CGlobalValue::PROP )
|
|||
|
|
{
|
|||
|
|
bEnable = TRUE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToolsSaveCurrentLightmap()
|
|||
|
|
{
|
|||
|
|
SectorIndex Sector = CGlobalValue::GetInstance().m_SelectGrid;
|
|||
|
|
if( Sector == -1 ) return;
|
|||
|
|
CTEtWorldSector *pSector = CTEtWorld::GetInstance().GetSector( Sector );
|
|||
|
|
if( !pSector ) return;
|
|||
|
|
pSector->SaveLightmap();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdatePropertiesPropPropertySetting(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView != CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnPropertiesPropPropertySetting()
|
|||
|
|
{
|
|||
|
|
if( CPropSignalManager::GetInstance().IsCanCheckOut() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( CPropSignalManager::GetInstance().CheckOut() == false ) {
|
|||
|
|
MessageBox( "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
CCreatePropPropertyDlg Dlg(this);
|
|||
|
|
Dlg.SetCurrentView( CPropEditWizardCommon::SELECT_EDIT_TYPE );
|
|||
|
|
|
|||
|
|
if( Dlg.DoModal() == IDOK ) {
|
|||
|
|
if( CPropSignalManager::GetInstance().Save() == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>̺<EFBFBD>Ʈ <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( CPropSignalManager::GetInstance().CheckIn() == false ) {
|
|||
|
|
MessageBox( "üũ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateToolsExportTerrainto3dsmaxscriptdata(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView == CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateToolsExportPropInfoto3dsmaxscriptdata(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
BOOL bEnable = TRUE;
|
|||
|
|
if( CFileServer::GetInstance().IsConnect() == false ) bEnable = FALSE;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView == CGlobalValue::GRID ) bEnable = FALSE;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToolsExportTerrainto3dsmaxscriptdata()
|
|||
|
|
{
|
|||
|
|
SectorIndex Sector = CGlobalValue::GetInstance().m_SelectGrid;
|
|||
|
|
if( Sector == -1 ) return;
|
|||
|
|
CTEtWorldSector *pSector = CTEtWorld::GetInstance().GetSector( Sector );
|
|||
|
|
if( !pSector ) return;
|
|||
|
|
|
|||
|
|
CString szFileList;
|
|||
|
|
TCHAR szFilter[] = _T( "3ds max Script File(*.ms)|*.ms||All Files (*.*)|*.*||" );
|
|||
|
|
|
|||
|
|
CFileDialog Dlg( FALSE, _T("ms"), _T("*.ms"), OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_ENABLESIZING, szFilter );
|
|||
|
|
if( Dlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
bool bLoad = false;
|
|||
|
|
|
|||
|
|
if( !pSector->IsLoaded() || !pSector->IsExistRWLevel( CTEtWorldSector::SRL_TERRAIN ) ) {
|
|||
|
|
pSector->LoadSector( CTEtWorldSector::SRL_TERRAIN );
|
|||
|
|
bLoad = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( pSector->ExportTerrainToMaxScript( Dlg.GetPathName() ) == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( bLoad ) {
|
|||
|
|
pSector->FreeSector( CTEtWorldSector::SRL_TERRAIN );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToolsExportPropInfoto3dsmaxscriptdata()
|
|||
|
|
{
|
|||
|
|
SectorIndex Sector = CGlobalValue::GetInstance().m_SelectGrid;
|
|||
|
|
if( Sector == -1 ) return;
|
|||
|
|
CTEtWorldSector *pSector = CTEtWorld::GetInstance().GetSector( Sector );
|
|||
|
|
if( !pSector ) return;
|
|||
|
|
|
|||
|
|
CExportPropInfoDlg exportdlg;
|
|||
|
|
if( exportdlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
CString szFileList;
|
|||
|
|
TCHAR szFilter[] = _T( "3ds max Script File(*.ms)|*.ms||All Files (*.*)|*.*||" );
|
|||
|
|
|
|||
|
|
CFileDialog Dlg( FALSE, _T("ms"), _T("*.ms"), OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_ENABLESIZING, szFilter );
|
|||
|
|
if( Dlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
|
|||
|
|
bool bLoad = false;
|
|||
|
|
|
|||
|
|
if( !pSector->IsLoaded() || !pSector->IsExistRWLevel( CTEtWorldSector::SRL_PROP ) ) {
|
|||
|
|
pSector->PropInfoFile( CTEtWorldSector::IFT_READ, true );
|
|||
|
|
bLoad = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CString szStr = exportdlg.GetMaxFolder();
|
|||
|
|
if( *szStr.GetBuffer() + szStr.GetLength() - 1 != '\\' ) szStr += "\\";
|
|||
|
|
|
|||
|
|
if( pSector->ExportPropInfoToMaxScript( Dlg.GetPathName(), szStr.GetBuffer() ) == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( bLoad ) {
|
|||
|
|
pSector->FreeSector( CTEtWorldSector::SRL_TERRAIN );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToggleSimul()
|
|||
|
|
{
|
|||
|
|
if( CGlobalValue::GetInstance().m_bSimulation )
|
|||
|
|
CTdDummyActor::GetInstance().EndActor();
|
|||
|
|
else CTdDummyActor::GetInstance().BeginActor();
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnIncreaseBrushSize()
|
|||
|
|
{
|
|||
|
|
CGlobalValue::GetInstance().m_nBrushDiameter++;
|
|||
|
|
|
|||
|
|
CWnd *pWnd = GetPaneWnd( BRUSH_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_REFRESH_PANE_VIEW );
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnDecreaseBrushSize()
|
|||
|
|
{
|
|||
|
|
CGlobalValue::GetInstance().m_nBrushDiameter--;
|
|||
|
|
|
|||
|
|
CWnd *pWnd = GetPaneWnd( BRUSH_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_REFRESH_PANE_VIEW );
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnAttr1()
|
|||
|
|
{
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView ) {
|
|||
|
|
case CGlobalValue::BRUSH:
|
|||
|
|
{
|
|||
|
|
CWnd *pWnd = GetPaneWnd( LAYER_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_LAYERPANE_CHANGE_LAYER, 1 );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CGlobalValue::NAVIGATION:
|
|||
|
|
CGlobalValue::GetInstance().m_cSelectAttribute = 0x01;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnAttr2()
|
|||
|
|
{
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView ) {
|
|||
|
|
case CGlobalValue::BRUSH:
|
|||
|
|
{
|
|||
|
|
CWnd *pWnd = GetPaneWnd( LAYER_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_LAYERPANE_CHANGE_LAYER, 2 );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CGlobalValue::NAVIGATION:
|
|||
|
|
CGlobalValue::GetInstance().m_cSelectAttribute = 0x02;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnAttr3()
|
|||
|
|
{
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView ) {
|
|||
|
|
case CGlobalValue::BRUSH:
|
|||
|
|
{
|
|||
|
|
CWnd *pWnd = GetPaneWnd( LAYER_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_LAYERPANE_CHANGE_LAYER, 3 );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CGlobalValue::NAVIGATION:
|
|||
|
|
CGlobalValue::GetInstance().m_cSelectAttribute = 0x04;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnAttr4()
|
|||
|
|
{
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView ) {
|
|||
|
|
case CGlobalValue::BRUSH:
|
|||
|
|
{
|
|||
|
|
CWnd *pWnd = GetPaneWnd( LAYER_PANE );
|
|||
|
|
if( pWnd ) pWnd->SendMessage( UM_LAYERPANE_CHANGE_LAYER, 4 );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CGlobalValue::NAVIGATION:
|
|||
|
|
CGlobalValue::GetInstance().m_cSelectAttribute = 0x08;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnToggleTopView()
|
|||
|
|
{
|
|||
|
|
if( !CRenderBase::IsActive() ) return;
|
|||
|
|
CRenderBase::GetInstance().ToggleCameraTopView();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateToggleTopView(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
bool bEnable = true;
|
|||
|
|
if( !CFileServer::GetInstance().IsConnect() ) bEnable = false;
|
|||
|
|
if( CGlobalValue::GetInstance().m_nActiveView == 0 ) bEnable = false;
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CMainFrame::OnViewCameraLight()
|
|||
|
|
{
|
|||
|
|
CTEtWorldSector::ms_IsFiltering = !CTEtWorldSector::ms_IsFiltering;
|
|||
|
|
CTEtWorldSector::InitFilteringNames();
|
|||
|
|
|
|||
|
|
if (CTEtWorldSector::ms_IsFiltering)
|
|||
|
|
{
|
|||
|
|
CTEtWorldSector::AddPropNameForFiltering("Light.skn");
|
|||
|
|
CTEtWorldSector::AddPropNameForFiltering("Camera.skn");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SectorIndex Sector = CGlobalValue::GetInstance().m_SelectGrid;
|
|||
|
|
if( Sector == -1 ) return;
|
|||
|
|
CTEtWorldSector *pSector = CTEtWorld::GetInstance().GetSector( Sector );
|
|||
|
|
if( !pSector ) return;
|
|||
|
|
|
|||
|
|
|
|||
|
|
switch( CGlobalValue::GetInstance().m_nActiveView )
|
|||
|
|
{
|
|||
|
|
case CGlobalValue::PROP:
|
|||
|
|
case CGlobalValue::WATER:
|
|||
|
|
case CGlobalValue::NAVIGATION:
|
|||
|
|
case CGlobalValue::EVENT:
|
|||
|
|
case CGlobalValue::SOUND:
|
|||
|
|
case CGlobalValue::TRIGGER:
|
|||
|
|
case CGlobalValue::RDUNGEON:
|
|||
|
|
{
|
|||
|
|
pSector->ShowProp(true);
|
|||
|
|
CGlobalValue::GetInstance().RefreshRender();
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CMainFrame::OnUpdateViewCameraLight(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
bool bEnable = true;
|
|||
|
|
|
|||
|
|
SectorIndex Sector = CGlobalValue::GetInstance().m_SelectGrid;
|
|||
|
|
if( Sector == -1 ) bEnable = false;
|
|||
|
|
CTEtWorldSector *pSector = CTEtWorld::GetInstance().GetSector( Sector );
|
|||
|
|
if( !pSector ) bEnable = false;
|
|||
|
|
|
|||
|
|
// if (CGlobalValue::PROP != CGlobalValue::GetInstance().m_nActiveView )
|
|||
|
|
// bEnable = false;
|
|||
|
|
|
|||
|
|
pCmdUI->Enable( bEnable );
|
|||
|
|
pCmdUI->SetCheck( CTEtWorldSector::ms_IsFiltering );
|
|||
|
|
}
|