X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a0f7f3f17ebd63292117e629c01425d0c5f609f..6c9210a76a8ca51e490edc93644a04efd3238e38:/src/gtk1/gauge.cpp?ds=sidebyside diff --git a/src/gtk1/gauge.cpp b/src/gtk1/gauge.cpp index 917ab60307..f180206c79 100644 --- a/src/gtk1/gauge.cpp +++ b/src/gtk1/gauge.cpp @@ -15,18 +15,22 @@ #if wxUSE_GAUGE -#include #include //----------------------------------------------------------------------------- // wxGauge //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) +bool wxGauge::Create( wxWindow *parent, + wxWindowID id, + int range, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name ) { m_needParent = TRUE; @@ -38,12 +42,13 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range, } m_rangeMax = range; - m_gaugePos = 0; - m_useProgressBar = TRUE; m_widget = gtk_progress_bar_new(); - if( style & wxGA_VERTICAL) - gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget) , GTK_PROGRESS_BOTTOM_TO_TOP ); + if ( style & wxGA_VERTICAL ) + { + gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget), + GTK_PROGRESS_BOTTOM_TO_TOP ); + } m_parent->DoAddChild( this ); @@ -54,20 +59,31 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range, return TRUE; } -void wxGauge::SetRange( int r ) +void wxGauge::DoSetGauge() +{ + wxASSERT_MSG( 0 <= m_gaugePos && m_gaugePos <= m_rangeMax, + _T("invalid gauge position in DoSetGauge()") ); + + gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), + m_rangeMax ? ((float)m_gaugePos)/m_rangeMax : 0.); +} + +void wxGauge::SetRange( int range ) { - m_rangeMax = r; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; + m_rangeMax = range; + if (m_gaugePos > m_rangeMax) + m_gaugePos = m_rangeMax; - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); + DoSetGauge(); } void wxGauge::SetValue( int pos ) { + wxCHECK_RET( pos <= m_rangeMax, _T("invalid value in wxGauge::SetValue()") ); + m_gaugePos = pos; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); + DoSetGauge(); } int wxGauge::GetRange() const