]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/gaugecmn.cpp
use wxObject copy ctor, not default ctor, in wxEvent copy ctor
[wxWidgets.git] / src / common / gaugecmn.cpp
index 585f8e6f680cccde126320e8baddc5ede878b906..a41d08ef3ee5ff99db7f79234d43237f7e1a0577 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     20.02.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// License:     wxWindows license
+// License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "gaugebase.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #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
 // ----------------------------------------------------------------------------