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