Vlaxicon

main.h

00001 /*********************************************************************
00002  * Name:        main.h
00003  * Purpose:     Declares simple wxWidgets application with GUI
00004  *                              created using wxFormBuilder.
00005  * Author:    
00006  * Created:   
00007  * Copyright: 
00008  * License:     wxWidgets license (www.wxwidgets.org)
00009  * 
00010  * Notes:               Note that all GUI creation code is declared in
00011  *                              gui.h source file which is generated by wxFormBuilder.
00012  *********************************************************************/
00013 
00014 #ifndef __main__
00015 #define __main__
00016 
00017 #include <list>
00018 // main wxWidgets header file
00019 #include <wx/wx.h>
00020 #include <wx/dynlib.h>
00021 // gui classes generated by wxFormBuilder
00022 #include "gui.h"
00023 #include "framecanvas.h"
00024 #include "interfaces/interface.h"
00026 // application class declaration 
00028 using namespace std;
00029 class MainApp : public wxApp
00030 {
00031 public:
00033                 virtual bool OnInit();
00034 };
00035 
00036 // declare global static function wxGetApp()
00037 DECLARE_APP(MainApp)
00038 
00039 
00040 // main application frame declaration 
00042 
00043 class MainFrame : public MainFrameBase
00044 {
00045         public:
00046                 enum MODE
00047                 {
00048                         MODE_DESIGN,
00049                         MODE_BITMAP,
00050                         MODE_CHOICE,
00051                         MODE_CHECKBOX,
00052                         MODE_PLOT,
00053                         MODE_RECTANGLE,
00054                         MODE_SLIDER,
00055                         MODE_STATICTEXT,
00056                         MODE_EDITTEXT,
00057                         MODE_UNIVERSAL
00058                 };
00059                 
00062                 MainFrame( wxWindow *parent );
00063                 
00065                 virtual ~MainFrame();
00066         
00069                 MODE GetToolMode(){return m_nToolMode;}
00070                 
00072                 void SetToolMode();
00073                 
00076                 void SetToolMode(MODE mode){m_nToolMode = mode;}
00077                 
00079                 void SetDesignTool();
00080                 
00082                 void SetProperties();
00083                 
00085                 void ClearProperties();
00086                 
00089                 FrameCanvas* GetActiveCanvas();         
00090                 
00094                 void SaveFile(wxString sName, FrameCanvas* canvas);
00095                 
00097                 void SaveBeforeClose();
00098                 
00102                 IPlugin* GetPluginByName(wxString sPlugName);
00103                 
00105                 void StopRun();
00106                 
00107                 wxCriticalSection m_csThread;
00108                 
00109         protected:
00110                 // protected event handlers
00112                 virtual void OnCloseFrame( wxCloseEvent& event );
00113                 
00115                 virtual void OnNotebookToolPageChanged( wxAuiNotebookEvent& event ) ; 
00116                 
00118                 virtual void OnToolChange( wxCommandEvent& event ) ; 
00119                 
00121                 virtual void OnToolsUpdate( wxUpdateUIEvent& event ) ; 
00122                 
00124                 virtual void OnMenuNewClick( wxCommandEvent& event ) ; 
00125                 
00127                 virtual void OnMenuOpenClick( wxCommandEvent& event ) ; 
00128                 
00130                 virtual void OnMenuSaveClick( wxCommandEvent& event ) ; 
00131                 
00133                 virtual void OnMenuSaveUpdate( wxUpdateUIEvent& event ) ; 
00134                 
00136                 virtual void OnMenuExitClick( wxCommandEvent& event ) ; 
00137                 
00139                 virtual void OnMenuUndoClick( wxCommandEvent& event ) ; 
00140                 
00142                 virtual void OnMenuUndoUpdate( wxUpdateUIEvent& event ) ; 
00143                 
00145                 virtual void OnMenuRedoClick( wxCommandEvent& event ) ; 
00146                 
00148                 virtual void OnMenuRedoUpdate( wxUpdateUIEvent& event ) ; 
00149                 
00151                 virtual void OnMenuAlignLeftClick( wxCommandEvent& event ) ; 
00152                 
00154                 virtual void OnMenuAlignLeftUpdate( wxUpdateUIEvent& event ) ; 
00155                 
00157                 virtual void OnMenuAlignCenterClick( wxCommandEvent& event ) ; 
00158                 
00160                 virtual void OnMenuAlignCenterUpdate( wxUpdateUIEvent& event ) ; 
00161                 
00163                 virtual void OnMenuAlignRightClick( wxCommandEvent& event ) ; 
00164                 
00166                 virtual void OnMenuAlignRightUpdate( wxUpdateUIEvent& event ) ; 
00167                 
00169                 virtual void OnMenuAlignTopClick( wxCommandEvent& event ) ; 
00170                 
00172                 virtual void OnMenuAlignTopUpdate( wxUpdateUIEvent& event ) ; 
00173                 
00175                 virtual void OnMenuAlignMiddleClick( wxCommandEvent& event ) ; 
00176                 
00178                 virtual void OnMenuAlignMiddleUpdate( wxUpdateUIEvent& event ) ; 
00179                 
00181                 virtual void OnMenuAlignBottomClick( wxCommandEvent& event ) ; 
00182                 
00184                 virtual void OnMenuAlignBottomUpdate( wxUpdateUIEvent& event ) ; 
00185                 
00187                 virtual void OnMenuRunClick( wxCommandEvent& event ) ; 
00188                 
00190                 virtual void OnMenuRunUpdate( wxUpdateUIEvent& event ) ; 
00191                 
00193                 virtual void OnMenuStopClick( wxCommandEvent& event ) ; 
00194                 
00196                 virtual void OnMenuStopUpdate( wxUpdateUIEvent& event ) ; 
00197                 
00199                 virtual void OnPropertiesUpdate( wxUpdateUIEvent& event );
00200                 
00202                 virtual void OnCloseNtbPage( wxAuiNotebookEvent& event );
00203                 
00205                 virtual void OnMenuAbout( wxCommandEvent& event );
00206                 
00208                 void OnToolPropertiesChange(wxPropertyGridEvent &event);
00209                 
00211                 void LoadPlugins();
00212                 
00213                 MODE m_nToolMode;
00214                 wxArrayString m_arrPluginNames;
00215                 wxArrayString m_arrPluginAlias;
00216                 
00217         private:
00218                 // create wxSF diagram manager
00219         list<wxSFDiagramManager*> lst_DiagramManager;
00220                 
00221 };
00222 
00223 #endif //__main__
 All Classes Functions