WidgetGetSkinData

Syntax

Success = WidgetGetSkinData(Widget, Component$, Property$, *ValueData.Integer, *ValueType.Integer)

Description

Retrieves the raw, processed data pointer and type for a specific property defined in the skin for the given widget, component, and current state. This is the low-level function used by other `WidgetGetSkin...` helpers.

Parameters

Widget
The handle of the ProGUI widget.

Component$
The name of the component part of the widget (e.g., "", "thumb"). An empty string refers to the main widget element.

Property$
The name of the skin property to retrieve (e.g., "background-color", "border", "transition").

*ValueData.Integer
A pointer to an Integer variable that will receive the memory address (pointer) of the processed skin data structure for the requested property. The actual structure depends on the `ValueType`.

*ValueType.Integer
A pointer to an Integer variable that will receive the type of the data structure pointed to by `*ValueData`. Possible values include:

#PG_Skin_Type_Transition  ; *ValueData points to a SkinValueTransition structure
#PG_Skin_Type_Color       ; *ValueData points to a SkinValueColor structure
#PG_Skin_Type_Border      ; *ValueData points to a SkinValueBorder structure
#PG_Skin_Type_Background  ; *ValueData points to a SkinValueBackground structure
; 0 (or other)            ; Property not found, not defined, or not a recognized type

Return Value

Returns #True if data was found (even if it's just an empty structure for a defined but empty property value), or #False if the widget handle is invalid or the property path doesn't exist in the skin for the current state. Note that finding data doesn't guarantee it contains meaningful values (e.g., a border property might exist but define no actual border).

Remarks

This function provides direct access to the internal data structures generated by parsing the skin definitions. It handles the skin cascade (finding the most specific rule that applies based on class, state, and component) and caches the results for performance. The returned `*ValueData` pointer points to the *current* animated value if a transition is active for that property, otherwise it points to the static value for the current state. You need to cast the `*ValueData` pointer to the appropriate structure type based on the `*ValueType` returned. The data pointed to is managed internally and should not be freed manually.

See Also

WidgetGetSkinColor, WidgetGetSkinBorder, WidgetSetSkinState, SkinSetValue

Supported OS

Windows, Linux