| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: wx/slider.h
- // Purpose: wxSlider interface
- // Author: Vadim Zeitlin
- // Modified by:
- // Created: 09.02.01
- // Copyright: (c) 1996-2001 Vadim Zeitlin
- // Licence: wxWindows licence
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_SLIDER_H_BASE_
- #define _WX_SLIDER_H_BASE_
- // ----------------------------------------------------------------------------
- // headers
- // ----------------------------------------------------------------------------
- #include "wx/defs.h"
- #if wxUSE_SLIDER
- #include "wx/control.h"
- // ----------------------------------------------------------------------------
- // wxSlider flags
- // ----------------------------------------------------------------------------
- #define wxSL_HORIZONTAL wxHORIZONTAL /* 0x0004 */
- #define wxSL_VERTICAL wxVERTICAL /* 0x0008 */
- #define wxSL_TICKS 0x0010
- #define wxSL_AUTOTICKS wxSL_TICKS // we don't support manual ticks
- #define wxSL_LEFT 0x0040
- #define wxSL_TOP 0x0080
- #define wxSL_RIGHT 0x0100
- #define wxSL_BOTTOM 0x0200
- #define wxSL_BOTH 0x0400
- #define wxSL_SELRANGE 0x0800
- #define wxSL_INVERSE 0x1000
- #define wxSL_MIN_MAX_LABELS 0x2000
- #define wxSL_VALUE_LABEL 0x4000
- #define wxSL_LABELS (wxSL_MIN_MAX_LABELS|wxSL_VALUE_LABEL)
- #if WXWIN_COMPATIBILITY_2_6
- // obsolete
- #define wxSL_NOTIFY_DRAG 0x0000
- #endif // WXWIN_COMPATIBILITY_2_6
- extern WXDLLIMPEXP_DATA_CORE(const char) wxSliderNameStr[];
- // ----------------------------------------------------------------------------
- // wxSliderBase: define wxSlider interface
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxSliderBase : public wxControl
- {
- public:
- /* the ctor of the derived class should have the following form:
- wxSlider(wxWindow *parent,
- wxWindowID id,
- int value, int minValue, int maxValue,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSL_HORIZONTAL,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxSliderNameStr);
- */
- wxSliderBase() { }
- // get/set the current slider value (should be in range)
- virtual int GetValue() const = 0;
- virtual void SetValue(int value) = 0;
- // retrieve/change the range
- virtual void SetRange(int minValue, int maxValue) = 0;
- virtual int GetMin() const = 0;
- virtual int GetMax() const = 0;
- void SetMin( int minValue ) { SetRange( minValue , GetMax() ) ; }
- void SetMax( int maxValue ) { SetRange( GetMin() , maxValue ) ; }
- // the line/page size is the increment by which the slider moves when
- // cursor arrow key/page up or down are pressed (clicking the mouse is like
- // pressing PageUp/Down) and are by default set to 1 and 1/10 of the range
- virtual void SetLineSize(int lineSize) = 0;
- virtual void SetPageSize(int pageSize) = 0;
- virtual int GetLineSize() const = 0;
- virtual int GetPageSize() const = 0;
- // these methods get/set the length of the slider pointer in pixels
- virtual void SetThumbLength(int lenPixels) = 0;
- virtual int GetThumbLength() const = 0;
- // warning: most of subsequent methods are currently only implemented in
- // wxMSW under Win95 and are silently ignored on other platforms
- void SetTickFreq(int freq) { DoSetTickFreq(freq); }
- virtual int GetTickFreq() const { return 0; }
- virtual void ClearTicks() { }
- virtual void SetTick(int WXUNUSED(tickPos)) { }
- virtual void ClearSel() { }
- virtual int GetSelEnd() const { return GetMin(); }
- virtual int GetSelStart() const { return GetMax(); }
- virtual void SetSelection(int WXUNUSED(min), int WXUNUSED(max)) { }
- #if WXWIN_COMPATIBILITY_2_8
- wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
- #endif
- protected:
- // Platform-specific implementation of SetTickFreq
- virtual void DoSetTickFreq(int WXUNUSED(freq)) { /* unsupported by default */ }
- // choose the default border for this window
- virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
- // adjust value according to wxSL_INVERSE style
- virtual int ValueInvertOrNot(int value) const
- {
- if (HasFlag(wxSL_INVERSE))
- return (GetMax() + GetMin()) - value;
- else
- return value;
- }
- private:
- wxDECLARE_NO_COPY_CLASS(wxSliderBase);
- };
- // ----------------------------------------------------------------------------
- // include the real class declaration
- // ----------------------------------------------------------------------------
- #if defined(__WXUNIVERSAL__)
- #include "wx/univ/slider.h"
- #elif defined(__WXMSW__)
- #include "wx/msw/slider.h"
- #elif defined(__WXMOTIF__)
- #include "wx/motif/slider.h"
- #elif defined(__WXGTK20__)
- #include "wx/gtk/slider.h"
- #elif defined(__WXGTK__)
- #include "wx/gtk1/slider.h"
- #elif defined(__WXMAC__)
- #include "wx/osx/slider.h"
- #elif defined(__WXCOCOA__)
- #include "wx/cocoa/slider.h"
- #elif defined(__WXPM__)
- #include "wx/os2/slider.h"
- #endif
- #endif // wxUSE_SLIDER
- #endif
- // _WX_SLIDER_H_BASE_
|