/////////////////////////////////////////////////////////////////////////////
-// Program: wxWindows Widgets Sample
+// Program: wxWidgets Widgets Sample
// Name: gauge.cpp
// Purpose: Part of the widgets sample showing wxGauge
// Author: Vadim Zeitlin
#include "wx/log.h"
#include "wx/timer.h"
+ #include "wx/bitmap.h"
#include "wx/button.h"
#include "wx/checkbox.h"
#include "wx/combobox.h"
#include "wx/sizer.h"
#include "widgets.h"
-
+#if wxUSE_GAUGE
#include "icons/gauge.xpm"
// ----------------------------------------------------------------------------
class GaugeWidgetsPage : public WidgetsPage
{
public:
- GaugeWidgetsPage(wxNotebook *notebook, wxImageList *imaglist);
+ GaugeWidgetsPage(wxBookCtrl *book, wxImageList *imaglist);
virtual ~GaugeWidgetsPage();
+ virtual wxControl *GetWidget() const { return m_gauge; }
+
protected:
// event handlers
void OnButtonReset(wxCommandEvent& event);
wxTimer *m_timer;
private:
- DECLARE_EVENT_TABLE();
- DECLARE_WIDGETS_PAGE(GaugeWidgetsPage);
+ DECLARE_EVENT_TABLE()
+ DECLARE_WIDGETS_PAGE(GaugeWidgetsPage)
};
// ----------------------------------------------------------------------------
EVT_UPDATE_UI(GaugePage_CurValueText, GaugeWidgetsPage::OnUpdateUICurValueText)
- EVT_CHECKBOX(-1, GaugeWidgetsPage::OnCheckOrRadioBox)
- EVT_RADIOBOX(-1, GaugeWidgetsPage::OnCheckOrRadioBox)
+ EVT_CHECKBOX(wxID_ANY, GaugeWidgetsPage::OnCheckOrRadioBox)
+ EVT_RADIOBOX(wxID_ANY, GaugeWidgetsPage::OnCheckOrRadioBox)
EVT_TIMER(GaugePage_Timer, GaugeWidgetsPage::OnProgressTimer)
END_EVENT_TABLE()
IMPLEMENT_WIDGETS_PAGE(GaugeWidgetsPage, _T("Gauge"));
-GaugeWidgetsPage::GaugeWidgetsPage(wxNotebook *notebook,
- wxImageList *imaglist)
- : WidgetsPage(notebook)
+GaugeWidgetsPage::GaugeWidgetsPage(wxBookCtrl *book,
+ wxImageList *imaglist)
+ :WidgetsPage(book)
{
imaglist->Add(wxBitmap(gauge_xpm));
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);
sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
// middle pane
- wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Change gauge value"));
+ wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY,
+ _T("&Change gauge value"));
wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL);
wxTextCtrl *text;
wxSizer *sizerRow = CreateSizerWithTextAndLabel(_T("Current value"),
GaugePage_CurValueText,
&text);
- text->SetEditable(FALSE);
+ text->SetEditable(false);
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
_T("Set &range"),
GaugePage_RangeText,
&m_textRange);
- m_textRange->SetValue(wxString::Format(_T("%lu"), m_range));
+ m_textRange->SetValue( wxString::Format(_T("%lu"), m_range) );
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
btn = new wxButton(this, GaugePage_Progress, _T("Simulate &progress"));
wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
m_gauge = new wxGauge(this, GaugePage_Gauge, m_range);
sizerRight->Add(m_gauge, 1, wxCENTRE | wxALL, 5);
- sizerRight->SetMinSize(250, 0);
+ sizerRight->SetMinSize(150, 0);
m_sizerGauge = sizerRight; // save it to modify it later
// the 3 panes panes compose the window
// final initializations
Reset();
- SetAutoLayout(TRUE);
SetSizer(sizerTop);
sizerTop->Fit(this);
void GaugeWidgetsPage::Reset()
{
- m_chkVert->SetValue(FALSE);
- m_chkSmooth->SetValue(FALSE);
+ m_chkVert->SetValue(false);
+ m_chkSmooth->SetValue(false);
}
void GaugeWidgetsPage::CreateGauge()
{
val = m_gauge->GetValue();
- m_sizerGauge->Remove(m_gauge);
+ m_sizerGauge->Detach( m_gauge );
delete m_gauge;
}
if ( !m_textRange->GetValue().ToULong(&val) )
return;
+ m_range = val;
m_gauge->SetRange(val);
}
event.Enable( m_chkVert->GetValue() || m_chkSmooth->GetValue() );
}
-void GaugeWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event)
+void GaugeWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
{
CreateGauge();
}
wxLogMessage(_T("Progress finished."));
}
+#endif
+ // wxUSE_GAUGE