Skip to main content

Document Structure

Skin

Skin is the top-level root element for the file. Top-level elements appear directly under <Skin>.

skin.xml Snippet:

<?xml version="1.0" encoding="UTF-8"?>
<Skin>
<Styles/>
<Forms>
<Form name="MyDialog" title="My Dialog"/>
</Forms>
</Skin>

Externals / External

Externals is a top-level namespace import block. External declares one imported namespace pattern that can be referenced elsewhere in the skin.

skin.xml Snippet:

<Externals>
<External name="@Main.*"/>
<External name="Standard.*"/>
</Externals>

<Styles>
<Style name="MyLabel" inherit="Standard.AddIn.Label"/>
</Styles>

Attribute NameDescriptionType
nameNamespace pattern imported by External.identifier
nameDescription
@Main.*-
PresonusUI-
PresonusUI*-
Standard.*-

Notes

  • Imported names do not render on their own; they make host-provided resources available for later references.

Resources

Resources is a top-level skin block used to define reusable named assets for the form.

skin.xml Snippet:

<Resources>
<Image name="ImagePreview" url="images/image.png"/>
</Resources>

Notes

  • Declare named assets here and reference them from other elements/controls.

Shapes

Shapes is a top-level container for named vector shape resources. Child element details for Shape, ShapeImage, Rectangle, Triangle, Ellipse, and Line are grouped under Image & Shape Resources.

skin.xml Snippet:

<Shapes>
<Shape name="DividerShape" size="0,0,120,12" style="scale">
<Rectangle size="0,4,120,4"
style="fill stroke"
Brush.color="hsl(204,11,64)"
Pen.color="hsl(0,0,12)"/>
</Shape>
</Shapes>

Styles

Styles is a top-level container for defining reusable skin styling rules for controls, including colors, fonts, and alignment helpers. Style-level details for Style, Color, Font, and Align are grouped in Style Helpers & Host Styles.

skin.xml Snippet:

<Styles>
<Style name="MyEditBox" inherit="Standard.AddIn.EditBox">
<Color name="backcolor" color="#1A1A2E"/>
<Color name="textcolor" color="#FFFFFF"/>
<Font name="textfont" themeid="PresonusUI" size="13" bold="true"/>
</Style>
</Styles>

Forms

Forms is the required container for dialog definitions.

skin.xml Snippet:

<Forms>
<Form name="MyDialog" title="My Dialog"/>
</Forms>

Form

Form defines one dialog surface.

skin.xml Snippet:

<Form name="MyDialog" title="My Dialog" firstfocus="NameHere">
<Horizontal margin="0">
<DialogGroup>
<Vertical margin="10" spacing="5">
<!-- Form content here -->
<EditBox name="NameHere" attach="left right"/>
</Vertical>
</DialogGroup>
</Horizontal>
</Form>
Attribute NameDescriptionType
attachContent attachment/alignment.token
buttonsDialog button set for Host.GUI.runDialog().token
firstfocusInitial focus target.identifier
heightExplicit height.number
datatargetData target binding.identifier
helpidHelp identifier.identifier
imageBackground image resource reference.identifier
layerbacking-token
nameDialog identifier used by runDialog(...).identifier
optionsVisual or behavioral options.token
selectname-identifier
sizelimitsDefines size limits.tuple
sizeExplicit size geometry.tuple
styleStyle reference.identifier
titleVisible title text.text
tooltipTooltip text.text
widthExplicit width.number
windowstyleHost window chrome and behavior.token
buttonsDescription
applyApply changes without closing.
cancelCancel and close without applying.
closeClose the dialog.
okayConfirm and close the dialog.
layerbackingDescription
optional-
true-
optionsDescription
colorizeColors the form area.
windowmovableAllow drag from form area.
windowstyleDescription
above-
center-
customframe-
dialogstyle-
floating-
fullscreenUses fullscreen window behavior.
inflateExpands the dialog content area.
maximizeEnables a maximize-capable window.
intermediate-
panelstyle-
pluginhost-
roundedcorners-
restoreposRestores the previous window position.
restoresizeRestores the previous window size.
sheetstyle-
sizableMakes the window resizable.
titlebar-
translucentUses translucent window chrome.
  • Form image="..." sets a background image for the whole dialog.
  • context.runDialog() automatically creates Cancel and OK buttons.