X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..2b96d0fb4be7d684c17987d74f8f92d0cfe345b5:/samples/controls/controls.cpp diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp index 5f623ff4cc..9a425672bb 100644 --- a/samples/controls/controls.cpp +++ b/samples/controls/controls.cpp @@ -26,6 +26,7 @@ #if !defined( __WXMSW__ ) || defined( __WIN95__ ) #include "wx/spinbutt.h" #endif +#include "wx/tglbtn.h" #include "wx/notebook.h" #include "wx/imaglist.h" @@ -33,7 +34,7 @@ #include "wx/tooltip.h" #endif -#if defined(__WXGTK__) || defined(__WXMOTIF__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) #define USE_XPM #endif @@ -121,7 +122,8 @@ public: *m_choiceSorted; wxComboBox *m_combo; wxRadioBox *m_radio; - wxGauge *m_gauge; + wxGauge *m_gauge, + *m_gaugeVert; wxSlider *m_slider; wxButton *m_fontButton; wxButton *m_lbSelectNum; @@ -175,8 +177,11 @@ private: void UpdateStatusBar(const wxPoint& pos, const wxSize& size) { wxString msg; - msg.Printf(_("pos=(%d, %d), size=%dx%d"), - pos.x, pos.y, size.x, size.y); + wxSize sizeCl = GetClientSize(); + msg.Printf(_("pos=(%d, %d), size=%dx%d (client=%dx%d)"), + pos.x, pos.y, + size.x, size.y, + sizeCl.x, sizeCl.y); SetStatusText(msg, 1); } @@ -252,7 +257,7 @@ public: int majorDim = 1, long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) + const wxString& name = wxRadioBoxNameStr) : wxRadioBox(parent, id, title, pos, size, n, choices, majorDim, style, validator, name) { } @@ -308,7 +313,7 @@ bool MyApp::OnInit() // parse the cmd line int x = 50, y = 50; - if ( argc == 2 ) + if ( argc == 3 ) { wxSscanf(argv[1], "%d", &x); wxSscanf(argv[2], "%d", &y); @@ -474,7 +479,9 @@ EVT_BUTTON (ID_BTNPROGRESS, MyPanel::OnShowProgress) #if wxUSE_SPINCTRL EVT_SPINCTRL (ID_SPINCTRL, MyPanel::OnSpinCtrl) #endif // wxUSE_SPINCTRL -EVT_BUTTON (ID_BUTTON_LABEL, MyPanel::OnUpdateLabel) +#if wxUSE_TOGGLEBTN +EVT_TOGGLEBUTTON(ID_BUTTON_LABEL, MyPanel::OnUpdateLabel) +#endif // wxUSE_TOGGLEBTN EVT_CHECKBOX (ID_CHANGE_COLOUR, MyPanel::OnChangeColour) EVT_BUTTON (ID_BUTTON_TEST1, MyPanel::OnTestButton) EVT_BUTTON (ID_BUTTON_TEST2, MyPanel::OnTestButton) @@ -687,17 +694,22 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio); panel = new wxPanel(m_notebook); - (void)new wxStaticBox( panel, -1, "&wxGauge and wxSlider", wxPoint(10,10), wxSize(200,130) ); + (void)new wxStaticBox( panel, -1, "&wxGauge and wxSlider", wxPoint(10,10), wxSize(222,130) ); m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30), wxGA_HORIZONTAL|wxNO_BORDER ); m_gauge->SetBackgroundColour(*wxGREEN); m_gauge->SetForegroundColour(*wxRED); - m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), wxSL_LABELS ); - (void)new wxStaticBox( panel, -1, "&Explanation", wxPoint(220,10), wxSize(270,130) ); + m_gaugeVert = new wxGauge( panel, -1, 100, + wxPoint(195,35), wxSize(30, 90), + wxGA_VERTICAL | wxGA_SMOOTH | wxNO_BORDER ); + m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), + wxSL_AUTOTICKS | wxSL_LABELS ); + m_slider->SetTickFreq(40, 0); + (void)new wxStaticBox( panel, -1, "&Explanation", wxPoint(230,10), wxSize(270,130) ); #ifdef __WXMOTIF__ // No wrapping text in wxStaticText yet :-( (void)new wxStaticText( panel, -1, "Drag the slider!", - wxPoint(228,30), + wxPoint(250,30), wxSize(240, -1) ); #else @@ -708,7 +720,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) "\n" "This is also supposed to demonstrate how\n" "to use static controls.\n", - wxPoint(228,25), + wxPoint(250,25), wxSize(240, 110) ); #endif @@ -773,12 +785,16 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) ( panel, -1, bmp1, - wxPoint(30, 50) + wxPoint(30, 70) ); bmpBtn->SetBitmapSelected(bmp2); bmpBtn->SetBitmapFocus(bmp3); - (void)new wxButton(panel, ID_BUTTON_LABEL, "&Toggle label", wxPoint(250, 20)); +#if wxUSE_TOGGLEBTN + (void)new wxToggleButton(panel, ID_BUTTON_LABEL, + "&Toggle label", wxPoint(250, 20)); +#endif // wxUSE_TOGGLEBTN + m_label = new wxStaticText(panel, -1, "Label with some long text", wxPoint(250, 60), wxDefaultSize, wxALIGN_RIGHT /*| wxST_NO_AUTORESIZE*/); @@ -854,12 +870,16 @@ void MyPanel::OnPageChanging( wxNotebookEvent &event ) } } - *m_text << "Notebook selection is being changed from " << selOld << "\n"; + *m_text << "Notebook selection is being changed from " << selOld + << " to " << event.GetSelection() + << " (current page from notebook is " + << m_notebook->GetSelection() << ")\n"; } void MyPanel::OnPageChanged( wxNotebookEvent &event ) { - *m_text << "Notebook selection is " << event.GetSelection() << "\n"; + *m_text << "Notebook selection is now " << event.GetSelection() + << " (from notebook: " << m_notebook->GetSelection() << ")\n"; } void MyPanel::OnTestButton(wxCommandEvent& event) @@ -1200,17 +1220,16 @@ void MyPanel::OnSetFont( wxCommandEvent &WXUNUSED(event) ) m_text->SetFont( *wxITALIC_FONT ); } -void MyPanel::OnUpdateLabel( wxCommandEvent &WXUNUSED(event) ) +void MyPanel::OnUpdateLabel( wxCommandEvent &event ) { - static bool s_long = TRUE; - - s_long = !s_long; - m_label->SetLabel(s_long ? "Very very very very very long text." : "Shorter text."); + m_label->SetLabel(event.GetInt() ? "Very very very very very long text." + : "Shorter text."); } void MyPanel::OnSliderUpdate( wxCommandEvent &WXUNUSED(event) ) { m_gauge->SetValue( m_slider->GetValue() ); + m_gaugeVert->SetValue( m_slider->GetValue() / 2 ); } #if wxUSE_SPINCTRL