]>
git.saurik.com Git - wxWidgets.git/blob - samples/controls/controls.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Controls wxWindows sample
4 // Author: Robert Roebling
7 // Copyright: (c) Robert Roebling, Julian Smart
8 // Licence: wxWindows license
9 /////////////////////////////////////////////////////////////////////////////
12 #pragma implementation "controls.h"
15 // For compilers that support precompilation, includes "wx/wx.h".
16 #include "wx/wxprec.h"
26 #include "wx/spinbutt.h"
27 #include "wx/notebook.h"
28 #include "wx/imaglist.h"
29 #include "wx/spinbutt.h"
30 #include "wx/clipbrd.h"
32 // XPM doesn't seem to work under Windows at present. Or, wxNotebook images
34 // Uncomment this line and comment out the next to try it.
35 //#if defined(__WXGTK__) || defined(__WXMOTIF__) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW)
36 #if defined(__WXGTK__) || defined(__WXMOTIF__)
41 #include "mondrian.xpm"
42 #include "icons/choice.xpm"
43 #include "icons/combo.xpm"
44 #include "icons/list.xpm"
45 #include "icons/radio.xpm"
46 #include "icons/text.xpm"
47 #include "icons/gauge.xpm"
50 //----------------------------------------------------------------------
52 //----------------------------------------------------------------------
54 class MyApp
: public wxApp
60 class MyPanel
: public wxPanel
64 MyPanel(wxFrame
*frame
, int x
, int y
, int w
, int h
);
67 void OnSize( wxSizeEvent
& event
);
68 void OnListBox( wxCommandEvent
&event
);
69 void OnListBoxButtons( wxCommandEvent
&event
);
70 void OnChoice( wxCommandEvent
&event
);
71 void OnChoiceButtons( wxCommandEvent
&event
);
72 void OnCombo( wxCommandEvent
&event
);
73 void OnComboButtons( wxCommandEvent
&event
);
74 void OnRadio( wxCommandEvent
&event
);
75 void OnRadioButtons( wxCommandEvent
&event
);
76 void OnSetFont( wxCommandEvent
&event
);
77 void OnPageChanged( wxNotebookEvent
&event
);
78 void OnSliderUpdate( wxCommandEvent
&event
);
79 void OnSpinUpdate( wxSpinEvent
&event
);
80 void OnPasteFromClipboard( wxCommandEvent
&event
);
81 void OnCopyToClipboard( wxCommandEvent
&event
);
89 wxButton
*m_fontButton
;
90 wxSpinButton
*m_spinbutton
;
91 wxTextCtrl
*m_spintext
;
92 wxTextCtrl
*m_multitext
;
93 wxCheckBox
*m_checkbox
;
96 wxNotebook
*m_notebook
;
101 class MyFrame
: public wxFrame
105 MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
);
109 void OnQuit(wxCommandEvent
& event
);
110 void OnAbout(wxCommandEvent
& event
);
111 bool OnClose(void) { return TRUE
; }
113 DECLARE_EVENT_TABLE()
116 //----------------------------------------------------------------------
118 //----------------------------------------------------------------------
120 IMPLEMENT_APP (MyApp
)
122 //----------------------------------------------------------------------
124 //----------------------------------------------------------------------
126 const int MINIMAL_QUIT
= 100;
127 const int MINIMAL_TEXT
= 101;
128 const int MINIMAL_ABOUT
= 102;
130 bool MyApp::OnInit(void)
132 // Create the main frame window
133 MyFrame
*frame
= new MyFrame((wxFrame
*) NULL
,
134 "Controls wxWindows App",
138 // The wxICON() macros loads an icon from a resource under Windows
139 // and uses an #included XPM image under GTK+ and Motif
141 frame
->SetIcon( wxICON(mondrian
) );
143 wxMenu
*file_menu
= new wxMenu
;
145 file_menu
->Append(MINIMAL_ABOUT
, "&About");
146 file_menu
->Append(MINIMAL_QUIT
, "E&xit");
147 wxMenuBar
*menu_bar
= new wxMenuBar
;
148 menu_bar
->Append(file_menu
, "&File");
149 frame
->SetMenuBar(menu_bar
);
158 //----------------------------------------------------------------------
160 //----------------------------------------------------------------------
162 const int ID_NOTEBOOK
= 1000;
164 const int ID_LISTBOX
= 130;
165 const int ID_LISTBOX_SEL_NUM
= 131;
166 const int ID_LISTBOX_SEL_STR
= 132;
167 const int ID_LISTBOX_CLEAR
= 133;
168 const int ID_LISTBOX_APPEND
= 134;
169 const int ID_LISTBOX_DELETE
= 135;
170 const int ID_LISTBOX_FONT
= 136;
171 const int ID_LISTBOX_ENABLE
= 137;
173 const int ID_CHOICE
= 120;
174 const int ID_CHOICE_SEL_NUM
= 121;
175 const int ID_CHOICE_SEL_STR
= 122;
176 const int ID_CHOICE_CLEAR
= 123;
177 const int ID_CHOICE_APPEND
= 124;
178 const int ID_CHOICE_DELETE
= 125;
179 const int ID_CHOICE_FONT
= 126;
180 const int ID_CHOICE_ENABLE
= 127;
182 const int ID_COMBO
= 140;
183 const int ID_COMBO_SEL_NUM
= 141;
184 const int ID_COMBO_SEL_STR
= 142;
185 const int ID_COMBO_CLEAR
= 143;
186 const int ID_COMBO_APPEND
= 144;
187 const int ID_COMBO_DELETE
= 145;
188 const int ID_COMBO_FONT
= 146;
189 const int ID_COMBO_ENABLE
= 147;
191 const int ID_TEXT
= 150;
192 const int ID_PASTE_TEXT
= 151;
193 const int ID_COPY_TEXT
= 152;
195 const int ID_RADIOBOX
= 160;
196 const int ID_RADIOBOX_SEL_NUM
= 161;
197 const int ID_RADIOBOX_SEL_STR
= 162;
198 const int ID_RADIOBOX_FONT
= 163;
199 const int ID_RADIOBOX_ENABLE
= 164;
201 const int ID_RADIOBUTTON_1
= 166;
202 const int ID_RADIOBUTTON_2
= 167;
204 const int ID_SET_FONT
= 170;
206 const int ID_GAUGE
= 180;
207 const int ID_SLIDER
= 181;
209 const int ID_SPIN
= 182;
212 BEGIN_EVENT_TABLE(MyPanel
, wxPanel
)
213 EVT_SIZE ( MyPanel::OnSize
)
214 EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK
, MyPanel::OnPageChanged
)
215 EVT_LISTBOX (ID_LISTBOX
, MyPanel::OnListBox
)
216 EVT_BUTTON (ID_LISTBOX_SEL_NUM
, MyPanel::OnListBoxButtons
)
217 EVT_BUTTON (ID_LISTBOX_SEL_STR
, MyPanel::OnListBoxButtons
)
218 EVT_BUTTON (ID_LISTBOX_CLEAR
, MyPanel::OnListBoxButtons
)
219 EVT_BUTTON (ID_LISTBOX_APPEND
, MyPanel::OnListBoxButtons
)
220 EVT_BUTTON (ID_LISTBOX_DELETE
, MyPanel::OnListBoxButtons
)
221 EVT_BUTTON (ID_LISTBOX_FONT
, MyPanel::OnListBoxButtons
)
222 EVT_CHECKBOX (ID_LISTBOX_ENABLE
, MyPanel::OnListBoxButtons
)
223 EVT_CHOICE (ID_CHOICE
, MyPanel::OnChoice
)
224 EVT_BUTTON (ID_CHOICE_SEL_NUM
, MyPanel::OnChoiceButtons
)
225 EVT_BUTTON (ID_CHOICE_SEL_STR
, MyPanel::OnChoiceButtons
)
226 EVT_BUTTON (ID_CHOICE_CLEAR
, MyPanel::OnChoiceButtons
)
227 EVT_BUTTON (ID_CHOICE_APPEND
, MyPanel::OnChoiceButtons
)
228 EVT_BUTTON (ID_CHOICE_DELETE
, MyPanel::OnChoiceButtons
)
229 EVT_BUTTON (ID_CHOICE_FONT
, MyPanel::OnChoiceButtons
)
230 EVT_CHECKBOX (ID_CHOICE_ENABLE
, MyPanel::OnChoiceButtons
)
231 EVT_CHOICE (ID_COMBO
, MyPanel::OnCombo
)
232 EVT_BUTTON (ID_COMBO_SEL_NUM
, MyPanel::OnComboButtons
)
233 EVT_BUTTON (ID_COMBO_SEL_STR
, MyPanel::OnComboButtons
)
234 EVT_BUTTON (ID_COMBO_CLEAR
, MyPanel::OnComboButtons
)
235 EVT_BUTTON (ID_COMBO_APPEND
, MyPanel::OnComboButtons
)
236 EVT_BUTTON (ID_COMBO_DELETE
, MyPanel::OnComboButtons
)
237 EVT_BUTTON (ID_COMBO_FONT
, MyPanel::OnComboButtons
)
238 EVT_CHECKBOX (ID_COMBO_ENABLE
, MyPanel::OnComboButtons
)
239 EVT_RADIOBOX (ID_RADIOBOX
, MyPanel::OnRadio
)
240 EVT_BUTTON (ID_RADIOBOX_SEL_NUM
, MyPanel::OnRadioButtons
)
241 EVT_BUTTON (ID_RADIOBOX_SEL_STR
, MyPanel::OnRadioButtons
)
242 EVT_BUTTON (ID_RADIOBOX_FONT
, MyPanel::OnRadioButtons
)
243 EVT_CHECKBOX (ID_RADIOBOX_ENABLE
, MyPanel::OnRadioButtons
)
244 EVT_BUTTON (ID_SET_FONT
, MyPanel::OnSetFont
)
245 EVT_SLIDER (ID_SLIDER
, MyPanel::OnSliderUpdate
)
246 EVT_SPIN (ID_SPIN
, MyPanel::OnSpinUpdate
)
247 EVT_BUTTON (ID_PASTE_TEXT
, MyPanel::OnPasteFromClipboard
)
248 EVT_BUTTON (ID_COPY_TEXT
, MyPanel::OnCopyToClipboard
)
251 MyPanel::MyPanel( wxFrame
*frame
, int x
, int y
, int w
, int h
) :
252 wxPanel( frame
, -1, wxPoint(x
, y
), wxSize(w
, h
) )
254 SetBackgroundColour("cadet blue");
256 m_text
= new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE
);
257 m_text
->SetBackgroundColour("wheat");
259 m_notebook
= new wxNotebook( this, ID_NOTEBOOK
, wxPoint(0,0), wxSize(200,150) );
271 // image ids and names
274 Image_List
, Image_Choice
, Image_Combo
, Image_Text
, Image_Radio
, Image_Gauge
, Image_Max
277 // fill the image list
278 wxImageList
*imagelist
= new wxImageList(32, 32);
280 imagelist
-> Add( wxBitmap( list_xpm
));
281 imagelist
-> Add( wxBitmap( choice_xpm
));
282 imagelist
-> Add( wxBitmap( combo_xpm
));
283 imagelist
-> Add( wxBitmap( text_xpm
));
284 imagelist
-> Add( wxBitmap( radio_xpm
));
285 imagelist
-> Add( wxBitmap( gauge_xpm
));
286 m_notebook
->SetImageList(imagelist
);
290 #define Image_List -1
291 #define Image_Choice -1
292 #define Image_Combo -1
293 #define Image_Text -1
294 #define Image_Radio -1
295 #define Image_Gauge -1
300 wxButton
*button
= (wxButton
*)NULL
;
302 m_notebook
->SetBackgroundColour("cadet blue");
304 wxPanel
*panel
= (wxPanel
*) NULL
;
305 panel
= new wxPanel(m_notebook
);
306 panel
->SetBackgroundColour("cadet blue");
307 panel
->SetForegroundColour("blue");
308 m_listbox
= new wxListBox( panel
, ID_LISTBOX
, wxPoint(10,10), wxSize(120,70), 5, choices
);
309 m_listbox
->SetBackgroundColour("wheat");
310 (void)new wxButton( panel
, ID_LISTBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
311 (void)new wxButton( panel
, ID_LISTBOX_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
312 (void)new wxButton( panel
, ID_LISTBOX_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
313 (void)new wxButton( panel
, ID_LISTBOX_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
314 (void)new wxButton( panel
, ID_LISTBOX_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
315 button
= new wxButton( panel
, ID_LISTBOX_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
316 button
->SetForegroundColour( "red" );
317 m_checkbox
= new wxCheckBox( panel
, ID_LISTBOX_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
318 m_checkbox
->SetValue(FALSE
);
319 m_notebook
->AddPage(panel
, "wxList", FALSE
, Image_List
);
321 panel
= new wxPanel(m_notebook
);
322 panel
->SetBackgroundColour("cadet blue");
323 panel
->SetForegroundColour("blue");
324 m_choice
= new wxChoice( panel
, ID_CHOICE
, wxPoint(10,10), wxSize(120,-1), 5, choices
);
325 m_choice
->SetBackgroundColour("wheat");
326 (void)new wxButton( panel
, ID_CHOICE_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
327 (void)new wxButton( panel
, ID_CHOICE_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
328 (void)new wxButton( panel
, ID_CHOICE_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
329 (void)new wxButton( panel
, ID_CHOICE_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
330 (void)new wxButton( panel
, ID_CHOICE_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
331 (void)new wxButton( panel
, ID_CHOICE_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
332 (void)new wxCheckBox( panel
, ID_CHOICE_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
333 m_notebook
->AddPage(panel
, "wxChoice", FALSE
, Image_Choice
);
335 panel
= new wxPanel(m_notebook
);
336 panel
->SetBackgroundColour("cadet blue");
337 panel
->SetForegroundColour("blue");
338 m_combo
= new wxComboBox( panel
, ID_COMBO
, "This", wxPoint(10,10), wxSize(120,-1), 5, choices
);
339 m_combo
->SetBackgroundColour("wheat");
340 (void)new wxButton( panel
, ID_COMBO_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
341 (void)new wxButton( panel
, ID_COMBO_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
342 (void)new wxButton( panel
, ID_COMBO_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
343 (void)new wxButton( panel
, ID_COMBO_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
344 (void)new wxButton( panel
, ID_COMBO_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
345 (void)new wxButton( panel
, ID_COMBO_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
346 (void)new wxCheckBox( panel
, ID_COMBO_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
347 m_notebook
->AddPage(panel
, "wxComboBox", FALSE
, Image_Combo
);
349 panel
= new wxPanel(m_notebook
);
350 panel
->SetBackgroundColour("cadet blue");
351 panel
->SetForegroundColour("blue");
352 wxTextCtrl
*tc
= new wxTextCtrl( panel
, ID_TEXT
, "Write text here.", wxPoint(10,10), wxSize(320,28));
353 (*tc
) << " More text.";
354 tc
->SetBackgroundColour("wheat");
355 m_multitext
= new wxTextCtrl( panel
, ID_TEXT
, "And here.", wxPoint(10,50), wxSize(320,160), wxTE_MULTILINE
);
356 (*m_multitext
) << " More text.";
357 m_multitext
->SetBackgroundColour("wheat");
358 (void)new wxStaticBox( panel
, -1, "wxClipboard", wxPoint(345,50), wxSize(160,145) );
359 (void)new wxButton( panel
, ID_COPY_TEXT
, "Copy line 1", wxPoint(370,80), wxSize(110,30) );
360 (void)new wxButton( panel
, ID_PASTE_TEXT
, "Paste text", wxPoint(370,140), wxSize(110,30) );
361 m_notebook
->AddPage(panel
, "wxTextCtrl" , FALSE
, Image_Text
);
363 wxString choices2
[] =
369 panel
= new wxPanel(m_notebook
);
370 panel
->SetBackgroundColour("cadet blue");
371 panel
->SetForegroundColour("blue");
372 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "That", wxPoint(10,160), wxSize(-1,-1), 2, choices2
, 1, wxRA_VERTICAL
);
373 m_radio
->SetBackgroundColour("wheat");
374 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "This", wxPoint(10,10), wxSize(-1,-1), 5, choices
, 1, wxRA_HORIZONTAL
);
375 m_radio
->SetBackgroundColour("wheat");
376 (void)new wxButton( panel
, ID_RADIOBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
377 (void)new wxButton( panel
, ID_RADIOBOX_SEL_STR
, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
378 m_fontButton
= new wxButton( panel
, ID_SET_FONT
, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
379 m_fontButton
->SetForegroundColour("blue");
380 (void)new wxButton( panel
, ID_RADIOBOX_FONT
, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
381 (void)new wxCheckBox( panel
, ID_RADIOBOX_ENABLE
, "Disable", wxPoint(340,130), wxSize(140,30) );
382 wxRadioButton
*rb
= new wxRadioButton( panel
, ID_RADIOBUTTON_1
, "Radiobutton1", wxPoint(210,170), wxSize(110,30) );
383 rb
->SetValue( FALSE
);
384 (void)new wxRadioButton( panel
, ID_RADIOBUTTON_2
, "Radiobutton2", wxPoint(340,170), wxSize(110,30) );
385 m_notebook
->AddPage(panel
, "wxRadioBox", FALSE
, Image_Radio
);
387 panel
= new wxPanel(m_notebook
);
388 panel
->SetBackgroundColour("cadet blue");
389 panel
->SetForegroundColour("blue");
390 (void)new wxStaticBox( panel
, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
391 m_gauge
= new wxGauge( panel
, -1, 200, wxPoint(18,50), wxSize(155,-1) );
392 m_gauge
->SetBackgroundColour("wheat");
393 m_slider
= new wxSlider( panel
, ID_SLIDER
, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
394 m_slider
->SetBackgroundColour("wheat");
395 (void)new wxStaticBox( panel
, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
396 (void)new wxStaticText( panel
, -1,
397 "In order see the gauge (aka progress bar)\n"
398 "control do something you have to drag the\n"
399 "handle of the slider to the right.\n"
401 "This is also supposed to demonstrate how\n"
402 "to use static controls.\n",
403 wxPoint(208,25), wxSize(200, 100) );
404 m_spintext
= new wxTextCtrl( panel
, -1, "0", wxPoint(20,160), wxSize(80,-1) );
405 m_spintext
->SetBackgroundColour("wheat");
406 m_spinbutton
= new wxSpinButton( panel
, ID_SPIN
, wxPoint(103,159), wxSize(-1,-1) );
407 m_spinbutton
->SetBackgroundColour("wheat");
408 m_spinbutton
->SetRange(0,100);
410 m_notebook
->AddPage(panel
, "wxGauge", FALSE
, Image_Gauge
);
413 void MyPanel::OnPasteFromClipboard( wxCommandEvent
&WXUNUSED(event
) )
417 if (!wxTheClipboard
->IsSupportedFormat( wxDF_TEXT
))
419 *m_text
<< "The clipboard doesn't contain any data in the requested format." << "\n";
424 if (!wxTheClipboard
->Open())
426 *m_text
<< "Error opening the clipboard." << "\n";
432 *m_text
<< "Successfully opened the clipboard." << "\n";
435 wxTextDataObject
*data
= new wxTextDataObject();
437 if (wxTheClipboard
->GetData( data
))
439 *m_text
<< "Successfully retrieved data from the clipboard." << "\n";
440 *m_multitext
<< data
->GetText() << "\n";
444 *m_text
<< "Error getting data from the clipboard." << "\n";
447 wxTheClipboard
->Close();
449 *m_text
<< "Closed the clipboard." << "\n";
456 void MyPanel::OnCopyToClipboard( wxCommandEvent
&WXUNUSED(event
) )
460 wxString
text( m_multitext
->GetLineText(0) );
462 if (text
.IsEmpty()) return;
464 wxTextDataObject
*data
= new wxTextDataObject( text
);
466 if (!wxTheClipboard
->Open())
468 *m_text
<< "Error opening the clipboard." << "\n";
474 *m_text
<< "Successfully opened the clipboard." << "\n";
477 if (!wxTheClipboard
->SetData( data
))
479 *m_text
<< "Error while copying to the clipboard." << "\n";
483 *m_text
<< "Successfully copied data to the clipboard." << "\n";
486 wxTheClipboard
->Close();
488 *m_text
<< "Closed the clipboard." << "\n";
493 void MyPanel::OnSize( wxSizeEvent
& WXUNUSED(event
) )
497 GetClientSize( &x
, &y
);
499 if (m_notebook
) m_notebook
->SetSize( 2, 2, x
-4, y
*2/3-4 );
500 if (m_text
) m_text
->SetSize( 2, y
*2/3+2, x
-4, y
/3-4 );
503 void MyPanel::OnPageChanged( wxNotebookEvent
&event
)
505 *m_text
<< "Notebook selection is " << event
.GetSelection() << "\n";
508 void MyPanel::OnListBox( wxCommandEvent
&event
)
510 m_text
->WriteText( "ListBox selection string is: " );
511 m_text
->WriteText( event
.GetString() );
512 m_text
->WriteText( "\n" );
515 void MyPanel::OnListBoxButtons( wxCommandEvent
&event
)
517 switch (event
.GetId())
519 case ID_LISTBOX_ENABLE
:
521 m_text
->WriteText("Checkbox clicked.\n");
522 m_listbox
->Enable( event
.GetInt() == 0 );
525 case ID_LISTBOX_SEL_NUM
:
527 m_listbox
->SetSelection( 2 );
530 case ID_LISTBOX_SEL_STR
:
532 m_listbox
->SetStringSelection( "This" );
535 case ID_LISTBOX_CLEAR
:
540 case ID_LISTBOX_APPEND
:
542 m_listbox
->Append( "Hi!" );
545 case ID_LISTBOX_DELETE
:
547 int idx
= m_listbox
->GetSelection();
548 m_listbox
->Delete( idx
);
551 case ID_LISTBOX_FONT
:
553 m_listbox
->SetFont( *wxITALIC_FONT
);
554 m_checkbox
->SetFont( *wxITALIC_FONT
);
560 void MyPanel::OnChoice( wxCommandEvent
&event
)
562 m_text
->WriteText( "Choice selection string is: " );
563 m_text
->WriteText( event
.GetString() );
564 m_text
->WriteText( "\n" );
567 void MyPanel::OnChoiceButtons( wxCommandEvent
&event
)
569 switch (event
.GetId())
571 case ID_CHOICE_ENABLE
:
573 m_choice
->Enable( event
.GetInt() == 0 );
576 case ID_CHOICE_SEL_NUM
:
578 m_choice
->SetSelection( 2 );
581 case ID_CHOICE_SEL_STR
:
583 m_choice
->SetStringSelection( "This" );
586 case ID_CHOICE_CLEAR
:
591 case ID_CHOICE_APPEND
:
593 m_choice
->Append( "Hi!" );
596 case ID_CHOICE_DELETE
:
598 int idx
= m_choice
->GetSelection();
599 m_choice
->Delete( idx
);
604 m_choice
->SetFont( *wxITALIC_FONT
);
610 void MyPanel::OnCombo( wxCommandEvent
&event
)
612 m_text
->WriteText( "ComboBox selection string is: " );
613 m_text
->WriteText( event
.GetString() );
614 m_text
->WriteText( "\n" );
617 void MyPanel::OnComboButtons( wxCommandEvent
&event
)
619 switch (event
.GetId())
621 case ID_COMBO_ENABLE
:
623 m_combo
->Enable( event
.GetInt() == 0 );
626 case ID_COMBO_SEL_NUM
:
628 m_combo
->SetSelection( 2 );
631 case ID_COMBO_SEL_STR
:
633 m_combo
->SetStringSelection( "This" );
641 case ID_COMBO_APPEND
:
643 m_combo
->Append( "Hi!" );
646 case ID_COMBO_DELETE
:
648 int idx
= m_combo
->GetSelection();
649 m_combo
->Delete( idx
);
654 m_combo
->SetFont( *wxITALIC_FONT
);
660 void MyPanel::OnRadio( wxCommandEvent
&event
)
662 m_text
->WriteText( "RadioBox selection string is: " );
663 m_text
->WriteText( event
.GetString() );
664 m_text
->WriteText( "\n" );
667 void MyPanel::OnRadioButtons( wxCommandEvent
&event
)
669 switch (event
.GetId())
671 case ID_RADIOBOX_ENABLE
:
673 m_radio
->Enable( event
.GetInt() == 0 );
676 case ID_RADIOBOX_SEL_NUM
:
678 m_radio
->SetSelection( 2 );
681 case ID_RADIOBOX_SEL_STR
:
683 m_radio
->SetStringSelection( "This" );
686 case ID_RADIOBOX_FONT
:
688 m_radio
->SetFont( *wxITALIC_FONT
);
694 void MyPanel::OnSetFont( wxCommandEvent
&WXUNUSED(event
) )
696 m_fontButton
->SetFont( *wxITALIC_FONT
);
697 m_text
->SetFont( *wxITALIC_FONT
);
700 void MyPanel::OnSliderUpdate( wxCommandEvent
&WXUNUSED(event
) )
702 m_gauge
->SetValue( m_slider
->GetValue() );
705 void MyPanel::OnSpinUpdate( wxSpinEvent
&event
)
708 value
.sprintf( "%d", (int)event
.GetPosition() );
709 m_spintext
->SetValue( value
);
714 delete m_notebook
->GetImageList();
717 //----------------------------------------------------------------------
719 //----------------------------------------------------------------------
721 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
722 EVT_MENU(MINIMAL_QUIT
, MyFrame::OnQuit
)
723 EVT_MENU(MINIMAL_ABOUT
, MyFrame::OnAbout
)
726 MyFrame::MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
):
727 wxFrame(frame
, -1, title
, wxPoint(x
, y
), wxSize(w
, h
))
729 (void)new MyPanel( this, 10, 10, 300, 100 );
732 void MyFrame::OnQuit (wxCommandEvent
& WXUNUSED(event
) )
737 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
739 wxMessageDialog
dialog(this, "This is a control sample", "About Controls", wxOK
);