?? mainwindow.cpp
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "MainWindow.h"
//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
MAIN_WINDOW MainWindow;
//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
MAIN_WINDOW::MAIN_WINDOW()
{
ModelLoaded = FALSE;
ModelSaved = FALSE;
ModelNeverSaved = FALSE;
ModelFileName = "";
WindowActive = TRUE;
}
//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
MAIN_WINDOW::~MAIN_WINDOW()
{
//Empty
}
//+-----------------------------------------------------------------------------
//| Creates a new window
//+-----------------------------------------------------------------------------
BOOL MAIN_WINDOW::Create()
{
FrameInfo.Title = EDITOR_NAME;
FrameInfo.Width = DEFAULT_MAIN_WINDOW_WIDTH;
FrameInfo.Height = DEFAULT_MAIN_WINDOW_HEIGHT;
FrameInfo.Menu = ::LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(MainMenu));
FrameInfo.Style |= (WS_MAXIMIZEBOX | WS_SIZEBOX);
if(!WINDOW_FRAME::Create()) return FALSE;
TeamColor.SetTeamColorIcons(GetMenu());
CheckMenuItem(TeamColor.GetCurrentTeamColorId(), TRUE);
if(!GraphicsWindow.Create(Window)) return FALSE;
ModelLoaded = FALSE;
ModelSaved = FALSE;
ModelNeverSaved = FALSE;
ModelFileName = "";
UpdateWindowStatus(TRUE);
return TRUE;
}
//+-----------------------------------------------------------------------------
//| Destroys the window
//+-----------------------------------------------------------------------------
VOID MAIN_WINDOW::Destroy()
{
GraphicsWindow.Destroy();
WINDOW_FRAME::Destroy();
}
//+-----------------------------------------------------------------------------
//| Handles the window messages
//+-----------------------------------------------------------------------------
LRESULT MAIN_WINDOW::MessageHandler(UINT Message, WPARAM W, LPARAM L)
{
switch(Message)
{
case WM_PAINT:
{
Graphics.SetCamera(Camera);
UpdateAndRender(0);
ValidateRect(Window, NULL);
return 0;
}
case WM_SIZE:
{
WindowActive = (W != SIZE_MINIMIZED);
Camera.DisableMouseMove();
GraphicsWindow.Resize();
return 0;
}
case WM_SIZING:
{
Camera.DisableMouseMove();
GraphicsWindow.Resize();
return 0;
}
case WM_SHOWWINDOW:
{
WindowActive = static_cast<BOOL>(W);
return 0;
}
case WM_CLOSE:
{
SendMessage(WM_COMMAND, MainFileExit, 0);
return 0;
}
case WM_DESTROY:
{
return 0;
}
}
return DefWindowProc(Window, Message, W, L);
}
//+-----------------------------------------------------------------------------
//| Handles the window menu messages
//+-----------------------------------------------------------------------------
LRESULT MAIN_WINDOW::MenuHandler(WORD MenuItem)
{
BOOL Cancel;
std::string FileName;
switch(MenuItem)
{
case MainFileNew:
{
if(!SaveFileIfNeccessary(Cancel))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
if(Cancel) return 0;
if(!NewFile())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileOpen:
{
if(!SaveFileIfNeccessary(Cancel))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
if(Cancel) return 0;
if(!OpenFile())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileSave:
{
if(!SaveFile(Cancel, FALSE))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileSaveAs:
{
if(!SaveFile(Cancel, TRUE))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileClose:
{
if(!SaveFileIfNeccessary(Cancel))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
if(Cancel) return 0;
if(!CloseFile())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileImport:
{
if(!SaveFileIfNeccessary(Cancel))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
if(Cancel) return 0;
if(!ImportFile())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainFileExit:
{
if(!SaveFileIfNeccessary(Cancel))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
if(Cancel) return 0;
if(!CloseFile())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
PostQuitMessage(0);
return 0;
}
case MainHistoryClear:
{
ModelHistory.Clear();
return 0;
}
case MainEditRegisterExtentions:
{
REGISTER_INFO RegisterInfo;
if(RegisterDialog.Display(Window, RegisterInfo))
{
if(!RegisterExtentions(RegisterInfo))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
return 0;
}
case MainEditCalculateExtents:
{
if(!CalculateExtents())
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
case MainEditProperties:
{
PROPERTIES_INFO PropertiesInfo;
PropertiesInfo = Properties.GetPropertiesInfo();
if(PropertiesDialog.Display(Window, PropertiesInfo))
{
Properties.SetPropertiesInfo(PropertiesInfo);
if(!Properties.SavePropertiesInfo(PATH_PROPERTIES))
{
Error.DisplayMessage(Window);
Error.ClearMessage();
return 0;
}
return 0;
}
return 0;
}
case MainEditModelProperties:
{
MODEL_INFO_DATA Data;
Data = Model.Data().Info;
if(!ModelPropertiesDialog.Display(Window, Data)) return 0;
Model.Data().Info = Data;
MakeModelUnsaved();
return 0;
}
case MainEditModelInfo:
{
ModelInfoDialog.Display(Window);
return 0;
}
case MainViewResize:
{
SetWindowDimension(DEFAULT_MAIN_WINDOW_WIDTH, DEFAULT_MAIN_WINDOW_HEIGHT);
GraphicsWindow.Resize();
return 0;
}
case MainViewResetCamera:
{
Camera.Reset(Window);
return 0;
}
case MainWindowsModelEditor:
{
ModelWindow.Show();
ModelWindow.Restore();
ModelWindow.Activate();
return 0;
}
case MainWindowsAnimationController:
{
AnimationWindow.Show();
AnimationWindow.Restore();
AnimationWindow.Activate();
return 0;
}
case MainWindowsNodeManager:
{
NodeManagerWindow.Show();
NodeManagerWindow.Restore();
NodeManagerWindow.Activate();
return 0;
}
case MainWindowsCameraManager:
{
CameraManagerWindow.Show();
CameraManagerWindow.Restore();
CameraManagerWindow.Activate();
return 0;
}
case MainWindowsGeosetManager:
{
GeosetManagerWindow.Show();
GeosetManagerWindow.Restore();
GeosetManagerWindow.Activate();
return 0;
}
case MainWindowsGeosetAnimationManager:
{
GeosetAnimationManagerWindow.Show();
GeosetAnimationManagerWindow.Restore();
GeosetAnimationManagerWindow.Activate();
return 0;
}
case MainWindowsTextureManager:
{
TextureManagerWindow.Show();
TextureManagerWindow.Restore();
TextureManagerWindow.Activate();
return 0;
}
case MainWindowsTextureAnimationManager:
{
TextureAnimationManagerWindow.Show();
TextureAnimationManagerWindow.Restore();
TextureAnimationManagerWindow.Activate();
return 0;
}
case MainWindowsMaterialManager:
{
MaterialManagerWindow.Show();
MaterialManagerWindow.Restore();
MaterialManagerWindow.Activate();
return 0;
}
case MainWindowsSequenceManager:
{
SequenceManagerWindow.Show();
SequenceManagerWindow.Restore();
SequenceManagerWindow.Activate();
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -