]>
git.saurik.com Git - wxWidgets.git/blob - samples/controls/controls.cpp
84c39dc99d2b0d4249804ee7f79149482ebe3a76
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/clipbrd.h"
31 // XPM doesn't seem to work under Windows at present. Or, wxNotebook images
33 // Uncomment this line and comment out the next to try it.
34 // #if defined(__WXGTK__) || defined(__WXMOTIF__) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW)
35 #if defined(__WXGTK__) || defined(__WXMOTIF__)
40 #include "mondrian.xpm"
41 #include "icons/choice.xpm"
42 #include "icons/combo.xpm"
43 #include "icons/list.xpm"
44 #include "icons/radio.xpm"
45 #include "icons/text.xpm"
46 #include "icons/gauge.xpm"
49 //----------------------------------------------------------------------
51 //----------------------------------------------------------------------
53 class MyApp
: public wxApp
59 class MyPanel
: public wxPanel
63 MyPanel(wxFrame
*frame
, int x
, int y
, int w
, int h
);
66 void OnSize( wxSizeEvent
& event
);
67 void OnListBox( wxCommandEvent
&event
);
68 void OnListBoxButtons( wxCommandEvent
&event
);
69 void OnChoice( wxCommandEvent
&event
);
70 void OnChoiceButtons( wxCommandEvent
&event
);
71 void OnCombo( wxCommandEvent
&event
);
72 void OnComboButtons( wxCommandEvent
&event
);
73 void OnRadio( wxCommandEvent
&event
);
74 void OnRadioButtons( wxCommandEvent
&event
);
75 void OnSetFont( wxCommandEvent
&event
);
76 void OnPageChanged( wxNotebookEvent
&event
);
77 void OnSliderUpdate( wxCommandEvent
&event
);
78 void OnSpinUpdate( wxSpinEvent
&event
);
79 void OnPasteFromClipboard( wxCommandEvent
&event
);
80 void OnCopyToClipboard( wxCommandEvent
&event
);
81 void OnCutToClipboard( wxCommandEvent
&event
);
89 wxButton
*m_fontButton
;
90 wxSpinButton
*m_spinbutton
;
91 wxTextCtrl
*m_spintext
;
92 wxTextCtrl
*m_multitext
;
95 wxNotebook
*m_notebook
;
100 class MyFrame
: public wxFrame
104 MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
);
108 void OnQuit(wxCommandEvent
& event
);
109 void OnAbout(wxCommandEvent
& event
);
110 bool OnClose(void) { return TRUE
; }
112 DECLARE_EVENT_TABLE()
115 //----------------------------------------------------------------------
117 //----------------------------------------------------------------------
119 IMPLEMENT_APP (MyApp
)
121 //----------------------------------------------------------------------
123 //----------------------------------------------------------------------
125 const int MINIMAL_QUIT
= 100;
126 const int MINIMAL_TEXT
= 101;
127 const int MINIMAL_ABOUT
= 102;
129 bool MyApp::OnInit(void)
131 // Create the main frame window
132 MyFrame
*frame
= new MyFrame((wxFrame
*) NULL
, (char *) "Controls wxWindows App", 50, 50, 530, 420 );
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;
191 const int ID_CUT_TEXT
= 153;
193 const int ID_RADIOBOX
= 160;
194 const int ID_RADIOBOX_SEL_NUM
= 161;
195 const int ID_RADIOBOX_SEL_STR
= 162;
196 const int ID_RADIOBOX_FONT
= 163;
197 const int ID_RADIOBOX_ENABLE
= 164;
199 const int ID_SET_FONT
= 170;
201 const int ID_GAUGE
= 180;
202 const int ID_SLIDER
= 181;
204 const int ID_SPIN
= 182;
207 BEGIN_EVENT_TABLE(MyPanel
, wxPanel
)
208 EVT_SIZE ( MyPanel::OnSize
)
209 EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK
, MyPanel::OnPageChanged
)
210 EVT_LISTBOX (ID_LISTBOX
, MyPanel::OnListBox
)
211 EVT_BUTTON (ID_LISTBOX_SEL_NUM
, MyPanel::OnListBoxButtons
)
212 EVT_BUTTON (ID_LISTBOX_SEL_STR
, MyPanel::OnListBoxButtons
)
213 EVT_BUTTON (ID_LISTBOX_CLEAR
, MyPanel::OnListBoxButtons
)
214 EVT_BUTTON (ID_LISTBOX_APPEND
, MyPanel::OnListBoxButtons
)
215 EVT_BUTTON (ID_LISTBOX_DELETE
, MyPanel::OnListBoxButtons
)
216 EVT_BUTTON (ID_LISTBOX_FONT
, MyPanel::OnListBoxButtons
)
217 EVT_CHECKBOX (ID_LISTBOX_ENABLE
, MyPanel::OnListBoxButtons
)
218 EVT_CHOICE (ID_CHOICE
, MyPanel::OnChoice
)
219 EVT_BUTTON (ID_CHOICE_SEL_NUM
, MyPanel::OnChoiceButtons
)
220 EVT_BUTTON (ID_CHOICE_SEL_STR
, MyPanel::OnChoiceButtons
)
221 EVT_BUTTON (ID_CHOICE_CLEAR
, MyPanel::OnChoiceButtons
)
222 EVT_BUTTON (ID_CHOICE_APPEND
, MyPanel::OnChoiceButtons
)
223 EVT_BUTTON (ID_CHOICE_DELETE
, MyPanel::OnChoiceButtons
)
224 EVT_BUTTON (ID_CHOICE_FONT
, MyPanel::OnChoiceButtons
)
225 EVT_CHECKBOX (ID_CHOICE_ENABLE
, MyPanel::OnChoiceButtons
)
226 EVT_CHOICE (ID_COMBO
, MyPanel::OnCombo
)
227 EVT_BUTTON (ID_COMBO_SEL_NUM
, MyPanel::OnComboButtons
)
228 EVT_BUTTON (ID_COMBO_SEL_STR
, MyPanel::OnComboButtons
)
229 EVT_BUTTON (ID_COMBO_CLEAR
, MyPanel::OnComboButtons
)
230 EVT_BUTTON (ID_COMBO_APPEND
, MyPanel::OnComboButtons
)
231 EVT_BUTTON (ID_COMBO_DELETE
, MyPanel::OnComboButtons
)
232 EVT_BUTTON (ID_COMBO_FONT
, MyPanel::OnComboButtons
)
233 EVT_CHECKBOX (ID_COMBO_ENABLE
, MyPanel::OnComboButtons
)
234 EVT_RADIOBOX (ID_RADIOBOX
, MyPanel::OnRadio
)
235 EVT_BUTTON (ID_RADIOBOX_SEL_NUM
, MyPanel::OnRadioButtons
)
236 EVT_BUTTON (ID_RADIOBOX_SEL_STR
, MyPanel::OnRadioButtons
)
237 EVT_BUTTON (ID_RADIOBOX_FONT
, MyPanel::OnRadioButtons
)
238 EVT_CHECKBOX (ID_RADIOBOX_ENABLE
, MyPanel::OnRadioButtons
)
239 EVT_BUTTON (ID_SET_FONT
, MyPanel::OnSetFont
)
240 EVT_SLIDER (ID_SLIDER
, MyPanel::OnSliderUpdate
)
241 EVT_SPIN (ID_SPIN
, MyPanel::OnSpinUpdate
)
242 EVT_BUTTON (ID_PASTE_TEXT
, MyPanel::OnPasteFromClipboard
)
243 EVT_BUTTON (ID_COPY_TEXT
, MyPanel::OnCopyToClipboard
)
244 EVT_BUTTON (ID_CUT_TEXT
, MyPanel::OnCutToClipboard
)
247 MyPanel::MyPanel( wxFrame
*frame
, int x
, int y
, int w
, int h
) :
248 wxPanel( frame
, -1, wxPoint(x
, y
), wxSize(w
, h
) )
250 // SetBackgroundColour("cadet blue");
252 m_text
= new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE
);
253 // m_text->SetBackgroundColour("wheat");
255 m_notebook
= new wxNotebook( this, ID_NOTEBOOK
, wxPoint(0,0), wxSize(200,150) );
267 // image ids and names
270 Image_List
, Image_Choice
, Image_Combo
, Image_Text
, Image_Radio
, Image_Gauge
, Image_Max
273 // fill the image list
274 wxImageList
*imagelist
= new wxImageList(32, 32);
276 imagelist
-> Add( wxBitmap( list_xpm
));
277 imagelist
-> Add( wxBitmap( choice_xpm
));
278 imagelist
-> Add( wxBitmap( combo_xpm
));
279 imagelist
-> Add( wxBitmap( text_xpm
));
280 imagelist
-> Add( wxBitmap( radio_xpm
));
281 imagelist
-> Add( wxBitmap( gauge_xpm
));
282 m_notebook
->SetImageList(imagelist
);
286 #define Image_List -1
287 #define Image_Choice -1
288 #define Image_Combo -1
289 #define Image_Text -1
290 #define Image_Radio -1
291 #define Image_Gauge -1
296 wxButton
*button
= (wxButton
*)NULL
;
298 // m_notebook->SetBackgroundColour("cadet blue");
300 wxPanel
*panel
= (wxPanel
*) NULL
;
301 panel
= new wxPanel(m_notebook
);
302 // panel->SetBackgroundColour("cadet blue");
303 // panel->SetForegroundColour("blue");
304 m_listbox
= new wxListBox( panel
, ID_LISTBOX
, wxPoint(10,10), wxSize(120,70), 5, choices
);
305 // m_listbox->SetBackgroundColour("wheat");
306 (void)new wxButton( panel
, ID_LISTBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
307 (void)new wxButton( panel
, ID_LISTBOX_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
308 (void)new wxButton( panel
, ID_LISTBOX_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
309 (void)new wxButton( panel
, ID_LISTBOX_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
310 (void)new wxButton( panel
, ID_LISTBOX_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
311 button
= new wxButton( panel
, ID_LISTBOX_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
312 // button->SetForegroundColour( "red" );
313 (void)new wxCheckBox( panel
, ID_LISTBOX_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
314 m_notebook
->AddPage(panel
, "wxList", FALSE
, Image_List
);
316 panel
= new wxPanel(m_notebook
);
317 // panel->SetBackgroundColour("cadet blue");
318 // panel->SetForegroundColour("blue");
319 m_choice
= new wxChoice( panel
, ID_CHOICE
, wxPoint(10,10), wxSize(120,-1), 5, choices
);
320 // m_choice->SetBackgroundColour("wheat");
321 (void)new wxButton( panel
, ID_CHOICE_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
322 (void)new wxButton( panel
, ID_CHOICE_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
323 (void)new wxButton( panel
, ID_CHOICE_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
324 (void)new wxButton( panel
, ID_CHOICE_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
325 (void)new wxButton( panel
, ID_CHOICE_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
326 (void)new wxButton( panel
, ID_CHOICE_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
327 (void)new wxCheckBox( panel
, ID_CHOICE_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
328 m_notebook
->AddPage(panel
, "wxChoice", FALSE
, Image_Choice
);
330 panel
= new wxPanel(m_notebook
);
331 // panel->SetBackgroundColour("cadet blue");
332 // panel->SetForegroundColour("blue");
333 m_combo
= new wxComboBox( panel
, ID_COMBO
, "This", wxPoint(10,10), wxSize(120,-1), 5, choices
);
334 // m_combo->SetBackgroundColour("wheat");
335 (void)new wxButton( panel
, ID_COMBO_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
336 (void)new wxButton( panel
, ID_COMBO_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
337 (void)new wxButton( panel
, ID_COMBO_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
338 (void)new wxButton( panel
, ID_COMBO_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
339 (void)new wxButton( panel
, ID_COMBO_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
340 (void)new wxButton( panel
, ID_COMBO_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
341 (void)new wxCheckBox( panel
, ID_COMBO_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
342 m_notebook
->AddPage(panel
, "wxComboBox", FALSE
, Image_Combo
);
344 panel
= new wxPanel(m_notebook
);
345 // panel->SetBackgroundColour("cadet blue");
346 // panel->SetForegroundColour("blue");
347 wxTextCtrl
*tc
= new wxTextCtrl( panel
, ID_TEXT
, "Write text here.", wxPoint(10,10), wxSize(320,28));
348 (*tc
) << " More text.";
349 // tc->SetBackgroundColour("wheat");
350 m_multitext
= new wxTextCtrl( panel
, ID_TEXT
, "And here.", wxPoint(10,50), wxSize(320,160), wxTE_MULTILINE
);
351 (*m_multitext
) << " More text.";
352 // m_multitext->SetBackgroundColour("wheat");
353 (void)new wxStaticBox( panel
, -1, "wxClipboard", wxPoint(345,50), wxSize(160,145) );
354 (void)new wxButton( panel
, ID_COPY_TEXT
, "Copy text", wxPoint(370,70), wxSize(110,30) );
355 (void)new wxButton( panel
, ID_PASTE_TEXT
, "Paste text", wxPoint(370,110), wxSize(110,30) );
356 (void)new wxButton( panel
, ID_CUT_TEXT
, "Cut text", wxPoint(370,150), wxSize(110,30) );
357 m_notebook
->AddPage(panel
, "wxTextCtrl" , FALSE
, Image_Text
);
359 wxString choices2
[] =
365 panel
= new wxPanel(m_notebook
);
366 // panel->SetBackgroundColour("cadet blue");
367 // panel->SetForegroundColour("blue");
368 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "That", wxPoint(10,160), wxSize(-1,-1), 2, choices2
, 1, wxRA_HORIZONTAL
);
369 // m_radio->SetBackgroundColour("wheat");
370 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "This", wxPoint(10,10), wxSize(-1,-1), 5, choices
, 1, wxRA_VERTICAL
);
371 // m_radio->SetBackgroundColour("wheat");
372 (void)new wxButton( panel
, ID_RADIOBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
373 (void)new wxButton( panel
, ID_RADIOBOX_SEL_STR
, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
374 m_fontButton
= new wxButton( panel
, ID_SET_FONT
, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
375 m_fontButton
->SetForegroundColour("blue");
376 (void)new wxButton( panel
, ID_RADIOBOX_FONT
, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
377 (void)new wxCheckBox( panel
, ID_RADIOBOX_ENABLE
, "Disable", wxPoint(340,130), wxSize(140,30) );
378 m_notebook
->AddPage(panel
, "wxRadioBox", FALSE
, Image_Radio
);
380 panel
= new wxPanel(m_notebook
);
381 // panel->SetBackgroundColour("cadet blue");
382 // panel->SetForegroundColour("blue");
383 (void)new wxStaticBox( panel
, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
384 m_gauge
= new wxGauge( panel
, -1, 200, wxPoint(18,50), wxSize(155,-1) );
385 // m_gauge->SetBackgroundColour("wheat");
386 m_slider
= new wxSlider( panel
, ID_SLIDER
, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
387 // m_slider->SetBackgroundColour("wheat");
388 (void)new wxStaticBox( panel
, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
389 (void)new wxStaticText( panel
, -1,
390 "In order see the gauge (aka progress bar)\n"
391 "control do something you have to drag the\n"
392 "handle of the slider to the right.\n"
394 "This is also supposed to demonstrate how\n"
395 "to use static controls.\n",
397 m_spintext
= new wxTextCtrl( panel
, -1, "0", wxPoint(20,160), wxSize(80,-1) );
398 // m_spintext->SetBackgroundColour("wheat");
399 m_spinbutton
= new wxSpinButton( panel
, ID_SPIN
, wxPoint(103,159), wxSize(-1,-1) );
400 // m_spinbutton->SetBackgroundColour("wheat");
401 m_spinbutton
->SetRange(0,100);
403 m_notebook
->AddPage(panel
, "wxGauge", FALSE
, Image_Gauge
);
406 void MyPanel::OnPasteFromClipboard( wxCommandEvent
&WXUNUSED(event
) )
410 if (!wxTheClipboard
->IsSupportedFormat( wxDF_TEXT
)) return;
412 if (!wxTheClipboard
->ObtainData( wxDF_TEXT
)) return;
414 int size
= wxTheClipboard
->GetDataSize()+1;
416 char *data
= new char[size
];
420 wxTheClipboard
->GetDataHere( data
);
422 *m_multitext
<< data
<< "\n";
429 void MyPanel::OnCopyToClipboard( wxCommandEvent
&WXUNUSED(event
) )
433 void MyPanel::OnCutToClipboard( wxCommandEvent
&WXUNUSED(event
) )
437 void MyPanel::OnSize( wxSizeEvent
& WXUNUSED(event
) )
441 GetClientSize( &x
, &y
);
443 if (m_notebook
) m_notebook
->SetSize( 2, 2, x
-4, y
*2/3-4 );
444 if (m_text
) m_text
->SetSize( 2, y
*2/3+2, x
-4, y
/3-4 );
447 void MyPanel::OnPageChanged( wxNotebookEvent
&event
)
449 *m_text
<< "Notebook selection is " << event
.GetSelection() << "\n";
452 void MyPanel::OnListBox( wxCommandEvent
&event
)
454 m_text
->WriteText( "ListBox selection string is: " );
455 m_text
->WriteText( event
.GetString() );
456 m_text
->WriteText( "\n" );
459 void MyPanel::OnListBoxButtons( wxCommandEvent
&event
)
461 switch (event
.GetId())
463 case ID_LISTBOX_ENABLE
:
465 m_listbox
->Enable( !((bool)event
.GetInt()) );
468 case ID_LISTBOX_SEL_NUM
:
470 m_listbox
->SetSelection( 2 );
473 case ID_LISTBOX_SEL_STR
:
475 m_listbox
->SetStringSelection( "This" );
478 case ID_LISTBOX_CLEAR
:
483 case ID_LISTBOX_APPEND
:
485 m_listbox
->Append( "Hi!" );
488 case ID_LISTBOX_DELETE
:
490 int idx
= m_listbox
->GetSelection();
491 m_listbox
->Delete( idx
);
494 case ID_LISTBOX_FONT
:
496 m_listbox
->SetFont( *wxITALIC_FONT
);
502 void MyPanel::OnChoice( wxCommandEvent
&event
)
504 m_text
->WriteText( "Choice selection string is: " );
505 m_text
->WriteText( event
.GetString() );
506 m_text
->WriteText( "\n" );
509 void MyPanel::OnChoiceButtons( wxCommandEvent
&event
)
511 switch (event
.GetId())
513 case ID_CHOICE_ENABLE
:
515 m_choice
->Enable( !((bool)event
.GetInt()) );
518 case ID_CHOICE_SEL_NUM
:
520 m_choice
->SetSelection( 2 );
523 case ID_CHOICE_SEL_STR
:
525 m_choice
->SetStringSelection( "This" );
528 case ID_CHOICE_CLEAR
:
533 case ID_CHOICE_APPEND
:
535 m_choice
->Append( "Hi!" );
538 case ID_CHOICE_DELETE
:
540 int idx
= m_choice
->GetSelection();
541 m_choice
->Delete( idx
);
546 m_choice
->SetFont( *wxITALIC_FONT
);
552 void MyPanel::OnCombo( wxCommandEvent
&event
)
554 m_text
->WriteText( "ComboBox selection string is: " );
555 m_text
->WriteText( event
.GetString() );
556 m_text
->WriteText( "\n" );
559 void MyPanel::OnComboButtons( wxCommandEvent
&event
)
561 switch (event
.GetId())
563 case ID_COMBO_ENABLE
:
565 m_combo
->Enable( !((bool)event
.GetInt()) );
568 case ID_COMBO_SEL_NUM
:
570 m_combo
->SetSelection( 2 );
573 case ID_COMBO_SEL_STR
:
575 m_combo
->SetStringSelection( "This" );
583 case ID_COMBO_APPEND
:
585 m_combo
->Append( "Hi!" );
588 case ID_COMBO_DELETE
:
590 int idx
= m_combo
->GetSelection();
591 m_combo
->Delete( idx
);
596 m_combo
->SetFont( *wxITALIC_FONT
);
602 void MyPanel::OnRadio( wxCommandEvent
&event
)
604 m_text
->WriteText( "RadioBox selection string is: " );
605 m_text
->WriteText( event
.GetString() );
606 m_text
->WriteText( "\n" );
609 void MyPanel::OnRadioButtons( wxCommandEvent
&event
)
611 switch (event
.GetId())
613 case ID_RADIOBOX_ENABLE
:
615 m_radio
->Enable( !((bool)event
.GetInt()) );
618 case ID_RADIOBOX_SEL_NUM
:
620 m_radio
->SetSelection( 2 );
623 case ID_RADIOBOX_SEL_STR
:
625 m_radio
->SetStringSelection( "This" );
628 case ID_RADIOBOX_FONT
:
630 m_radio
->SetFont( *wxITALIC_FONT
);
636 void MyPanel::OnSetFont( wxCommandEvent
&WXUNUSED(event
) )
638 m_fontButton
->SetFont( *wxITALIC_FONT
);
639 m_text
->SetFont( *wxITALIC_FONT
);
642 void MyPanel::OnSliderUpdate( wxCommandEvent
&WXUNUSED(event
) )
644 m_gauge
->SetValue( m_slider
->GetValue() );
647 void MyPanel::OnSpinUpdate( wxSpinEvent
&event
)
650 value
.sprintf( "%d", (int)event
.GetPosition() );
651 m_spintext
->SetValue( value
);
656 delete m_notebook
->GetImageList();
659 //----------------------------------------------------------------------
661 //----------------------------------------------------------------------
663 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
664 EVT_MENU(MINIMAL_QUIT
, MyFrame::OnQuit
)
665 EVT_MENU(MINIMAL_ABOUT
, MyFrame::OnAbout
)
668 MyFrame::MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
):
669 wxFrame(frame
, -1, title
, wxPoint(x
, y
), wxSize(w
, h
))
671 (void)new MyPanel( this, 10, 10, 300, 100 );
674 void MyFrame::OnQuit (wxCommandEvent
& WXUNUSED(event
) )
679 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
681 wxMessageDialog
dialog(this, "This is a control sample", "About Controls", wxOK
);