| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        scrolbar.h
 
- // Purpose:     interface of wxScrollBar
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxScrollBar
 
-     A wxScrollBar is a control that represents a horizontal or vertical scrollbar.
 
-     It is distinct from the two scrollbars that some windows provide automatically,
 
-     but the two types of scrollbar share the way events are received.
 
-     @remarks
 
-     A scrollbar has the following main attributes: range, thumb size, page size, and position.
 
-     The range is the total number of units associated with the view represented by the scrollbar.
 
-     For a table with 15 columns, the range would be 15.
 
-     The thumb size is the number of units that are currently visible.
 
-     For the table example, the window might be sized so that only 5 columns are
 
-     currently visible, in which case the application would set the thumb size to 5.
 
-     When the thumb size becomes the same as or greater than the range, the scrollbar
 
-     will be automatically hidden on most platforms.
 
-     The page size is the number of units that the scrollbar should scroll by,
 
-     when 'paging' through the data. This value is normally the same as the thumb
 
-     size length, because it is natural to assume that the visible window size defines a page.
 
-     The scrollbar position is the current thumb position.
 
-     Most applications will find it convenient to provide a function called AdjustScrollbars()
 
-     which can be called initially, from an OnSize event handler, and whenever the
 
-     application data changes in size. It will adjust the view, object and page
 
-     size according to the size of the window and the size of the data.
 
-     @beginStyleTable
 
-     @style{wxSB_HORIZONTAL}
 
-            Specifies a horizontal scrollbar.
 
-     @style{wxSB_VERTICAL}
 
-            Specifies a vertical scrollbar.
 
-     @endStyleTable
 
-     @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).
 
-     @endEventTable
 
-     @section scrollbar_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{scrollbar}
 
-     @see @ref overview_scrolling, @ref overview_events, wxScrolled
 
- */
 
- class wxScrollBar : public wxControl
 
- {
 
- public:
 
-     /**
 
-       Default constructor
 
-     */
 
-     wxScrollBar();
 
-     /**
 
-         Constructor, creating and showing a scrollbar.
 
-         @param parent
 
-             Parent window. Must be non-@NULL.
 
-         @param id
 
-             Window identifier. The value wxID_ANY indicates a default value.
 
-         @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 wxScrollBar.
 
-         @param validator
 
-             Window validator.
 
-         @param name
 
-             Window name.
 
-         @see Create(), wxValidator
 
-     */
 
-     wxScrollBar(wxWindow* parent, wxWindowID id,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxSB_HORIZONTAL,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxScrollBarNameStr);
 
-     /**
 
-         Destructor, destroying the scrollbar.
 
-     */
 
-     virtual ~wxScrollBar();
 
-     /**
 
-         Scrollbar creation function called by the scrollbar constructor.
 
-         See wxScrollBar() for details.
 
-     */
 
-     bool Create(wxWindow* parent, wxWindowID id,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize, long style = wxSB_HORIZONTAL,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxScrollBarNameStr);
 
-     /**
 
-         Returns the page size of the scrollbar.
 
-         This is the number of scroll units that will be scrolled when the user
 
-         pages up or down. Often it is the same as the thumb size.
 
-         @see SetScrollbar()
 
-     */
 
-     virtual int GetPageSize() const;
 
-     /**
 
-         Returns the length of the scrollbar.
 
-         @see SetScrollbar()
 
-     */
 
-     virtual int GetRange() const;
 
-     /**
 
-         Returns the current position of the scrollbar thumb.
 
-         @see SetThumbPosition()
 
-     */
 
-     virtual int GetThumbPosition() const;
 
-     /**
 
-         Returns the thumb or 'view' size.
 
-         @see SetScrollbar()
 
-     */
 
-     virtual int GetThumbSize() const;
 
-     /**
 
-         Sets the scrollbar properties.
 
-         @param position
 
-             The position of the scrollbar in scroll units.
 
-         @param thumbSize
 
-             The size of the thumb, or visible portion of the scrollbar, in scroll units.
 
-         @param range
 
-             The maximum position of the scrollbar.
 
-         @param pageSize
 
-             The size of the page size in scroll units. This is the number of units
 
-             the scrollbar will scroll when it is paged up or down.
 
-             Often it is the same as the thumb size.
 
-         @param refresh
 
-             @true to redraw the scrollbar, @false otherwise.
 
-         @remarks
 
-             Let's say you wish to display 50 lines of text, using the same
 
-             font. The window is sized so that you can only see 16 lines at a time.
 
-             You would use:
 
-             @code
 
-             scrollbar->SetScrollbar(0, 16, 50, 15);
 
-             @endcode
 
-             The page size is 1 less than the thumb size so that the last line of
 
-             the previous page will be visible on the next page, to help orient the user.
 
-             Note that with the window at this size, the thumb position can never
 
-             go above 50 minus 16, or 34.
 
-             You can determine how many lines are currently visible by dividing
 
-             the current view size by the character height in pixels.
 
-             When defining your own scrollbar behaviour, you will always need to
 
-             recalculate the scrollbar settings when the window size changes.
 
-             You could therefore put your scrollbar calculations and SetScrollbar()
 
-             call into a function named AdjustScrollbars, which can be called
 
-             initially and also from a wxSizeEvent event handler function.
 
-     */
 
-     virtual void SetScrollbar(int position, int thumbSize, int range,
 
-                               int pageSize,
 
-                               bool refresh = true);
 
-     /**
 
-         Sets the position of the scrollbar.
 
-         @param viewStart
 
-             The position of the scrollbar thumb.
 
-         @see GetThumbPosition()
 
-     */
 
-     virtual void SetThumbPosition(int viewStart);
 
-     /**
 
-        Returns @true for scrollbars that have the vertical style set.
 
-     */
 
-     bool IsVertical() const;
 
- };
 
 
  |