00001
00002
00003
00004 #include "stdafx.h"
00005 #include "MapEditor.h"
00006 #include "MapEditorMainFrm.h"
00007 #include "Common/Console.h"
00008
00009 #include "MapEditorChildFrm.h"
00010 #include "MapEditorDoc.h"
00011 #include "MapEditorView.h"
00012 #include "LandscapeView.h"
00013 #include "NewWorldDialog.h"
00014
00015 #ifdef _DEBUG
00016 #define new DEBUG_NEW
00017 #endif
00018
00019
00020
00021
00022 BEGIN_MESSAGE_MAP(CMapEditorApp, CWinApp)
00023 ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
00024
00025 ON_COMMAND(ID_FILE_NEW, OnFileNew)
00026 ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
00027
00028 ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
00029 END_MESSAGE_MAP()
00030
00031
00032
00033
00034 CMapEditorApp::CMapEditorApp()
00035 {
00036 EnableHtmlHelp();
00037
00038
00039
00040 }
00041
00042
00043
00044
00045 CMapEditorApp theApp;
00046
00047
00048
00049 BOOL CMapEditorApp::InitInstance()
00050 {
00051 GetCurrentDirectory( sizeof( m_pCurrentDirectory ), m_pCurrentDirectory );
00052
00053
00054
00055
00056 InitCommonControls();
00057
00058 CWinApp::InitInstance();
00059
00060
00061 if (!AfxOleInit())
00062 {
00063 AfxMessageBox(IDP_OLE_INIT_FAILED);
00064 return FALSE;
00065 }
00066 AfxEnableControlContainer();
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 SetRegistryKey(_T("Local AppWizard-Generated Applications"));
00077 LoadStdProfileSettings(4);
00078
00079
00080 CMultiDocTemplate* pDocTemplate;
00081 pDocTemplate = new CMultiDocTemplate(IDR_MapTYPE,
00082 RUNTIME_CLASS(CMapEditorDoc),
00083 RUNTIME_CLASS(CMEChildFrame),
00084 RUNTIME_CLASS(CLandscapeView));
00085 AddDocTemplate(pDocTemplate);
00086
00087 CMEMainFrame* pMainFrame = new CMEMainFrame;
00088 if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
00089 return FALSE;
00090 m_pMainWnd = pMainFrame;
00091
00092
00093
00094 m_pMainWnd->DragAcceptFiles();
00095
00096 EnableShellOpen();
00097 RegisterShellFileTypes(TRUE);
00098
00099 CCommandLineInfo cmdInfo;
00100 cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
00101 ParseCommandLine(cmdInfo);
00102
00103
00104 if (!ProcessShellCommand(cmdInfo))
00105 return FALSE;
00106
00107 pMainFrame->ShowWindow(m_nCmdShow);
00108 pMainFrame->UpdateWindow();
00109
00110 g_Console.Create( "MapEditor console", true, m_hInstance, pMainFrame->GetSafeHwnd() );
00111
00112 return TRUE;
00113 }
00114
00115 void CMapEditorApp::ResetCurrentDirectory()
00116 {
00117 SetCurrentDirectory( m_pCurrentDirectory );
00118 }
00119
00120
00121
00122
00123
00124 class CAboutDlg : public CDialog
00125 {
00126 public:
00127 CAboutDlg();
00128
00129
00130 enum { IDD = IDD_ABOUTBOX };
00131
00132 protected:
00133 virtual void DoDataExchange(CDataExchange* pDX);
00134
00135
00136 protected:
00137 DECLARE_MESSAGE_MAP()
00138 };
00139
00140 CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
00141 {
00142 }
00143
00144 void CAboutDlg::DoDataExchange(CDataExchange* pDX)
00145 {
00146 CDialog::DoDataExchange(pDX);
00147 }
00148
00149 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
00150 END_MESSAGE_MAP()
00151
00152
00153 void CMapEditorApp::OnAppAbout()
00154 {
00155 CAboutDlg aboutDlg;
00156 aboutDlg.DoModal();
00157 }
00158
00159
00160
00161
00162
00163 int CMapEditorApp::ExitInstance()
00164 {
00165 g_Console.Close();
00166
00167 return CWinApp::ExitInstance();
00168 }
00169
00170 BOOL CMapEditorApp::OnIdle(LONG lCount)
00171 {
00172 if( !m_pMainWnd->IsIconic() )
00173 {
00174 CMEChildFrame* pChild = (CMEChildFrame*)((CMDIFrameWnd*)m_pMainWnd)->MDIGetActive();
00175 if( pChild )
00176 pChild->Manage();
00177 }
00178 else
00179 Sleep( 100 );
00180
00181 return TRUE;
00182 }
00183
00184 void CMapEditorApp::OnFileNew()
00185 {
00186 if( m_NewWorldDlg.DoModal() != IDOK )
00187 return;
00188
00189 CWinApp::OnFileNew();
00190 }