]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/palmos/slider.h
process one event at once in wxEvtHandler::ProcessPendingEvents() to prevent crashes...
[wxWidgets.git] / include / wx / palmos / slider.h
index 63d7b1ccdf1535a7e6a1bc5d955422643db15388..263e4a715308f7d10c45e80c6254945855f9af20 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wx/palmos/slider95.h
+// Name:        wx/palmos/slider.h
 // Purpose:     wxSlider class
 // Author:      William Osborne - minimal working wxPalmOS port
 // Modified by: Wlodzimierz ABX Skiba - native implementation
 // Purpose:     wxSlider class
 // Author:      William Osborne - minimal working wxPalmOS port
 // Modified by: Wlodzimierz ABX Skiba - native implementation
@@ -9,18 +9,17 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _SLIDER95_H_
-#define _SLIDER95_H_
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "slider95.h"
-#endif
+#ifndef _SLIDERPALM_H_
+#define _SLIDERPALM_H_
 
 // Slider
 class WXDLLEXPORT wxSlider : public wxSliderBase
 {
 public:
 
 // Slider
 class WXDLLEXPORT wxSlider : public wxSliderBase
 {
 public:
-    wxSlider();
+    wxSlider()
+    {
+        Init();
+    }
 
     wxSlider(wxWindow *parent, wxWindowID id,
             int value, int minValue, int maxValue,
 
     wxSlider(wxWindow *parent, wxWindowID id,
             int value, int minValue, int maxValue,
@@ -30,10 +29,11 @@ public:
             const wxValidator& validator = wxDefaultValidator,
             const wxString& name = wxSliderNameStr)
     {
             const wxValidator& validator = wxDefaultValidator,
             const wxString& name = wxSliderNameStr)
     {
+        Init();
         Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name);
     }
 
         Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name);
     }
 
-    ~wxSlider();
+    virtual ~wxSlider();
 
     bool Create(wxWindow *parent, wxWindowID id,
             int value, int minValue, int maxValue,
 
     bool Create(wxWindow *parent, wxWindowID id,
             int value, int minValue, int maxValue,
@@ -53,7 +53,7 @@ public:
 
     // For trackbars only
     void SetTickFreq(int n, int pos);
 
     // For trackbars only
     void SetTickFreq(int n, int pos);
-    int GetTickFreq() const { return GetPageSize(); }
+    int GetTickFreq() const;
     void SetPageSize(int pageSize);
     int GetPageSize() const;
     void ClearSel();
     void SetPageSize(int pageSize);
     int GetPageSize() const;
     void ClearSel();
@@ -70,11 +70,24 @@ public:
     // implementation
     void Command(wxCommandEvent& event);
 
     // implementation
     void Command(wxCommandEvent& event);
 
+    // send a notification event, return true if processed
+    bool SendUpdatedEvent();
+    bool SendScrollEvent(WXEVENTPTR event);
+
 protected:
 protected:
+
     virtual wxSize DoGetBestSize() const;
 
     virtual wxSize DoGetBestSize() const;
 
+private:
+
+    void Init();
+
+    int m_oldPos;    // needed for tracing thumb position during scrolling
+    int m_oldValue;  // needed for comparing thumb position before and after scrolling
+    int m_lineSize;  // imitate line size
+
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider)
 };
 
 #endif
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider)
 };
 
 #endif
-    // _SLIDER95_H_
+    // _SLIDERPALM_H_