X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/217099990c2665d18d352c60058106da9a014ab8..80a779275ae04443c568dca919adb26cf6f5002c:/src/common/gaugecmn.cpp?ds=sidebyside diff --git a/src/common/gaugecmn.cpp b/src/common/gaugecmn.cpp index 585f8e6f68..a41d08ef3e 100644 --- a/src/common/gaugecmn.cpp +++ b/src/common/gaugecmn.cpp @@ -6,7 +6,7 @@ // Created: 20.02.01 // RCS-ID: $Id$ // Copyright: (c) 2001 Vadim Zeitlin -// License: wxWindows license +// License: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "gaugebase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -31,14 +27,21 @@ #ifndef WX_PRECOMP #endif //WX_PRECOMP +#if wxUSE_GAUGE + #include "wx/gauge.h" -#if wxUSE_GAUGE +const wxChar wxGaugeNameStr[] = wxT("gauge"); // ============================================================================ // implementation // ============================================================================ +wxGaugeBase::~wxGaugeBase() +{ + // this destructor is required for Darwin +} + // ---------------------------------------------------------------------------- // wxGauge creation // ---------------------------------------------------------------------------- @@ -53,7 +56,7 @@ bool wxGaugeBase::Create(wxWindow *parent, const wxString& name) { if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) - return FALSE; + return false; SetName(name); @@ -63,12 +66,15 @@ bool wxGaugeBase::Create(wxWindow *parent, SetRange(range); SetValue(0); +#if wxGAUGE_EMULATE_INDETERMINATE_MODE + m_nDirection = wxRIGHT; +#endif - return TRUE; + return true; } // ---------------------------------------------------------------------------- -// wxGauge range/position +// wxGauge determinate mode range/position // ---------------------------------------------------------------------------- void wxGaugeBase::SetRange(int range) @@ -91,6 +97,39 @@ int wxGaugeBase::GetValue() const return m_gaugePos; } +// ---------------------------------------------------------------------------- +// wxGauge indeterminate mode +// ---------------------------------------------------------------------------- + +void wxGaugeBase::Pulse() +{ +#if wxGAUGE_EMULATE_INDETERMINATE_MODE + // simulate indeterminate mode + int curr = GetValue(), max = GetRange(); + + if (m_nDirection == wxRIGHT) + { + if (curr < max) + SetValue(curr + 1); + else + { + SetValue(max - 1); + m_nDirection = wxLEFT; + } + } + else + { + if (curr > 0) + SetValue(curr - 1); + else + { + SetValue(1); + m_nDirection = wxRIGHT; + } + } +#endif +} + // ---------------------------------------------------------------------------- // wxGauge appearance params // ----------------------------------------------------------------------------