| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        slider.h
 
- // Purpose:     interface of wxSlider
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #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)
 
- /**
 
-     @class wxSlider
 
-     A slider is a control with a handle which can be pulled back and forth to
 
-     change the value.
 
-     On Windows, the track bar control is used.
 
-     Slider events are handled in the same way as a scrollbar.
 
-     @beginStyleTable
 
-     @style{wxSL_HORIZONTAL}
 
-            Displays the slider horizontally (this is the default).
 
-     @style{wxSL_VERTICAL}
 
-            Displays the slider vertically.
 
-     @style{wxSL_AUTOTICKS}
 
-            Displays tick marks. Windows only.
 
-     @style{wxSL_MIN_MAX_LABELS}
 
-            Displays minimum, maximum labels (new since wxWidgets 2.9.1).
 
-     @style{wxSL_VALUE_LABEL}
 
-            Displays value label (new since wxWidgets 2.9.1).
 
-     @style{wxSL_LABELS}
 
-            Displays minimum, maximum and value labels (same as wxSL_VALUE_LABEL
 
-            and wxSL_MIN_MAX_LABELS together).
 
-     @style{wxSL_LEFT}
 
-            Displays ticks on the left and forces the slider to be vertical.
 
-     @style{wxSL_RIGHT}
 
-            Displays ticks on the right and forces the slider to be vertical.
 
-     @style{wxSL_TOP}
 
-            Displays ticks on the top.
 
-     @style{wxSL_BOTTOM}
 
-            Displays ticks on the bottom (this is the default).
 
-     @style{wxSL_SELRANGE}
 
-            Allows the user to select a range on the slider. Windows only.
 
-     @style{wxSL_INVERSE}
 
-            Inverses the minimum and maximum endpoints on the slider. Not
 
-            compatible with wxSL_SELRANGE.
 
-     @endStyleTable
 
-     Notice that @c wxSL_LEFT, @c wxSL_TOP, @c wxSL_RIGHT and @c wxSL_BOTTOM
 
-     specify the position of the slider ticks in MSW implementation and that the
 
-     slider labels, if any, are positioned on the opposite side. So, to have a
 
-     label on the left side of a vertical slider, @b wxSL_RIGHT must be used (or
 
-     none of these styles at all should be specified as left and top are default
 
-     positions for the vertical and horizontal sliders respectively).
 
-     @beginEventEmissionTable{wxScrollEvent}
 
-     You can use EVT_COMMAND_SCROLL... macros with window IDs for when intercepting
 
-     scroll events from controls, or EVT_SCROLL... macros without window IDs for
 
-     intercepting scroll events from the receiving window -- except for this,
 
-     the macros behave exactly the same.
 
-     @event{EVT_SCROLL(func)}
 
-         Process all scroll events.
 
-     @event{EVT_SCROLL_TOP(func)}
 
-         Process @c wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
 
-     @event{EVT_SCROLL_BOTTOM(func)}
 
-         Process @c wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
 
-     @event{EVT_SCROLL_LINEUP(func)}
 
-         Process @c wxEVT_SCROLL_LINEUP line up events.
 
-     @event{EVT_SCROLL_LINEDOWN(func)}
 
-         Process @c wxEVT_SCROLL_LINEDOWN line down events.
 
-     @event{EVT_SCROLL_PAGEUP(func)}
 
-         Process @c wxEVT_SCROLL_PAGEUP page up events.
 
-     @event{EVT_SCROLL_PAGEDOWN(func)}
 
-         Process @c wxEVT_SCROLL_PAGEDOWN page down events.
 
-     @event{EVT_SCROLL_THUMBTRACK(func)}
 
-         Process @c wxEVT_SCROLL_THUMBTRACK thumbtrack events
 
-         (frequent events sent as the user drags the thumbtrack).
 
-     @event{EVT_SCROLL_THUMBRELEASE(func)}
 
-         Process @c wxEVT_SCROLL_THUMBRELEASE thumb release events.
 
-     @event{EVT_SCROLL_CHANGED(func)}
 
-         Process @c wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
 
-     @event{EVT_COMMAND_SCROLL(id, func)}
 
-         Process all scroll events.
 
-     @event{EVT_COMMAND_SCROLL_TOP(id, func)}
 
-         Process @c wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
 
-     @event{EVT_COMMAND_SCROLL_BOTTOM(id, func)}
 
-         Process @c wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
 
-     @event{EVT_COMMAND_SCROLL_LINEUP(id, func)}
 
-         Process @c wxEVT_SCROLL_LINEUP line up events.
 
-     @event{EVT_COMMAND_SCROLL_LINEDOWN(id, func)}
 
-         Process @c wxEVT_SCROLL_LINEDOWN line down events.
 
-     @event{EVT_COMMAND_SCROLL_PAGEUP(id, func)}
 
-         Process @c wxEVT_SCROLL_PAGEUP page up events.
 
-     @event{EVT_COMMAND_SCROLL_PAGEDOWN(id, func)}
 
-         Process @c wxEVT_SCROLL_PAGEDOWN page down events.
 
-     @event{EVT_COMMAND_SCROLL_THUMBTRACK(id, func)}
 
-         Process @c wxEVT_SCROLL_THUMBTRACK thumbtrack events
 
-         (frequent events sent as the user drags the thumbtrack).
 
-     @event{EVT_COMMAND_SCROLL_THUMBRELEASE(func)}
 
-         Process @c wxEVT_SCROLL_THUMBRELEASE thumb release events.
 
-     @event{EVT_COMMAND_SCROLL_CHANGED(func)}
 
-         Process @c wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
 
-     @event{EVT_SLIDER(id, func)}
 
-         Process @c wxEVT_SLIDER which is generated after any
 
-         change of wxSlider position in addition to one of the events above.
 
-     @endEventTable
 
-     @section slider_diff The difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED
 
-     The EVT_SCROLL_THUMBRELEASE event is only emitted when actually dragging the
 
-     thumb using the mouse and releasing it (This EVT_SCROLL_THUMBRELEASE event
 
-     is also followed by an EVT_SCROLL_CHANGED event).
 
-     The EVT_SCROLL_CHANGED event also occurs when using the keyboard to change
 
-     the thumb position, and when clicking next to the thumb
 
-     (In all these cases the EVT_SCROLL_THUMBRELEASE event does not happen).
 
-     In short, the EVT_SCROLL_CHANGED event is triggered when scrolling/ moving
 
-     has finished independently of the way it had started.
 
-     Please see the widgets sample ("Slider" page) to see the difference between
 
-     EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED in action.
 
-     @library{wxcore}
 
-     @category{ctrl}
 
-     @appearance{slider}
 
-     @see @ref overview_events, wxScrollBar
 
- */
 
- class wxSlider : public wxControl
 
- {
 
- public:
 
-     /**
 
-        Default constructor
 
-     */
 
-     wxSlider();
 
-     /**
 
-         Constructor, creating and showing a slider.
 
-         @param parent
 
-             Parent window. Must not be @NULL.
 
-         @param id
 
-             Window identifier. The value wxID_ANY indicates a default value.
 
-         @param value
 
-             Initial position for the slider.
 
-         @param minValue
 
-             Minimum slider position.
 
-         @param maxValue
 
-             Maximum slider position.
 
-         @param pos
 
-             Window position. 
 
-             If ::wxDefaultPosition is specified then a default position is chosen.
 
-         @param size
 
-             Window size. 
 
-             If ::wxDefaultSize is specified then a default size is chosen.
 
-         @param style
 
-             Window style. See wxSlider.
 
-         @param validator
 
-             Window validator.
 
-         @param name
 
-             Window name.
 
-         @see Create(), wxValidator
 
-     */
 
-     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);
 
-     /**
 
-         Destructor, destroying the slider.
 
-     */
 
-     virtual ~wxSlider();
 
-     /**
 
-         Clears the selection, for a slider with the @b wxSL_SELRANGE style.
 
-         @onlyfor{wxmsw}
 
-     */
 
-     virtual void ClearSel();
 
-     /**
 
-         Clears the ticks.
 
-         @onlyfor{wxmsw}
 
-     */
 
-     virtual void ClearTicks();
 
-     /**
 
-         Used for two-step slider construction.
 
-         See wxSlider() for further details.
 
-     */
 
-     bool Create(wxWindow* parent, wxWindowID id, int value, int minValue,
 
-                 int maxValue, const wxPoint& point = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize, long style = wxSL_HORIZONTAL,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxSliderNameStr);
 
-     /**
 
-         Returns the line size.
 
-         @see SetLineSize()
 
-     */
 
-     virtual int GetLineSize() const;
 
-     /**
 
-         Gets the maximum slider value.
 
-         @see GetMin(), SetRange()
 
-     */
 
-     virtual int GetMax() const;
 
-     /**
 
-         Gets the minimum slider value.
 
-         @see GetMin(), SetRange()
 
-     */
 
-     virtual int GetMin() const;
 
-     /**
 
-         Returns the page size.
 
-         @see SetPageSize()
 
-     */
 
-     virtual int GetPageSize() const;
 
-     /**
 
-         Returns the selection end point.
 
-         @onlyfor{wxmsw}
 
-         @see GetSelStart(), SetSelection()
 
-     */
 
-     virtual int GetSelEnd() const;
 
-     /**
 
-         Returns the selection start point.
 
-         @onlyfor{wxmsw}
 
-         @see GetSelEnd(), SetSelection()
 
-     */
 
-     virtual int GetSelStart() const;
 
-     /**
 
-         Returns the thumb length.
 
-         @onlyfor{wxmsw}
 
-         @see SetThumbLength()
 
-     */
 
-     virtual int GetThumbLength() const;
 
-     /**
 
-         Returns the tick frequency.
 
-         @onlyfor{wxmsw}
 
-         @see SetTickFreq()
 
-     */
 
-     virtual int GetTickFreq() const;
 
-     /**
 
-         Gets the current slider value.
 
-         @see GetMin(), GetMax(), SetValue()
 
-     */
 
-     virtual int GetValue() const;
 
-     /**
 
-         Sets the line size for the slider.
 
-         @param lineSize
 
-             The number of steps the slider moves when the user moves it up
 
-             or down a line.
 
-         @see GetLineSize()
 
-     */
 
-     virtual void SetLineSize(int lineSize);
 
-     /**
 
-         Sets the minimum slider value.
 
-         @param minValue
 
-             The new bottom end of the slider range.
 
-             
 
-         @see GetMin(), SetRange()
 
-     */
 
-     void SetMin( int minValue );
 
-     /**
 
-         Sets the maximum slider value.
 
-         @param maxValue
 
-             The new top end of the slider range.
 
-             
 
-         @see GetMax(), SetRange()
 
-     */
 
-     void SetMax( int maxValue );
 
-     /**
 
-         Sets the page size for the slider.
 
-         @param pageSize
 
-             The number of steps the slider moves when the user pages up or down.
 
-         @see GetPageSize()
 
-     */
 
-     virtual void SetPageSize(int pageSize);
 
-     /**
 
-         Sets the minimum and maximum slider values.
 
-         @see GetMin(), GetMax()
 
-     */
 
-     virtual void SetRange(int minValue, int maxValue);
 
-     /**
 
-         Sets the selection.
 
-         @param startPos
 
-             The selection start position.
 
-         @param endPos
 
-             The selection end position.
 
-         @onlyfor{wxmsw}
 
-         @see GetSelStart(), GetSelEnd()
 
-     */
 
-     virtual void SetSelection(int startPos, int endPos);
 
-     /**
 
-         Sets the slider thumb length.
 
-         @param len
 
-             The thumb length.
 
-         @onlyfor{wxmsw}
 
-         @see GetThumbLength()
 
-     */
 
-     virtual void SetThumbLength(int len);
 
-     /**
 
-         Sets a tick position.
 
-         @param tickPos
 
-             The tick position.
 
-         @onlyfor{wxmsw}
 
-         @see SetTickFreq()
 
-     */
 
-     virtual void SetTick(int tickPos);
 
-     /**
 
-         Sets the tick mark frequency and position.
 
-         @param n
 
-             Frequency. For example, if the frequency is set to two, a tick mark is
 
-             displayed for every other increment in the slider's range.
 
-         @onlyfor{wxmsw}
 
-         @see GetTickFreq()
 
-     */
 
-     virtual void SetTickFreq(int n);
 
-     /**
 
-         Sets the slider position.
 
-         @param value
 
-             The slider position.
 
-     */
 
-     virtual void SetValue(int value);
 
- };
 
 
  |