556 lines
No EOL
17 KiB
C++
556 lines
No EOL
17 KiB
C++
// MainFrm.cpp : implementation of the CMainFrame class
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "EtUI.h"
|
||
#include "EtUITool.h"
|
||
#include "DockingPaneAdobeTheme.h"
|
||
#include "MainFrm.h"
|
||
#include "EtUIToolDoc.h"
|
||
#include "EtUIToolView.h"
|
||
#include "PaneDefine.h"
|
||
#include "LayoutView.h"
|
||
#include "DummyView.h"
|
||
#include "GlobalValue.h"
|
||
#include "PropertiesDlg.h"
|
||
#include "../../Common/EtResManager/EtResourceMng.h"
|
||
#include "../../Common/EtStringManager/EtUIXML.h"
|
||
#include "EtUIMan.h"
|
||
#include "EtUIControl.h"
|
||
#include "FontSetDlg.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#endif
|
||
|
||
|
||
// CMainFrame
|
||
|
||
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
|
||
|
||
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
|
||
ON_WM_CREATE()
|
||
ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
|
||
ON_UPDATE_COMMAND_UI(ID_FILE_SAVEALLTEMPLATE, &CMainFrame::OnUpdateFileSavealltemplate)
|
||
ON_COMMAND(ID_FILE_SAVEALLTEMPLATE, &CMainFrame::OnFileSavealltemplate)
|
||
ON_COMMAND(ID_UI_SAVE, &CMainFrame::OnFileSave)
|
||
ON_COMMAND(ID_UI_SAVE_AS, &CMainFrame::OnFileSaveAs)
|
||
ON_COMMAND(ID_UI_OPEN, &CMainFrame::OnFileOpen)
|
||
ON_COMMAND(ID_UI_NEW, &CMainFrame::OnFileNew)
|
||
ON_COMMAND(ID_FILE_SETPROPERTYFOLDER, &CMainFrame::OnFileSetpropertyfolder)
|
||
ON_COMMAND(ID_FORMAT_SETFONT, &CMainFrame::OnFormatSetfont)
|
||
ON_COMMAND(ID_FILE_LOAD_XML, &CMainFrame::OnFileLoadXml)
|
||
ON_COMMAND(ID_FILE_CREATE_INI_FILE, &CMainFrame::OnFileCreateIniFile)
|
||
ON_UPDATE_COMMAND_UI(ID_FILE_CREATE_INI_FILE, &CMainFrame::OnUpdateFileCreateIniFile)
|
||
ON_WM_KEYDOWN()
|
||
ON_COMMAND(ID_VIEW_TEMPLATE_ON_LAYOUTVIEW, &CMainFrame::OnViewTemplateOnLayoutview)
|
||
ON_UPDATE_COMMAND_UI(ID_VIEW_TEMPLATE_ON_LAYOUTVIEW, &CMainFrame::OnUpdateViewTemplateOnLayoutview)
|
||
ON_COMMAND(ID_FILE_SAVE_DIALOG_INFO, &CMainFrame::OnFileSaveDialogInfo)
|
||
ON_COMMAND(ID_SAVE_CUSTOMUI, &CMainFrame::OnSaveCustomui)
|
||
ON_COMMAND(ID_SAVE_ALLUI, &CMainFrame::OnSaveAllui)
|
||
END_MESSAGE_MAP()
|
||
|
||
static UINT indicators[] =
|
||
{
|
||
ID_SEPARATOR, // status line indicator
|
||
ID_SEPARATOR, // status line indicator
|
||
ID_INDICATOR_CAPS,
|
||
ID_INDICATOR_NUM,
|
||
ID_INDICATOR_SCRL,
|
||
};
|
||
|
||
CString CMainFrame::m_szShaderFolder = _T("");
|
||
CString CMainFrame::m_szResourceFolder = _T("");
|
||
CString CMainFrame::m_szUITemplateFolder = _T("");
|
||
|
||
CMainFrame::CMainFrame()
|
||
{
|
||
#ifdef _DEBUG
|
||
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
|
||
//_CrtMemDumpAllObjectsSince(0);
|
||
//CrtSetBreakAlloc(206865);
|
||
#endif //_DEBUG
|
||
|
||
m_nCreateINIFile = 0;
|
||
m_nTemplateOnLayoutView = 0;
|
||
m_pResMng = new CEtResourceMng( false );
|
||
|
||
char szStr1[2048] = {0};
|
||
char szStr2[2048] = {0};
|
||
char szStr3[2048] = {0};
|
||
|
||
GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "ShaderFolder", szStr1, 2048 );
|
||
if( strlen(szStr1) == 0 ) m_szShaderFolder = "\\\\eye-ad\\ToolData\\SharedEffect";
|
||
else m_szShaderFolder = szStr1;
|
||
|
||
GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "ResourceFolder", szStr2, 2048 );
|
||
if( strlen(szStr2) == 0 ) m_szResourceFolder = "\\\\eye-ad\\ToolData\\Resource";
|
||
else m_szResourceFolder = szStr2;
|
||
|
||
GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "UITemplateFolder", szStr3, 2048 );
|
||
if( strlen(szStr3) == 0 ) m_szUITemplateFolder = "\\\\eye-ad\\ToolData\\UITemplate";
|
||
else m_szUITemplateFolder = szStr3;
|
||
|
||
GetCurrentDirectory( 2048, szStr1 );
|
||
strcat_s( szStr1, "\\" );
|
||
CEtResourceMng::GetInstance().RemoveResourcePath( szStr1 );
|
||
|
||
if( strlen( szStr1 ) == 0 || strlen( szStr2 ) == 0 || strlen( szStr3 ) == 0 )
|
||
{
|
||
CPropertiesDlg Dlg;
|
||
Dlg.m_bDisableCancel = true;
|
||
Dlg.m_szShaderFolder = GetShaderFolder();
|
||
Dlg.m_szResourceFolder = GetResourceFolder();
|
||
Dlg.m_szUITemplateFolder = GetUITemplateFolder();
|
||
if( Dlg.DoModal() == IDOK )
|
||
{
|
||
if( GetShaderFolder() != Dlg.m_szShaderFolder )
|
||
ChangeShaderFolder( Dlg.m_szShaderFolder );
|
||
if( GetResourceFolder() != Dlg.m_szResourceFolder )
|
||
ChangeResourceFolder( Dlg.m_szResourceFolder );
|
||
if( GetUITemplateFolder() != Dlg.m_szUITemplateFolder )
|
||
ChangeUITemplateFolder( Dlg.m_szUITemplateFolder );
|
||
}
|
||
}
|
||
else
|
||
{
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szShaderFolder, true );
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szResourceFolder, true );
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szUITemplateFolder, true );
|
||
}
|
||
}
|
||
|
||
CMainFrame::~CMainFrame()
|
||
{
|
||
SAFE_DELETE( m_pResMng );
|
||
}
|
||
|
||
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||
{
|
||
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
|
||
return -1;
|
||
|
||
if (!m_wndStatusBar.Create(this) ||
|
||
!m_wndStatusBar.SetIndicators(indicators,
|
||
sizeof(indicators)/sizeof(UINT)))
|
||
{
|
||
TRACE0("Failed to create status bar\n");
|
||
return -1; // fail to create
|
||
}
|
||
m_wndStatusBar.SetPaneInfo( 0, ID_SEPARATOR, SBPS_STRETCH, 0 );
|
||
m_wndStatusBar.SetPaneInfo( 1, ID_SEPARATOR, SBPS_NORMAL, 250 );
|
||
|
||
if ( !InitCommandBars() )
|
||
{
|
||
return -1;
|
||
}
|
||
|
||
// Init Thema
|
||
XTPPaintManager()->SetTheme(xtpThemeVisualStudio2008);//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;
|
||
|
||
// 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;
|
||
}
|
||
|
||
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 );
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
||
{
|
||
cs.cx = 1276 + 341;
|
||
cs.cy = 949;
|
||
if( !CFrameWnd::PreCreateWindow(cs) )
|
||
return FALSE;
|
||
// TODO: Modify the Window class or styles here by modifying
|
||
// the CREATESTRUCT cs
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
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 );
|
||
}
|
||
|
||
|
||
// CMainFrame diagnostics
|
||
|
||
#ifdef _DEBUG
|
||
void CMainFrame::AssertValid() const
|
||
{
|
||
CFrameWnd::AssertValid();
|
||
}
|
||
|
||
void CMainFrame::Dump(CDumpContext& dc) const
|
||
{
|
||
CFrameWnd::Dump(dc);
|
||
}
|
||
|
||
#endif //_DEBUG
|
||
|
||
|
||
// CMainFrame message handlers
|
||
|
||
|
||
|
||
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;
|
||
}
|
||
|
||
void CMainFrame::SetPaneText( int nID, CString &szText )
|
||
{
|
||
m_wndStatusBar.SetPaneText( nID, szText );
|
||
}
|
||
|
||
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;
|
||
}
|
||
|
||
void CMainFrame::OnUpdateFileSavealltemplate(CCmdUI *pCmdUI)
|
||
{
|
||
pCmdUI->Enable();
|
||
}
|
||
|
||
void CMainFrame::OnFileSavealltemplate()
|
||
{
|
||
CTemplatePaneView *pView;
|
||
|
||
pView = ( CTemplatePaneView * )GetPaneWnd( TEMPLATE_PANE );
|
||
if( pView )
|
||
{
|
||
pView->SaveAllTemplate();
|
||
}
|
||
}
|
||
|
||
BOOL CMainFrame::IsPaneClosed( int nID )
|
||
{
|
||
return XTPDockingPaneManager()->IsPaneClosed( nID );
|
||
}
|
||
|
||
void CMainFrame::OnFileSave()
|
||
{
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->OnFileSave();
|
||
}
|
||
|
||
void CMainFrame::OnFileSaveAs()
|
||
{
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->OnFileSaveAs();
|
||
}
|
||
|
||
void CMainFrame::OnFileOpen()
|
||
{
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->OnFileOpen();
|
||
}
|
||
|
||
void CMainFrame::OnFileNew()
|
||
{
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->OnFileNew();
|
||
}
|
||
|
||
void CMainFrame::OnFileSetpropertyfolder()
|
||
{
|
||
CPropertiesDlg Dlg;
|
||
Dlg.m_szShaderFolder = GetShaderFolder();
|
||
Dlg.m_szResourceFolder = GetResourceFolder();
|
||
Dlg.m_szUITemplateFolder = GetUITemplateFolder();
|
||
if( Dlg.DoModal() == IDOK )
|
||
{
|
||
if( GetShaderFolder() != Dlg.m_szShaderFolder )
|
||
ChangeShaderFolder( Dlg.m_szShaderFolder );
|
||
if( GetResourceFolder() != Dlg.m_szResourceFolder )
|
||
ChangeResourceFolder( Dlg.m_szResourceFolder );
|
||
if( GetUITemplateFolder() != Dlg.m_szUITemplateFolder )
|
||
ChangeUITemplateFolder( Dlg.m_szUITemplateFolder );
|
||
}
|
||
}
|
||
|
||
void CMainFrame::OnFormatSetfont()
|
||
{
|
||
// Note : <20><>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> ȣ<><C8A3>
|
||
//
|
||
CFontSetDlg FontSetDlg;
|
||
|
||
if( FontSetDlg.DoModal() == IDOK )
|
||
{
|
||
}
|
||
}
|
||
|
||
void CMainFrame::OnFileLoadXml()
|
||
{
|
||
if( EtInterface::xml::IsValid() )
|
||
{
|
||
if( EtInterface::xml::GetXML()->LoadXML( "uistring.xml", CEtUIXML::idCategory1 ) )
|
||
{
|
||
MessageBox( "UI String XML Loading Succeeded!" );
|
||
}
|
||
}
|
||
}
|
||
|
||
void CMainFrame::OnFileCreateIniFile()
|
||
{
|
||
m_nCreateINIFile = !m_nCreateINIFile;
|
||
}
|
||
|
||
void CMainFrame::OnUpdateFileCreateIniFile(CCmdUI *pCmdUI)
|
||
{
|
||
pCmdUI->SetCheck(m_nCreateINIFile);
|
||
}
|
||
|
||
void CMainFrame::ChangeShaderFolder( const char *szFullPath )
|
||
{
|
||
CEtResourceMng::GetInstance().RemoveResourcePath( m_szShaderFolder );
|
||
m_szShaderFolder = szFullPath;
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szShaderFolder, true );
|
||
}
|
||
|
||
void CMainFrame::ChangeResourceFolder( const char *szFullPath )
|
||
{
|
||
CEtResourceMng::GetInstance().RemoveResourcePath( m_szResourceFolder );
|
||
m_szResourceFolder = szFullPath;
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szResourceFolder, true );
|
||
}
|
||
|
||
void CMainFrame::ChangeUITemplateFolder( const char *szFullPath )
|
||
{
|
||
CEtResourceMng::GetInstance().RemoveResourcePath( m_szUITemplateFolder );
|
||
m_szResourceFolder = szFullPath;
|
||
CEtResourceMng::GetInstance().AddResourcePath( m_szUITemplateFolder, true );
|
||
}
|
||
|
||
void CMainFrame::OnViewTemplateOnLayoutview()
|
||
{
|
||
m_nTemplateOnLayoutView = !m_nTemplateOnLayoutView;
|
||
((CEtUIToolView*)(CGlobalValue::GetInstance().m_pCurView))->GetDummyView()->EnableTemplateOnLayoutView( m_nTemplateOnLayoutView ? true : false );
|
||
}
|
||
|
||
void CMainFrame::OnUpdateViewTemplateOnLayoutview(CCmdUI *pCmdUI)
|
||
{
|
||
pCmdUI->SetCheck(m_nTemplateOnLayoutView);
|
||
}
|
||
|
||
void CMainFrame::OnFileSaveDialogInfo()
|
||
{
|
||
TCHAR szFilter[] = _T( "Eternity UI Dialog Info File (*.txt)|*.txt|All Files (*.*)|*.*||" );
|
||
CFileDialog FileDlg( FALSE, _T("txt"), _T("*.txt"), OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_ENABLESIZING | OFN_NOCHANGEDIR, szFilter, this );
|
||
|
||
if( FileDlg.DoModal() == IDOK )
|
||
{
|
||
FILE *fp(NULL);
|
||
errno_t err;
|
||
if( (err = fopen_s( &fp, FileDlg.m_ofn.lpstrFile, "wt" )) != 0 )
|
||
{
|
||
CDebugSet::ToLogFile( "CMainFrame::OnFileSaveDialogInfo, The file %s was not opened!", FileDlg.m_ofn.lpstrFile );
|
||
return;
|
||
}
|
||
|
||
if( fp )
|
||
{
|
||
fprintf ( fp, "--------------------------------------------------------------\n" );
|
||
fprintf ( fp, "\tID\t\t\tType\n" );
|
||
fprintf ( fp, "--------------------------------------------------------------\n" );
|
||
fprintf ( fp, "\n" );
|
||
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
CEtUIDialog &layoutDialog = pLayoutView->GetDialog();
|
||
std::vector<CEtUIControl*>&vecControl = layoutDialog.GetControlList();
|
||
|
||
SUIControlProperty *pProperty(NULL);
|
||
for( int i=0; i<(int)vecControl.size(); ++i )
|
||
{
|
||
pProperty = vecControl[i]->GetProperty();
|
||
if( !pProperty )
|
||
{
|
||
CDebugSet::ToLogFile( "CMainFrame::OnFileSaveDialogInfo, pProperty is NULL!" );
|
||
continue;
|
||
}
|
||
|
||
fprintf ( fp, "\t%s\t\t", pProperty->szUIName );
|
||
fprintf ( fp, "%s\n", CONTROL_TYPE_2_STRING(pProperty->UIType) );
|
||
}
|
||
|
||
fclose(fp);
|
||
}
|
||
else
|
||
{
|
||
CDebugSet::ToLogFile( "CMainFrame::OnFileSaveDialogInfo, File pointer is NULL!" );
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
const char* CMainFrame::CONTROL_TYPE_2_STRING( UI_CONTROL_TYPE typeControl )
|
||
{
|
||
switch( typeControl )
|
||
{
|
||
case UI_CONTROL_STATIC: return "Static";
|
||
case UI_CONTROL_BUTTON: return "Button";
|
||
case UI_CONTROL_CHECKBOX: return "CheckBox";
|
||
case UI_CONTROL_RADIOBUTTON: return "RadioButton";
|
||
case UI_CONTROL_COMBOBOX: return "ComboBox";
|
||
case UI_CONTROL_SLIDER: return "Slider";
|
||
case UI_CONTROL_EDITBOX: return "EditBox";
|
||
case UI_CONTROL_IMEEDITBOX: return "IMEEditBox";
|
||
case UI_CONTROL_LISTBOX: return "ListBox";
|
||
case UI_CONTROL_SCROLLBAR: return "ScrollBar";
|
||
case UI_CONTROL_PROGRESSBAR: return "ProgressBar";
|
||
case UI_CONTROL_CUSTOM: return "Custom";
|
||
case UI_CONTROL_TEXTBOX: return "TextBox";
|
||
case UI_CONTROL_TEXTURECONTROL: return "TextureControl";
|
||
case UI_CONTROL_HTMLTEXTBOX: return "HTMLTextBox";
|
||
case UI_CONTROL_TREECONTROL: return "TreeControl";
|
||
case UI_CONTROL_QUESTTREECONTROL: return "QuestTreeControl";
|
||
case UI_CONTROL_ANIMATION: return "Animation";
|
||
case UI_CONTROL_LINE_EDITBOX: return "LineEditBox";
|
||
case UI_CONTROL_LINE_IMEEDITBOX: return "LineIMEEditBox";
|
||
case UI_CONTROL_MOVIECONTROL: return "MovieControl";
|
||
case UI_CONTROL_LISTBOXEX: return "ListBoxEx";
|
||
default: return "Invalid Control Type";
|
||
}
|
||
|
||
return NULL;
|
||
}
|
||
void CMainFrame::OnSaveCustomui()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->SaveCustomUI();
|
||
}
|
||
void CMainFrame::OnSaveAllui()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
CLayoutView *pLayoutView;
|
||
pLayoutView = ( CLayoutView * )( ( CEtUIToolView * )( CGlobalValue::GetInstance().m_pCurView ) )->GetTabView( CDummyView::LAYOUT_VIEW );
|
||
pLayoutView->SaveAllUI();
|
||
} |