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 43class wxFrameLayout; 44class wxObjectStorage; 45 46// FOR NOW:: 47typedef wxPanel MyTestPanel; 48 49// Define a new application type 50 51class MyApp: public wxApp 52{ 53public: 54 bool OnInit(void); 55}; 56 57// Define a new frame type 58 59class MyFrame: public wxFrame 60{ 61protected: 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 101public: /* 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 138class StartButton95 : public wxPanel 139{ 140 DECLARE_DYNAMIC_CLASS( StartButton95 ) 141 142 bool m_bPressed; 143 wxBitmap m_PBmp; 144 wxBitmap m_DBmp; 145 146public: 147 StartButton95(void) : m_bPressed(false) {} 148 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