Start Page » DragonScript Scripting Language » Gui Themes » Define XML Decoration
Decorations can be defined as parameters using the decoration tag or inside own XML files typically with the extension *.decoration.xml. The extension can be chosen differently if required. For both versions the same tag definition is used.
Decorations are always based directly or indirectly on a type. This type is the Decoration Prototype and defines what instance of DecorationFactory is used in the scripts. The choice of prototype affects the appearance and functionality of the decoration and the factory configuration possibilities.
The following prototypes are provided by default by the DecorationFactories script class:
Name | Script Class | Description |
---|---|---|
Default | DefaultDecorationFactory | Default decoration with no visual appearance and no interaction |
CanvasCreator | CanvasCreatorDecorationFactory | Decoration using canvas creator for the border elements |
You can use custom prototypes by adding them to DecorationFactories instance before loading gui themes. This is useful if you created custom decoration subclasses requiring custom parameters.
This example defines a decoration based on the CanvasCreator prototype.
<decoration parameter='ParameterName' type='Default'> <!-- set parameters here --> </decoration>
If you modify an existing decoration factory the type of the original decoration factory is taken over. This example creates a decoration factory by loading it from a file.
<decoration parameter='ParameterName' extend='sharedDecoration.decoration.xml'> <!-- set parameters here to modify the loaded decoration --> </decoration>
Decoration factories are configured by setting parameters. For each supported parameter type an own tag exists. See Defining Parameters for an overview of the supported types. The supported parameters by decoration factory type are listed below.
The most basic decoration with no visual appearance and no interaction at all. Creates an instance of the DefaultDecorationFactory script class. This is used to define windows with no decoration at all for example for full screen windows. You can also use null or not setting a decoration at all. By default windows have no decorations.
This factory has no parameters.
Creates a decoration factory using canvas creators. Creates an instance of the CanvasCreatorDecorationFactory script class.
The window support these display states to style individually:
The buttons support these display states to style individually:
In the list below replace {windowState} with one of the window state names above and {buttonState} with one of the button state names above. For example to define the canvas for inactive window state the parameter name would be inactive.canvas. To define the button image for hover state the parameter name would be hover.imageButtonClose.
These parameters can be used:
Parameter Name | Supported parameter type | Description |
---|---|---|
decorationSize | BorderSize | Amount of space reserved around the widget to draw the decoration |
{windowState}.canvas | CanvasCreator | Canvas creator to use for window state |
{buttonState}.imageButtonClose | Image | Image to use for the close button in the state |
{buttonState}.imageButtonMaximize | Image | Image to use for the maximize button in the state |
{buttonState}.imageButtonMinimize | Image | Image to use for the minimize button in the state |