X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..7d3f6b4ded6aa412cb1cc306fef478955d448c5b:/include/wx/univ/slider.h diff --git a/include/wx/univ/slider.h b/include/wx/univ/slider.h index 7b72b56781..6f6ae3a2aa 100644 --- a/include/wx/univ/slider.h +++ b/include/wx/univ/slider.h @@ -5,14 +5,10 @@ // Modified by: // Created: 09.02.01 // RCS-ID: $Id$ -// Copyright: (c) 2001 Vadim Zeitlin +// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma interface "univslider.h" -#endif - #ifndef _WX_UNIV_SLIDER_H_ #define _WX_UNIV_SLIDER_H_ @@ -24,23 +20,23 @@ // our actions are the same as scrollbars -#define wxACTION_SLIDER_START _T("start") // to the beginning -#define wxACTION_SLIDER_END _T("end") // to the end -#define wxACTION_SLIDER_LINE_UP _T("lineup") // one line up/left -#define wxACTION_SLIDER_PAGE_UP _T("pageup") // one page up/left -#define wxACTION_SLIDER_LINE_DOWN _T("linedown") // one line down/right -#define wxACTION_SLIDER_PAGE_DOWN _T("pagedown") // one page down/right -#define wxACTION_SLIDER_PAGE_CHANGE _T("pagechange")// change page by numArg +#define wxACTION_SLIDER_START wxT("start") // to the beginning +#define wxACTION_SLIDER_END wxT("end") // to the end +#define wxACTION_SLIDER_LINE_UP wxT("lineup") // one line up/left +#define wxACTION_SLIDER_PAGE_UP wxT("pageup") // one page up/left +#define wxACTION_SLIDER_LINE_DOWN wxT("linedown") // one line down/right +#define wxACTION_SLIDER_PAGE_DOWN wxT("pagedown") // one page down/right +#define wxACTION_SLIDER_PAGE_CHANGE wxT("pagechange")// change page by numArg -#define wxACTION_SLIDER_THUMB_DRAG _T("thumbdrag") -#define wxACTION_SLIDER_THUMB_MOVE _T("thumbmove") -#define wxACTION_SLIDER_THUMB_RELEASE _T("thumbrelease") +#define wxACTION_SLIDER_THUMB_DRAG wxT("thumbdrag") +#define wxACTION_SLIDER_THUMB_MOVE wxT("thumbmove") +#define wxACTION_SLIDER_THUMB_RELEASE wxT("thumbrelease") // ---------------------------------------------------------------------------- // wxSlider // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxSlider : public wxSliderBase, +class WXDLLIMPEXP_CORE wxSlider : public wxSliderBase, public wxControlWithThumb { public: @@ -81,7 +77,6 @@ public: virtual void SetThumbLength(int lenPixels); virtual int GetThumbLength() const; - virtual void SetTickFreq(int n, int WXUNUSED(dummy) = 0); virtual int GetTickFreq() const { return m_tickFreq; } // wxUniv-specific methods @@ -95,10 +90,14 @@ public: { return IsVert() ? wxVERTICAL : wxHORIZONTAL; } // do we have labels? - bool HasLabels() const { return (GetWindowStyle() & wxSL_LABELS) != 0; } + bool HasLabels() const + { return ((GetWindowStyle() & wxSL_LABELS) != 0) && + ((GetWindowStyle() & (wxSL_TOP|wxSL_BOTTOM|wxSL_LEFT|wxSL_RIGHT)) != 0); } // do we have ticks? - bool HasTicks() const { return (GetWindowStyle() & wxSL_TICKS) != 0; } + bool HasTicks() const + { return ((GetWindowStyle() & wxSL_TICKS) != 0) && + ((GetWindowStyle() & (wxSL_TOP|wxSL_BOTTOM|wxSL_LEFT|wxSL_RIGHT|wxSL_BOTH)) != 0); } // implement wxControlWithThumb interface virtual wxWindow *GetWindow() { return this; } @@ -110,7 +109,7 @@ public: virtual void SetShaftPartState(wxScrollThumb::Shaft shaftPart, int flag, - bool set = TRUE); + bool set = true); virtual void OnThumbDragStart(int pos); virtual void OnThumbDrag(int pos); @@ -118,24 +117,33 @@ public: virtual void OnPageScrollStart(); virtual bool OnPageScroll(int pageInc); - // for wxStdSliderButtonInputHandler + // for wxStdSliderInputHandler wxScrollThumb& GetThumb() { return m_thumb; } + virtual bool PerformAction(const wxControlAction& action, + long numArg = 0, + const wxString& strArg = wxEmptyString); + + static wxInputHandler *GetStdInputHandler(wxInputHandler *handlerDef); + virtual wxInputHandler *DoGetStdInputHandler(wxInputHandler *handlerDef) + { + return GetStdInputHandler(handlerDef); + } + protected: enum { INVALID_THUMB_VALUE = -0xffff }; + // Platform-specific implementation of SetTickFreq + virtual void DoSetTickFreq(int freq); + // overridden base class virtuals virtual wxSize DoGetBestClientSize() const; virtual void DoDraw(wxControlRenderer *renderer); virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - virtual bool PerformAction(const wxControlAction& action, - long numArg = 0, - const wxString& strArg = wxEmptyString); - // event handlers void OnSize(wxSizeEvent& event); @@ -145,7 +153,7 @@ protected: // normalize the value to fit in the range int NormalizeValue(int value) const; - // change the value by the given increment, return TRUE if really changed + // change the value by the given increment, return true if really changed bool ChangeValueBy(int inc); // change the value to the given one @@ -217,29 +225,4 @@ private: DECLARE_DYNAMIC_CLASS(wxSlider) }; -// ---------------------------------------------------------------------------- -// wxStdSliderButtonInputHandler: default slider input handling -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStdSliderButtonInputHandler : public wxStdInputHandler -{ -public: - // default ctor - wxStdSliderButtonInputHandler(wxInputHandler *inphand) - : wxStdInputHandler(inphand) - { - } - - // base class methods - virtual bool HandleKey(wxControl *control, - const wxKeyEvent& event, - bool pressed); - virtual bool HandleMouse(wxControl *control, - const wxMouseEvent& event); - virtual bool HandleMouseMove(wxControl *control, - const wxMouseEvent& event); - - virtual bool HandleFocus(wxControl *control, const wxFocusEvent& event); -}; - #endif // _WX_UNIV_SLIDER_H_