DragonNest/Client/EtActionTool/MainFrm.cpp

747 lines
21 KiB
C++
Raw Normal View History

2024-12-19 09:48:26 +08:00
// MainFrm.cpp : CMainFrame Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//
#include "stdafx.h"
#include "EtActionTool.h"
#include "MainFrm.h"
#include "DockingPaneAdobeTheme.h"
#include "PaneDefine.h"
#include "InputDevice.h"
#include "MiniSliderEx.h"
#include "GlobalValue.h"
#include "ActionElement.h"
#include "ModifyEventDlg.h"
#include "SignalManager.h"
#include "ActionObject.h"
#include "PropertiesDlg.h"
#include "EtResourceMng.h"
#include "RenderBase.h"
#include "UserMessage.h"
#include "EventPaneView.h"
#include "SelectWeaponDlg.h"
#include "CopyAndPasteSignalDlg.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_XTP_CREATECONTROL()
ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
ON_COMMAND(ID_PLAY_REWIND, &CMainFrame::OnPlayRewind)
ON_COMMAND(ID_PLAY_PREV, &CMainFrame::OnPlayPrev)
ON_COMMAND(ID_PLAY_PLAY, &CMainFrame::OnPlayPlay)
ON_COMMAND(ID_PLAY_NEXT, &CMainFrame::OnPlayNext)
ON_COMMAND(ID_PLAY_FOWARD, &CMainFrame::OnPlayFoward)
ON_COMMAND(ID_PLAY_FRAME, &CMainFrame::OnPlayFrame)
ON_COMMAND(ID_PLAY_LOOP, &CMainFrame::OnPlayLoop)
ON_MESSAGE( UM_MINISLIDER_UPDATE_POS, OnPlaySliderUpdatePos )
ON_UPDATE_COMMAND_UI(ID_PLAY_REWIND, &CMainFrame::OnUpdatePlayRewind)
ON_UPDATE_COMMAND_UI(ID_PLAY_PREV, &CMainFrame::OnUpdatePlayPrev)
ON_UPDATE_COMMAND_UI(ID_PLAY_PLAY, &CMainFrame::OnUpdatePlayPlay)
ON_UPDATE_COMMAND_UI(ID_PLAY_NEXT, &CMainFrame::OnUpdatePlayNext)
ON_UPDATE_COMMAND_UI(ID_PLAY_FOWARD, &CMainFrame::OnUpdatePlayFoward)
ON_UPDATE_COMMAND_UI(ID_PLAY_FRAME, &CMainFrame::OnUpdatePlayFrame)
ON_UPDATE_COMMAND_UI(ID_PLAY_SLIDER, &CMainFrame::OnUpdatePlaySlider)
ON_UPDATE_COMMAND_UI(ID_PLAY_LOOP, &CMainFrame::OnUpdatePlayLoop)
ON_WM_DESTROY()
ON_WM_CLOSE()
ON_COMMAND(ID_SIGNAL_EDIT, &CMainFrame::OnSignalEdit)
ON_COMMAND(ID_PROPERTIES, &CMainFrame::OnProperties)
ON_COMMAND(ID_TOGGLE_GRID, &CMainFrame::OnToggleGrid)
ON_COMMAND(ID_LESSPRIORITY, &CMainFrame::OnLesspriority)
ON_UPDATE_COMMAND_UI(ID_LESSPRIORITY, &CMainFrame::OnUpdateLesspriority)
ON_COMMAND(ID_PLAY_RELOAD, &CMainFrame::OnPlayReload)
ON_UPDATE_COMMAND_UI(ID_PLAY_RELOAD, &CMainFrame::OnUpdatePlayReload)
ON_COMMAND(ID_EDIT_COPY, &CMainFrame::OnEditCopy)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, &CMainFrame::OnUpdateEditCopy)
ON_COMMAND(ID_EDIT_PASTE, &CMainFrame::OnEditPaste)
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, &CMainFrame::OnUpdateEditPaste)
ON_COMMAND(ID_EDIT_REMOVE, &CMainFrame::OnEditRemove)
ON_UPDATE_COMMAND_UI(ID_EDIT_REMOVE, &CMainFrame::OnUpdateEditRemove)
ON_COMMAND(ID_CONFIG_SELECT_WEAPON, &CMainFrame::OnConfigSelectWeapon)
ON_UPDATE_COMMAND_UI(ID_CONFIG_SELECT_WEAPON, &CMainFrame::OnUpdateConfigSelectWeapon)
ON_COMMAND(ID_CAPTURE, &CMainFrame::OnCapture)
ON_COMMAND(ID_HIT_SIGNAL_SHOW, &CMainFrame::OnHitSignalShow)
ON_UPDATE_COMMAND_UI(ID_HIT_SIGNAL_SHOW, &CMainFrame::OnUpdateHitSignalShow)
ON_COMMAND(ID_COPY_PASTE_SIGNAL_MENU, &CMainFrame::OnCopyPasteSignal)
ON_UPDATE_COMMAND_UI(ID_COPY_PASTE_SIGNAL_MENU, &CMainFrame::OnUpdateCopyPasteSignal)
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_bLoopFlag = false;
m_pResMng = new CEtResourceMng( false );
}
CMainFrame::~CMainFrame()
{
SAFE_DELETE( m_pResMng );
}
int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
{
switch( lpCreateControl->nID ) {
case ID_PLAY_FRAME:
{
CXTPControlEdit* pControl = (CXTPControlEdit* )CXTPControlEdit::CreateObject();
pControl->SetEditStyle( ES_WANTRETURN | ES_NUMBER | ES_RIGHT );
pControl->SetWidth(50);
CString szStr;
szStr.Format( "%d", CGlobalValue::GetInstance().GetFPS() );
pControl->SetEditText( szStr );
lpCreateControl->pControl = pControl;
return TRUE;
}
break;
case ID_PLAY_SLIDER:
{
m_PlaySlider.Create( NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, 0, 100, 10), this, ID_PLAY_SLIDER );
m_PlaySlider.SetRange( 1, 120 );
m_PlaySlider.SetPos( CGlobalValue::GetInstance().GetFPS() );
m_PlaySlider.SetSendRootParent( 2 );
CXTPControlCustom* pControl = CXTPControlCustom::CreateControlCustom(&m_PlaySlider);
pControl->SetVerticalPositionOption(xtpVerticalButton);
pControl->SetFlags(xtpFlagManualUpdate);
lpCreateControl->pControl = pControl;
return TRUE;
}
break;
}
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;
// RichEdit <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
AfxInitRichEdit();
// 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, *pPlayBar, *pTempBar;
if (!(pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop)) ||
!pCommandBar->LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
if (!(pPlayBar = (CXTPToolBar*)pCommandBars->Add(_T("PlayControl"), xtpBarTop)) ||
!pPlayBar->LoadToolBar(IDR_PLAY_TOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
if (!(pTempBar = (CXTPToolBar*)pCommandBars->Add(_T("Temp"), xtpBarTop)) ||
!pTempBar->LoadToolBar(IDR_TEMP_TOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
pCommandBars->Remove( pTempBar );
DockRightOf( pPlayBar, pCommandBar );
XTPDockingPaneManager()->InstallDockingPanes(this);
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("EtActionToolCommandBars"));
CXTPDockingPaneLayout layoutNormal(&m_paneManager);
if (layoutNormal.Load(_T("EtActionToolLayout")))
m_paneManager.SetLayout(&layoutNormal);
#endif //_DEBUG
for( int i=0; i<nCount; i++ ) {
if( g_PaneList[i].bShow == FALSE )
XTPDockingPaneManager()->ClosePane( g_PaneList[i].pThis );
}
CInputDevice::GetInstance().Initialize( m_hWnd, CInputDevice::MOUSE|CInputDevice::KEYBOARD );
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::OnPlayRewind()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
pElement->SetCurFrame( 0.f );
}
void CMainFrame::OnPlayPrev()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
if( !pElement->IsPause() ) pElement->Pause();
float fFrame = pElement->GetCurFrame() - 1.f;
if( fFrame < 0.f ) fFrame = 0.f;
pElement->SetCurFrame( fFrame );
}
void CMainFrame::OnPlayPlay()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
if( pElement->IsPause() ) {
pElement->Resume();
if( pElement->IsStop() ) pElement->Play( m_bLoopFlag ? INT_MAX : 1, pElement->GetCurFrame() );
}
else if( pElement->IsStop() ) pElement->Play( m_bLoopFlag ? INT_MAX : 1 );
else pElement->Pause();
}
void CMainFrame::OnPlayNext()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
if( !pElement->IsPause() ) pElement->Pause();
float fFrame = pElement->GetCurFrame() + 1.f;
if( fFrame >= (float)pElement->GetLength() ) fFrame = (float)pElement->GetLength() ;
pElement->SetCurFrame( fFrame );
}
void CMainFrame::OnPlayFoward()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
pElement->SetCurFrame( (float)pElement->GetLength() );
}
void CMainFrame::OnPlayFrame()
{
CXTPCommandBars* pCommandBars = GetCommandBars();
CXTPCommandBar *pPlayBar = pCommandBars->GetAt( 2 );
CXTPControl *pControl = pPlayBar->GetControls()->FindControl( xtpControlEdit, ID_PLAY_FRAME, TRUE, FALSE );
if( pControl ) {
CString szStr = ((CXTPControlEdit*)pControl)->GetEditText();
int nValue = atoi(szStr);
if( nValue < m_PlaySlider.GetRangeMin() ) nValue = m_PlaySlider.GetRangeMin();
if( nValue > m_PlaySlider.GetRangeMax() ) nValue = m_PlaySlider.GetRangeMax();
szStr.Format( "%d", nValue );
((CXTPControlEdit*)pControl)->SetEditText( szStr );
CGlobalValue::GetInstance().SetFPS( nValue );
m_PlaySlider.SetPos( nValue );
}
}
void CMainFrame::OnPlayLoop()
{
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
m_bLoopFlag = !m_bLoopFlag;
pElement->SetLoop( m_bLoopFlag );
}
void CMainFrame::OnUpdatePlayRewind(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnUpdatePlayPrev(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnUpdatePlayPlay(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
CXTPCommandBars* pCommandBars = GetCommandBars();
CXTPCommandBar *pPlayBar = pCommandBars->GetAt( 2 );
CXTPControl *pControl = pPlayBar->GetControls()->FindControl( xtpControlError, ID_PLAY_PLAY, TRUE, FALSE );
if( pControl ) {
int nIconID = 0;
if( pElement->IsPause() || pElement->IsStop() ) nIconID = ID_PLAY_PLAY;
else nIconID = ID_PLAY_RESUME;
if( pControl->GetIconId() != nIconID )
pControl->SetIconId(nIconID);
}
}
void CMainFrame::OnUpdatePlayNext(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnUpdatePlayFoward(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnUpdatePlayFrame(CCmdUI *pCmdUI)
{
}
void CMainFrame::OnUpdatePlaySlider(CCmdUI *pCmdUI)
{
}
void CMainFrame::OnUpdatePlayLoop(CCmdUI *pCmdUI)
{
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
CXTPCommandBars* pCommandBars = GetCommandBars();
CXTPCommandBar *pPlayBar = pCommandBars->GetAt( 2 );
CXTPControl *pControl = pPlayBar->GetControls()->FindControl( xtpControlError, ID_PLAY_LOOP, TRUE, FALSE );
if( pControl ) {
int nIconID = 0;
if( m_bLoopFlag ) nIconID = ID_PLAY_LOOP;
else nIconID = ID_PLAY_NOLOOP;
if( pControl->GetIconId() != nIconID )
pControl->SetIconId(nIconID);
}
}
LRESULT CMainFrame::OnPlaySliderUpdatePos( WPARAM wParam, LPARAM lParam )
{
CXTPCommandBars* pCommandBars = GetCommandBars();
CXTPCommandBar *pPlayBar = pCommandBars->GetAt( 2 );
CXTPControl *pControl = pPlayBar->GetControls()->FindControl( xtpControlEdit, ID_PLAY_FRAME, TRUE, FALSE );
if( pControl ) {
CString szStr;
szStr.Format( "%d", (int)lParam );
((CXTPControlEdit*)pControl)->SetEditText( szStr );
CGlobalValue::GetInstance().SetFPS( (int)lParam );
}
return S_OK;
}
void CMainFrame::OnDestroy()
{
CXTPFrameWnd::OnDestroy();
// TODO: <20><><EFBFBD><20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
void CMainFrame::OnClose()
{
#ifndef _DEBUG
SaveCommandBars(_T("EtActionToolCommandBars"));
CXTPDockingPaneLayout layoutNormal(&m_paneManager);
m_paneManager.GetLayout(&layoutNormal);
layoutNormal.Save(_T("EtActionToolLayout"));
#endif //_DEBUG
CXTPFrameWnd::OnClose();
}
void CMainFrame::OnSignalEdit()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
if( CSignalManager::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( CSignalManager::GetInstance().CheckOut() == false ) {
MessageBox( "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
return;
}
CSignalManager::GetInstance().Refresh();
CModifyEventDlg Dlg;
Dlg.SetCurrentView( CWizardCommon::SELECT_EDIT_TYPE );
CString szSkinName;
if( CGlobalValue::GetInstance().IsOpenAction() ) {
CActionObject *pObject = (CActionObject*)CGlobalValue::GetInstance().GetRootObject();
szSkinName = pObject->GetSkinName();
CGlobalValue::GetInstance().SaveAction();
}
if( Dlg.DoModal() == IDOK ) {
CSignalManager::GetInstance().Save();
if( CGlobalValue::GetInstance().IsOpenAction() ) {
CGlobalValue::GetInstance().OpenAction( szSkinName );
}
}
if( CSignalManager::GetInstance().CheckIn() == false ) {
MessageBox( "üũ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
return;
}
}
void CMainFrame::OnProperties()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CPropertiesDlg Dlg;
Dlg.DoModal();
}
void CMainFrame::OnToggleGrid()
{
// TODO: Add your command handler code here
CRenderBase::GetInstance().ShowGrid( !CRenderBase::GetInstance().IsShowGrid() );
CRenderBase::GetInstance().ShowAxis( !CRenderBase::GetInstance().IsShowAxis() );
CWnd *pWnd = GetPaneWnd( PROPERTY_PANE );
if( pWnd ) pWnd->SendMessage( UM_REFRESH_PANE );
}
void CMainFrame::OnLesspriority()
{
// TODO: Add your command handler code here
CRenderBase::GetInstance().ChangePriority( !CRenderBase::GetInstance().IsLessPriority() );
}
void CMainFrame::OnUpdateLesspriority(CCmdUI *pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck( CRenderBase::GetInstance().IsLessPriority() );
}
void CMainFrame::OnPlayReload()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CActionElement *pElement = (CActionElement*)CGlobalValue::GetInstance().GetPlayObject();
if( !pElement ) return;
if( !pElement->IsPause() ) {
pElement->Pause();
}
pElement->ReloadSCR();
}
void CMainFrame::OnUpdatePlayReload(CCmdUI *pCmdUI)
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnEditCopy()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CEventPaneView *pPaneView = dynamic_cast<CEventPaneView*>(pWnd);
if( pPaneView ) pPaneView->OnEventpanecontextCopysignal();
}
}
void CMainFrame::OnUpdateEditCopy(CCmdUI *pCmdUI)
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CSequenceView *pSequenceView = dynamic_cast<CSequenceView*>(pWnd);
if( pSequenceView ) {
pCmdUI->Enable( pSequenceView->IsSelectedSignal() );
}
}
}
void CMainFrame::OnEditPaste()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CEventPaneView *pPaneView = dynamic_cast<CEventPaneView*>(pWnd);
if( pPaneView ) {
POINT pt;
::GetCursorPos(&pt);
pPaneView->ScreenToClient(&pt);
pPaneView->SetContextMousePos(pt);
pPaneView->OnEventpanecontextPaste();
}
}
}
void CMainFrame::OnUpdateEditPaste(CCmdUI *pCmdUI)
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
BOOL bCopyBuffer = FALSE;
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CEventPaneView *pPaneView = dynamic_cast<CEventPaneView*>(pWnd);
if( pPaneView ) {
POINT pt;
int nPos, nYOrder;
pPaneView->EnableUpdateAdditionalGridHeightCount( false );
pt = pPaneView->GetSelectEmptyMousePos();
BOOL bSelectEmpty = pPaneView->IsSelectEmpty();
BOOL bCalcItemPos = pPaneView->CalcSignalPos( pt.x, pt.y, nPos, nYOrder );
pCmdUI->Enable( bSelectEmpty && bCalcItemPos );
pPaneView->EnableUpdateAdditionalGridHeightCount( true );
}
}
}
void CMainFrame::OnEditRemove()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CEventPaneView *pPaneView = dynamic_cast<CEventPaneView*>(pWnd);
if( pPaneView ) pPaneView->OnEventpanecontextRemovesignal();
}
}
void CMainFrame::OnUpdateEditRemove(CCmdUI *pCmdUI)
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CWnd *pWnd = GetPaneWnd( EVENT_PANE );
if( pWnd ) {
CSequenceView *pSequenceView = dynamic_cast<CSequenceView*>(pWnd);
if( pSequenceView ) {
pCmdUI->Enable( pSequenceView->IsSelectedSignal() );
}
}
}
void CMainFrame::OnConfigSelectWeapon()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
CSelectWeaponDlg Dlg;
Dlg.DoModal();
}
void CMainFrame::OnUpdateConfigSelectWeapon(CCmdUI *pCmdUI)
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ UI ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
pCmdUI->Enable( CGlobalValue::GetInstance().IsCanPlayControl() );
}
void CMainFrame::OnCapture()
{
// TODO: Add your command handler code here
EternityEngine::CaptureScreen( "ActionTool" );
}
void CMainFrame::OnHitSignalShow()
{
CRenderBase::GetInstance().ChangeHitSignalShow( !CRenderBase::GetInstance().IsHitSignalShow() );
}
void CMainFrame::OnUpdateHitSignalShow(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck( CRenderBase::GetInstance().IsHitSignalShow() );
}
void CMainFrame::OnCopyPasteSignal()
{
CCopyAndPasteSignalDlg Dlg;
Dlg.DoModal();
}
void CMainFrame::OnUpdateCopyPasteSignal(CCmdUI *pCmdUI)
{
}