]>
git.saurik.com Git - wxWidgets.git/blob - samples/controls/controls.cpp
a824a9a84a0100ba9ef7e6e84752e7fd2c01abf7
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"
30 #include "wx/checklst.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
, (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;
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_RADIOBUTTON_1
= 166;
200 const int ID_RADIOBUTTON_2
= 167;
202 const int ID_SET_FONT
= 170;
204 const int ID_GAUGE
= 180;
205 const int ID_SLIDER
= 181;
207 const int ID_SPIN
= 182;
209 const int ID_CHECKLIST
= 190;
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_notebook
->AddPage(panel
, "wxList", FALSE
, Image_List
);
320 panel
= new wxPanel(m_notebook
);
321 // panel->SetBackgroundColour("cadet blue");
322 // panel->SetForegroundColour("blue");
323 m_choice
= new wxChoice( panel
, ID_CHOICE
, wxPoint(10,10), wxSize(120,-1), 5, choices
);
324 // m_choice->SetBackgroundColour("wheat");
325 (void)new wxButton( panel
, ID_CHOICE_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
326 (void)new wxButton( panel
, ID_CHOICE_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
327 (void)new wxButton( panel
, ID_CHOICE_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
328 (void)new wxButton( panel
, ID_CHOICE_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
329 (void)new wxButton( panel
, ID_CHOICE_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
330 (void)new wxButton( panel
, ID_CHOICE_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
331 (void)new wxCheckBox( panel
, ID_CHOICE_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
332 m_notebook
->AddPage(panel
, "wxChoice", FALSE
, Image_Choice
);
334 panel
= new wxPanel(m_notebook
);
335 // panel->SetBackgroundColour("cadet blue");
336 // panel->SetForegroundColour("blue");
337 m_combo
= new wxComboBox( panel
, ID_COMBO
, "This", wxPoint(10,10), wxSize(120,-1), 5, choices
);
338 // m_combo->SetBackgroundColour("wheat");
339 (void)new wxButton( panel
, ID_COMBO_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
340 (void)new wxButton( panel
, ID_COMBO_SEL_STR
, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
341 (void)new wxButton( panel
, ID_COMBO_CLEAR
, "Clear", wxPoint(180,80), wxSize(140,30) );
342 (void)new wxButton( panel
, ID_COMBO_APPEND
, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
343 (void)new wxButton( panel
, ID_COMBO_DELETE
, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
344 (void)new wxButton( panel
, ID_COMBO_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
345 (void)new wxCheckBox( panel
, ID_COMBO_ENABLE
, "Disable", wxPoint(20,130), wxSize(140,30) );
346 m_notebook
->AddPage(panel
, "wxComboBox", FALSE
, Image_Combo
);
348 panel
= new wxPanel(m_notebook
);
349 // panel->SetBackgroundColour("cadet blue");
350 // panel->SetForegroundColour("blue");
351 wxTextCtrl
*tc
= new wxTextCtrl( panel
, ID_TEXT
, "Write text here.", wxPoint(10,10), wxSize(320,28));
352 (*tc
) << " More text.";
353 // tc->SetBackgroundColour("wheat");
354 m_multitext
= new wxTextCtrl( panel
, ID_TEXT
, "And here.", wxPoint(10,50), wxSize(320,160), wxTE_MULTILINE
);
355 (*m_multitext
) << " More text.";
356 // m_multitext->SetBackgroundColour("wheat");
357 (void)new wxStaticBox( panel
, -1, "wxClipboard", wxPoint(345,50), wxSize(160,145) );
358 (void)new wxButton( panel
, ID_COPY_TEXT
, "Copy line 1", wxPoint(370,80), wxSize(110,30) );
359 (void)new wxButton( panel
, ID_PASTE_TEXT
, "Paste text", wxPoint(370,140), wxSize(110,30) );
360 m_notebook
->AddPage(panel
, "wxTextCtrl" , FALSE
, Image_Text
);
362 wxString choices2
[] =
368 panel
= new wxPanel(m_notebook
);
369 // panel->SetBackgroundColour("cadet blue");
370 // panel->SetForegroundColour("blue");
371 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "That", wxPoint(10,160), wxSize(-1,-1), 2, choices2
, 1, wxRA_VERTICAL
);
372 // m_radio->SetBackgroundColour("wheat");
373 m_radio
= new wxRadioBox( panel
, ID_RADIOBOX
, "This", wxPoint(10,10), wxSize(-1,-1), 5, choices
, 1, wxRA_HORIZONTAL
);
374 // m_radio->SetBackgroundColour("wheat");
375 (void)new wxButton( panel
, ID_RADIOBOX_SEL_NUM
, "Select #2", wxPoint(180,30), wxSize(140,30) );
376 (void)new wxButton( panel
, ID_RADIOBOX_SEL_STR
, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
377 m_fontButton
= new wxButton( panel
, ID_SET_FONT
, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
378 m_fontButton
->SetForegroundColour("blue");
379 (void)new wxButton( panel
, ID_RADIOBOX_FONT
, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
380 (void)new wxCheckBox( panel
, ID_RADIOBOX_ENABLE
, "Disable", wxPoint(340,130), wxSize(140,30) );
381 wxRadioButton
*rb
= new wxRadioButton( panel
, ID_RADIOBUTTON_1
, "Radiobutton1", wxPoint(210,170), wxSize(110,30) );
382 rb
->SetValue( FALSE
);
383 (void)new wxRadioButton( panel
, ID_RADIOBUTTON_2
, "Radiobutton2", wxPoint(340,170), wxSize(110,30) );
384 m_notebook
->AddPage(panel
, "wxRadioBox", FALSE
, Image_Radio
);
386 panel
= new wxPanel(m_notebook
);
387 // panel->SetBackgroundColour("cadet blue");
388 // panel->SetForegroundColour("blue");
389 (void)new wxStaticBox( panel
, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
390 m_gauge
= new wxGauge( panel
, -1, 200, wxPoint(18,50), wxSize(155,-1) );
391 // m_gauge->SetBackgroundColour("wheat");
392 m_slider
= new wxSlider( panel
, ID_SLIDER
, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
393 // m_slider->SetBackgroundColour("wheat");
394 (void)new wxStaticBox( panel
, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
395 (void)new wxStaticText( panel
, -1,
396 "In order see the gauge (aka progress bar)\n"
397 "control do something you have to drag the\n"
398 "handle of the slider to the right.\n"
400 "This is also supposed to demonstrate how\n"
401 "to use static controls.\n",
403 m_spintext
= new wxTextCtrl( panel
, -1, "0", wxPoint(20,160), wxSize(80,-1) );
404 // m_spintext->SetBackgroundColour("wheat");
405 m_spinbutton
= new wxSpinButton( panel
, ID_SPIN
, wxPoint(103,159), wxSize(-1,-1) );
406 // m_spinbutton->SetBackgroundColour("wheat");
407 m_spinbutton
->SetRange(0,100);
408 m_notebook
->AddPage(panel
, "wxGauge", FALSE
, Image_Gauge
);
410 panel
= new wxPanel(m_notebook
);
411 // panel->SetBackgroundColour("cadet blue");
412 // panel->SetForegroundColour("blue");
413 m_listbox
= new wxCheckListBox( panel
, ID_CHECKLIST
, wxPoint(10,10), wxSize(160,70), 5, choices
);
414 // m_listbox->SetBackgroundColour("wheat");
415 button
= new wxButton( panel
, ID_LISTBOX_FONT
, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
416 m_notebook
->AddPage(panel
, "wxCheckListBox", FALSE
, Image_List
);
419 void MyPanel::OnPasteFromClipboard( wxCommandEvent
&WXUNUSED(event
) )
423 if (!wxTheClipboard
->IsSupportedFormat( wxDF_TEXT
))
425 *m_text
<< "The clipboard doesn't contain any data in the requested format." << "\n";
430 if (!wxTheClipboard
->Open())
432 *m_text
<< "Error opening the clipboard." << "\n";
438 *m_text
<< "Successfully opened the clipboard." << "\n";
441 wxTextDataObject
*data
= new wxTextDataObject();
443 if (wxTheClipboard
->GetData( data
))
445 *m_text
<< "Successfully retrieved data from the clipboard." << "\n";
446 *m_multitext
<< data
->GetText() << "\n";
450 *m_text
<< "Error getting data from the clipboard." << "\n";
453 wxTheClipboard
->Close();
455 *m_text
<< "Closed the clipboard." << "\n";
462 void MyPanel::OnCopyToClipboard( wxCommandEvent
&WXUNUSED(event
) )
466 wxString
text( m_multitext
->GetLineText(0) );
468 if (text
.IsEmpty()) return;
470 wxTextDataObject
*data
= new wxTextDataObject( text
);
472 if (!wxTheClipboard
->Open())
474 *m_text
<< "Error opening the clipboard." << "\n";
480 *m_text
<< "Successfully opened the clipboard." << "\n";
483 if (!wxTheClipboard
->SetData( data
))
485 *m_text
<< "Error while copying to the clipboard." << "\n";
489 *m_text
<< "Successfully copied data to the clipboard." << "\n";
492 wxTheClipboard
->Close();
494 *m_text
<< "Closed the clipboard." << "\n";
499 void MyPanel::OnSize( wxSizeEvent
& WXUNUSED(event
) )
503 GetClientSize( &x
, &y
);
505 if (m_notebook
) m_notebook
->SetSize( 2, 2, x
-4, y
*2/3-4 );
506 if (m_text
) m_text
->SetSize( 2, y
*2/3+2, x
-4, y
/3-4 );
509 void MyPanel::OnPageChanged( wxNotebookEvent
&event
)
511 *m_text
<< "Notebook selection is " << event
.GetSelection() << "\n";
514 void MyPanel::OnListBox( wxCommandEvent
&event
)
516 m_text
->WriteText( "ListBox selection string is: " );
517 m_text
->WriteText( event
.GetString() );
518 m_text
->WriteText( "\n" );
521 void MyPanel::OnListBoxButtons( wxCommandEvent
&event
)
523 switch (event
.GetId())
525 case ID_LISTBOX_ENABLE
:
527 m_listbox
->Enable( !((bool)event
.GetInt()) );
530 case ID_LISTBOX_SEL_NUM
:
532 m_listbox
->SetSelection( 2 );
535 case ID_LISTBOX_SEL_STR
:
537 m_listbox
->SetStringSelection( "This" );
540 case ID_LISTBOX_CLEAR
:
545 case ID_LISTBOX_APPEND
:
547 m_listbox
->Append( "Hi!" );
550 case ID_LISTBOX_DELETE
:
552 int idx
= m_listbox
->GetSelection();
553 m_listbox
->Delete( idx
);
556 case ID_LISTBOX_FONT
:
558 m_listbox
->SetFont( *wxITALIC_FONT
);
559 m_checkbox
->SetFont( *wxITALIC_FONT
);
565 void MyPanel::OnChoice( wxCommandEvent
&event
)
567 m_text
->WriteText( "Choice selection string is: " );
568 m_text
->WriteText( event
.GetString() );
569 m_text
->WriteText( "\n" );
572 void MyPanel::OnChoiceButtons( wxCommandEvent
&event
)
574 switch (event
.GetId())
576 case ID_CHOICE_ENABLE
:
578 m_choice
->Enable( !((bool)event
.GetInt()) );
581 case ID_CHOICE_SEL_NUM
:
583 m_choice
->SetSelection( 2 );
586 case ID_CHOICE_SEL_STR
:
588 m_choice
->SetStringSelection( "This" );
591 case ID_CHOICE_CLEAR
:
596 case ID_CHOICE_APPEND
:
598 m_choice
->Append( "Hi!" );
601 case ID_CHOICE_DELETE
:
603 int idx
= m_choice
->GetSelection();
604 m_choice
->Delete( idx
);
609 m_choice
->SetFont( *wxITALIC_FONT
);
615 void MyPanel::OnCombo( wxCommandEvent
&event
)
617 m_text
->WriteText( "ComboBox selection string is: " );
618 m_text
->WriteText( event
.GetString() );
619 m_text
->WriteText( "\n" );
622 void MyPanel::OnComboButtons( wxCommandEvent
&event
)
624 switch (event
.GetId())
626 case ID_COMBO_ENABLE
:
628 m_combo
->Enable( !((bool)event
.GetInt()) );
631 case ID_COMBO_SEL_NUM
:
633 m_combo
->SetSelection( 2 );
636 case ID_COMBO_SEL_STR
:
638 m_combo
->SetStringSelection( "This" );
646 case ID_COMBO_APPEND
:
648 m_combo
->Append( "Hi!" );
651 case ID_COMBO_DELETE
:
653 int idx
= m_combo
->GetSelection();
654 m_combo
->Delete( idx
);
659 m_combo
->SetFont( *wxITALIC_FONT
);
665 void MyPanel::OnRadio( wxCommandEvent
&event
)
667 m_text
->WriteText( "RadioBox selection string is: " );
668 m_text
->WriteText( event
.GetString() );
669 m_text
->WriteText( "\n" );
672 void MyPanel::OnRadioButtons( wxCommandEvent
&event
)
674 switch (event
.GetId())
676 case ID_RADIOBOX_ENABLE
:
678 m_radio
->Enable( !((bool)event
.GetInt()) );
681 case ID_RADIOBOX_SEL_NUM
:
683 m_radio
->SetSelection( 2 );
686 case ID_RADIOBOX_SEL_STR
:
688 m_radio
->SetStringSelection( "This" );
691 case ID_RADIOBOX_FONT
:
693 m_radio
->SetFont( *wxITALIC_FONT
);
699 void MyPanel::OnSetFont( wxCommandEvent
&WXUNUSED(event
) )
701 m_fontButton
->SetFont( *wxITALIC_FONT
);
702 m_text
->SetFont( *wxITALIC_FONT
);
705 void MyPanel::OnSliderUpdate( wxCommandEvent
&WXUNUSED(event
) )
707 m_gauge
->SetValue( m_slider
->GetValue() );
710 void MyPanel::OnSpinUpdate( wxSpinEvent
&event
)
713 value
.sprintf( "%d", (int)event
.GetPosition() );
714 m_spintext
->SetValue( value
);
719 delete m_notebook
->GetImageList();
722 //----------------------------------------------------------------------
724 //----------------------------------------------------------------------
726 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
727 EVT_MENU(MINIMAL_QUIT
, MyFrame::OnQuit
)
728 EVT_MENU(MINIMAL_ABOUT
, MyFrame::OnAbout
)
731 MyFrame::MyFrame(wxFrame
*frame
, char *title
, int x
, int y
, int w
, int h
):
732 wxFrame(frame
, -1, title
, wxPoint(x
, y
), wxSize(w
, h
))
734 (void)new MyPanel( this, 10, 10, 300, 100 );
737 void MyFrame::OnQuit (wxCommandEvent
& WXUNUSED(event
) )
742 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
744 wxMessageDialog
dialog(this, "This is a control sample", "About Controls", wxOK
);