00001 
00002 
00003 
00004 
00005 
00007 
00008 #ifndef __TerrainEditor__
00009 #define __TerrainEditor__
00010 
00011 #include <wx/string.h>
00012 #include <wx/bitmap.h>
00013 #include <wx/image.h>
00014 #include <wx/icon.h>
00015 #include <wx/menu.h>
00016 #include <wx/gdicmn.h>
00017 #include <wx/font.h>
00018 #include <wx/colour.h>
00019 #include <wx/settings.h>
00020 #include <wx/statusbr.h>
00021 #include <wx/toolbar.h>
00022 #include <wx/panel.h>
00023 #include <wx/stattext.h>
00024 #include <wx/listbox.h>
00025 #include <wx/tglbtn.h>
00026 #include <wx/sizer.h>
00027 #include <wx/splitter.h>
00028 #include <wx/frame.h>
00029 #include <wx/dialog.h>
00030 #include <wx/textctrl.h>
00031 #include <wx/button.h>
00032 
00034 
00035 #define ID_TOOL_NORMAL 1000
00036 #define ID_TOOL_SELECT 1001
00037 #define ID_TOOL_ROTATE 1002
00038 #define ID_TOOL_TRANSLATE 1003
00039 #define ID_TOOL_SCALE 1004
00040 #define ID_TOOL_DELETE 1005
00041 #define ID_TOOL_NVG 1006
00042 #define ID_TOOL_MODEL_PANEL 1007
00043 #define wxABOUT 1008
00044 
00048 class MainFrameBase : public wxFrame 
00049 {
00050         private:
00051         
00052         protected:
00053                 wxMenu* helpMenu;
00054                 wxMenu* rendererMenu;
00055                 wxFlexGridSizer* _bSizer1;
00056                 wxSplitterWindow* m_splitter1;
00057                 wxPanel* _renderingPanel;
00058                 wxPanel* _modelPanel;
00059                 wxBoxSizer* _bSizer2;
00060                 wxSplitterWindow* m_splitter2;
00061                 wxPanel* _modelListPanel;
00062                 wxStaticText* _staticText1;
00063                 wxListBox* _modelsList;
00064                 wxToggleButton* _togglePreview;
00065                 wxStaticText* m_staticTextFakeSide;
00066                 
00067                 
00068                 virtual void onIdle( wxIdleEvent& event ){ event.Skip(); }
00069                 virtual void onOpen( wxCommandEvent& event ){ event.Skip(); }
00070                 virtual void onImportXMLScene( wxCommandEvent& event ){ event.Skip(); }
00071                 virtual void onEmportXMLScene( wxCommandEvent& event ){ event.Skip(); }
00072                 virtual void onExit( wxCommandEvent& event ){ event.Skip(); }
00073                 virtual void OnAbout( wxCommandEvent& event ){ event.Skip(); }
00074                 virtual void onFullscreen( wxCommandEvent& event ){ event.Skip(); }
00075                 virtual void onNightvisionMode( wxCommandEvent& event ){ event.Skip(); }
00076                 virtual void onToolNormal( wxCommandEvent& event ){ event.Skip(); }
00077                 virtual void onToolSelect( wxCommandEvent& event ){ event.Skip(); }
00078                 virtual void onToolRotate( wxCommandEvent& event ){ event.Skip(); }
00079                 virtual void onToolTranslate( wxCommandEvent& event ){ event.Skip(); }
00080                 virtual void onToolScale( wxCommandEvent& event ){ event.Skip(); }
00081                 virtual void onToolDelete( wxCommandEvent& event ){ event.Skip(); }
00082                 virtual void onToolNVToggle( wxCommandEvent& event ){ event.Skip(); }
00083                 virtual void onToolModelPanel( wxCommandEvent& event ){ event.Skip(); }
00084                 virtual void updateCanvas( wxSizeEvent& event ){ event.Skip(); }
00085                 virtual void onModelsListClick( wxCommandEvent& event ){ event.Skip(); }
00086                 virtual void onModelsListDoubleClick( wxCommandEvent& event ){ event.Skip(); }
00087                 virtual void toggleShowModelPreview( wxCommandEvent& event ){ event.Skip(); }
00088                 
00089         
00090         public:
00091                 wxMenuBar* menuBar;
00092                 wxMenu* fileMenu;
00093                 wxMenuItem* menuItemOpen;
00094                 wxMenuItem* menuItemImport;
00095                 wxMenuItem* menuItemExport;
00096                 wxMenuItem* menuItemExit;
00097                 wxMenuItem* menuItemFullscreen;
00098                 wxMenuItem* menuItemNightvision;
00099                 wxStatusBar* statusBar;
00100                 wxToolBar* toolBar;
00101                 wxPanel* _modelPreview;
00102                 MainFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Terrain Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
00103                 ~MainFrameBase();
00104                 void m_splitter1OnIdle( wxIdleEvent& )
00105                 {
00106                 m_splitter1->SetSashPosition( -1 );
00107                 m_splitter1->Disconnect( wxEVT_IDLE, wxIdleEventHandler( MainFrameBase::m_splitter1OnIdle ), NULL, this );
00108                 }
00109                 
00110                 void m_splitter2OnIdle( wxIdleEvent& )
00111                 {
00112                 m_splitter2->SetSashPosition( -1 );
00113                 m_splitter2->Disconnect( wxEVT_IDLE, wxIdleEventHandler( MainFrameBase::m_splitter2OnIdle ), NULL, this );
00114                 }
00115                 
00116         
00117 };
00118 
00122 class AboutDialog : public wxDialog 
00123 {
00124         private:
00125         
00126         protected:
00127                 wxStaticText* m_staticText18;
00128                 wxStaticText* m_staticText21;
00129                 wxStaticText* m_staticText20;
00130         
00131         public:
00132                 AboutDialog( wxWindow* parent, wxWindowID id = wxABOUT, const wxString& title = wxT("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 250,209 ), long style = wxDEFAULT_DIALOG_STYLE );
00133                 ~AboutDialog();
00134         
00135 };
00136 
00140 class ScaleFrameBase : public wxFrame 
00141 {
00142         private:
00143         
00144         protected:
00145                 wxStaticText* _staticText13;
00146                 wxStaticText* _staticText17;
00147                 wxStaticText* _staticText18;
00148                 wxStaticText* _staticText19;
00149                 wxButton* _buttonApply;
00150                 
00151                 
00152                 virtual void onButtonClickApply( wxCommandEvent& event ){ event.Skip(); }
00153                 
00154         
00155         public:
00156                 wxTextCtrl* textCtrlX;
00157                 wxTextCtrl* textCtrlY;
00158                 wxTextCtrl* textCtrlZ;
00159                 ScaleFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Scaling"), const wxPoint& pos = wxPoint( -1,-1 ), const wxSize& size = wxSize( 150,214 ), long style = wxCAPTION|wxFRAME_FLOAT_ON_PARENT|wxFRAME_TOOL_WINDOW|wxTAB_TRAVERSAL );
00160                 ~ScaleFrameBase();
00161         
00162 };
00163 
00167 class TranslationFrameBase : public wxFrame 
00168 {
00169         private:
00170         
00171         protected:
00172                 wxStaticText* _staticText11;
00173                 wxStaticText* _staticText6;
00174                 wxStaticText* _staticText8;
00175                 wxStaticText* _staticText9;
00176                 wxButton* _buttonApply;
00177                 
00178                 
00179                 virtual void onButtonClickApply( wxCommandEvent& event ){ event.Skip(); }
00180                 
00181         
00182         public:
00183                 wxTextCtrl* textCtrlX;
00184                 wxTextCtrl* textCtrlY;
00185                 wxTextCtrl* textCtrlZ;
00186                 TranslationFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Translation"), const wxPoint& pos = wxPoint( -1,-1 ), const wxSize& size = wxSize( 150,214 ), long style = wxCAPTION|wxFRAME_FLOAT_ON_PARENT|wxFRAME_TOOL_WINDOW|wxTAB_TRAVERSAL );
00187                 ~TranslationFrameBase();
00188         
00189 };
00190 
00194 class RotationFrameBase : public wxFrame 
00195 {
00196         private:
00197         
00198         protected:
00199                 wxStaticText* _staticText12;
00200                 wxStaticText* _staticText7;
00201                 wxStaticText* _staticText13;
00202                 wxStaticText* _staticText14;
00203                 wxButton* _buttonApply;
00204                 
00205                 
00206                 virtual void onButtonClickApply( wxCommandEvent& event ){ event.Skip(); }
00207                 
00208         
00209         public:
00210                 wxTextCtrl* textCtrlX;
00211                 wxTextCtrl* textCtrlY;
00212                 wxTextCtrl* textCtrlZ;
00213                 RotationFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Rotation"), const wxPoint& pos = wxPoint( -1,-1 ), const wxSize& size = wxSize( 150,214 ), long style = wxCAPTION|wxFRAME_FLOAT_ON_PARENT|wxFRAME_TOOL_WINDOW|wxTAB_TRAVERSAL );
00214                 ~RotationFrameBase();
00215         
00216 };
00217 
00218 #endif //__TerrainEditor__