]> git.saurik.com Git - wxWidgets.git/blob - utils/screenshotgen/src/guiframe.cpp
implement wxEventLoop::DispatchTimeout() for wxGTK (thanks Paul) and rewrote it to...
[wxWidgets.git] / utils / screenshotgen / src / guiframe.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: guiframe.cpp
3 // Purpose: Implement the Application Frame
4 // Author: Utensil Candel (UtensilCandel@@gmail.com)
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 // For compilers that support precompilation, includes "wx/wx.h".
10 #include "wx/wxprec.h"
11
12 #ifdef __BORLANDC__
13 #pragma hdrstop
14 #endif
15
16 // for all others, include the necessary headers wxWidgets headers)
17 #ifndef WX_PRECOMP
18 #include "wx/wx.h"
19 #endif
20
21 #include "guiframe.h"
22
23 #include "bitmaps/play.xpm"
24 #include "bitmaps/stop.xpm"
25
26
27 ///////////////////////////////////////////////////////////////////////////
28
29 GUIFrame::GUIFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
30 {
31 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
32
33 mbar = new wxMenuBar( 0 );
34 fileMenu = new wxMenu();
35 wxMenuItem* m_menuSeeScr;
36 m_menuSeeScr = new wxMenuItem( fileMenu, wxID_ZOOM_IN, wxString( _("&Open screenshots folder...") ) + wxT('\t') + wxT("Ctrl+O"), _("Opens the directory where the screenshots are saved."), wxITEM_NORMAL );
37 fileMenu->Append( m_menuSeeScr );
38
39 fileMenu->AppendSeparator();
40
41 wxMenuItem* m_menuFileQuit;
42 m_menuFileQuit = new wxMenuItem( fileMenu, wxID_EXIT, wxString( _("&Quit") ) + wxT('\t') + wxT("Alt+F4"), _("Quits the application."), wxITEM_NORMAL );
43 fileMenu->Append( m_menuFileQuit );
44
45 mbar->Append( fileMenu, _("&File") );
46
47 captureMenu = new wxMenu();
48 wxMenuItem* m_menuCapFullScreen;
49 m_menuCapFullScreen = new wxMenuItem( captureMenu, idMenuCapFullScreen, wxString( _("&Full Screen") ) + wxT('\t') + wxT("Ctrl+Alt+F"), _("Takes a screenshot of the entire screen."), wxITEM_NORMAL );
50 captureMenu->Append( m_menuCapFullScreen );
51
52 m_menuCapRect = new wxMenuItem( captureMenu, idMenuCapRect, wxString( _("Regions<Begin>") ) + wxT('\t') + wxT("Ctrl+Alt+R"), _("Manually specify rectangular regions for the screenshots."), wxITEM_NORMAL );
53 captureMenu->Append( m_menuCapRect );
54
55 m_menuEndCapRect = new wxMenuItem( captureMenu, idMenuEndCapRect, wxString( _("Regions<End>") ) + wxT('\t') + wxT("Ctrl+Alt+E"), _("Stop manually generating screenshots."), wxITEM_NORMAL );
56 captureMenu->Append( m_menuEndCapRect );
57 m_menuEndCapRect->Enable( false );
58
59 wxMenuItem* m_menuCapAll;
60 m_menuCapAll = new wxMenuItem( captureMenu, idMenuCapAll, wxString( _("Capture All") ) + wxT('\t') + wxT("Ctrl+Alt+A"), _("Takes screenshots for all controls automatically."), wxITEM_NORMAL );
61 captureMenu->Append( m_menuCapAll );
62
63 mbar->Append( captureMenu, _("&Capture") );
64
65 helpMenu = new wxMenu();
66 wxMenuItem* m_menuHelpAbout;
67 m_menuHelpAbout = new wxMenuItem( helpMenu, wxID_ABOUT, wxString( _("&About...") ) + wxT('\t') + wxT("F1"), _("Shows info about this application."), wxITEM_NORMAL );
68 helpMenu->Append( m_menuHelpAbout );
69
70 mbar->Append( helpMenu, _("&Help") );
71
72 this->SetMenuBar( mbar );
73
74 wxBoxSizer* bSizer0;
75 bSizer0 = new wxBoxSizer( wxVERTICAL );
76
77 m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
78 m_panel1 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
79 wxFlexGridSizer* fgSizer1;
80 fgSizer1 = new wxFlexGridSizer( 5, 2, 0, 0 );
81 fgSizer1->SetFlexibleDirection( wxBOTH );
82 fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE );
83
84 m_button1 = new wxButton( m_panel1, wxID_ANY, _("wxButton"), wxDefaultPosition, wxDefaultSize, 0 );
85 fgSizer1->Add( m_button1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
86
87 m_staticText1 = new wxStaticText( m_panel1, wxID_ANY, _("wxStaticText"), wxDefaultPosition, wxDefaultSize, 0 );
88 m_staticText1->Wrap( -1 );
89 fgSizer1->Add( m_staticText1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
90
91 m_checkBox1 = new wxCheckBox( m_panel1, wxID_ANY, _("Checked"), wxDefaultPosition, wxDefaultSize, 0 );
92 m_checkBox1->SetValue(true);
93
94 m_checkBox1->SetToolTip( _("wxCheckBox") );
95
96 fgSizer1->Add( m_checkBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
97
98 m_checkBox2 = new wxCheckBox( m_panel1, wxID_ANY, _("Unchecked"), wxDefaultPosition, wxDefaultSize, 0 );
99
100 m_checkBox2->SetToolTip( _("wxCheckBox") );
101
102 fgSizer1->Add( m_checkBox2, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 );
103
104 m_radioBtn1 = new wxRadioButton( m_panel1, wxID_ANY, _("Checked"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
105 m_radioBtn1->SetValue( true );
106 m_radioBtn1->SetToolTip( _("wxRadioButton") );
107
108 fgSizer1->Add( m_radioBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
109
110 m_radioBtn2 = new wxRadioButton( m_panel1, wxID_ANY, _("Unchecked"), wxDefaultPosition, wxDefaultSize, 0 );
111 m_radioBtn2->SetToolTip( _("wxRadioButton") );
112
113 fgSizer1->Add( m_radioBtn2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
114
115 m_bpButton1 = new wxBitmapButton( m_panel1, wxID_ANY, wxBitmap( wxT("bitmaps/wxwin32x32.png"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW );
116 m_bpButton1->SetToolTip( _("wxBitmapButton") );
117
118 m_bpButton1->SetToolTip( _("wxBitmapButton") );
119
120 fgSizer1->Add( m_bpButton1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
121
122 m_bitmap1 = new wxStaticBitmap( m_panel1, wxID_ANY, wxBitmap( wxT("bitmaps/wxwin32x32.png"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
123 m_bitmap1->SetToolTip( _("wxStaticBitmap") );
124
125 fgSizer1->Add( m_bitmap1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
126
127 m_gauge1 = new wxGauge( m_panel1, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL, wxDefaultValidator, wxT("_Gauge") );
128 m_gauge1->SetValue( 50 );
129 m_gauge1->SetToolTip( _("wxGauge") );
130
131 fgSizer1->Add( m_gauge1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
132
133 m_slider1 = new wxSlider( m_panel1, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL );
134 m_slider1->SetToolTip( _("wxSlider") );
135
136 fgSizer1->Add( m_slider1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
137
138 m_toggleBtn1 = new wxToggleButton( m_panel1, wxID_ANY, _("Untoggled"), wxDefaultPosition, wxDefaultSize, 0 );
139 m_toggleBtn1->SetToolTip( _("wxToggleButton") );
140
141 fgSizer1->Add( m_toggleBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
142
143 m_toggleBtn2 = new wxToggleButton( m_panel1, wxID_ANY, _("Toggled"), wxDefaultPosition, wxDefaultSize, 0 );
144 m_toggleBtn2->SetValue( true );
145 m_toggleBtn2->SetToolTip( _("wxToggleButton") );
146
147 fgSizer1->Add( m_toggleBtn2, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 );
148
149 m_hyperlink1 = new wxHyperlinkCtrl( m_panel1, wxID_ANY, _("www.wxwidgets.org"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
150 m_hyperlink1->SetToolTip( _("wxHyperlinkCtrl") );
151
152 fgSizer1->Add( m_hyperlink1, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 );
153
154 m_spinCtrl1 = new wxSpinCtrl( m_panel1, wxID_ANY, wxT("5"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 );
155 m_spinCtrl1->SetToolTip( _("wxSpinCtrl") );
156
157 fgSizer1->Add( m_spinCtrl1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
158
159 m_spinBtn1 = new wxSpinButton( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
160 m_spinBtn1->SetToolTip( _("wxSpinButton") );
161
162 fgSizer1->Add( m_spinBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
163
164 m_scrollBar1 = new wxScrollBar( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL );
165 m_scrollBar1->SetToolTip( _("wxScrollBar") );
166
167 fgSizer1->Add( m_scrollBar1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
168
169 m_panel1->SetSizer( fgSizer1 );
170 m_panel1->Layout();
171 fgSizer1->Fit( m_panel1 );
172 m_notebook1->AddPage( m_panel1, _("Tiny Controls"), true );
173 m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
174 wxFlexGridSizer* fgSizer2;
175 fgSizer2 = new wxFlexGridSizer( 5, 2, 0, 0 );
176 fgSizer2->SetFlexibleDirection( wxBOTH );
177 fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
178
179 wxString m_checkList1Choices[] = { _("wxCheckListBox"), _("Item1"), _("Item2") };
180 int m_checkList1NChoices = sizeof( m_checkList1Choices ) / sizeof( wxString );
181 m_checkList1 = new wxCheckListBox( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_checkList1NChoices, m_checkList1Choices, 0 );
182 fgSizer2->Add( m_checkList1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
183
184 m_listBox1 = new wxListBox( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
185 m_listBox1->Append( _("wxListBox") );
186 m_listBox1->Append( _("Item1") );
187 m_listBox1->Append( _("Item2") );
188 fgSizer2->Add( m_listBox1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
189
190 wxString m_radioBox1Choices[] = { _("Item1"), _("Item2") };
191 int m_radioBox1NChoices = sizeof( m_radioBox1Choices ) / sizeof( wxString );
192 m_radioBox1 = new wxRadioBox( m_panel2, wxID_ANY, _("wxRadioBox"), wxDefaultPosition, wxDefaultSize, m_radioBox1NChoices, m_radioBox1Choices, 1, wxRA_SPECIFY_COLS );
193 m_radioBox1->SetSelection( 0 );
194 fgSizer2->Add( m_radioBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
195
196 m_staticBox1 = new wxStaticBox(m_panel2,wxID_ANY, _("wxStaticBox"), wxDefaultPosition, wxDefaultSize, 0, _("_StaticBox"));
197
198
199 fgSizer2->Add( m_staticBox1, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 20 );
200
201 m_treeCtrl1 = new wxTreeCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxSUNKEN_BORDER );
202 fgSizer2->Add( m_treeCtrl1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
203
204 m_listCtrl1 = new wxListCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxSize(220,120), wxLC_REPORT|wxSUNKEN_BORDER );
205 m_listCtrl1->SetToolTip( _("wxListCtrl") );
206
207 fgSizer2->Add( m_listCtrl1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
208
209 m_animationCtrl1 = new wxAnimationCtrl(m_panel2, wxID_ANY);
210 m_animationCtrl1->SetToolTip(_("wxAnimationCtrl"));
211 if (m_animationCtrl1->LoadFile(wxT("bitmaps/throbber.gif")))
212 m_animationCtrl1->Play();
213 fgSizer2->Add( m_animationCtrl1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
214
215 m_collPane1 = new wxCollapsiblePane(m_panel2, -1, wxT("Collapsed"));
216 wxWindow *win = m_collPane1->GetPane();
217 m_collPane1->SetToolTip(_("wxCollapsiblePane"));
218
219 wxBoxSizer * collbSizer = new wxBoxSizer(wxVERTICAL);
220 wxStaticText* m_collSText = new wxStaticText(win, -1, wxT("You can place"));
221 wxButton* m_collBut = new wxButton(win, -1, wxT("anything"));
222 wxTextCtrl* m_collText = new wxTextCtrl(win, -1, wxT("inside a wxCollapsiblePane"));
223 collbSizer->Add( m_collSText, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
224 collbSizer->Add( m_collBut, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
225 collbSizer->Add( m_collText, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
226 win->SetSizer(collbSizer);
227 fgSizer2->Add( m_collPane1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
228
229 m_collPane2 = new wxCollapsiblePane(m_panel2, -1, wxT("Expanded"));
230 wxWindow *win2 = m_collPane2->GetPane();
231 m_collPane2->SetToolTip(_("wxCollapsiblePane"));
232
233 wxBoxSizer * collbSizer2 = new wxBoxSizer(wxVERTICAL);
234 wxStaticText* m_collSText2 = new wxStaticText(win2, -1, wxT("You can place"));
235 wxButton* m_collBut2 = new wxButton(win2, -1, wxT("anything"));
236 wxTextCtrl* m_collText2 = new wxTextCtrl(win2, -1, wxT("inside a wxCollapsiblePane"));
237 collbSizer2->Add( m_collSText2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
238 collbSizer2->Add( m_collBut2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
239 collbSizer2->Add( m_collText2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 );
240 win2->SetSizer(collbSizer2);
241
242 m_collPane2->Expand();
243 fgSizer2->Add( m_collPane2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
244
245 m_panel2->SetSizer( fgSizer2 );
246 m_panel2->Layout();
247 fgSizer2->Fit( m_panel2 );
248 m_notebook1->AddPage( m_panel2, _("Multiple choice Controls"), false );
249 m_panel3 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
250 wxBoxSizer* bSizer2;
251 bSizer2 = new wxBoxSizer( wxVERTICAL );
252
253 m_textCtrl1 = new wxTextCtrl( m_panel3, wxID_ANY, _("Single-line"), wxDefaultPosition, wxDefaultSize, 0 );
254 m_textCtrl1->SetToolTip( _("wxTextCtrl") );
255
256 bSizer2->Add( m_textCtrl1, 0, wxTOP|wxRIGHT|wxLEFT, 20 );
257
258
259 bSizer2->Add( 0, 10, 0, 0, 5 );
260
261 m_textCtrl2 = new wxTextCtrl( m_panel3, wxID_ANY, _("Multi-line\nLine1\nLine2\n"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
262 m_textCtrl2->SetToolTip( _("wxTextCtrl") );
263
264 bSizer2->Add( m_textCtrl2, 0, wxBOTTOM|wxRIGHT|wxLEFT, 20 );
265
266 m_richText1 = new wxRichTextCtrl( m_panel3, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );
267 m_richText1->SetToolTip( _("wxRichTextCtrl") );
268 m_richText1->SetMinSize( wxSize( 200,200 ) );
269
270 bSizer2->Add( m_richText1, 0, wxALL, 20 );
271
272 m_panel3->SetSizer( bSizer2 );
273 m_panel3->Layout();
274 bSizer2->Fit( m_panel3 );
275 m_notebook1->AddPage( m_panel3, _("[Rich]Text Controls"), false );
276 m_panel4 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
277 wxFlexGridSizer* fgSizer5;
278 fgSizer5 = new wxFlexGridSizer( 2, 2, 10, 10 );
279 fgSizer5->SetFlexibleDirection( wxBOTH );
280 fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
281
282 m_colourPicker1 = new wxColourPickerCtrl( m_panel4, wxID_ANY, *wxBLACK, wxDefaultPosition, wxDefaultSize, wxCLRP_DEFAULT_STYLE );
283 m_colourPicker1->SetToolTip( _("wxColourPickerCtrl") );
284
285 fgSizer5->Add( m_colourPicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
286
287 m_fontPicker1 = new wxFontPickerCtrl( m_panel4, wxID_ANY, wxNullFont, wxDefaultPosition, wxDefaultSize, wxFNTP_DEFAULT_STYLE );
288 m_fontPicker1->SetMaxPointSize( 100 );
289 m_fontPicker1->SetToolTip( _("wxFontPickerCtrl") );
290
291 fgSizer5->Add( m_fontPicker1, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 20 );
292
293 m_filePicker1 = new wxFilePickerCtrl( m_panel4, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_DEFAULT_STYLE, wxDefaultValidator, wxT("_FilePickerCtrl") );
294 m_filePicker1->SetToolTip( _("wxFilePickerCtrl") );
295
296 fgSizer5->Add( m_filePicker1, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 20 );
297
298
299 fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 );
300
301 m_calendar1 = new wxCalendarCtrl( m_panel4, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
302 m_calendar1->SetToolTip( _("wxCalendarCtrl") );
303
304 fgSizer5->Add( m_calendar1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
305
306 m_datePicker1 = new wxDatePickerCtrl( m_panel4, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT );
307 m_datePicker1->SetToolTip( _("wxDatePickerCtrl") );
308
309 fgSizer5->Add( m_datePicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
310
311 m_genericDirCtrl1 = new wxGenericDirCtrl( m_panel4, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER, wxEmptyString, 0, wxT("_GenericDirCtrl") );
312
313 m_genericDirCtrl1->ShowHidden( false );
314 m_genericDirCtrl1->SetToolTip( _("wxGenericDirCtrl") );
315 m_genericDirCtrl1->SetMinSize( wxSize( -1,150 ) );
316
317 fgSizer5->Add( m_genericDirCtrl1, 1, wxEXPAND|wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
318
319 m_dirPicker1 = new wxDirPickerCtrl( m_panel4, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_DEFAULT_STYLE, wxDefaultValidator, wxT("_DirPickerCtrl") );
320 m_dirPicker1->SetToolTip( _("wxDirPickerCtrl") );
321
322 fgSizer5->Add( m_dirPicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
323
324 m_panel4->SetSizer( fgSizer5 );
325 m_panel4->Layout();
326 fgSizer5->Fit( m_panel4 );
327 m_notebook1->AddPage( m_panel4, _("Picker Controls"), false );
328 m_panel5 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
329 wxFlexGridSizer* fgSizer4;
330 fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 );
331 fgSizer4->SetFlexibleDirection( wxBOTH );
332 fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
333
334 wxString m_choice1Choices[] = { _("wxChoice"), _("Item1"), _("Item2"), _("Item3"), _("Item4") };
335 int m_choice1NChoices = sizeof( m_choice1Choices ) / sizeof( wxString );
336 m_choice1 = new wxChoice( m_panel5, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice1NChoices, m_choice1Choices, 0 );
337 m_choice1->SetSelection( 0 );
338 fgSizer4->Add( m_choice1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
339
340 m_comboBox1 = new wxComboBox( m_panel5, wxID_ANY, _("wxComboBox"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
341 m_comboBox1->Append( _("wxComboBox") );
342 m_comboBox1->Append( _("Item1") );
343 m_comboBox1->Append( _("Item2") );
344 m_comboBox1->Append( _("Item3") );
345 m_comboBox1->Append( _("Item4") );
346 fgSizer4->Add( m_comboBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
347
348
349 fgSizer4->Add( 0, 120, 1, wxEXPAND, 5 );
350
351
352 fgSizer4->Add( 0, 120, 1, wxEXPAND, 5 );
353
354 m_bmpComboBox1 = new wxBitmapComboBox(m_panel5, wxID_ANY,_("Item1"));
355 m_bmpComboBox1->Append(_("Item1"), wxBitmap(_T("bitmaps/bell.png"),wxBITMAP_TYPE_PNG));
356 m_bmpComboBox1->Append(_("Item2"), wxBitmap(_T("bitmaps/sound.png"),wxBITMAP_TYPE_PNG));
357 m_bmpComboBox1->Append(_("Item3"), wxBitmap(_T("bitmaps/bell.png"),wxBITMAP_TYPE_PNG));
358 m_bmpComboBox1->Append(_("Item4"), wxBitmap(_T("bitmaps/sound.png"),wxBITMAP_TYPE_PNG));
359 m_bmpComboBox1->SetToolTip(_("wxBitmapComboBox"));
360 fgSizer4->Add( m_bmpComboBox1, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 20 );
361
362 m_ownerDrawnComboBox1 = PenStyleComboBox::CreateSample(m_panel5);
363 m_ownerDrawnComboBox1->SetToolTip(_("wxOwnerDrawnComboBox"));
364 fgSizer4->Add( m_ownerDrawnComboBox1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 );
365
366
367 fgSizer4->Add( 0, 90, 1, wxEXPAND, 5 );
368
369
370 fgSizer4->Add( 0, 90, 1, wxEXPAND, 5 );
371
372 m_comboCtrl1 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString);
373 // first of all, set the popup control!
374 ListViewComboPopup* popupList = new ListViewComboPopup();
375 m_comboCtrl1->SetPopupControl(popupList);
376 m_comboCtrl1->SetPopupMaxHeight(80);
377
378 m_comboCtrl1->SetText(wxT("wxComboCtrl"));
379 m_comboCtrl1->SetToolTip(_("wxComboCtrl"));
380
381 // Populate using wxListView methods
382 popupList->InsertItem(popupList->GetItemCount(),wxT("wxComboCtrl"));
383 popupList->InsertItem(popupList->GetItemCount(),wxT("with"));
384 popupList->InsertItem(popupList->GetItemCount(),wxT("wxListView"));
385 popupList->InsertItem(popupList->GetItemCount(),wxT("popup"));
386 popupList->InsertItem(popupList->GetItemCount(),wxT("Item1"));
387 popupList->InsertItem(popupList->GetItemCount(),wxT("Item2"));
388 popupList->InsertItem(popupList->GetItemCount(),wxT("Item3"));
389
390 popupList->Select(0, true);
391 fgSizer4->Add( m_comboCtrl1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
392
393 m_comboCtrl2 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString);
394 // first of all, set the popup control!
395 TreeCtrlComboPopup* popupTree = new TreeCtrlComboPopup();
396 m_comboCtrl2->SetPopupControl(popupTree);
397 m_comboCtrl2->SetPopupMaxHeight(80);
398
399 m_comboCtrl2->SetText(wxT("wxComboCtrl"));
400 m_comboCtrl2->SetToolTip(_("wxComboCtrl"));
401
402 //Add a root and some nodes using wxTreeCtrl methods
403 wxTreeItemId root = popupTree->AddRoot(_("wxComboCtrl"));
404
405 popupTree->AppendItem(root, _("with"));
406 popupTree->AppendItem(root, _("wxTreeCtrl"));
407
408 wxTreeItemId node2 = popupTree->AppendItem(root, _("popout"));
409 popupTree->AppendItem(node2, _("Node1"));
410 popupTree->AppendItem(node2, _("Node2"));
411
412 popupTree->ExpandAll();
413 fgSizer4->Add( m_comboCtrl2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 );
414
415 m_panel5->SetSizer( fgSizer4 );
416 m_panel5->Layout();
417 fgSizer4->Fit( m_panel5 );
418 m_notebook1->AddPage( m_panel5, _("Drop-down Controls"), false );
419
420 bSizer0->Add( m_notebook1, 1, wxEXPAND | wxALL, 0 );
421
422 this->SetSizer( bSizer0 );
423 this->Layout();
424 bSizer0->Fit( this );
425 statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
426
427 // Connect Events
428 this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) );
429 this->Connect( m_menuSeeScr->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnSeeScreenshots ) );
430 this->Connect( m_menuFileQuit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnQuit ) );
431 this->Connect( m_menuCapFullScreen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureFullScreen ) );
432 this->Connect( m_menuCapRect->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureRect ) );
433 this->Connect( m_menuEndCapRect->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnEndCaptureRect ) );
434 this->Connect( m_menuCapAll->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureAllControls ) );
435 this->Connect( m_menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnAbout ) );
436 m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanged ), NULL, this );
437 m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanging ), NULL, this );
438 }
439
440 GUIFrame::~GUIFrame()
441 {
442 // Disconnect Events
443 this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) );
444 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnSeeScreenshots ) );
445 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnQuit ) );
446 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureFullScreen ) );
447 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureRect ) );
448 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnEndCaptureRect ) );
449 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureAllControls ) );
450 this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnAbout ) );
451 m_notebook1->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanged ), NULL, this );
452 m_notebook1->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanging ), NULL, this );
453 }