don't divide by 0 in SetValue/Range(); minor code cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -42,25 +42,32 @@ extern const wxChar* wxGaugeNameStr;
|
|||||||
class wxGauge: public wxControl
|
class wxGauge: public wxControl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
|
wxGauge() { Init(); }
|
||||||
|
|
||||||
inline wxGauge( wxWindow *parent, wxWindowID id, int range,
|
wxGauge( wxWindow *parent,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
wxWindowID id,
|
||||||
const wxSize& size = wxDefaultSize,
|
int range,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxString& name = wxGaugeNameStr )
|
long style = wxGA_HORIZONTAL,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxGaugeNameStr )
|
||||||
{
|
{
|
||||||
Create(parent, id, range, pos, size, style, validator, name);
|
Init();
|
||||||
|
|
||||||
|
Create(parent, id, range, pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
bool Create( wxWindow *parent, wxWindowID id, int range,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
bool Create( wxWindow *parent,
|
||||||
const wxSize& size = wxDefaultSize,
|
wxWindowID id, int range,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxString& name = wxGaugeNameStr );
|
long style = wxGA_HORIZONTAL,
|
||||||
void SetShadowWidth( int WXUNUSED(w) ) {};
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
void SetBezelFace( int WXUNUSED(w) ) {};
|
const wxString& name = wxGaugeNameStr );
|
||||||
|
|
||||||
|
void SetShadowWidth( int WXUNUSED(w) ) { }
|
||||||
|
void SetBezelFace( int WXUNUSED(w) ) { }
|
||||||
void SetRange( int r );
|
void SetRange( int r );
|
||||||
void SetValue( int pos );
|
void SetValue( int pos );
|
||||||
int GetShadowWidth() const { return 0; };
|
int GetShadowWidth() const { return 0; };
|
||||||
@@ -68,17 +75,27 @@ public:
|
|||||||
int GetRange() const;
|
int GetRange() const;
|
||||||
int GetValue() const;
|
int GetValue() const;
|
||||||
|
|
||||||
// Are we a Win95/GTK progress bar, or a normal gauge?
|
|
||||||
inline bool GetProgressBar() const { return m_useProgressBar; }
|
|
||||||
|
|
||||||
// implementation
|
// implementation
|
||||||
// -------------
|
// -------------
|
||||||
|
|
||||||
void ApplyWidgetStyle();
|
void ApplyWidgetStyle();
|
||||||
int m_rangeMax;
|
|
||||||
int m_gaugePos;
|
// the max and current gauge values
|
||||||
bool m_useProgressBar;
|
int m_rangeMax,
|
||||||
|
m_gaugePos;
|
||||||
|
|
||||||
|
// obsolete functions, don't use
|
||||||
|
#ifdef WXWIN_COMPATIBILITY_2_2
|
||||||
|
bool GetProgressBar() const { return TRUE; }
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_2
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// common part of all ctors
|
||||||
|
void Init() { m_rangeMax = m_gaugePos = 0; }
|
||||||
|
|
||||||
|
// set the gauge value to the value of m_gaugePos
|
||||||
|
void DoSetGauge();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGauge)
|
DECLARE_DYNAMIC_CLASS(wxGauge)
|
||||||
};
|
};
|
||||||
|
@@ -42,25 +42,32 @@ extern const wxChar* wxGaugeNameStr;
|
|||||||
class wxGauge: public wxControl
|
class wxGauge: public wxControl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
|
wxGauge() { Init(); }
|
||||||
|
|
||||||
inline wxGauge( wxWindow *parent, wxWindowID id, int range,
|
wxGauge( wxWindow *parent,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
wxWindowID id,
|
||||||
const wxSize& size = wxDefaultSize,
|
int range,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxString& name = wxGaugeNameStr )
|
long style = wxGA_HORIZONTAL,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxGaugeNameStr )
|
||||||
{
|
{
|
||||||
Create(parent, id, range, pos, size, style, validator, name);
|
Init();
|
||||||
|
|
||||||
|
Create(parent, id, range, pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
bool Create( wxWindow *parent, wxWindowID id, int range,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
bool Create( wxWindow *parent,
|
||||||
const wxSize& size = wxDefaultSize,
|
wxWindowID id, int range,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxString& name = wxGaugeNameStr );
|
long style = wxGA_HORIZONTAL,
|
||||||
void SetShadowWidth( int WXUNUSED(w) ) {};
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
void SetBezelFace( int WXUNUSED(w) ) {};
|
const wxString& name = wxGaugeNameStr );
|
||||||
|
|
||||||
|
void SetShadowWidth( int WXUNUSED(w) ) { }
|
||||||
|
void SetBezelFace( int WXUNUSED(w) ) { }
|
||||||
void SetRange( int r );
|
void SetRange( int r );
|
||||||
void SetValue( int pos );
|
void SetValue( int pos );
|
||||||
int GetShadowWidth() const { return 0; };
|
int GetShadowWidth() const { return 0; };
|
||||||
@@ -68,17 +75,27 @@ public:
|
|||||||
int GetRange() const;
|
int GetRange() const;
|
||||||
int GetValue() const;
|
int GetValue() const;
|
||||||
|
|
||||||
// Are we a Win95/GTK progress bar, or a normal gauge?
|
|
||||||
inline bool GetProgressBar() const { return m_useProgressBar; }
|
|
||||||
|
|
||||||
// implementation
|
// implementation
|
||||||
// -------------
|
// -------------
|
||||||
|
|
||||||
void ApplyWidgetStyle();
|
void ApplyWidgetStyle();
|
||||||
int m_rangeMax;
|
|
||||||
int m_gaugePos;
|
// the max and current gauge values
|
||||||
bool m_useProgressBar;
|
int m_rangeMax,
|
||||||
|
m_gaugePos;
|
||||||
|
|
||||||
|
// obsolete functions, don't use
|
||||||
|
#ifdef WXWIN_COMPATIBILITY_2_2
|
||||||
|
bool GetProgressBar() const { return TRUE; }
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_2
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// common part of all ctors
|
||||||
|
void Init() { m_rangeMax = m_gaugePos = 0; }
|
||||||
|
|
||||||
|
// set the gauge value to the value of m_gaugePos
|
||||||
|
void DoSetGauge();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGauge)
|
DECLARE_DYNAMIC_CLASS(wxGauge)
|
||||||
};
|
};
|
||||||
|
@@ -15,18 +15,22 @@
|
|||||||
|
|
||||||
#if wxUSE_GAUGE
|
#if wxUSE_GAUGE
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxGauge
|
// wxGauge
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
|
||||||
|
|
||||||
bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
bool wxGauge::Create( wxWindow *parent,
|
||||||
const wxPoint& pos, const wxSize& size,
|
wxWindowID id,
|
||||||
long style, const wxValidator& validator, const wxString& name )
|
int range,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name )
|
||||||
{
|
{
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
|
|
||||||
@@ -38,12 +42,13 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_rangeMax = range;
|
m_rangeMax = range;
|
||||||
m_gaugePos = 0;
|
|
||||||
m_useProgressBar = TRUE;
|
|
||||||
|
|
||||||
m_widget = gtk_progress_bar_new();
|
m_widget = gtk_progress_bar_new();
|
||||||
if( style & wxGA_VERTICAL)
|
if ( style & wxGA_VERTICAL )
|
||||||
gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget) , GTK_PROGRESS_BOTTOM_TO_TOP );
|
{
|
||||||
|
gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget),
|
||||||
|
GTK_PROGRESS_BOTTOM_TO_TOP );
|
||||||
|
}
|
||||||
|
|
||||||
m_parent->DoAddChild( this );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
@@ -54,20 +59,31 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge::SetRange( int r )
|
void wxGauge::DoSetGauge()
|
||||||
{
|
{
|
||||||
m_rangeMax = r;
|
wxASSERT_MSG( 0 <= m_gaugePos && m_gaugePos <= m_rangeMax,
|
||||||
if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
|
_T("invalid gauge position in DoSetGauge()") );
|
||||||
|
|
||||||
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
|
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget),
|
||||||
|
m_rangeMax ? ((float)m_gaugePos)/m_rangeMax : 0.);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGauge::SetRange( int range )
|
||||||
|
{
|
||||||
|
m_rangeMax = range;
|
||||||
|
if (m_gaugePos > m_rangeMax)
|
||||||
|
m_gaugePos = m_rangeMax;
|
||||||
|
|
||||||
|
DoSetGauge();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge::SetValue( int pos )
|
void wxGauge::SetValue( int pos )
|
||||||
{
|
{
|
||||||
m_gaugePos = pos;
|
wxCHECK_RET( pos <= m_rangeMax, _T("invalid value in wxGauge::SetValue()") );
|
||||||
if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
|
|
||||||
|
|
||||||
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
|
m_gaugePos = pos;
|
||||||
|
|
||||||
|
DoSetGauge();
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxGauge::GetRange() const
|
int wxGauge::GetRange() const
|
||||||
|
@@ -15,18 +15,22 @@
|
|||||||
|
|
||||||
#if wxUSE_GAUGE
|
#if wxUSE_GAUGE
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxGauge
|
// wxGauge
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
|
||||||
|
|
||||||
bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
bool wxGauge::Create( wxWindow *parent,
|
||||||
const wxPoint& pos, const wxSize& size,
|
wxWindowID id,
|
||||||
long style, const wxValidator& validator, const wxString& name )
|
int range,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name )
|
||||||
{
|
{
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
|
|
||||||
@@ -38,12 +42,13 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_rangeMax = range;
|
m_rangeMax = range;
|
||||||
m_gaugePos = 0;
|
|
||||||
m_useProgressBar = TRUE;
|
|
||||||
|
|
||||||
m_widget = gtk_progress_bar_new();
|
m_widget = gtk_progress_bar_new();
|
||||||
if( style & wxGA_VERTICAL)
|
if ( style & wxGA_VERTICAL )
|
||||||
gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget) , GTK_PROGRESS_BOTTOM_TO_TOP );
|
{
|
||||||
|
gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget),
|
||||||
|
GTK_PROGRESS_BOTTOM_TO_TOP );
|
||||||
|
}
|
||||||
|
|
||||||
m_parent->DoAddChild( this );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
@@ -54,20 +59,31 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge::SetRange( int r )
|
void wxGauge::DoSetGauge()
|
||||||
{
|
{
|
||||||
m_rangeMax = r;
|
wxASSERT_MSG( 0 <= m_gaugePos && m_gaugePos <= m_rangeMax,
|
||||||
if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
|
_T("invalid gauge position in DoSetGauge()") );
|
||||||
|
|
||||||
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
|
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget),
|
||||||
|
m_rangeMax ? ((float)m_gaugePos)/m_rangeMax : 0.);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGauge::SetRange( int range )
|
||||||
|
{
|
||||||
|
m_rangeMax = range;
|
||||||
|
if (m_gaugePos > m_rangeMax)
|
||||||
|
m_gaugePos = m_rangeMax;
|
||||||
|
|
||||||
|
DoSetGauge();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge::SetValue( int pos )
|
void wxGauge::SetValue( int pos )
|
||||||
{
|
{
|
||||||
m_gaugePos = pos;
|
wxCHECK_RET( pos <= m_rangeMax, _T("invalid value in wxGauge::SetValue()") );
|
||||||
if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
|
|
||||||
|
|
||||||
gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
|
m_gaugePos = pos;
|
||||||
|
|
||||||
|
DoSetGauge();
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxGauge::GetRange() const
|
int wxGauge::GetRange() const
|
||||||
|
Reference in New Issue
Block a user