X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e7445ff8ee26e39fab1e35455e1bef954bdf636f..1748289348c4c7dcc467edbf7192ade8a1b78921:/src/common/gaugecmn.cpp diff --git a/src/common/gaugecmn.cpp b/src/common/gaugecmn.cpp index 453337e805..a41d08ef3e 100644 --- a/src/common/gaugecmn.cpp +++ b/src/common/gaugecmn.cpp @@ -31,7 +31,7 @@ #include "wx/gauge.h" -WXDLLIMPEXP_DATA_CORE(const wxChar) wxGaugeNameStr[] = wxT("gauge"); +const wxChar wxGaugeNameStr[] = wxT("gauge"); // ============================================================================ // implementation @@ -66,12 +66,15 @@ bool wxGaugeBase::Create(wxWindow *parent, SetRange(range); SetValue(0); +#if wxGAUGE_EMULATE_INDETERMINATE_MODE + m_nDirection = wxRIGHT; +#endif return true; } // ---------------------------------------------------------------------------- -// wxGauge range/position +// wxGauge determinate mode range/position // ---------------------------------------------------------------------------- void wxGaugeBase::SetRange(int range) @@ -94,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 // ----------------------------------------------------------------------------