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