X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9dd96c0f6d5da873324f4013252061c69ed0d61c..36f1f456497faa46bfdaf3af9936bb4f7498a6b4:/samples/widgets/slider.cpp diff --git a/samples/widgets/slider.cpp b/samples/widgets/slider.cpp index e2c586cbc4..9fc211cc63 100644 --- a/samples/widgets/slider.cpp +++ b/samples/widgets/slider.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Program: wxWindows Widgets Sample +// Program: wxWidgets Widgets Sample // Name: slider.cpp // Purpose: Part of the widgets sample showing wxSlider // Author: Vadim Zeitlin @@ -24,10 +24,13 @@ #pragma hdrstop #endif +#if wxUSE_SLIDER + // for all others, include the necessary headers #ifndef WX_PRECOMP #include "wx/log.h" + #include "wx/bitmap.h" #include "wx/button.h" #include "wx/checkbox.h" #include "wx/radiobox.h" @@ -43,6 +46,7 @@ #include "wx/sizer.h" #include "widgets.h" + #include "icons/slider.xpm" // ---------------------------------------------------------------------------- @@ -85,8 +89,10 @@ enum class SliderWidgetsPage : public WidgetsPage { public: - SliderWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); - virtual ~SliderWidgetsPage(); + SliderWidgetsPage(wxBookCtrl *book, wxImageList *imaglist); + virtual ~SliderWidgetsPage(){}; + + virtual wxControl *GetWidget() const { return m_slider; } protected: // event handlers @@ -137,6 +143,7 @@ protected: // the check/radio boxes for styles wxCheckBox *m_chkLabels, *m_chkVert, + *m_chkInverse, *m_chkTicks, *m_chkBothSides; @@ -183,8 +190,8 @@ BEGIN_EVENT_TABLE(SliderWidgetsPage, WidgetsPage) EVT_COMMAND_SCROLL(SliderPage_Slider, SliderWidgetsPage::OnSlider) - EVT_CHECKBOX(-1, SliderWidgetsPage::OnCheckOrRadioBox) - EVT_RADIOBOX(-1, SliderWidgetsPage::OnCheckOrRadioBox) + EVT_CHECKBOX(wxID_ANY, SliderWidgetsPage::OnCheckOrRadioBox) + EVT_RADIOBOX(wxID_ANY, SliderWidgetsPage::OnCheckOrRadioBox) END_EVENT_TABLE() // ============================================================================ @@ -193,9 +200,9 @@ END_EVENT_TABLE() IMPLEMENT_WIDGETS_PAGE(SliderWidgetsPage, _T("Slider")); -SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, - wxImageList *imaglist) - : WidgetsPage(notebook) +SliderWidgetsPage::SliderWidgetsPage(wxBookCtrl *book, + wxImageList *imaglist) + : WidgetsPage(book) { imaglist->Add(wxBitmap(slider_xpm)); @@ -204,6 +211,7 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, m_max = 100; m_chkVert = + m_chkInverse = m_chkTicks = m_chkLabels = m_chkBothSides = (wxCheckBox *)NULL; @@ -216,10 +224,11 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane - wxStaticBox *box = new wxStaticBox(this, -1, _T("&Set style")); + wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style")); wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL); m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical")); + m_chkInverse = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Inverse")); m_chkTicks = CreateCheckBoxAndAddToSizer(sizerLeft, _T("Show &ticks")); m_chkLabels = CreateCheckBoxAndAddToSizer(sizerLeft, _T("Show &labels")); static const wxString sides[] = @@ -246,14 +255,14 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); // middle pane - wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Change slider value")); + wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Change slider value")); wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL); wxTextCtrl *text; wxSizer *sizerRow = CreateSizerWithTextAndLabel(_T("Current value"), SliderPage_CurValueText, &text); - text->SetEditable(FALSE); + text->SetEditable(false); sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); @@ -268,7 +277,7 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, SliderPage_MinText, &m_textMin); - m_textMax = new wxTextCtrl(this, SliderPage_MaxText, _T("")); + m_textMax = new wxTextCtrl(this, SliderPage_MaxText, wxEmptyString); sizerRow->Add(m_textMax, 1, wxLEFT | wxALIGN_CENTRE_VERTICAL, 5); m_textMin->SetValue( wxString::Format(_T("%d"), m_min) ); @@ -286,7 +295,7 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); sizerRow = CreateSizerWithTextAndButton(SliderPage_SetThumbLen, - _T("Thumb &lenght"), + _T("Thumb &length"), SliderPage_ThumbLenText, &m_textThumbLen); @@ -306,26 +315,22 @@ SliderWidgetsPage::SliderWidgetsPage(wxNotebook *notebook, sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10); // final initializations - SetAutoLayout(TRUE); SetSizer(sizerTop); sizerTop->Fit(this); } -SliderWidgetsPage::~SliderWidgetsPage() -{ -} - // ---------------------------------------------------------------------------- // operations // ---------------------------------------------------------------------------- void SliderWidgetsPage::Reset() { - m_chkVert->SetValue(FALSE); - m_chkTicks->SetValue(TRUE); - m_chkLabels->SetValue(TRUE); - m_chkBothSides->SetValue(FALSE); + m_chkVert->SetValue(false); + m_chkInverse->SetValue(false); + m_chkTicks->SetValue(true); + m_chkLabels->SetValue(true); + m_chkBothSides->SetValue(false); m_radioSides->SetSelection(StaticSides_Top); } @@ -340,6 +345,11 @@ void SliderWidgetsPage::CreateSlider() else flags |= wxSL_HORIZONTAL; + if ( m_chkInverse->GetValue() ) + { + flags |= wxSL_INVERSE; + } + if ( m_chkLabels->GetValue() ) { flags |= wxSL_LABELS; @@ -437,7 +447,7 @@ void SliderWidgetsPage::DoSetThumbLen() long len; if ( !m_textThumbLen->GetValue().ToLong(&len) ) { - wxLogWarning(_T("Invalid slider thumb lenght")); + wxLogWarning(_T("Invalid slider thumb length")); return; } @@ -529,12 +539,13 @@ void SliderWidgetsPage::OnUpdateUIMinMaxButton(wxUpdateUIEvent& event) void SliderWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) { event.Enable( m_chkVert->GetValue() || + m_chkInverse->GetValue() || !m_chkTicks->GetValue() || !m_chkLabels->GetValue() || m_chkBothSides->GetValue() ); } -void SliderWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event) +void SliderWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event)) { CreateSlider(); } @@ -554,7 +565,7 @@ void SliderWidgetsPage::OnUpdateUIBothSides(wxUpdateUIEvent& event) #if defined(__WIN95__) || defined(__WXUNIVERSAL__) event.Enable( m_chkTicks->GetValue() ); #else - event.Enable( FALSE ); + event.Enable( false ); #endif // defined(__WIN95__) || defined(__WXUNIVERSAL__) } @@ -595,9 +606,11 @@ void SliderWidgetsPage::OnSlider(wxScrollEvent& event) static int s_numSliderEvents = 0; - wxLogMessage(wxT("Slider event #%d: %s (pos = %d)"), + wxLogMessage(wxT("Slider event #%d: %s (pos = %d, int value = %ld)"), s_numSliderEvents++, eventNames[index], - event.GetPosition()); + event.GetPosition(), + event.GetInt()); } +#endif // wxUSE_SLIDER