]>
git.saurik.com Git - wxWidgets.git/blob - samples/controls/controls.cpp
424dad13ac7dba6d90e506fa9349da1a73d7fc44
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 #if defined(__WXGTK__) || defined(__WXMOTIF__)
37 #include "mondrian.xpm"
38 #include "icons/choice.xpm"
39 #include "icons/combo.xpm"
40 #include "icons/list.xpm"
41 #include "icons/radio.xpm"
42 #include "icons/text.xpm"
43 #include "icons/gauge.xpm"
46 //----------------------------------------------------------------------
48 //----------------------------------------------------------------------
50 class MyApp
: public wxApp
56 class MyPanel
: public wxPanel
60 MyPanel(wxFrame
*frame
, int x
, int y
, int w
, int h
);
63 void OnSize( wxSizeEvent
& event
);
64 void OnListBox( wxCommandEvent
&event
);
65 void OnListBoxDoubleClick( wxCommandEvent
&event
);
66 void OnListBoxButtons( wxCommandEvent
&event
);
67 void OnChoice( wxCommandEvent
&event
);
68 void OnChoiceButtons( wxCommandEvent
&event
);
69 void OnCombo( wxCommandEvent
&event
);
70 void OnComboButtons( wxCommandEvent
&event
);
71 void OnRadio( wxCommandEvent
&event
);
72 void OnRadioButtons( wxCommandEvent
&event
);
73 void OnSetFont( wxCommandEvent
&event
);
74 void OnPageChanged( wxNotebookEvent
&event
);
75 void OnSliderUpdate( wxCommandEvent
&event
);
76 void OnSpinUpdate( wxSpinEvent
&event
);
77 void OnPasteFromClipboard( wxCommandEvent
&event
);
78 void OnCopyToClipboard( wxCommandEvent
&event
);
86 wxButton
*m_fontButton
;
87 wxSpinButton
*m_spinbutton
;
88 wxTextCtrl
*m_spintext
;
89 wxTextCtrl
*m_multitext
;
90 wxCheckBox
*m_checkbox
;
93 wxNotebook
*m_notebook
;
98 class MyFrame
: public wxFrame
102 MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
);
106 void OnQuit(wxCommandEvent
& event
);
107 void OnAbout(wxCommandEvent
& event
);
108 bool OnClose(void) { return TRUE
; }
110 DECLARE_EVENT_TABLE()
113 //----------------------------------------------------------------------
115 //----------------------------------------------------------------------
117 IMPLEMENT_APP (MyApp
)
119 //----------------------------------------------------------------------
121 //----------------------------------------------------------------------
123 const int MINIMAL_QUIT
= 100;
124 const int MINIMAL_TEXT
= 101;
125 const int MINIMAL_ABOUT
= 102;
127 bool MyApp::OnInit(void)
129 // Create the main frame window
130 MyFrame
*frame
= new MyFrame((wxFrame
*) NULL
,
131 "Controls wxWindows App",
135 // The wxICON() macros loads an icon from a resource under Windows
136 // and uses an #included XPM image under GTK+ and Motif
138 frame
->SetIcon( wxICON(mondrian
) );
140 wxMenu
*file_menu
= new wxMenu
;
142 file_menu
->Append(MINIMAL_ABOUT
, "&About");
143 file_menu
->Append(MINIMAL_QUIT
, "E&xit");
144 wxMenuBar
*menu_bar
= new wxMenuBar
;
145 menu_bar
->Append(file_menu
, "&File");
146 frame
->SetMenuBar(menu_bar
);
155 //----------------------------------------------------------------------
157 //----------------------------------------------------------------------
159 const int ID_NOTEBOOK
= 1000;
161 const int ID_LISTBOX
= 130;
162 const int ID_LISTBOX_SEL_NUM
= 131;
163 const int ID_LISTBOX_SEL_STR
= 132;
164 const int ID_LISTBOX_CLEAR
= 133;
165 const int ID_LISTBOX_APPEND
= 134;
166 const int ID_LISTBOX_DELETE
= 135;
167 const int ID_LISTBOX_FONT
= 136;
168 const int ID_LISTBOX_ENABLE
= 137;
170 const int ID_CHOICE
= 120;
171 const int ID_CHOICE_SEL_NUM
= 121;
172 const int ID_CHOICE_SEL_STR
= 122;
173 const int ID_CHOICE_CLEAR
= 123;
174 const int ID_CHOICE_APPEND
= 124;
175 const int ID_CHOICE_DELETE
= 125;
176 const int ID_CHOICE_FONT
= 126;
177 const int ID_CHOICE_ENABLE
= 127;
179 const int ID_COMBO
= 140;
180 const int ID_COMBO_SEL_NUM
= 141;
181 const int ID_COMBO_SEL_STR
= 142;
182 const int ID_COMBO_CLEAR
= 143;
183 const int ID_COMBO_APPEND
= 144;
184 const int ID_COMBO_DELETE
= 145;
185 const int ID_COMBO_FONT
= 146;
186 const int ID_COMBO_ENABLE
= 147;
188 const int ID_TEXT
= 150;
189 const int ID_PASTE_TEXT
= 151;
190 const int ID_COPY_TEXT
= 152;
192 const int ID_RADIOBOX
= 160;
193 const int ID_RADIOBOX_SEL_NUM
= 161;
194 const int ID_RADIOBOX_SEL_STR
= 162;
195 const int ID_RADIOBOX_FONT
= 163;
196 const int ID_RADIOBOX_ENABLE
= 164;
198 const int ID_RADIOBUTTON_1
= 166;
199 const int ID_RADIOBUTTON_2
= 167;
201 const int ID_SET_FONT
= 170;
203 const int ID_GAUGE
= 180;
204 const int ID_SLIDER
= 181;
206 const int ID_SPIN
= 182;
209 BEGIN_EVENT_TABLE(MyPanel
, wxPanel
)
210 EVT_SIZE ( MyPanel::OnSize
)
211 EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK
, MyPanel::OnPageChanged
)
212 EVT_LISTBOX (ID_LISTBOX
, MyPanel::OnListBox
)
213 EVT_LISTBOX_DCLICK(ID_LISTBOX
, MyPanel::OnListBoxDoubleClick
)
214 EVT_BUTTON (ID_LISTBOX_SEL_NUM
, MyPanel::OnListBoxButtons
)
215 EVT_BUTTON (ID_LISTBOX_SEL_STR
, MyPanel::OnListBoxButtons
)
216 EVT_BUTTON (ID_LISTBOX_CLEAR
, MyPanel::OnListBoxButtons
)
217 EVT_BUTTON (ID_LISTBOX_APPEND
, MyPanel::OnListBoxButtons
)
218 EVT_BUTTON (ID_LISTBOX_DELETE
, MyPanel::OnListBoxButtons
)
219 EVT_BUTTON (ID_LISTBOX_FONT
, MyPanel::OnListBoxButtons
)
220 EVT_CHECKBOX (ID_LISTBOX_ENABLE
, MyPanel::OnListBoxButtons
)
221 EVT_CHOICE (ID_CHOICE
, MyPanel::OnChoice
)
222 EVT_BUTTON (ID_CHOICE_SEL_NUM
, MyPanel::OnChoiceButtons
)
223 EVT_BUTTON (ID_CHOICE_SEL_STR
, MyPanel::OnChoiceButtons
)
224 EVT_BUTTON (ID_CHOICE_CLEAR
, MyPanel::OnChoiceButtons
)
225 EVT_BUTTON (ID_CHOICE_APPEND
, MyPanel::OnChoiceButtons
)
226 EVT_BUTTON (ID_CHOICE_DELETE
, MyPanel::OnChoiceButtons
)
227 EVT_BUTTON (ID_CHOICE_FONT
, MyPanel::OnChoiceButtons
)
228 EVT_CHECKBOX (ID_CHOICE_ENABLE
, MyPanel::OnChoiceButtons
)
229 EVT_CHOICE (ID_COMBO
, MyPanel::OnCombo
)
230 EVT_BUTTON (ID_COMBO_SEL_NUM
, MyPanel::OnComboButtons
)
231 EVT_BUTTON (ID_COMBO_SEL_STR
, MyPanel::OnComboButtons
)
232 EVT_BUTTON (ID_COMBO_CLEAR
, MyPanel::OnComboButtons
)
233 EVT_BUTTON (ID_COMBO_APPEND
, MyPanel::OnComboButtons
)
234 EVT_BUTTON (ID_COMBO_DELETE
, MyPanel::OnComboButtons
)
235 EVT_BUTTON (ID_COMBO_FONT
, MyPanel::OnComboButtons
)
236 EVT_CHECKBOX (ID_COMBO_ENABLE
, MyPanel::OnComboButtons
)
237 EVT_RADIOBOX (ID_RADIOBOX
, MyPanel::OnRadio
)
238 EVT_BUTTON (ID_RADIOBOX_SEL_NUM
, MyPanel::OnRadioButtons
)
239 EVT_BUTTON (ID_RADIOBOX_SEL_STR
, MyPanel::OnRadioButtons
)
240 EVT_BUTTON (ID_RADIOBOX_FONT
, MyPanel::OnRadioButtons
)
241 EVT_CHECKBOX (ID_RADIOBOX_ENABLE
, MyPanel::OnRadioButtons
)
242 EVT_BUTTON (ID_SET_FONT
, MyPanel::OnSetFont
)
243 EVT_SLIDER (ID_SLIDER
, MyPanel::OnSliderUpdate
)
244 EVT_SPIN (ID_SPIN
, MyPanel::OnSpinUpdate
)
245 EVT_BUTTON (ID_PASTE_TEXT
, MyPanel::OnPasteFromClipboard
)
246 EVT_BUTTON (ID_COPY_TEXT
, MyPanel::OnCopyToClipboard
)
249 MyPanel::MyPanel( wxFrame
*frame
, int x
, int y
, int w
, int h
) :
250 wxPanel( frame
, -1, wxPoint(x
, y
), wxSize(w
, h
) )
252 // SetBackgroundColour("cadet blue");
254 m_text
= new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE
);
255 // m_text->SetBackgroundColour("wheat");
257 m_notebook
= new wxNotebook( this, ID_NOTEBOOK
, wxPoint(0,0), wxSize(200,150) );
272 Image_List
, Image_Choice
, Image_Combo
, Image_Text
, Image_Radio
, Image_Gauge
, Image_Max
275 // fill the image list
276 wxImageList
*imagelist
= new wxImageList(32, 32);
278 imagelist
-> Add( wxBitmap( list_xpm
));
279 imagelist
-> Add( wxBitmap( choice_xpm
));
280 imagelist
-> Add( wxBitmap( combo_xpm
));
281 imagelist
-> Add( wxBitmap( text_xpm
));
282 imagelist
-> Add( wxBitmap( radio_xpm
));
283 imagelist
-> Add( wxBitmap( gauge_xpm
));
284 m_notebook
->SetImageList(imagelist
);
285 #elif defined(__WXMSW__)
286 // load images from resources
289 Image_List
, Image_Choice
, Image_Combo
, Image_Text
, Image_Radio
, Image_Gauge
, Image_Max
291 wxImageList
*imagelist
= new wxImageList(32, 32, FALSE
, Image_Max
);
293 static const char *s_iconNames
[Image_Max
] =
295 "list", "choice", "combo", "text", "radio", "gauge"
298 for ( size_t n
= 0; n
< Image_Max
; n
++ )
300 wxBitmap
bmp(s_iconNames
[n
]);
301 if ( !bmp
.Ok() || (imagelist
->Add(bmp
) == -1) )
303 wxLogWarning("Couldn't load the image '%s' for the notebook page %d.",
308 m_notebook
->SetImageList(imagelist
);
312 #define Image_List -1
313 #define Image_Choice -1
314 #define Image_Combo -1
315 #define Image_Text -1
316 #define Image_Radio -1
317 #define Image_Gauge -1
322 wxButton
*button
= (wxButton
*)NULL
;
324 // m_notebook->SetBackgroundColour("cadet blue");
326 wxPanel
*panel
= (wxPanel
*) NULL
;
328 panel
= new wxPanel(m_notebook
);
329 // panel->SetBackgroundColour("cadet blue");
330 // panel->SetForegroundColour("blue");
331 m_listbox
= new wxListBox( panel
, ID_LISTBOX
, wxPoint(10,10), wxSize(120,70), 5, choices
);
332 // m_listbox->SetBackgroundColour("wheat");
333 (void)new wxButton( panel
, ID_LISTBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
334 (void)new wxButton( panel
, ID_LISTBOX_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
335 (void)new wxButton( panel
, ID_LISTBOX_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
336 (void)new wxButton( panel
, ID_LISTBOX_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
337 (void)new wxButton( panel
, ID_LISTBOX_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
338 button
= new wxButton( panel
, ID_LISTBOX_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
339 // button->SetForegroundColour( "red" );
340 m_checkbox
= new wxCheckBox( panel
, ID_LISTBOX_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
341 m_checkbox
->SetValue(FALSE
);
342 m_notebook
->AddPage(panel
, "wxList", TRUE
, Image_List
);
344 panel
= new wxPanel(m_notebook
);
345 // panel->SetBackgroundColour("cadet blue");
346 // panel->SetForegroundColour("blue");
347 m_choice
= new wxChoice( panel
, ID_CHOICE
, wxPoint(10,10), wxSize(120,-1), 5, choices
);
348 // m_choice->SetBackgroundColour("wheat");
349 (void)new wxButton( panel
, ID_CHOICE_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
350 (void)new wxButton( panel
, ID_CHOICE_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
351 (void)new wxButton( panel
, ID_CHOICE_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
352 (void)new wxButton( panel
, ID_CHOICE_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
353 (void)new wxButton( panel
, ID_CHOICE_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
354 (void)new wxButton( panel
, ID_CHOICE_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
355 (void)new wxCheckBox( panel
, ID_CHOICE_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
356 m_notebook
->AddPage(panel
, "wxChoice", FALSE
, Image_Choice
);
358 panel
= new wxPanel(m_notebook
);
359 // panel->SetBackgroundColour("cadet blue");
360 // panel->SetForegroundColour("blue");
361 m_combo
= new wxComboBox( panel
, ID_COMBO
, "This", wxPoint(10,10), wxSize(120,-1), 5, choices
);
362 // m_combo->SetBackgroundColour("wheat");
363 (void)new wxButton( panel
, ID_COMBO_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
364 (void)new wxButton( panel
, ID_COMBO_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
365 (void)new wxButton( panel
, ID_COMBO_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
366 (void)new wxButton( panel
, ID_COMBO_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
367 (void)new wxButton( panel
, ID_COMBO_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
368 (void)new wxButton( panel
, ID_COMBO_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
369 (void)new wxCheckBox( panel
, ID_COMBO_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
370 m_notebook
->AddPage(panel
, "wxComboBox", FALSE
, Image_Combo
);
372 panel
= new wxPanel(m_notebook
);
373 // panel->SetBackgroundColour("cadet blue");
374 // panel->SetForegroundColour("blue");
375 wxTextCtrl
*tc
= new wxTextCtrl( panel
, ID_TEXT
, "Write text here.", wxPoint(10,10), wxSize(320,28));
376 (*tc
) << " More text.";
377 // tc->SetBackgroundColour("wheat");
378 m_multitext
= new wxTextCtrl( panel
, ID_TEXT
, "And here.", wxPoint(10,50), wxSize(320,160), wxTE_MULTILINE
);
379 (*m_multitext
) << " More text.";
380 m_multitext
->SetBackgroundColour("wheat");
381 (void)new wxStaticBox( panel
, -1, "wxClipboard", wxPoint(345,50), wxSize(160,145) );
382 (void)new wxButton( panel
, ID_COPY_TEXT
, "Copy line 1", wxPoint(370,80), wxSize(110,30) );
383 (void)new wxButton( panel
, ID_PASTE_TEXT
, "Paste text", wxPoint(370,140), wxSize(110,30) );
384 m_notebook
->AddPage(panel
, "wxTextCtrl" , FALSE
, Image_Text
);
386 wxString choices2
[] =
392 panel
= new wxPanel(m_notebook
);
393 // panel->SetBackgroundColour("cadet blue");
394 // panel->SetForegroundColour("blue");
395 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "That", wxPoint(10,160), wxSize(-1,-1), 2, choices2
, 1, wxRA_SPECIFY_ROWS
);
396 // m_radio->SetBackgroundColour("wheat");
397 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "This", wxPoint(10,10), wxSize(-1,-1), 5, choices
, 1, wxRA_SPECIFY_COLS
);
398 // m_radio->SetBackgroundColour("wheat");
399 (void)new wxButton( panel
, ID_RADIOBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
400 (void)new wxButton( panel
, ID_RADIOBOX_SEL_STR
, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
401 m_fontButton
= new wxButton( panel
, ID_SET_FONT
, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
402 // m_fontButton->SetForegroundColour("blue");
403 (void)new wxButton( panel
, ID_RADIOBOX_FONT
, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
404 (void)new wxCheckBox( panel
, ID_RADIOBOX_ENABLE
, "Disable", wxPoint(340,130), wxSize(140,30) );
405 wxRadioButton
*rb
= new wxRadioButton( panel
, ID_RADIOBUTTON_1
, "Radiobutton1", wxPoint(210,170), wxSize(110,30) );
406 rb
->SetValue( FALSE
);
407 (void)new wxRadioButton( panel
, ID_RADIOBUTTON_2
, "Radiobutton2", wxPoint(340,170), wxSize(110,30) );
408 m_notebook
->AddPage(panel
, "wxRadioBox", FALSE
, Image_Radio
);
410 panel
= new wxPanel(m_notebook
);
411 // panel->SetBackgroundColour("cadet blue");
412 // panel->SetForegroundColour("blue");
413 (void)new wxStaticBox( panel
, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
414 m_gauge
= new wxGauge( panel
, -1, 200, wxPoint(18,50), wxSize(155, 30) );
415 // m_gauge->SetBackgroundColour("wheat");
416 m_slider
= new wxSlider( panel
, ID_SLIDER
, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
417 // m_slider->SetBackgroundColour("wheat");
418 (void)new wxStaticBox( panel
, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
420 // No wrapping text in wxStaticText yet :-(
421 (void)new wxStaticText( panel
, -1,
427 (void)new wxStaticText( panel
, -1,
428 "In order see the gauge (aka progress bar)\n"
429 "control do something you have to drag the\n"
430 "handle of the slider to the right.\n"
432 "This is also supposed to demonstrate how\n"
433 "to use static controls.\n",
438 m_spintext
= new wxTextCtrl( panel
, -1, "0", wxPoint(20,160), wxSize(80,-1) );
439 // m_spintext->SetBackgroundColour("wheat");
440 m_spinbutton
= new wxSpinButton( panel
, ID_SPIN
, wxPoint(103,159), wxSize(-1,-1) );
441 // m_spinbutton->SetBackgroundColour("wheat");
442 m_spinbutton
->SetRange(0,100);
444 m_notebook
->AddPage(panel
, "wxGauge", FALSE
, Image_Gauge
);
447 void MyPanel::OnPasteFromClipboard( wxCommandEvent
&WXUNUSED(event
) )
451 if (!wxTheClipboard
->Open())
453 *m_text
<< "Error opening the clipboard." << "\n";
459 *m_text
<< "Successfully opened the clipboard." << "\n";
462 wxTextDataObject
*data
= new wxTextDataObject();
464 if (wxTheClipboard
->GetData( data
))
466 *m_text
<< "Successfully retrieved data from the clipboard." << "\n";
467 *m_multitext
<< data
->GetText() << "\n";
471 *m_text
<< "Error getting data from the clipboard." << "\n";
474 wxTheClipboard
->Close();
476 *m_text
<< "Closed the clipboard." << "\n";
483 void MyPanel::OnCopyToClipboard( wxCommandEvent
&WXUNUSED(event
) )
487 wxString
text( m_multitext
->GetLineText(0) );
489 if (text
.IsEmpty()) return;
491 if (!wxTheClipboard
->Open())
493 *m_text
<< "Error opening the clipboard." << "\n";
499 *m_text
<< "Successfully opened the clipboard." << "\n";
502 wxTextDataObject
*data
= new wxTextDataObject( text
);
503 wxDataBroker
*broker
= new wxDataBroker();
506 if (!wxTheClipboard
->SetData( broker
))
508 *m_text
<< "Error while copying to the clipboard." << "\n";
512 *m_text
<< "Successfully copied data to the clipboard." << "\n";
515 wxTheClipboard
->Close();
517 *m_text
<< "Closed the clipboard." << "\n";
522 void MyPanel::OnSize( wxSizeEvent
& WXUNUSED(event
) )
526 GetClientSize( &x
, &y
);
528 if (m_notebook
) m_notebook
->SetSize( 2, 2, x
-4, y
*2/3-4 );
529 if (m_text
) m_text
->SetSize( 2, y
*2/3+2, x
-4, y
/3-4 );
532 void MyPanel::OnPageChanged( wxNotebookEvent
&event
)
534 *m_text
<< "Notebook selection is " << event
.GetSelection() << "\n";
537 void MyPanel::OnListBox( wxCommandEvent
&event
)
539 m_text
->WriteText( "ListBox selection string is: " );
540 m_text
->WriteText( event
.GetString() );
541 m_text
->WriteText( "\n" );
544 void MyPanel::OnListBoxDoubleClick( wxCommandEvent
&event
)
546 m_text
->WriteText( "ListBox double click string is: " );
547 m_text
->WriteText( event
.GetString() );
548 m_text
->WriteText( "\n" );
551 void MyPanel::OnListBoxButtons( wxCommandEvent
&event
)
553 switch (event
.GetId())
555 case ID_LISTBOX_ENABLE
:
557 m_text
->WriteText("Checkbox clicked.\n");
558 m_listbox
->Enable( event
.GetInt() == 0 );
561 case ID_LISTBOX_SEL_NUM
:
563 m_listbox
->SetSelection( 2 );
566 case ID_LISTBOX_SEL_STR
:
568 m_listbox
->SetStringSelection( "This" );
571 case ID_LISTBOX_CLEAR
:
576 case ID_LISTBOX_APPEND
:
578 m_listbox
->Append( "Hi!" );
581 case ID_LISTBOX_DELETE
:
583 int idx
= m_listbox
->GetSelection();
584 m_listbox
->Delete( idx
);
587 case ID_LISTBOX_FONT
:
589 m_listbox
->SetFont( *wxITALIC_FONT
);
590 m_checkbox
->SetFont( *wxITALIC_FONT
);
596 void MyPanel::OnChoice( wxCommandEvent
&event
)
598 m_text
->WriteText( "Choice selection string is: " );
599 m_text
->WriteText( event
.GetString() );
600 m_text
->WriteText( "\n" );
603 void MyPanel::OnChoiceButtons( wxCommandEvent
&event
)
605 switch (event
.GetId())
607 case ID_CHOICE_ENABLE
:
609 m_choice
->Enable( event
.GetInt() == 0 );
612 case ID_CHOICE_SEL_NUM
:
614 m_choice
->SetSelection( 2 );
617 case ID_CHOICE_SEL_STR
:
619 m_choice
->SetStringSelection( "This" );
622 case ID_CHOICE_CLEAR
:
627 case ID_CHOICE_APPEND
:
629 m_choice
->Append( "Hi!" );
632 case ID_CHOICE_DELETE
:
634 int idx
= m_choice
->GetSelection();
635 m_choice
->Delete( idx
);
640 m_choice
->SetFont( *wxITALIC_FONT
);
646 void MyPanel::OnCombo( wxCommandEvent
&event
)
648 m_text
->WriteText( "ComboBox selection string is: " );
649 m_text
->WriteText( event
.GetString() );
650 m_text
->WriteText( "\n" );
653 void MyPanel::OnComboButtons( wxCommandEvent
&event
)
655 switch (event
.GetId())
657 case ID_COMBO_ENABLE
:
659 m_combo
->Enable( event
.GetInt() == 0 );
662 case ID_COMBO_SEL_NUM
:
664 m_combo
->SetSelection( 2 );
667 case ID_COMBO_SEL_STR
:
669 m_combo
->SetStringSelection( "This" );
677 case ID_COMBO_APPEND
:
679 m_combo
->Append( "Hi!" );
682 case ID_COMBO_DELETE
:
684 int idx
= m_combo
->GetSelection();
685 m_combo
->Delete( idx
);
690 m_combo
->SetFont( *wxITALIC_FONT
);
696 void MyPanel::OnRadio( wxCommandEvent
&event
)
698 m_text
->WriteText( "RadioBox selection string is: " );
699 m_text
->WriteText( event
.GetString() );
700 m_text
->WriteText( "\n" );
703 void MyPanel::OnRadioButtons( wxCommandEvent
&event
)
705 switch (event
.GetId())
707 case ID_RADIOBOX_ENABLE
:
709 m_radio
->Enable( event
.GetInt() == 0 );
712 case ID_RADIOBOX_SEL_NUM
:
714 m_radio
->SetSelection( 2 );
717 case ID_RADIOBOX_SEL_STR
:
719 m_radio
->SetStringSelection( "This" );
722 case ID_RADIOBOX_FONT
:
724 m_radio
->SetFont( *wxITALIC_FONT
);
730 void MyPanel::OnSetFont( wxCommandEvent
&WXUNUSED(event
) )
732 m_fontButton
->SetFont( *wxITALIC_FONT
);
733 m_text
->SetFont( *wxITALIC_FONT
);
736 void MyPanel::OnSliderUpdate( wxCommandEvent
&WXUNUSED(event
) )
738 m_gauge
->SetValue( m_slider
->GetValue() );
741 void MyPanel::OnSpinUpdate( wxSpinEvent
&event
)
744 value
.sprintf( "%d", (int)event
.GetPosition() );
745 m_spintext
->SetValue( value
);
750 delete m_notebook
->GetImageList();
753 //----------------------------------------------------------------------
755 //----------------------------------------------------------------------
757 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
758 EVT_MENU(MINIMAL_QUIT
, MyFrame::OnQuit
)
759 EVT_MENU(MINIMAL_ABOUT
, MyFrame::OnAbout
)
762 MyFrame::MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
):
763 wxFrame(frame
, -1, title
, wxPoint(x
, y
), wxSize(w
, h
))
765 (void)new MyPanel( this, 10, 10, 300, 100 );
768 void MyFrame::OnQuit (wxCommandEvent
& WXUNUSED(event
) )
773 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
775 wxMessageDialog
dialog(this, "This is a control sample", "About Controls", wxOK
);