X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1301e2289f81208bdd2cb1ac92a0d13c3d0959c4..e960c20e389061c0db09e03fdaf9ffe3a418779b:/samples/widgets/spinbtn.cpp?ds=inline diff --git a/samples/widgets/spinbtn.cpp b/samples/widgets/spinbtn.cpp index cf8c255d4f..63f8e9c353 100644 --- a/samples/widgets/spinbtn.cpp +++ b/samples/widgets/spinbtn.cpp @@ -54,7 +54,7 @@ // control ids enum { - SpinBtnPage_Reset = 100, + SpinBtnPage_Reset = wxID_HIGHEST, SpinBtnPage_Clear, SpinBtnPage_SetValue, SpinBtnPage_SetMinAndMax, @@ -73,13 +73,16 @@ enum class SpinBtnWidgetsPage : public WidgetsPage { public: - SpinBtnWidgetsPage(wxBookCtrlBase *book, 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); @@ -166,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(wxBookCtrlBase *book, +SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(book) + : WidgetsPage(book, imaglist, spinbtn_xpm) { m_chkVert = NULL; m_chkWrap = NULL; @@ -179,7 +190,6 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxBookCtrlBase *book, m_textValue = NULL; m_textMin = NULL; m_textMax = NULL; - imaglist->Add(wxBitmap(spinbtn_xpm)); // init everything m_min = 0; @@ -190,7 +200,10 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxBookCtrlBase *book, m_spinbtn = (wxSpinButton *)NULL; m_sizerSpin = (wxSizer *)NULL; +} +void SpinBtnWidgetsPage::CreateContent() +{ wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane @@ -253,8 +266,6 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxBookCtrlBase *book, // final initializations SetSizer(sizerTop); - - sizerTop->Fit(this); } // ---------------------------------------------------------------------------- @@ -340,7 +351,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.")); @@ -379,7 +390,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) @@ -409,13 +420,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() ); }