Kid 0 - XuiScrollBarV
"OneLess" callback from MouseDown on top button
"MuchLess" callback from MouseDown above slider
"Change" callback from MouseDrag of slider
"MuchMore" callback from MouseDown below slider
"OneMore" callback from MouseDown on bottom button
v0 : lowest - lowest possible value of slider = 0
v1 : low - low position slider = top end of slider
v2 : high - high position of slider = bottom end of slider
v3 : highest - highest possible value of slider

XuiScrollBarV grids display the size and position of a subrange. The whole range often represents the lines of text in an XuiTextArea grid, while the subrange represents the visible lines.

For example, the XuiScrollBarV image shown above roughly indicates that the first 1/4 of the lines are not visible because they are above the visible area, the center 1/2 of the lines are visible, and the last 1/4 of the lines are not visible because they are below the visible area.

Another way to think of it is this: The length of the trough represents the total number of lines of text and the slider in the trough represents the visible lines.

 "message"   - caused by this action
  "OneLess"     - MouseDown on the top button
  "MuchLess"  - MouseDown in the trough above the slider
  "Change"    - MouseDrag the slider up or down
  "MuchMore"  - MouseDown in the trough below the slider
  "OneMore"     - MouseDown on the bottom button

Dragging the slider up or down directly moves the slider in the trough. The other actions do not automatically move the slider - the code that receives the callback message can reposition the slider accordingly by sending the XuiScrollBarV grid a "SetPosition" message with arguments that specify the full range and subrange as follows:

v0 : lowest possible value of full range
v1 : low value of subrange
v2 : high value of subrange
v3 : highest possible value of full range

These values do not have to be in pixels, they can be in whatever integer units are appropriate to the application. For example, the full range might be zero to the number of lines while the subrange is the first and last visible lines. The values returned in v0,v1,v2,v3 by the callback messages are trough relative pixel locations of the trough and slider.