Zum Inhalt springen
Weitere Sprachen

Automatisch aus Englisch übersetzen. Bilder und Suchbegriffe bleiben Englisch.

Nach deiner Auswahl wird Google Translate geladen.

English original

XML attribute reference

This list contains the 99 current or reserved handlers from the pinned skin.py. The other 26 deprecated or compatibility names have moved to the migration reference. For a name used elsewhere in a skin, start with the skin dictionary: it also indexes XML structure, list templates and Python component attributes.

Each entry gives its purpose, value syntax, supported native classes, an XML example where the handler has an established authoring use, and limitations. Examples are source-checked fragments for an existing screen; named widgets and sources must already exist. Reserved no-op handlers and raw native setters without established XML conversion are explicitly identified instead of supplying a misleading example.

Omission and invalid input are different: a parser fallback is not the default appearance of every widget. The active window style, component and renderer may supply or override a value. The foundation examples have actual receiver captures; the new reference snippets do not claim a receiver rendering test.

Looking for the value column moving inward when a scrollbar appears? See scrollbarMode=“showOnDemandShrink”. For text underlining, see the label and template examples.

Source snapshot: skin.py @ f4135659cb. The catalogue lists source capabilities; support also depends on the receiver build and native widget class.

align

Layout

Stack alignment passed to setAlign; this is an engine-facing value, not text alignment.

Syntax and values: The handler forwards the XML string unchanged to a native numeric/Boolean setter. No reliable general XML authoring syntax is established by this handler.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Omit this attribute unless the specific Python component handles it before native dispatch.

  • A matching native method declaration alone does not prove that a skin XML string is accepted.
  • For native stacks, readSkin derives a numeric alignment from the child position, for example left/right/center in a horizontal stack. Use that structural position syntax instead of supplying align manually.

Native target must provide: setAlign.

Read the implementation at line 1043 ↗

alphaBlend

Colour and decoration

Enable native widget background/border alpha blending where supported; useful for overlaying translucent rectangles.

Syntax and values: Boolean: 1 / yes / true / on / enabled enables it; 0 / no / false / off disables it. Case-insensitive. Other unrecognised strings also evaluate false.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" alphaBlend="1" backgroundColor="#80203040" />

Native target must provide: setWidgetAlphaBlend.

Value parsers: parseBoolean.

Read the implementation at line 1046 ↗

alphaTest

Images, sliders and QR

Pixmap transparency: off, on (alpha test), or blend (smooth alpha blending).

Syntax and values: Case-sensitive options: on, off, blend.

Native targets: eButton, eCanvas, eLabel, ePixmap, eSlider, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" alphaTest="blend" />

Native target must provide: setAlphatest.

Value parsers: parseAlphaTest.

Read the implementation at line 1049 ↗

animationMode

Layout

Control window show/hide animation; off disables both directions.

Syntax and values: Case-sensitive options: disable, off, offshow, offhide, onshow, onhide, disable_onshow, disable_onhide.

Native targets: eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Screen declaration fragment; add the components required by your screen class.

<screen name="ExampleScreen" position="center,center" size="600,400" animationMode="off" />

Native target must provide: setAnimationMode.

Value parsers: parseAnimationMode.

Read the implementation at line 1056 ↗

animationPaused

Layout · no action in AttributeParser

Reserved no-op in this revision; it does not pause an animation.

Syntax and values: No supported visible operation in the central AttributeParser handler of this snapshot.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Do not add this attribute to obtain a visual effect.

  • The handler is a no-op. Component-specific use, if any, must be documented by that component.

Read the implementation at line 1059 ↗

backgroundColor

Colour and decoration

Solid #AARRGGBB/named colour, or gradient specification start[,middle],end,direction[,alphaBlend].

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white. A gradient can also use startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean. Only widgets with the gradient variant listed below accept it.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" foregroundColor="#00FFFFFF" backgroundColor="#00203040" />
  • transparent="1" can suppress background painting. A background image or content renderer can cover the colour.

Check the per-widget table for solid/gradient and other value-specific support.

Native target must provide: setBackgroundColor, setBackgroundGradient.

Value parsers: parseColor, parseGradient.

Read the implementation at line 1062 ↗

backgroundColorEven

Lists and selection

Solid colour for alternating even list rows; gradients are not accepted here.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" backgroundColorEven="#00FFFFFF" />

Native target must provide: setBackgroundColorRows.

Value parsers: parseColor.

Read the implementation at line 1068 ↗

backgroundColorOdd

Lists and selection

Solid base/odd-row list background; gradients are not accepted here.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" backgroundColorOdd="#00203040" backgroundColorEven="#00304050" />

Native target must provide: setBackgroundColor.

Value parsers: parseColor.

Read the implementation at line 1071 ↗

backgroundColorSelected

Lists and selection

Selected row background, as solid colour or a gradient specification.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white. A gradient can also use startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean. Only widgets with the gradient variant listed below accept it.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" backgroundColorSelected="#00FFFFFF" />

Native target must provide: setBackgroundColorSelected, setBackgroundGradientSelected.

Value parsers: parseColor, parseGradient.

Read the implementation at line 1078 ↗

backgroundPixmap

Images, sliders and QR

Background image for a native target implementing setBackgroundPixmap; not universal to all widgets.

Syntax and values: Image filename, resolved in the skin context before loading. Supply an existing PNG/SVG or another supported image; the sample path must be replaced with your asset.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" backgroundPixmap="icons/example.png" />

Native target must provide: setBackgroundPixmap.

Value parsers: parsePixmap.

Read the implementation at line 1092 ↗

base

Layout · no action in AttributeParser

Reserved no-op in AttributeParser; do not expect a visible effect from this setter.

Syntax and values: No supported visible operation in the central AttributeParser handler of this snapshot.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Do not add this attribute to obtain a visual effect.

  • The handler is a no-op. Component-specific use, if any, must be documented by that component.

Read the implementation at line 1095 ↗

borderColor

Colour and decoration

Generic border setter. On eLabel this currently changes the text outline; use widgetBorderColor for a rectangle border.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" borderWidth="2" borderColor="#00000000" />
  • On eLabel and its subclasses this changes the glyph outline. Use widgetBorderWidth/widgetBorderColor for a rectangular frame.

Native target must provide: setBorderColor.

Value parsers: parseColor.

Read the implementation at line 1098 ↗

borderWidth

Colour and decoration

Generic border width. On eLabel this currently changes glyph outlines; use widgetBorderWidth for the widget frame.

Syntax and values: Integer design pixels, scaled vertically with the screen. Use a non-negative value.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" borderWidth="2" />
  • On eLabel and its subclasses this changes the glyph outline. Use widgetBorderWidth/widgetBorderColor for a rectangular frame.

Native target must provide: setBorderWidth.

Read the implementation at line 1101 ↗

condition

Layout · no action in AttributeParser

Construction-time condition evaluated by readSkin for supported config/BoxInfo expressions, not a live visibility binding.

Syntax and values: A construction-time expression referring to config. or BoxInfo; optional leading ! negates it.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Expert options" condition="config.usage.setup_level.index == 2" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1104 ↗

conditional

Layout · no action in AttributeParser

Include an element when at least one named component exists in the screen; processed by readSkin.

Syntax and values: Comma-separated existing screen component names; include if at least one exists. This is not a Boolean value.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Settings" conditional="config" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1107 ↗

connection

Layout · no action in AttributeParser

Names the component connections for a GUI addon; readSkin consumes this before attribute application.

Syntax and values: Comma-separated screen component names consumed by the selected addon. The addon defines which connections are needed.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<widget addon="ScreenHeader" connection="Title" position="20,20" size="480,60" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1110 ↗

cornerRadius

Colour and decoration

Corner radius, optionally followed by a semicolon and edge names, e.g. 24;topLeft,topRight.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" backgroundColor="#00203040" cornerRadius="12;topLeft,topRight" />

Native target must provide: setCornerRadius.

Value parsers: parseRadius.

Read the implementation at line 1113 ↗

enableWrapAround

Lists and selection

Allow list navigation to wrap from the final entry to the first and back.

Syntax and values: Boolean: 1 / yes / true / on / enabled enables it; 0 / no / false / off disables it. Case-insensitive. Other unrecognised strings also evaluate false.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" enableWrapAround="1" />

Native target must provide: setWrapAround.

Value parsers: parseBoolean.

Read the implementation at line 1117 ↗

entryFont

Lists and selection

Font for configuration entry labels on native targets supporting it.

Syntax and values: Registered font face or alias, optionally followed by ;size. A numeric size is scaled vertically with the screen. Register the face before using it.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" entryFont="Regular;28" />

Native target must provide: setEntryFont.

Value parsers: parseFont.

Read the implementation at line 1120 ↗

errorCorrection

Images, sliders and QR

QR code recovery level: low, medium, quartile or high.

Syntax and values: Case-sensitive options: low, medium, quartile, high.

Native targets: eQRCode

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source qrText supplying the text to encode; the renderer creates eQRCode.

<widget source="qrText" render="QRCode" position="20,20" size="200,200" errorCorrection="medium" />

Native target must provide: setErrorCorrection.

Value parsers: parseErrorCorrection.

Read the implementation at line 1123 ↗

excludes

Layout · no action in AttributeParser

Skip an element when any listed component exists; processed while building the screen.

Syntax and values: Comma-separated component names; skip if any exists.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<eLabel position="20,20" size="480,60" font="Regular;28" text="No settings" excludes="config" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1126 ↗

flags

Layout

Comma-separated eWindow flags, for example wfNoBorder; belongs on a screen/window.

Syntax and values: Comma-separated eWindow flag names, such as wfNoBorder. On template text, flags has a different meaning; see the underline recipe.

Native targets: eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Screen declaration fragment; add the components required by your screen class.

<screen name="ExampleScreen" position="center,center" size="600,400" flags="wfNoBorder" />

Native target must provide: setFlag.

Read the implementation at line 1129 ↗

font

Text

Registered font face or alias and size, for example Regular;28. It is not a font file path.

Syntax and values: Registered font face or alias, optionally followed by ;size. A numeric size is scaled vertically with the screen. Register the face before using it.

Native targets: eButton, eInput, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" />

Native target must provide: setFont.

Value parsers: parseFont.

Read the implementation at line 1142 ↗

fontScale

Text

Automatic label font adjustment: size;offset or width;offset (default offset -4).

Syntax and values: size;offset or width;offset. Offset is an integer; omitted offset is -4. An offset of 0 does not call the setter.

Native targets: eButton, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" fontScale="width;-4" />

Native target must provide: setFontScale.

Value parsers: parseFontScale.

Read the implementation at line 1145 ↗

foregroundColor

Text

Text/foreground colour. A gradient value is supported only by the slider foreground path.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white. A gradient can also use startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean. Only widgets with the gradient variant listed below accept it.

Native targets: eButton, eLabel, eListbox, ePositionGauge, eQRCode, eSlider, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" foregroundColor="#00FFFFFF" />

Check the per-widget table for solid/gradient and other value-specific support.

Native target must provide: setForegroundColor, setForegroundGradient.

Value parsers: parseColor, parseGradient.

Read the implementation at line 1150 ↗

foregroundColorSelected

Lists and selection

Foreground/text colour for selected list entries.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" foregroundColorSelected="#00FFFFFF" />

Native target must provide: setForegroundColorSelected.

Value parsers: parseColor.

Read the implementation at line 1156 ↗

gradientMode

Images, sliders and QR

Slider gradient behaviour: legacy or explicit. Check the receiver version before using this newer option.

Syntax and values: legacy or explicit. Controls how a slider interprets its gradient; use only with a slider implementing setGradientMode.

Native targets: eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source named progress that supplies the value/range contract expected by Progress.

<widget source="progress" render="Progress" position="20,20" size="480,30" foregroundColor="#00203040,#006080A0,horizontal" gradientMode="explicit" />

Native target must provide: setGradientMode.

Value parsers: parseOptions.

Read the implementation at line 1163 ↗

headerFont

Lists and selection

Font for configuration/list headers on supporting targets.

Syntax and values: Registered font face or alias, optionally followed by ;size. A numeric size is scaled vertically with the screen. Register the face before using it.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" headerFont="Regular;28" />

Native target must provide: setHeaderFont.

Value parsers: parseFont.

Read the implementation at line 1174 ↗

headerForegroundColor

Lists and selection

Foreground colour of configuration/list headers.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" headerForegroundColor="#00FFFFFF" />

Native target must provide: setHeaderColor.

Value parsers: parseColor.

Read the implementation at line 1177 ↗

horizontalAlignment

Text

Text alignment inside its rectangle: left, center, right or block.

Syntax and values: Case-sensitive options: left, center, right, block.

Native targets: eButton, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" horizontalAlignment="right" />

Native target must provide: setHAlign.

Value parsers: parseHorizontalAlignment.

Read the implementation at line 1180 ↗

ignoreWidgets

Layout · no action in AttributeParser

Screen metadata for optional widgets; the AttributeParser handler itself is a no-op.

Syntax and values: Comma-separated optional widget names on a screen; controls the missing-widget check, not drawing.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<screen name="ExampleScreen" position="center,center" size="600,400" ignoreWidgets="optionalLabel" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1183 ↗

includes

Layout · no action in AttributeParser

Include an element when any listed component exists; the counterpart of excludes.

Syntax and values: Comma-separated component names; include if at least one exists.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Settings" includes="config" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1186 ↗

itemAlignment

Lists and selection

Align list items within the available list rectangle; distinct from text alignment.

Syntax and values: Case-sensitive options: default, center, justify, leftTop, leftMiddle, leftBottom, rightTop, rightMiddle, rightBottom, centerTop, centerMiddle, centerBottom, justifyTop, justifyMiddle, justifyBottom, justifyLeft, justifyRight.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemAlignment="leftTop" />

Native target must provide: setItemAlignment.

Value parsers: parseItemAlignment.

Read the implementation at line 1189 ↗

itemCornerRadius

Lists and selection

Rounded item background in its normal state.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemCornerRadius="12;topLeft,topRight" />

Native target must provide: setItemCornerRadius.

Value parsers: parseRadius.

Read the implementation at line 1192 ↗

itemCornerRadiusMarked

Lists and selection

Rounded background for a marked item.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemCornerRadiusMarked="12;topLeft,topRight" />

Native target must provide: setItemCornerRadiusMarked.

Value parsers: parseRadius.

Read the implementation at line 1196 ↗

itemCornerRadiusMarkedAndSelected

Lists and selection

Rounded background when the item is both marked and selected.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

The Python handler is present, but its native target name does not match the declaration in this snapshot. No working XML example is claimed.

  • The handler calls setItemCornerRadiusMarkedAndSelected, while eListbox declares a name with lower-case "and" (MarkedandSelected). This is a source mismatch, not evidence that changing the XML Boolean or colour will make it work.

Native target must provide: setItemCornerRadiusMarkedAndSelected.

Value parsers: parseRadius.

Read the implementation at line 1200 ↗

itemCornerRadiusSelected

Lists and selection

Rounded background of the selected item.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemCornerRadiusSelected="12;topLeft,topRight" />

Native target must provide: setItemCornerRadiusSelected.

Value parsers: parseRadius.

Read the implementation at line 1204 ↗

itemGradient

Lists and selection

Background gradient for a normal list item.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemGradient="#00203040,#006080A0,vertical" />

Native target must provide: setItemGradient.

Value parsers: parseGradient.

Read the implementation at line 1208 ↗

itemGradientMarked

Lists and selection

Background gradient for a marked item.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemGradientMarked="#00203040,#006080A0,vertical" />

Native target must provide: setItemGradientMarked.

Value parsers: parseGradient.

Read the implementation at line 1211 ↗

itemGradientMarkedAndSelected

Lists and selection

Background gradient for an item that is both marked and selected.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

The Python handler is present, but its native target name does not match the declaration in this snapshot. No working XML example is claimed.

  • The handler calls setItemGradientMarkedAndSelected, while eListbox declares a name with lower-case "and" (MarkedandSelected). This is a source mismatch, not evidence that changing the XML Boolean or colour will make it work.

Native target must provide: setItemGradientMarkedAndSelected.

Value parsers: parseGradient.

Read the implementation at line 1214 ↗

itemGradientSelected

Lists and selection

Background gradient for the selected list item.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemGradientSelected="#00203040,#006080A0,vertical" />

Native target must provide: setItemGradientSelected.

Value parsers: parseGradient.

Read the implementation at line 1217 ↗

itemHeight

Lists and selection

Height of one list entry, scaled vertically.

Syntax and values: Integer design pixels, scaled vertically with the screen. Use a non-negative value.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemHeight="50" />

Native target must provide: setItemHeight.

Read the implementation at line 1220 ↗

itemSpacing

Lists and selection

Horizontal and vertical gap between list items; one value applies to both axes.

Syntax and values: One integer for both directions, or horizontal,vertical gap in design pixels. Both axes scale with the screen.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemSpacing="8,4" />

Native target must provide: setItemSpacing.

Value parsers: parsePosition.

Read the implementation at line 1224 ↗

itemWidth

Lists and selection

Width of one list item, scaled horizontally.

Syntax and values: Integer design pixels, scaled horizontally with the screen. Use a non-negative value.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" itemWidth="480" />

Native target must provide: setItemWidth.

Read the implementation at line 1229 ↗

label

Layout · no action in AttributeParser

Reserved metadata/no-op in AttributeParser; no label is created by this attribute alone.

Syntax and values: No supported visible operation in the central AttributeParser handler of this snapshot.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Do not add this attribute to obtain a visual effect.

  • The handler is a no-op. Component-specific use, if any, must be documented by that component.

Read the implementation at line 1233 ↗

layout

Layout · no action in AttributeParser

Select panel/stack layout in the structure parser; this setter itself is a no-op.

Syntax and values: On a panel: stack, vertical or horizontal. On eStack: horizontal or vertical.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<panel position="20,20" size="480,100" layout="horizontal" spacing="8" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1236 ↗

listOrientation

Lists and selection

List layout: vertical, horizontal or grid; not a slider direction.

Syntax and values: Case-sensitive options: vertical, horizontal, grid.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" listOrientation="vertical" />

Native target must provide: setOrientation.

Value parsers: parseListOrientation.

Read the implementation at line 1239 ↗

objectTypes

Layout · no action in AttributeParser

Construction-time component type check: componentName,ClassName[,ClassName].

Syntax and values: componentName,ClassName[,ClassName]. Keep the element only when the named component matches one of these class names.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<widget name="config" objectTypes="config,ConfigList" position="20,20" size="480,250" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1246 ↗

orientation

Images, sliders and QR

Slider direction: orHorizontal/orLeftToRight, orRightToLeft, orVertical/orTopToBottom, orBottomToTop.

Syntax and values: Case-sensitive options: orHorizontal, orLeftToRight, orRightToLeft, orVertical, orTopToBottom, orBottomToTop.

Native targets: eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source named progress that supplies the value/range contract expected by Progress.

<widget source="progress" render="Progress" position="20,20" size="480,30" orientation="orLeftToRight" />

Native target must provide: setOrientation.

Value parsers: parseOrientation.

Read the implementation at line 1249 ↗

overScan

Images, sliders and QR

Pass the overscan value to a native target implementing setOverscan; this is not global TV calibration.

Syntax and values: The handler forwards the XML string unchanged to a native numeric/Boolean setter. No reliable general XML authoring syntax is established by this handler.

Native targets: eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Omit this attribute unless the specific Python component handles it before native dispatch.

  • A matching native method declaration alone does not prove that a skin XML string is accepted.

Native target must provide: setOverscan.

Read the implementation at line 1256 ↗

padding

Text

One, two or four comma-separated inset values: left,top,right,bottom. Two values repeat as x,y,x,y.

Syntax and values: One integer for all sides; x,y repeats x,y,x,y; four integers are left,top,right,bottom. These values are passed through without screen scaling.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" padding="12,6,12,6" />
  • Two values repeat on opposite sides. This is not CSS top/right/bottom/left order.

Native target must provide: setPadding.

Value parsers: parsePadding.

Read the implementation at line 1259 ↗

pixmap

Images, sliders and QR

Resolved image path passed to LoadPixmap; PNG transparency is commonly used.

Syntax and values: Image filename, resolved in the skin context before loading. Supply an existing PNG/SVG or another supported image; the sample path must be replaced with your asset.

Native targets: eCanvas, ePixmap, eSlider, eSubtitleWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place inside a screen and replace icons/example.png with an existing skin asset.

<ePixmap position="20,20" size="120,120" pixmap="icons/example.png" />

Native target must provide: setPixmap.

Value parsers: parsePixmap.

Read the implementation at line 1263 ↗

pointer

Images, sliders and QR

Pointer image and anchor offset for supporting widgets; see the source setter for the colon-separated path/coordinate syntax.

Syntax and values: imageFilename:x,y. x,y is the pointer anchor offset; the target must support pointer index 0.

Native targets: ePositionGauge

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source position with the PositionGauge contract. Replace the image path with an existing skin asset.

<widget source="position" render="PositionGauge" position="20,20" size="480,30" pointer="icons/pointer.png:8,8" />

Native target must provide: setPointer.

Value parsers: parsePixmap, parsePosition.

Read the implementation at line 1266 ↗

position

Layout

x,y relative to the current layout context; centre and arithmetic coordinates are supported.

Syntax and values: x,y coordinates in the design coordinate system. Literal numbers are scaled; parent-relative expressions such as center and percentages are context dependent.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" />

Native target must provide: csize, move.

Value parsers: parsePosition.

Read the implementation at line 1272 ↗

quietZone

Images, sliders and QR

QR code quiet-zone size; does not add general-purpose label padding.

Syntax and values: Integer quiet-zone module count around a QR code. The parser uses 4 for an invalid integer; this is not ordinary pixel padding.

Native targets: eQRCode

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source qrText supplying the text to encode; the renderer creates eQRCode.

<widget source="qrText" render="QRCode" position="20,20" size="200,200" quietZone="4" />

Native target must provide: setQuietZone.

Value parsers: parseInteger.

Read the implementation at line 1275 ↗

resolution

Layout · no action in AttributeParser

The design coordinate system width,height; readSkin derives scaling from the desktop.

Syntax and values: width,height of the screen design coordinate system, used to derive scaling.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Structural XML fragment. Use it in the stated context and supply any named components in the screen class.

<screen name="ExampleScreen" position="center,center" size="600,400" resolution="1920,1080" />
  • Processed during construction. It is not a live native drawing property.

Read the implementation at line 1278 ↗

scale

Images, sliders and QR

Pixmap scaling flags, for example none, scale, keepAspect or centerScaled. Not screen resolution scaling.

Syntax and values: Case-sensitive options: none, 0, scale, 1, keepAspect, leftTop, leftCenter, leftMiddle, leftBottom, centerTop, middleTop, centerScaled, middleScaled, centerBottom, middleBottom, rightTop, rightCenter, rightMiddle, rightBottom, moveLeftTop, moveLeftCenter, moveLeftMiddle, moveLeftBottom, moveCenterTop, moveMiddleTop, moveCenter, moveMiddle, moveCenterBottom, moveMiddleBottom, moveRightTop, moveRightCenter, moveRightMiddle, moveRightBottom, off, on, aspect, center, width, height, stretch, fill.

Native targets: eCanvas, ePixmap, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place inside a screen and replace icons/example.png with an existing skin asset.

<ePixmap position="20,20" size="120,120" pixmap="icons/example.png" scale="centerScaled" />
  • Deprecated scale-prefixed option values are documented in the migration section. Scaling changes the pixmap inside its widget; it does not change screen resolution.

Native target must provide: setPixmapScale.

Value parsers: parseScale.

Read the implementation at line 1281 ↗

scrollbarBackgroundColor

Lists and selection

Solid colour behind the scrollbar handle.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarBackgroundColor="#00FFFFFF" />

Native target must provide: setScrollbarBackgroundColor.

Value parsers: parseColor.

Read the implementation at line 1287 ↗

scrollbarBackgroundGradient

Lists and selection

Gradient behind the scrollbar handle on supporting targets.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarBackgroundGradient="#00203040,#006080A0,vertical" />

Native target must provide: setScrollbarBackgroundGradient.

Value parsers: parseGradient.

Read the implementation at line 1290 ↗

scrollbarBackgroundPixmap

Lists and selection

Image behind the scrollbar handle.

Syntax and values: Image filename, resolved in the skin context before loading. Supply an existing PNG/SVG or another supported image; the sample path must be replaced with your asset.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarBackgroundPixmap="icons/example.png" />

Native target must provide: setScrollbarBackgroundPixmap.

Value parsers: parsePixmap.

Read the implementation at line 1297 ↗

scrollbarBorderColor

Lists and selection

Scrollbar border colour.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarBorderColor="#00FFFFFF" />

Native target must provide: setScrollbarBorderColor.

Value parsers: parseColor.

Read the implementation at line 1304 ↗

scrollbarBorderWidth

Lists and selection

Scrollbar border thickness, scaled horizontally.

Syntax and values: Integer design pixels, scaled horizontally with the screen. Use a non-negative value.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarBorderWidth="1" />

Native target must provide: setScrollbarBorderWidth.

Read the implementation at line 1307 ↗

scrollbarForegroundColor

Lists and selection

Scrollbar handle colour.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarForegroundColor="#00FFFFFF" />

Native target must provide: setScrollbarForegroundColor.

Value parsers: parseColor.

Read the implementation at line 1310 ↗

scrollbarForegroundGradient

Lists and selection

Scrollbar handle gradient.

Syntax and values: startColour[,middleColour],endColour,horizontal|vertical[,alphaBlend]. Use named colours or #AARRGGBB; the optional alphaBlend is Boolean.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarForegroundGradient="#00203040,#006080A0,vertical" />

Native target must provide: setScrollbarForegroundGradient.

Value parsers: parseGradient.

Read the implementation at line 1313 ↗

scrollbarForegroundPixmap

Lists and selection

Scrollbar handle image.

Syntax and values: Image filename, resolved in the skin context before loading. Supply an existing PNG/SVG or another supported image; the sample path must be replaced with your asset.

Native targets: eListbox, eSlider

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarForegroundPixmap="icons/example.png" />

Native target must provide: setScrollbarForegroundPixmap.

Value parsers: parsePixmap.

Read the implementation at line 1316 ↗

scrollbarLength

Lists and selection

Scrollbar length: numeric value, full or auto; interpretation is the target widget's.

Syntax and values: Non-negative integer length, full (0) or auto (-1). On eListbox this sizes the scrollbar track along the list: full uses the widget extent; auto follows the laid-out item extent and offsets. It does not directly set the handle length.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarLength="auto" />

Native target must provide: setScrollbarLength.

Value parsers: parseScrollbarLength.

Read the implementation at line 1319 ↗

scrollbarMode

Lists and selection

Visibility and side of the scrollbar; showOnDemand, showAlways, showNever and side-specific modes.

Syntax and values: Case-sensitive options: showOnDemand, showAlways, showNever, showLeftOnDemand, showLeftAlways, showTopOnDemand, showTopAlways, showOnDemandShrink.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarMode="showOnDemandShrink" />
  • showOnDemandShrink enables on-demand scrolling plus content-width adjustment. It is not a separate Boolean attribute.
  • For MultiContent, the affected draw rectangle must extend past the reduced item width; the engine subtracts scrollbar width + offset. It does not select the last tuple by its index. Right-aligned text then shifts inward.
  • A renderer/converter or screen can override scrollbarMode after skin application. ScrollLabel has its own mode parser; not every eListbox mode applies to that composite component.
  • Use the worked example when the last column or last item overlaps the scrollbar and needs automatic width adjustment; it explains which value-column drawing rectangles actually shrink.

Worked example, visual explanation and troubleshooting →

Native target must provide: setScrollbarMode.

Value parsers: parseScrollbarMode.

Read the implementation at line 1322 ↗

scrollbarOffset

Lists and selection

Integer distance/offset passed to the native scrollbar; this handler does not apply screen scaling.

Syntax and values: Integer gap between the list content and scrollbar in native pixels. This setter does not apply screen scaling.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarOffset="4" />

Native target must provide: setScrollbarOffset.

Value parsers: parseInteger.

Read the implementation at line 1325 ↗

scrollbarRadius

Lists and selection

Rounded scrollbar corners, optionally restricted to named edges.

Syntax and values: Integer radius, optionally ; followed by comma-separated edges: topLeft, topRight, top, bottomLeft, bottomRight, bottom, left, right. Omit edges for all corners.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarRadius="12;topLeft,topRight" />

Native target must provide: setScrollbarRadius.

Value parsers: parseRadius.

Read the implementation at line 1328 ↗

scrollbarScroll

Lists and selection

Scrollbar movement granularity: byPage or byLine.

Syntax and values: Case-sensitive options: byPage, byLine.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarScroll="byPage" />

Native target must provide: setScrollbarScroll.

Value parsers: parseScrollbarScroll.

Read the implementation at line 1332 ↗

scrollbarWidth

Lists and selection

Scrollbar thickness, scaled horizontally.

Syntax and values: Integer design pixels, scaled horizontally with the screen. Use a non-negative value.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" scrollbarWidth="12" />

Native target must provide: setScrollbarWidth.

Read the implementation at line 1355 ↗

scrollText

Text

Scrolling text configuration as comma-separated key=value pairs; direction, delays, repeat, stepSize and mode.

Syntax and values: Comma-separated key=value pairs. direction: left/right/top/bottom; stepDelay, startDelay, endDelay: milliseconds; stepSize: pixels; repeat: integer; mode: cached/bounce/bounceCached/roll. Omitted sub-options start at stepDelay=100, startDelay=0, endDelay=0, repeat=0, stepSize=2; omit mode for normal scrolling.

Native targets: eButton, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" scrollText="direction=left,startDelay=1500,stepDelay=40,stepSize=2" />

Native target must provide: setScrollText.

Value parsers: parseScrollText.

Read the implementation at line 1358 ↗

seekPointer

Images, sliders and QR

Secondary seek pointer image and anchor offset, for widgets that support it.

Syntax and values: imageFilename:x,y. x,y is the pointer anchor offset; the target must support pointer index 1.

Native targets: ePositionGauge

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Requires an existing source position with the PositionGauge contract. Replace the image path with an existing skin asset.

<widget source="position" render="PositionGauge" position="20,20" size="480,30" seekPointer="icons/seek.png:8,8" />

Native target must provide: setPointer.

Value parsers: parsePixmap, parsePosition.

Read the implementation at line 1373 ↗

selection

Lists and selection

Enable or disable drawing the list selection highlight.

Syntax and values: Boolean: 1 / yes / true / on / enabled enables it; 0 / no / false / off disables it. Case-insensitive. Other unrecognised strings also evaluate false.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" selection="1" />

Native target must provide: setSelectionEnable.

Value parsers: parseBoolean.

Read the implementation at line 1379 ↗

selectionPixmap

Lists and selection

Image used for the list selection background.

Syntax and values: Image filename, resolved in the skin context before loading. Supply an existing PNG/SVG or another supported image; the sample path must be replaced with your asset.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" selectionPixmap="icons/example.png" />

Native target must provide: setSelectionPixmap.

Value parsers: parsePixmap.

Read the implementation at line 1386 ↗

selectionZoom

Lists and selection

Selection enlargement as an integer percentage increment[,mode]: 25 means 1.25 times the normal size. The increment is capped at 500; see parseZoom for the mode.

Syntax and values: Non-negative integer percentage increment[,mode]. 25 means 125% of normal size; capped at 500. Modes: zoomContent, moveContent, ignoreContent.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" selectionZoom="25,zoomContent" />

Native target must provide: setSelectionZoom.

Value parsers: parseInteger, parseZoom.

Read the implementation at line 1389 ↗

selectionZoomSize

Lists and selection

Explicit enlarged selection width,height[,mode].

Syntax and values: width,height[,mode]. Modes: zoomContent, moveContent, ignoreContent. Literal dimensions scale with the screen.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

This example requires an existing Python list component named list. For a Setup/ConfigList screen use its existing name="config" instead; XML does not create the component.

<widget name="list" position="20,20" size="480,250" selectionZoomSize="520,70,zoomContent" />

Native target must provide: setSelectionZoomSize.

Value parsers: parseValuePair, parseZoom.

Read the implementation at line 1397 ↗

separatorLineColor

Lists and selection

Colour of entry separators in supporting lists.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" separatorLineColor="#00FFFFFF" />

Native target must provide: setSeparatorColor.

Value parsers: parseColor.

Read the implementation at line 1403 ↗

separatorLineSize

Lists and selection

Separator geometry: height, top,height or left,top,width,height; -1 has automatic/full-width meaning.

Syntax and values: height, top,height, or left,top,width,height. top=-1 centres the line; width=-1 uses the available width minus margins.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" separatorLineSize="1" />

Native target must provide: setSeparatorSize.

Value parsers: parseSeparator.

Read the implementation at line 1406 ↗

shadowColor

Text

Colour of the label text shadow.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eButton, eLabel, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" foregroundColor="#00FFFFFF" shadowColor="#00000000" shadowOffset="2,2" />

Native target must provide: setShadowColor.

Value parsers: parseColor.

Read the implementation at line 1409 ↗

shadowOffset

Text

x,y offset of the text shadow; scaled with the screen.

Syntax and values: x,y coordinates in the design coordinate system. Literal numbers are scaled; parent-relative expressions such as center and percentages are context dependent.

Native targets: eButton, eLabel, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" foregroundColor="#00FFFFFF" shadowColor="#00000000" shadowOffset="2,2" />

Native target must provide: setShadowOffset.

Value parsers: parsePosition.

Read the implementation at line 1412 ↗

size

Layout

width,height of the widget; does not set its text alignment or font size.

Syntax and values: width,height in the design coordinate system. Literal values are scaled with the screen.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" />

Native target must provide: resize.

Value parsers: parseSize.

Read the implementation at line 1415 ↗

spacing

Layout

Spacing setter for supporting native widgets; a panel also consumes spacing for its layout context.

Syntax and values: Integer spacing used by the native stack/layout; panel spacing is handled by the structural parser.

Native targets: eStack

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on a native stack containing child widgets, or as structural panel spacing. For spacing between list items use itemSpacing.

<eStack position="20,20" size="480,100" layout="horizontal" spacing="8">
  <eLabel position="left" size="200,60" font="Regular;28" text="Item" />
</eStack>

Native target must provide: setSpacing.

Value parsers: parseInteger.

Read the implementation at line 1422 ↗

spacingColor

Layout

Colour of spacing in a native widget that supports setSpacingColor.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on a native stack containing child widgets. It is not list row spacing; use itemSpacing on a listbox. In the pinned readSkin path, processStack only forwards selected structural fields, so spacingColor is not applied from this XML element.

  • eStack exposes the native setter, but processStack does not forward spacingColor in this snapshot. No working direct eStack XML example is claimed.

Native target must provide: setSpacingColor.

Value parsers: parseColor.

Read the implementation at line 1425 ↗

stack

Layout · no action in AttributeParser

Reserved structural metadata; the AttributeParser handler itself performs no action.

Syntax and values: No supported visible operation in the central AttributeParser handler of this snapshot.

Native targets: No matching native dispatch in this inventory. See the structural context or limitation below.

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Do not add this attribute to obtain a visual effect.

  • The handler is a no-op. Component-specific use, if any, must be documented by that component.

Read the implementation at line 1428 ↗

tabWidth

Text

Tab-stop width for supporting text widgets; auto uses the automatic width.

Syntax and values: Non-negative integer tab-stop width, or auto for automatic sizing.

Native targets: eButton, eLabel, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" tabWidth="auto" />

Native target must provide: setTabWidth.

Value parsers: parseTabWidth.

Read the implementation at line 1431 ↗

tag

Layout

Integer widget identifier used by native stack/layout machinery.

Syntax and values: Integer native widget tag. This does not bind a Python component; use name for that.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" tag="1" />

Native target must provide: setTag.

Value parsers: parseInteger.

Read the implementation at line 1434 ↗

text

Text

Static text, translated before setText. Python or a renderer may replace it later.

Syntax and values: XML text string; escape & as &amp; and < as &lt;. Translated and set initially; renderer/Python updates can replace it.

Native targets: eButton, eLabel, eQRCode, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" />

Native target must provide: setText.

Read the implementation at line 1437 ↗

textBorderColor

Text

Explicit colour of the outline around glyphs; different from a rectangle border.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eButton, eLabel, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" textBorderWidth="2" textBorderColor="#00000000" />

Native target must provide: setTextBorderColor.

Value parsers: parseColor.

Read the implementation at line 1442 ↗

textBorderWidth

Text

Explicit glyph-outline thickness, scaled vertically.

Syntax and values: Integer design pixels, scaled vertically with the screen. Use a non-negative value.

Native targets: eButton, eLabel, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" textBorderWidth="2" />

Native target must provide: setTextBorderWidth.

Read the implementation at line 1445 ↗

title

Layout

Window title; translated with the current interface locale before being applied.

Syntax and values: XML text string used as the screen title; translated before application.

Native targets: eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Screen declaration fragment; add the components required by your screen class.

<screen name="ExampleScreen" position="center,center" size="600,400" title="Example screen" />

Native target must provide: setTitle.

Read the implementation at line 1456 ↗

transparent

Colour and decoration

Boolean: suppress the widget background. This is distinct from the transparency byte in a painted colour.

Syntax and values: Boolean: 1 / yes / true / on / enabled enables it; 0 / no / false / off disables it. Case-insensitive. Other unrecognised strings also evaluate false.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" transparent="1" />

Native target must provide: setTransparent.

Value parsers: parseBoolean.

Read the implementation at line 1461 ↗

underline

Text

Enable or disable underlined label text.

Syntax and values: Boolean: 1 / yes / true / on / enabled enables it; 0 / no / false / off disables it. Case-insensitive. Other unrecognised strings also evaluate false.

Native targets: eButton, eLabel, eVideoWidget

If omitted: Off for a newly constructed eLabel (m_underline=false). A component can change it later.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" underline="1" />
  • For ordinary eLabel/eButton text or a Label renderer. It does not underline every list row when placed on a listbox.
  • For text inside an XML list template use flags="underline" on the text element. A template font is a numeric index, not Regular;28.
  • Test a single line with enough height for the font line height. The painter draws a one-pixel line using the foreground colour; clipping and text-marking paths can affect visibility.

Worked example, visual explanation and troubleshooting →

Native target must provide: setUnderline.

Value parsers: parseBoolean.

Read the implementation at line 1464 ↗

valueFont

Lists and selection

Font for configuration values on supporting targets.

Syntax and values: Registered font face or alias, optionally followed by ;size. A numeric size is scaled vertically with the screen. Register the face before using it.

Native targets: eListbox

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Use on the existing name="config" widget of a Setup/ConfigList screen. The corresponding header, value or separator must exist in its list content.

<widget name="config" position="20,20" size="480,250" valueFont="Regular;28" />

Native target must provide: setValueFont.

Value parsers: parseFont.

Read the implementation at line 1475 ↗

verticalAlignment

Text

Text alignment inside the widget: top, center/middle or bottom.

Syntax and values: Case-sensitive options: top, center, middle, bottom.

Native targets: eButton, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" verticalAlignment="center" />

Native target must provide: setVAlign.

Value parsers: parseVerticalAlignment.

Read the implementation at line 1478 ↗

widgetBorderColor

Colour and decoration

Explicit rectangular widget-frame colour, including on eLabel.

Syntax and values: A registered colour name or #AARRGGBB. AA is transparency: 00 opaque, FF transparent. Example: #00FFFFFF is opaque white.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" widgetBorderColor="#00FFFFFF" />

Native target must provide: setWidgetBorderColor.

Value parsers: parseColor.

Read the implementation at line 1481 ↗

widgetBorderWidth

Colour and decoration

Explicit rectangular widget-frame thickness, scaled vertically.

Syntax and values: Integer design pixels, scaled vertically with the screen. Use a non-negative value.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" widgetBorderWidth="2" />

Native target must provide: setWidgetBorderWidth.

Read the implementation at line 1484 ↗

wrap

Text

Text overflow mode: wrap, noWrap or ellipsis; current parser also accepts numeric strings.

Syntax and values: Case-sensitive options: ellipsis, noWrap, wrap.

Native targets: eButton, eLabel, eListbox, eVideoWidget

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" wrap="ellipsis" />
  • Use the named modes in new skins. The central parser also accepts numeric 0, 1, 2; template text has its own accepted tokens.

Native target must provide: setWrap.

Value parsers: parseWrap.

Read the implementation at line 1487 ↗

zPosition

Layout

Integer painting layer among overlapping widgets; larger values are in front.

Syntax and values: Integer stacking order; higher values paint in front of lower values in the same parent.

Native targets: eButton, eCanvas, eGauge, eInput, eLabel, eListbox, ePixmap, ePositionGauge, eQRCode, eRectangle, eSlider, eStack, eSubtitleWidget, eVideoWidget, eWidget, eWindow

If omitted: When omitted, the component, window style and native widget determine the result. There is no universal skin-wide default for this attribute.

Place this element inside an existing screen; adapt its position and size to that screen.

<eLabel position="20,20" size="480,60" font="Regular;28" text="Example text" zPosition="2" />

Native target must provide: setZPosition.

Value parsers: parseInteger.

Read the implementation at line 1490 ↗

Old bookmarks: deprecated attributes and compatibility names

These entries have moved to the migration reference.