<--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../../aros.css' --->

Scrollbutton.mui

MUIA_Scrollbutton_Horiz

Function

Set the horizontal base added to displacement from the drag-start mouse
position.

Inputs

WORD; set only in this implementation. Default zero.

Notes

Values convert to WORD without validation. Initialization is not
consumed and the header-advertised getter is absent. The base is read
afresh on each mouse move; it is not automatically advanced after
release. Set a new base before a later drag when your application needs
cumulative movement.

MUIA_Scrollbutton_HorizProp

Function

Return the corresponding internal pointer field, which this
implementation never assigns.

Inputs

Object pointer; get only.

Notes

The normal result is NULL with TRUE getter status. No Prop object is
constructed, attached, borrowed or controlled through this field. There
is no setter or initialization handling; this declaration is not a
working scroller association API.

MUIA_Scrollbutton_NewPosition

Function

Return the last packed drag position: horizontal UWORD in bits 31..16
and vertical UWORD in bits 15..0.

Inputs

ULONG; get and notification output.

Notes

Initial value is zero. Mouse movement while Selected updates storage
before issuing the setter that triggers notifications. Decode the two
halves explicitly; interpret them as signed WORD only if your
application uses signed coordinates. External setting does not update
the stored position because the local setter has no case for it. No
automatic range clamp or Prop update occurs.

MUIA_Scrollbutton_Vert

Function

Set the vertical base added to displacement from the drag-start mouse
position.

Inputs

WORD; set only in this implementation. Default zero.

Notes

Values convert to WORD without validation. Initialization is not
consumed and the header-advertised getter is absent. The base is read
afresh on each mouse move; it is not automatically advanced after
release. Set a new base before a later drag when your application needs
cumulative movement.

MUIA_Scrollbutton_VertProp

Function

Return the corresponding internal pointer field, which this
implementation never assigns.

Inputs

Object pointer; get only.

Notes

The normal result is NULL with TRUE getter status. No Prop object is
constructed, attached, borrowed or controlled through this field. There
is no setter or initialization handling; this declaration is not a
working scroller association API.

MUIC_Scrollbutton

Superclass

Area.mui

Description

Provide a drag-position control that reports two coordinates packed into
NewPosition. Construction prepends ButtonFrame, RelVerify InputMode and
ButtonBack background; later caller tags can override them. The class
creates or owns no Prop objects and installs no automatic scrolling
connection.
Setup first sets up Area and registers its own mouse-button handler.
SELECTDOWN inside the object enables mouse-move events, sets Selected
TRUE and records the mouse origin. Any later non-SELECTDOWN button event
removes mouse-move tracking and clears Selected. While selected, mouse
moves add displacement to the stored Horiz/Vert bases, pack the result
and issue a NewPosition setter for notifications.

Methods

Setup returns FALSE on Area failure, otherwise TRUE without checking
event registration. Cleanup removes its handler, invokes Area Cleanup
and returns zero. HandleEvent returns zero and does not delegate to
Area. AskMinMax adds two to each minimum/default and MUI_MAXMAX to each
maximum, returning zero; this addition is not a validated maximum clamp.
Pair Setup/Cleanup and normal Area Show/Hide before disposal. Use
application notifications to translate NewPosition into content or Prop
setters. HorizProp and VertProp getters return unassigned instance
pointers, normally NULL; they do not identify connected scrollers.

Notes

Horiz/Vert setters store WORD bases but no local getters exist, contrary
to the header. Initialization tags for those bases are not consumed. The
drag handler reads bases on every move, so changing them mid-drag
affects subsequent positions. There is no clamping to a content range;
each packed component wraps as UWORD.