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

Prop.mui

MUIA_Prop_DeltaFactor

Function

Multiply the amount used by Increase and Decrease.

Inputs

LONG; initialize and set. Default one.

Notes

There is no local getter. Zero, negative values and overflow-prone
factors are accepted. The factor affects the two methods, not every
native knob movement. Use nonnegative amounts/factors with representable
products for forward/decrease semantics.

MUIA_Prop_DoSmooth

Function

Declared attribute without a consumer in Prop.

Inputs

LONG; initialization declaration only.

Notes

No local constructor branch, setter or getter implements this attribute.
It does not enable smoothing in the current implementation; no
functional default is defined here.

MUIA_Prop_Entries

Function

Set the logical total range.

Inputs

LONG declaration, stored as ULONG; initialize, set, get. Default zero.

Notes

Values are not validated against Visible or First. Negative inputs
convert to unsigned values. At totals of at least 65536, native gadget
values are scaled to 65535; rounding can change a later First query. An
unchanged setter tag becomes TAG_IGNORE. The getter returns stored
Entries.

MUIA_Prop_First

Function

Set or query the first visible logical position.

Inputs

LONG; initialize, set, get. Default zero.

Notes

Construction and setting clamp negative stored values to zero, but do
not impose an upper limit. When a native gadget exists, the getter reads
PGA_Top, converts it back and updates stored First. The native getter
result is unchecked. Unchanged setter tags become TAG_IGNORE; changed
negative tag values are not rewritten to the stored zero before
notifications. Maintain a coherent range and allow for native
quantization.

MUIA_Prop_Horiz

Function

Select horizontal orientation when nonzero; otherwise vertical.

Inputs

BOOL; initialize only in this implementation. Default FALSE.

Notes

Stored orientation is normalized. There is no runtime setter or local
getter, despite the header declaring get support. Orientation affects
native freedom and default dimensions; it is not changed by Group_Horiz
on this Area subclass.

MUIA_Prop_Slider

Function

Declared slider flag with no effective local implementation.

Inputs

BOOL; header declares initialize, set and get.

Notes

Constructor and setter contain empty cases; no state or behavior is
changed and there is no local getter. Do not infer slider-specific
operation or a stored default.

MUIA_Prop_UseWinBorder

Function

Select an existing native window-border proportional gadget instead of
an owned in-content gadget.

Inputs

LONG; initialize only. Default None.

Notes

Right borrows mri_VertProp; Bottom borrows mri_HorizProp. Configure the
window with the matching UseRightBorderScroller or
UseBottomBorderScroller attribute. Left is declared but has no Show
branch; other nonzero values likewise mark border mode without finding a
gadget. No local setter/getter exists. Show writes the borrowed gadget
UserData and ICA_TARGET; Hide does not dispose it, and Cleanup does not
restore its UserData backlink.

MUIA_Prop_Visible

Function

Set the logical visible portion of Entries.

Inputs

LONG declaration, stored as ULONG; initialize, set, get. Default zero.

Notes

Keep Visible between zero and Entries. No such validation is performed,
and changing Visible does not repair First. Native values use the
Entries-dependent scale. An unchanged setter tag becomes TAG_IGNORE. The
getter returns stored Visible.

MUIC_Prop

Superclass

Area.mui

Description

Represent a proportional range with Entries, Visible and First.
Construction defaults to zero for those values, vertical orientation and
no window border; DeltaFactor defaults to one. Maintain a coherent
nonnegative range with Visible no greater than Entries and First no
greater than Entries minus Visible. The implementation does not enforce
all these invariants.
Prop owns its in-content Intuition propgclass gadget, created by Show
and disposed by Hide. In window-border mode it instead borrows the
window gadget. Setup registers an IDCMPUPDATE handler and allocates a
gadget ID for nonborder mode; Cleanup removes the handler and releases
that ID. Pair Hide before Cleanup and complete both before disposal. No
local Dispose operation substitutes for removing the event handler.

Methods

Show returns Area's result even if gadget creation fails, a requested
border gadget is unavailable, or virtual-group clipping prevents
creation. A nonborder gadget is created only when entirely inside every
virtual ancestor's inner rectangle; it is not partially clipped. Draw
skips border mode, otherwise draws Area and refreshes the gadget for
full drawing. Hide leaves a borrowed border gadget alive; Cleanup clears
only the local pointer, not the gadget UserData backlink.
HandleEvent accepts IDCMPUPDATE only with matching GA_ID and a PGA_Top
tag. It converts native Top to the logical range, suppresses unchanged
repeat events, and sends First plus private release/trigger tags through
the setter. It returns zero and does not call Area's event handler.
The active scaling algorithm leaves values unchanged below 65536
Entries. At larger totals it maps values to 0..65535 using integer
arithmetic and maps them back with truncation. A First query can
therefore update the stored value to a quantized native position.

Notes

Setters modify writable caller tags to TAG_IGNORE for unchanged
Entries/First/Visible. Negative First is clamped in stored state, but
the original tag value still reaches superclass notification processing.
Native gadget updates temporarily disable ICA_TARGET and can render
immediately; they are not deferred exclusively to Draw.
Custom rendering borrows image data from the prepared background and
owns temporary image/bitmap/RastPort resources. Setup resets their
pointers without freeing retained allocations; Cleanup does not free
them. Repeated setup cycles can therefore lose resources, and repeated
low-depth custom Show can replace a RastPort pointer without freeing the
previous one. Dispose releases resources still referenced.

Bugs

Getter success for First is reported even though the underlying PGA_Top
getter result is unchecked. Gadget allocation and handler-registration
success are not fully reflected in lifecycle return values. Range
arithmetic, conversions and custom image bounds are not comprehensively
validated. Slider and DoSmooth provide no working local feature; Horiz
has no local getter despite its header annotation.

MUIM_Prop_Decrease

Synopsis

IPTR result = DoMethod(obj, MUIM_Prop_Decrease, amount);

Function

Subtract amount times DeltaFactor to/from stored First.

Inputs

amount - LONG. Use a nonnegative representable value and a coherent
range; multiplication/addition are not overflow-checked.

Result

Always one, including when no value changes. Setter and native gadget
results are not propagated.

Notes

Decrease returns immediately when stored First is at or below zero.
Otherwise it clamps a negative calculated result to zero; it does not
impose an upper bound for negative amounts or factors. The method uses
stored First, not an explicit fresh native getter, and calls the
ordinary setter only when needed. Notifications remain enabled.

MUIM_Prop_Increase

Synopsis

IPTR result = DoMethod(obj, MUIM_Prop_Increase, amount);

Function

Add amount times DeltaFactor to/from stored First.

Inputs

amount - LONG. Use a nonnegative representable value and a coherent
range; multiplication/addition are not overflow-checked.

Result

Always one, including when no value changes. Setter and native gadget
results are not propagated.

Notes

Increase limits the result against Entries minus Visible before setting
First. Mixed signed/unsigned range arithmetic makes invalid ranges
unsafe. The method uses stored First, not an explicit fresh native
getter, and calls the ordinary setter only when needed. Notifications
remain enabled.