X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f6eaec925f03f243cbf35072290f9b303f61186..084ad0c2424aa998a640c151f8fa762435364449:/samples/widgets/spinbtn.cpp diff --git a/samples/widgets/spinbtn.cpp b/samples/widgets/spinbtn.cpp index 281fab9bd7..f7e793ac8c 100644 --- a/samples/widgets/spinbtn.cpp +++ b/samples/widgets/spinbtn.cpp @@ -24,6 +24,8 @@ #pragma hdrstop #endif +#if wxUSE_SPINBTN + // for all others, include the necessary headers #ifndef WX_PRECOMP #include "wx/log.h" @@ -42,7 +44,7 @@ #include "wx/sizer.h" #include "widgets.h" -#if wxUSE_SPINBTN + #include "icons/spinbtn.xpm" // ---------------------------------------------------------------------------- @@ -52,7 +54,7 @@ // control ids enum { - SpinBtnPage_Reset = 100, + SpinBtnPage_Reset = wxID_HIGHEST, SpinBtnPage_Clear, SpinBtnPage_SetValue, SpinBtnPage_SetMinAndMax, @@ -71,9 +73,16 @@ enum class SpinBtnWidgetsPage : public WidgetsPage { public: - SpinBtnWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); + SpinBtnWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist); virtual ~SpinBtnWidgetsPage(){}; + virtual wxControl *GetWidget() const { return m_spinbtn; } + virtual wxControl *GetWidget2() const { return m_spinctrl; } + virtual void RecreateWidget() { CreateSpin(); } + + // lazy creation of the content + virtual void CreateContent(); + protected: // event handlers void OnButtonReset(wxCommandEvent& event); @@ -160,11 +169,19 @@ END_EVENT_TABLE() // implementation // ============================================================================ -IMPLEMENT_WIDGETS_PAGE(SpinBtnWidgetsPage, _T("Spin")); +#if defined(__WXUNIVERSAL__) + #define FAMILY_CTRLS UNIVERSAL_CTRLS +#else + #define FAMILY_CTRLS NATIVE_CTRLS +#endif + +IMPLEMENT_WIDGETS_PAGE(SpinBtnWidgetsPage, _T("Spin"), + FAMILY_CTRLS | EDITABLE_CTRLS + ); -SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxNotebook *notebook, +SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(notebook) + : WidgetsPage(book, imaglist, spinbtn_xpm) { m_chkVert = NULL; m_chkWrap = NULL; @@ -173,7 +190,6 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxNotebook *notebook, m_textValue = NULL; m_textMin = NULL; m_textMax = NULL; - imaglist->Add(wxBitmap(spinbtn_xpm)); // init everything m_min = 0; @@ -184,7 +200,10 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxNotebook *notebook, m_spinbtn = (wxSpinButton *)NULL; m_sizerSpin = (wxSizer *)NULL; +} +void SpinBtnWidgetsPage::CreateContent() +{ wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane @@ -263,7 +282,7 @@ void SpinBtnWidgetsPage::Reset() void SpinBtnWidgetsPage::CreateSpin() { - int flags = 0; + int flags = ms_defaultFlags; bool isVert = m_chkVert->GetValue(); if ( isVert ) @@ -334,7 +353,7 @@ void SpinBtnWidgetsPage::OnButtonSetMinAndMax(wxCommandEvent& WXUNUSED(event)) maxNew = 0; // init to suppress compiler warning if ( !m_textMin->GetValue().ToLong(&minNew) || !m_textMax->GetValue().ToLong(&maxNew) || - minNew >= maxNew ) + minNew > maxNew ) { wxLogWarning(_T("Invalid min/max values for the spinbtn.")); @@ -373,7 +392,7 @@ void SpinBtnWidgetsPage::OnUpdateUIMinMaxButton(wxUpdateUIEvent& event) long mn, mx; event.Enable( m_textMin->GetValue().ToLong(&mn) && m_textMax->GetValue().ToLong(&mx) && - mn < mx); + mn <= mx); } void SpinBtnWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) @@ -403,13 +422,13 @@ void SpinBtnWidgetsPage::OnSpinBtn(wxSpinEvent& event) void SpinBtnWidgetsPage::OnSpinBtnUp(wxSpinEvent& event) { - wxLogMessage( _T("Spin button value incremented, will be %ld (was %d)"), + wxLogMessage( _T("Spin button value incremented, will be %d (was %d)"), event.GetInt(), m_spinbtn->GetValue() ); } void SpinBtnWidgetsPage::OnSpinBtnDown(wxSpinEvent& event) { - wxLogMessage( _T("Spin button value decremented, will be %ld (was %d)"), + wxLogMessage( _T("Spin button value decremented, will be %d (was %d)"), event.GetInt(), m_spinbtn->GetValue() ); }