A scrollbar
PtWidget --> PtBasic --> PtScrollbar
For more information, see the diagram of the widget hierarchy.
<photon/PtScrollbar.h>
A PtScrollbar widget provides a scrollbar. It returns values (via callbacks) that indicate a value within the provided range.
A PtScrollbar widget.
A scrollbar consists of the following parts:
A scrollbar can return values from minimum to maximum, minus the size of the handle. You'll find the returned values useful for implementing scrolling areas, text viewers/editors, and so on.
The handle size is determined by the Pt_ARG_SLIDER_SIZE resource. If you don't set this resource, the handle size equals one-tenth of the specified range.
The handle's value is represented by its relative position within the trough. The size of the trough represents the allowable range of values.
The handle's size can also be programmatically controlled. These parameters may be altered to visually represent information about an object's size and proportion viewed when the scrollbar is used for scrolling.
Scrolling is the action of controlling how much of an object is displayed when the object is too large to view all at once. When a scrollbar is used for scrolling, the trough's size visually represents the scroll region - the total length of the object being viewed.
The edge of the handle represents the user's current relative position within the object. The handle's size represents the proportion of the entire object that is currently in view.
Sliding the handle within the trough will control which portion of the object is displayed. The application is responsible for changing the display of the object in response to any change in the handle's position.
When the mouse button is pressed, the result depends on the location of the pointer.
If the pointer is: | the handle will: |
---|---|
on either arrow | move up or down one increment (holding down the mouse button repeats the action) |
in the trough | move up or down one page increment (holding down the mouse button repeats the action) |
on the handle | start a drag action |
If the user presses: | the handle will move: |
---|---|
/\ | up one increment |
\/ | down one increment |
--> | right one increment |
<-- | left one increment |
Ctrl -/\ | up one page increment |
Ctrl -\/ | down one page increment |
Ctrl ---> | right one page increment |
Ctrl -<-- | left one page increment |
Home | to the top or left (depending on the orientation) |
End | to the bottom or right (depending on the orientation) |
Resource | C type | Pt type | Default |
---|---|---|---|
Pt_ARG_DIRECTION | int | Boolean | Off |
Pt_ARG_INCREMENT | long | Scalar | 1 |
Pt_ARG_MAXIMUM | int | Scalar | 19 |
Pt_ARG_MINIMUM | int | Scalar | 0 |
Pt_ARG_MIN_SLIDER_SIZE | int | Scalar | 5 |
Pt_ARG_ORIENTATION | int | Boolean | Pt_VERTICAL |
Pt_ARG_PAGE_INCREMENT | int | Scalar | -1 |
Pt_ARG_SCROLLBAR_FLAGS | short | Scalar | 0 |
Pt_ARG_SCROLL_POSITION | int | Scalar | 0 |
Pt_ARG_SHOW_ARROWS | int | Boolean | On |
Pt_ARG_SLIDER_SIZE | int | Scalar | 1/10th of range |
Pt_CB_SCROLL_MOVE | PtCallback_t * | Link | NULL |
C type | Pt type | Default |
---|---|---|
int | Boolean | Off |
Display the maximum value at the top or left, depending on the orientation.
C type | Pt type | Default |
---|---|---|
long | Scalar | 1 |
The value the widget will scroll by when the user clicks the arrow buttons.
C type | Pt type | Default |
---|---|---|
int | Scalar | 19 |
The maximum scrollbar value.
C type | Pt type | Default |
---|---|---|
int | Scalar | 0 |
The minimum scrollbar value.
C type | Pt type | Default |
---|---|---|
int | Scalar | 5 |
The minimum length of the handle, in pixels.
C type | Pt type | Default |
---|---|---|
int | Boolean | Pt_VERTICAL |
The orientation of the scrollbar:
Setting this resource sets or clears the Pt_SCROLLBAR_HORIZONTAL bit of the Pt_ARG_SCROLLBAR_FLAGS resource. |
C type | Pt type | Default |
---|---|---|
int | Scalar | -1 |
The handle increment to be used when the scrollbar is moved by a page. If this value is -1, the value for Pt_ARG_SLIDER_SIZE is used.
C type | Pt type | Default |
---|---|---|
short | Scalar | 0 |
Flags that control the appearance and behavior of the scrollbar. The valid bits are:
This flag is also set or cleared when you set the Pt_ARG_ORIENTATION resource.
C type | Pt type | Default |
---|---|---|
int | Scalar | 0 |
The current handle value.
C type | Pt type | Default |
---|---|---|
int | Boolean | On |
Indicates whether or not the scrollbar includes increment/decrement arrow buttons. Default is on.
C type | Pt type | Default |
---|---|---|
int | Scalar | 1/10th of range |
The length of the handle. In the range of 1 to (Pt_ARG_MAXIMUM - Pt_ARG_MINIMUM).
C type | Pt type | Default |
---|---|---|
PtCallback_t * | Link | NULL |
The list of callbacks that the scrollbar invokes when the scroll position changes.
If the widget has the Pt_CALLBACKS_ACTIVE bit set in its Pt_ARG_FLAGS resource, this callback is also invoked when the position of the scrollbar is changed by a call to PtSetResources().
Each callback is passed a PtCallbackInfo_t structure that contains at least the following members:
These callbacks should return Pt_CONTINUE.
If the widget modifies an inherited resource, the "Default override" column indicates the new value. This modification affects any subclasses of the widget.