1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: No names yet. 3 // Purpose: Contrib. demo 4 // Author: Aleksandras Gluchovas 5 // Modified by: 6 // Created: 04/11/98 7 // RCS-ID: $Id: fl_demo2.h 34912 2005-07-22 16:43:04Z MR $ 8 // Copyright: (c) Aleksandras Gluchovas 9 // Licence: wxWindows license 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef __FLDEMO_G__ 13 #define __FLDEMO_G__ 14 15 // ID for the menu commands 16 17 #define MINIMAL_QUIT 1 18 #define MINIMAL_ABOUT 102 19 20 #define ID_LOAD 103 21 #define ID_STORE 104 22 #define ID_AUTOSAVE 105 23 //#define ID_SETTINGS 106 24 #define ID_REMOVE 107 25 #define ID_REMOVEALL 108 26 #define ID_RECREATE 109 27 #define ID_ACTIVATE 110 28 #define ID_FIRST 111 29 #define ID_SECOND 112 30 #define ID_THIRD 113 31 32 #define ID_SAY_ITSOK 114 33 #define ID_BTN_YES 115 34 #define ID_BTN_NO 116 35 #define ID_BTN_ESC 117 36 37 #define MAX_LAYOUTS 3 38 39 #define FIRST_LAYOUT 0 40 #define SECOND_LAYOUT 1 41 #define THIRD_LAYOUT 2 42 43 class wxFrameLayout; 44 class wxObjectStorage; 45 46 // FOR NOW:: 47 typedef wxPanel MyTestPanel; 48 49 // Define a new application type 50 51 class MyApp: public wxApp 52 { 53 public: 54 bool OnInit(void); 55 }; 56 57 // Define a new frame type 58 59 class MyFrame: public wxFrame 60 { 61 protected: 62 63 wxFrameLayout* mLayouts[MAX_LAYOUTS]; 64 65 wxFrameLayout* mpNestedLayout; 66 wxFrameLayout* mpAboutBoxLayout; 67 68 int mActiveLayoutNo; 69 bool mAutoSave; 70 bool mSavedAlready; 71 72 // container windows: 73 74 wxTextCtrl* mpClntWindow; 75 wxPanel* mpInternalFrm; 76 77 wxImageList mImageList; 78 79 wxFrame mAboutBox; 80 81 // helpers for control-creation 82 83 wxTextCtrl* CreateTxtCtrl ( const wxString& txt = wxT("wxTextCtrl"), wxWindow* parent = NULL ); 84 wxTreeCtrl* CreateTreeCtrl( const wxString& label = wxT("TreeCtrl") ); 85 wxChoice* CreateChoice ( const wxString& txt = wxT("Choice1") ); 86 wxButton* CreateButton ( const wxString& label = wxT("wxButton"), wxWindow* pParent = NULL, long id = ID_SAY_ITSOK ); 87 88 // helpers for layout-creation 89 90 void AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent ); 91 wxWindow* CreateDevLayout( wxFrameLayout& layout, wxWindow* pParent ); 92 93 void DropInSomeBars( int layoutNo ); 94 void CreateLayout( int layoutNo ); 95 void RemoveLayout( int layoutNo ); 96 97 void InitAboutBox(); 98 99 void ActivateLayout( int layoutNo ); 100 101 public: /* public */ 102 103 MyFrame( wxFrame *frame, const wxChar *title, int x, int y, int w, int h); 104 105 ~MyFrame(); 106 107 void SyncMenuBarItems(); 108 109 // event handlers 110 111 bool OnClose(void); 112 113 void OnLoad( wxCommandEvent& event ); 114 void OnStore( wxCommandEvent& event ); 115 void OnAutoSave( wxCommandEvent& event ); 116 void OnQuit(wxCommandEvent& event); 117 void OnAbout(wxCommandEvent& event); 118 //void OnSettings( wxCommandEvent& event ); 119 void OnRemove( wxCommandEvent& event ); 120 void OnRemoveAll( wxCommandEvent& event ); 121 void OnRecreate( wxCommandEvent& event ); 122 void OnFirst( wxCommandEvent& event ); 123 void OnSecond( wxCommandEvent& event ); 124 void OnThird( wxCommandEvent& event ); 125 126 void OnSayItsOk( wxCommandEvent& event ); 127 void OnBtnYes( wxCommandEvent& event ); 128 void OnBtnNo( wxCommandEvent& event ); 129 void OnBtnEsc( wxCommandEvent& event ); 130 131 void OnChar( wxKeyEvent& event ); 132 133 DECLARE_EVENT_TABLE() 134 }; 135 136 // Define a new button type, StartButton95 (Just for fun) 137 138 class StartButton95 : public wxPanel 139 { 140 DECLARE_DYNAMIC_CLASS( StartButton95 ) 141 142 bool m_bPressed; 143 wxBitmap m_PBmp; 144 wxBitmap m_DBmp; 145 146 public: StartButton95(void)147 StartButton95(void) : m_bPressed(false) {} 148 StartButton95(wxWindow * parent)149 StartButton95(wxWindow* parent) 150 : m_bPressed(false) { wxPanel::Create(parent,wxID_ANY); } 151 152 void OnMouseDown( wxMouseEvent& event ); 153 void OnMouseUp( wxMouseEvent& event ); 154 void OnPaint( wxPaintEvent& event ); 155 156 DECLARE_EVENT_TABLE() 157 }; 158 159 #endif 160 161