/////////////////////////////////////////////////////////////////////////////
-// 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
// 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:
- wxSlider();
+ wxSlider()
+ {
+ Init();
+ }
wxSlider(wxWindow *parent, wxWindowID id,
int value, int minValue, int maxValue,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSliderNameStr)
{
+ Init();
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,
virtual int GetValue() const;
virtual void SetValue(int);
- void GetPosition(int *x, int *y) const;
-
void SetRange(int minValue, int maxValue);
int GetMin() const;
// 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();
// implementation
void Command(wxCommandEvent& event);
-protected:
- virtual void DoGetSize(int *width, int *height) const;
+ // send a notification event, return true if processed
+ bool SendUpdatedEvent();
+ bool SendScrollEvent(WXEVENTPTR event);
- virtual void DoSetSize(int x, int y,
- int width, int height,
- int sizeFlags = wxSIZE_AUTO);
+protected:
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
- // _SLIDER95_H_
+ // _SLIDERPALM_H_