X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5378558e5ca2de455ba9749cc8a3044c6a93d1eb..fb61f58a73b53c1340ef0ec12a883826db6d436a:/samples/widgets/gauge.cpp diff --git a/samples/widgets/gauge.cpp b/samples/widgets/gauge.cpp index 743592a7ba..3f80544e5f 100644 --- a/samples/widgets/gauge.cpp +++ b/samples/widgets/gauge.cpp @@ -52,7 +52,7 @@ // control ids enum { - GaugePage_Reset = 100, + GaugePage_Reset = wxID_HIGHEST, GaugePage_Progress, GaugePage_Clear, GaugePage_SetValue, @@ -71,10 +71,14 @@ enum class GaugeWidgetsPage : public WidgetsPage { public: - GaugeWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist); + GaugeWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist); virtual ~GaugeWidgetsPage(); virtual wxControl *GetWidget() const { return m_gauge; } + virtual void RecreateWidget() { CreateGauge(); } + + // lazy creation of the content + virtual void CreateContent(); protected: // event handlers @@ -111,7 +115,8 @@ protected: // the checkboxes for styles wxCheckBox *m_chkVert, - *m_chkSmooth; + *m_chkSmooth, + *m_chkIndeterminate; // the gauge itself and the sizer it is in wxGauge *m_gauge; @@ -156,25 +161,33 @@ END_EVENT_TABLE() // implementation // ============================================================================ -IMPLEMENT_WIDGETS_PAGE(GaugeWidgetsPage, _T("Gauge")); +#if defined(__WXUNIVERSAL__) + #define FAMILY_CTRLS UNIVERSAL_CTRLS +#else + #define FAMILY_CTRLS NATIVE_CTRLS +#endif + +IMPLEMENT_WIDGETS_PAGE(GaugeWidgetsPage, _T("Gauge"), FAMILY_CTRLS ); -GaugeWidgetsPage::GaugeWidgetsPage(wxBookCtrlBase *book, +GaugeWidgetsPage::GaugeWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - :WidgetsPage(book) + :WidgetsPage(book, imaglist, gauge_xpm) { - imaglist->Add(wxBitmap(gauge_xpm)); - // init everything m_range = 100; m_timer = (wxTimer *)NULL; m_chkVert = - m_chkSmooth = (wxCheckBox *)NULL; + m_chkSmooth = + m_chkIndeterminate = (wxCheckBox *)NULL; m_gauge = (wxGauge *)NULL; m_sizerGauge = (wxSizer *)NULL; +} +void GaugeWidgetsPage::CreateContent() +{ wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane @@ -184,6 +197,7 @@ GaugeWidgetsPage::GaugeWidgetsPage(wxBookCtrlBase *book, m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical")); m_chkSmooth = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Smooth")); + m_chkIndeterminate = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Indeterminate")); sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer @@ -255,11 +269,12 @@ void GaugeWidgetsPage::Reset() { m_chkVert->SetValue(false); m_chkSmooth->SetValue(false); + m_chkIndeterminate->SetValue(false); } void GaugeWidgetsPage::CreateGauge() { - int flags = 0; + int flags = ms_defaultFlags; if ( m_chkVert->GetValue() ) flags |= wxGA_VERTICAL; @@ -282,6 +297,10 @@ void GaugeWidgetsPage::CreateGauge() wxDefaultPosition, wxDefaultSize, flags); m_gauge->SetValue(val); + + if ( m_chkIndeterminate->GetValue() ){ + m_gauge->Pulse(); + } if ( flags & wxGA_VERTICAL ) m_sizerGauge->Add(m_gauge, 0, wxGROW | wxALL, 5); @@ -337,6 +356,7 @@ void GaugeWidgetsPage::OnButtonSetRange(wxCommandEvent& WXUNUSED(event)) m_range = val; m_gauge->SetRange(val); + m_chkIndeterminate->SetValue(0); } void GaugeWidgetsPage::OnButtonSetValue(wxCommandEvent& WXUNUSED(event)) @@ -346,6 +366,7 @@ void GaugeWidgetsPage::OnButtonSetValue(wxCommandEvent& WXUNUSED(event)) return; m_gauge->SetValue(val); + m_chkIndeterminate->SetValue(0); } void GaugeWidgetsPage::OnUpdateUIValueButton(wxUpdateUIEvent& event)