]>
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/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
;
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
, (char *) "Controls wxWindows App", 50, 50, 530, 420 );
136 // The wxICON() macros loads an icon from a resource under Windows
137 // and uses an #included XPM image under GTK+ and Motif
139 frame
->SetIcon( wxICON(mondrian
) );
141 wxMenu
*file_menu
= new wxMenu
;
143 file_menu
->Append(MINIMAL_ABOUT
, "&About");
144 file_menu
->Append(MINIMAL_QUIT
, "E&xit");
145 wxMenuBar
*menu_bar
= new wxMenuBar
;
146 menu_bar
->Append(file_menu
, "&File");
147 frame
->SetMenuBar(menu_bar
);
156 //----------------------------------------------------------------------
158 //----------------------------------------------------------------------
160 const int ID_NOTEBOOK
= 1000;
162 const int ID_LISTBOX
= 130;
163 const int ID_LISTBOX_SEL_NUM
= 131;
164 const int ID_LISTBOX_SEL_STR
= 132;
165 const int ID_LISTBOX_CLEAR
= 133;
166 const int ID_LISTBOX_APPEND
= 134;
167 const int ID_LISTBOX_DELETE
= 135;
168 const int ID_LISTBOX_FONT
= 136;
169 const int ID_LISTBOX_ENABLE
= 137;
171 const int ID_CHOICE
= 120;
172 const int ID_CHOICE_SEL_NUM
= 121;
173 const int ID_CHOICE_SEL_STR
= 122;
174 const int ID_CHOICE_CLEAR
= 123;
175 const int ID_CHOICE_APPEND
= 124;
176 const int ID_CHOICE_DELETE
= 125;
177 const int ID_CHOICE_FONT
= 126;
178 const int ID_CHOICE_ENABLE
= 127;
180 const int ID_COMBO
= 140;
181 const int ID_COMBO_SEL_NUM
= 141;
182 const int ID_COMBO_SEL_STR
= 142;
183 const int ID_COMBO_CLEAR
= 143;
184 const int ID_COMBO_APPEND
= 144;
185 const int ID_COMBO_DELETE
= 145;
186 const int ID_COMBO_FONT
= 146;
187 const int ID_COMBO_ENABLE
= 147;
189 const int ID_TEXT
= 150;
190 const int ID_PASTE_TEXT
= 151;
191 const int ID_COPY_TEXT
= 152;
192 const int ID_CUT_TEXT
= 153;
194 const int ID_RADIOBOX
= 160;
195 const int ID_RADIOBOX_SEL_NUM
= 161;
196 const int ID_RADIOBOX_SEL_STR
= 162;
197 const int ID_RADIOBOX_FONT
= 163;
198 const int ID_RADIOBOX_ENABLE
= 164;
200 const int ID_SET_FONT
= 170;
202 const int ID_GAUGE
= 180;
203 const int ID_SLIDER
= 181;
205 const int ID_SPIN
= 182;
208 BEGIN_EVENT_TABLE(MyPanel
, wxPanel
)
209 EVT_SIZE ( MyPanel::OnSize
)
210 EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK
, MyPanel::OnPageChanged
)
211 EVT_LISTBOX (ID_LISTBOX
, MyPanel::OnListBox
)
212 EVT_BUTTON (ID_LISTBOX_SEL_NUM
, MyPanel::OnListBoxButtons
)
213 EVT_BUTTON (ID_LISTBOX_SEL_STR
, MyPanel::OnListBoxButtons
)
214 EVT_BUTTON (ID_LISTBOX_CLEAR
, MyPanel::OnListBoxButtons
)
215 EVT_BUTTON (ID_LISTBOX_APPEND
, MyPanel::OnListBoxButtons
)
216 EVT_BUTTON (ID_LISTBOX_DELETE
, MyPanel::OnListBoxButtons
)
217 EVT_BUTTON (ID_LISTBOX_FONT
, MyPanel::OnListBoxButtons
)
218 EVT_CHECKBOX (ID_LISTBOX_ENABLE
, MyPanel::OnListBoxButtons
)
219 EVT_CHOICE (ID_CHOICE
, MyPanel::OnChoice
)
220 EVT_BUTTON (ID_CHOICE_SEL_NUM
, MyPanel::OnChoiceButtons
)
221 EVT_BUTTON (ID_CHOICE_SEL_STR
, MyPanel::OnChoiceButtons
)
222 EVT_BUTTON (ID_CHOICE_CLEAR
, MyPanel::OnChoiceButtons
)
223 EVT_BUTTON (ID_CHOICE_APPEND
, MyPanel::OnChoiceButtons
)
224 EVT_BUTTON (ID_CHOICE_DELETE
, MyPanel::OnChoiceButtons
)
225 EVT_BUTTON (ID_CHOICE_FONT
, MyPanel::OnChoiceButtons
)
226 EVT_CHECKBOX (ID_CHOICE_ENABLE
, MyPanel::OnChoiceButtons
)
227 EVT_CHOICE (ID_COMBO
, MyPanel::OnCombo
)
228 EVT_BUTTON (ID_COMBO_SEL_NUM
, MyPanel::OnComboButtons
)
229 EVT_BUTTON (ID_COMBO_SEL_STR
, MyPanel::OnComboButtons
)
230 EVT_BUTTON (ID_COMBO_CLEAR
, MyPanel::OnComboButtons
)
231 EVT_BUTTON (ID_COMBO_APPEND
, MyPanel::OnComboButtons
)
232 EVT_BUTTON (ID_COMBO_DELETE
, MyPanel::OnComboButtons
)
233 EVT_BUTTON (ID_COMBO_FONT
, MyPanel::OnComboButtons
)
234 EVT_CHECKBOX (ID_COMBO_ENABLE
, MyPanel::OnComboButtons
)
235 EVT_RADIOBOX (ID_RADIOBOX
, MyPanel::OnRadio
)
236 EVT_BUTTON (ID_RADIOBOX_SEL_NUM
, MyPanel::OnRadioButtons
)
237 EVT_BUTTON (ID_RADIOBOX_SEL_STR
, MyPanel::OnRadioButtons
)
238 EVT_BUTTON (ID_RADIOBOX_FONT
, MyPanel::OnRadioButtons
)
239 EVT_CHECKBOX (ID_RADIOBOX_ENABLE
, MyPanel::OnRadioButtons
)
240 EVT_BUTTON (ID_SET_FONT
, MyPanel::OnSetFont
)
241 EVT_SLIDER (ID_SLIDER
, MyPanel::OnSliderUpdate
)
242 EVT_SPIN (ID_SPIN
, MyPanel::OnSpinUpdate
)
243 EVT_BUTTON (ID_PASTE_TEXT
, MyPanel::OnPasteFromClipboard
)
244 EVT_BUTTON (ID_COPY_TEXT
, MyPanel::OnCopyToClipboard
)
245 EVT_BUTTON (ID_CUT_TEXT
, MyPanel::OnCutToClipboard
)
248 MyPanel::MyPanel( wxFrame
*frame
, int x
, int y
, int w
, int h
) :
249 wxPanel( frame
, -1, wxPoint(x
, y
), wxSize(w
, h
) )
251 // SetBackgroundColour("cadet blue");
253 m_text
= new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE
);
254 // m_text->SetBackgroundColour("wheat");
256 m_notebook
= new wxNotebook( this, ID_NOTEBOOK
, wxPoint(0,0), wxSize(200,150) );
268 // image ids and names
271 Image_List
, Image_Choice
, Image_Combo
, Image_Text
, Image_Radio
, Image_Gauge
, Image_Max
274 // fill the image list
275 wxImageList
*imagelist
= new wxImageList(32, 32);
277 imagelist
-> Add( wxBitmap( list_xpm
));
278 imagelist
-> Add( wxBitmap( choice_xpm
));
279 imagelist
-> Add( wxBitmap( combo_xpm
));
280 imagelist
-> Add( wxBitmap( text_xpm
));
281 imagelist
-> Add( wxBitmap( radio_xpm
));
282 imagelist
-> Add( wxBitmap( gauge_xpm
));
283 m_notebook
->SetImageList(imagelist
);
287 #define Image_List -1
288 #define Image_Choice -1
289 #define Image_Combo -1
290 #define Image_Text -1
291 #define Image_Radio -1
292 #define Image_Gauge -1
297 wxButton
*button
= (wxButton
*)NULL
;
299 // m_notebook->SetBackgroundColour("cadet blue");
301 wxPanel
*panel
= (wxPanel
*) NULL
;
302 panel
= new wxPanel(m_notebook
);
303 // panel->SetBackgroundColour("cadet blue");
304 // panel->SetForegroundColour("blue");
305 m_listbox
= new wxListBox( panel
, ID_LISTBOX
, wxPoint(10,10), wxSize(120,70), 5, choices
);
306 // m_listbox->SetBackgroundColour("wheat");
307 (void)new wxButton( panel
, ID_LISTBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
308 (void)new wxButton( panel
, ID_LISTBOX_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
309 (void)new wxButton( panel
, ID_LISTBOX_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
310 (void)new wxButton( panel
, ID_LISTBOX_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
311 (void)new wxButton( panel
, ID_LISTBOX_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
312 button
= new wxButton( panel
, ID_LISTBOX_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
313 // button->SetForegroundColour( "red" );
314 m_checkbox
= new wxCheckBox( panel
, ID_LISTBOX_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
315 m_notebook
->AddPage(panel
, "wxList", FALSE
, Image_List
);
317 panel
= new wxPanel(m_notebook
);
318 // panel->SetBackgroundColour("cadet blue");
319 // panel->SetForegroundColour("blue");
320 m_choice
= new wxChoice( panel
, ID_CHOICE
, wxPoint(10,10), wxSize(120,-1), 5, choices
);
321 // m_choice->SetBackgroundColour("wheat");
322 (void)new wxButton( panel
, ID_CHOICE_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
323 (void)new wxButton( panel
, ID_CHOICE_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
324 (void)new wxButton( panel
, ID_CHOICE_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
325 (void)new wxButton( panel
, ID_CHOICE_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
326 (void)new wxButton( panel
, ID_CHOICE_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
327 (void)new wxButton( panel
, ID_CHOICE_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
328 (void)new wxCheckBox( panel
, ID_CHOICE_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
329 m_notebook
->AddPage(panel
, "wxChoice", FALSE
, Image_Choice
);
331 panel
= new wxPanel(m_notebook
);
332 // panel->SetBackgroundColour("cadet blue");
333 // panel->SetForegroundColour("blue");
334 m_combo
= new wxComboBox( panel
, ID_COMBO
, "This", wxPoint(10,10), wxSize(120,-1), 5, choices
);
335 // m_combo->SetBackgroundColour("wheat");
336 (void)new wxButton( panel
, ID_COMBO_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
337 (void)new wxButton( panel
, ID_COMBO_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
338 (void)new wxButton( panel
, ID_COMBO_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
339 (void)new wxButton( panel
, ID_COMBO_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
340 (void)new wxButton( panel
, ID_COMBO_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
341 (void)new wxButton( panel
, ID_COMBO_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
342 (void)new wxCheckBox( panel
, ID_COMBO_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
343 m_notebook
->AddPage(panel
, "wxComboBox", FALSE
, Image_Combo
);
345 panel
= new wxPanel(m_notebook
);
346 // panel->SetBackgroundColour("cadet blue");
347 // panel->SetForegroundColour("blue");
348 wxTextCtrl
*tc
= new wxTextCtrl( panel
, ID_TEXT
, "Write text here.", wxPoint(10,10), wxSize(320,28));
349 (*tc
) << " More text.";
350 // tc->SetBackgroundColour("wheat");
351 m_multitext
= new wxTextCtrl( panel
, ID_TEXT
, "And here.", wxPoint(10,50), wxSize(320,160), wxTE_MULTILINE
);
352 (*m_multitext
) << " More text.";
353 // m_multitext->SetBackgroundColour("wheat");
354 (void)new wxStaticBox( panel
, -1, "wxClipboard", wxPoint(345,50), wxSize(160,145) );
355 (void)new wxButton( panel
, ID_COPY_TEXT
, "Copy line 1", wxPoint(370,70), wxSize(110,30) );
356 (void)new wxButton( panel
, ID_PASTE_TEXT
, "Paste text", wxPoint(370,110), wxSize(110,30) );
357 (void)new wxButton( panel
, ID_CUT_TEXT
, "Cut line 1", wxPoint(370,150), wxSize(110,30) );
358 m_notebook
->AddPage(panel
, "wxTextCtrl" , FALSE
, Image_Text
);
360 wxString choices2
[] =
366 panel
= new wxPanel(m_notebook
);
367 // panel->SetBackgroundColour("cadet blue");
368 // panel->SetForegroundColour("blue");
369 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "That", wxPoint(10,160), wxSize(-1,-1), 2, choices2
, 1, wxRA_VERTICAL
);
370 // m_radio->SetBackgroundColour("wheat");
371 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "This", wxPoint(10,10), wxSize(-1,-1), 5, choices
, 1, wxRA_HORIZONTAL
);
372 // m_radio->SetBackgroundColour("wheat");
373 (void)new wxButton( panel
, ID_RADIOBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
374 (void)new wxButton( panel
, ID_RADIOBOX_SEL_STR
, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
375 m_fontButton
= new wxButton( panel
, ID_SET_FONT
, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
376 m_fontButton
->SetForegroundColour("blue");
377 (void)new wxButton( panel
, ID_RADIOBOX_FONT
, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
378 (void)new wxCheckBox( panel
, ID_RADIOBOX_ENABLE
, "Disable", wxPoint(340,130), wxSize(140,30) );
379 m_notebook
->AddPage(panel
, "wxRadioBox", FALSE
, Image_Radio
);
381 panel
= new wxPanel(m_notebook
);
382 // panel->SetBackgroundColour("cadet blue");
383 // panel->SetForegroundColour("blue");
384 (void)new wxStaticBox( panel
, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
385 m_gauge
= new wxGauge( panel
, -1, 200, wxPoint(18,50), wxSize(155,-1) );
386 // m_gauge->SetBackgroundColour("wheat");
387 m_slider
= new wxSlider( panel
, ID_SLIDER
, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
388 // m_slider->SetBackgroundColour("wheat");
389 (void)new wxStaticBox( panel
, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
390 (void)new wxStaticText( panel
, -1,
391 "In order see the gauge (aka progress bar)\n"
392 "control do something you have to drag the\n"
393 "handle of the slider to the right.\n"
395 "This is also supposed to demonstrate how\n"
396 "to use static controls.\n",
398 m_spintext
= new wxTextCtrl( panel
, -1, "0", wxPoint(20,160), wxSize(80,-1) );
399 // m_spintext->SetBackgroundColour("wheat");
400 m_spinbutton
= new wxSpinButton( panel
, ID_SPIN
, wxPoint(103,159), wxSize(-1,-1) );
401 // m_spinbutton->SetBackgroundColour("wheat");
402 m_spinbutton
->SetRange(0,100);
404 m_notebook
->AddPage(panel
, "wxGauge", FALSE
, Image_Gauge
);
407 void MyPanel::OnPasteFromClipboard( wxCommandEvent
&WXUNUSED(event
) )
411 if (!wxTheClipboard
->IsSupportedFormat( wxDF_TEXT
)) return;
413 if (!wxTheClipboard
->ObtainData( wxDF_TEXT
)) return;
415 int size
= wxTheClipboard
->GetDataSize()+1;
417 char *data
= new char[size
];
421 wxTheClipboard
->GetDataHere( data
);
423 *m_multitext
<< data
<< "\n";
430 void MyPanel::OnCopyToClipboard( wxCommandEvent
&WXUNUSED(event
) )
434 wxString
text( m_multitext
->GetLineText(0) );
436 if (text
.IsEmpty()) return;
438 wxTextDataObject
*data
= new wxTextDataObject( text
);
440 wxTheClipboard
->SetData( data
);
445 void MyPanel::OnCutToClipboard( wxCommandEvent
&WXUNUSED(event
) )
449 void MyPanel::OnSize( wxSizeEvent
& WXUNUSED(event
) )
453 GetClientSize( &x
, &y
);
455 if (m_notebook
) m_notebook
->SetSize( 2, 2, x
-4, y
*2/3-4 );
456 if (m_text
) m_text
->SetSize( 2, y
*2/3+2, x
-4, y
/3-4 );
459 void MyPanel::OnPageChanged( wxNotebookEvent
&event
)
461 *m_text
<< "Notebook selection is " << event
.GetSelection() << "\n";
464 void MyPanel::OnListBox( wxCommandEvent
&event
)
466 m_text
->WriteText( "ListBox selection string is: " );
467 m_text
->WriteText( event
.GetString() );
468 m_text
->WriteText( "\n" );
471 void MyPanel::OnListBoxButtons( wxCommandEvent
&event
)
473 switch (event
.GetId())
475 case ID_LISTBOX_ENABLE
:
477 m_listbox
->Enable( !((bool)event
.GetInt()) );
480 case ID_LISTBOX_SEL_NUM
:
482 m_listbox
->SetSelection( 2 );
485 case ID_LISTBOX_SEL_STR
:
487 m_listbox
->SetStringSelection( "This" );
490 case ID_LISTBOX_CLEAR
:
495 case ID_LISTBOX_APPEND
:
497 m_listbox
->Append( "Hi!" );
500 case ID_LISTBOX_DELETE
:
502 int idx
= m_listbox
->GetSelection();
503 m_listbox
->Delete( idx
);
506 case ID_LISTBOX_FONT
:
508 m_listbox
->SetFont( *wxITALIC_FONT
);
509 m_checkbox
->SetFont( *wxITALIC_FONT
);
515 void MyPanel::OnChoice( wxCommandEvent
&event
)
517 m_text
->WriteText( "Choice selection string is: " );
518 m_text
->WriteText( event
.GetString() );
519 m_text
->WriteText( "\n" );
522 void MyPanel::OnChoiceButtons( wxCommandEvent
&event
)
524 switch (event
.GetId())
526 case ID_CHOICE_ENABLE
:
528 m_choice
->Enable( !((bool)event
.GetInt()) );
531 case ID_CHOICE_SEL_NUM
:
533 m_choice
->SetSelection( 2 );
536 case ID_CHOICE_SEL_STR
:
538 m_choice
->SetStringSelection( "This" );
541 case ID_CHOICE_CLEAR
:
546 case ID_CHOICE_APPEND
:
548 m_choice
->Append( "Hi!" );
551 case ID_CHOICE_DELETE
:
553 int idx
= m_choice
->GetSelection();
554 m_choice
->Delete( idx
);
559 m_choice
->SetFont( *wxITALIC_FONT
);
565 void MyPanel::OnCombo( wxCommandEvent
&event
)
567 m_text
->WriteText( "ComboBox selection string is: " );
568 m_text
->WriteText( event
.GetString() );
569 m_text
->WriteText( "\n" );
572 void MyPanel::OnComboButtons( wxCommandEvent
&event
)
574 switch (event
.GetId())
576 case ID_COMBO_ENABLE
:
578 m_combo
->Enable( !((bool)event
.GetInt()) );
581 case ID_COMBO_SEL_NUM
:
583 m_combo
->SetSelection( 2 );
586 case ID_COMBO_SEL_STR
:
588 m_combo
->SetStringSelection( "This" );
596 case ID_COMBO_APPEND
:
598 m_combo
->Append( "Hi!" );
601 case ID_COMBO_DELETE
:
603 int idx
= m_combo
->GetSelection();
604 m_combo
->Delete( idx
);
609 m_combo
->SetFont( *wxITALIC_FONT
);
615 void MyPanel::OnRadio( wxCommandEvent
&event
)
617 m_text
->WriteText( "RadioBox selection string is: " );
618 m_text
->WriteText( event
.GetString() );
619 m_text
->WriteText( "\n" );
622 void MyPanel::OnRadioButtons( wxCommandEvent
&event
)
624 switch (event
.GetId())
626 case ID_RADIOBOX_ENABLE
:
628 m_radio
->Enable( !((bool)event
.GetInt()) );
631 case ID_RADIOBOX_SEL_NUM
:
633 m_radio
->SetSelection( 2 );
636 case ID_RADIOBOX_SEL_STR
:
638 m_radio
->SetStringSelection( "This" );
641 case ID_RADIOBOX_FONT
:
643 m_radio
->SetFont( *wxITALIC_FONT
);
649 void MyPanel::OnSetFont( wxCommandEvent
&WXUNUSED(event
) )
651 m_fontButton
->SetFont( *wxITALIC_FONT
);
652 m_text
->SetFont( *wxITALIC_FONT
);
655 void MyPanel::OnSliderUpdate( wxCommandEvent
&WXUNUSED(event
) )
657 m_gauge
->SetValue( m_slider
->GetValue() );
660 void MyPanel::OnSpinUpdate( wxSpinEvent
&event
)
663 value
.sprintf( "%d", (int)event
.GetPosition() );
664 m_spintext
->SetValue( value
);
669 delete m_notebook
->GetImageList();
672 //----------------------------------------------------------------------
674 //----------------------------------------------------------------------
676 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
677 EVT_MENU(MINIMAL_QUIT
, MyFrame::OnQuit
)
678 EVT_MENU(MINIMAL_ABOUT
, MyFrame::OnAbout
)
681 MyFrame::MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
):
682 wxFrame(frame
, -1, title
, wxPoint(x
, y
), wxSize(w
, h
))
684 (void)new MyPanel( this, 10, 10, 300, 100 );
687 void MyFrame::OnQuit (wxCommandEvent
& WXUNUSED(event
) )
692 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
694 wxMessageDialog
dialog(this, "This is a control sample", "About Controls", wxOK
);