GENERATORS
Dashboard: Component API
This page explains how to customize and create new components for Dashboard.
Basics
A Dashboard component is built of an initialization file (*.INI) and a set
of bitmap images (*.BMP, *.JPG and *.TGA are supported) that define the component
appearance (skin). The INI files resides in the Artwork folder of Dashboard
([FL Studio]/Plugins/Fruity/Generators/Dashboard/Artwork), or in subfolder
of that folder. The images can be placed anywhere, but it is best to place
them where the INI file is, so you can reference the images directly, without
path.
There can be several section in the INI file:
- Info
- Properties (optional)
- Items (only for some types of components)
Each section contains one or more properties. A property entry looks like
this:
propertyName=value
For ease of use, it is best to use relative paths when you link to image files.
You can link to a folder relative to the INI position or the Artwork folder:
- Relative to the Artwork folder : [Folder]\image.bmp (links to Artwork\[Folder]\image.bmp).
- Relative to the INI file : .\folder\image.bmp (links to Artwork\[INI Folder]\image.bmp).
INI File Sections
The INI file contains the following sections:
[Info] Section
You should include these properties in the info section:
- Name - The name of the control. Make sure
the name is unique to the other component names. This property is required.
- Kind - The component type. The possible
values are: 0 = DigiWheel; 1 = Slider; 2 = Wheel; 3 = Panel; 4 = Switch;
5 = Label; 6 = Image; 7 = Selector; 8 = Patch selector; 9 = Page selector;
This property is required.
Default - Indicates if this control is the default control for its kind (Default=1)
or not (Default=0). A default control is used in panel presets which contains
missing controls (not installed in this copy of dashboard). For example,
a missing wheel component is replaced with the default wheel component. This
property is optional.
- Background - This is a reference to the
image file that will be used as background for the control. If a background
is specified, it determines the control's width and height. If you want to
allow the user to make a background transparent, you have to specify an 8-bit
.bmp file. Not all controls supports transparency. This property is optional.
- Foreground - This is a reference to the
image file that will be used as a foreground for the control. This could
be a knob for a slider, for example. Not all controls will use this value
(for example page selectors). This property is optional.
[Properties] Section
This section defines the values to be used for the properties of a control. They
are all optional. You can see a full list of properties you can set here in the
component inspector
for each component.
[Items] Section
This section is only valid for selectors and patch selectors. It defines
the values that will be available in the selector. The values are specified
as a list of text lines (each line is a value) ending with "=":
valueName=
For patch selector controls, you also include the bank and program numbers
that correspond to the instrument names:
valueName=Bank MSB, Bank LSB, Program Number
EXAMPLE:
[items]
100% Left=
50% Left=
Centered=
50% Right=
100% Right=
Component Types
This is a more in depth description for each component type (you specify in the Kind property).There
are currently ten different control kinds.
DigiWheel (Kind=0)
- Wheel which displays a different image for each value (the images
should be ordered sequentially in a horizontal strip).
- It can be used as a controller.
- The background is used for the border around the control.
- The foreground is used for the values (see the supplied DigiWheel
controls).
This additional parameter is supported in the [Properties] section (not
visible in the component inspector):
Slider (Kind=1)
- An up/down slider control.
- Can be used as a controller.
- The foreground is used as the knob of the slider. Most of the time,
this is a 32-bit *.TGA file which can be transparent.
Wheel (Kind=2)
- A wheel control with a line as indicator of the value.
- Can be used as a controller.
- The foreground image is not used.
This additional parameter is supported in the [Properties] section (not
visible in the component inspector):
- Line Length - the length of the indicator line, as a percentage of
the width/height of the control.
Panel (Kind=3)
- This component allows you to add custom backgrounds to the dashboard's
panel.
- The foreground image is not used.
This additional parameter is supported in the [Properties] section (not
visible in the component inspector):
Switch (Kind=4)
- This is a two-state toggle button (on-off).
- Can be used as a controller.
- The foreground should contain two images, one for up and one for down
- The background is not used.
Label (Kind=5)
- This is a simple control that displays text labels.
- Background and Foreground are not used.
Image (Kind=6)
- This control simply displays an image.
- Foreground image is not used.
Selector (Kind=7)
- This is a combo box control, showing a custom list of values.
- The list of values is read from the [Items] section of the *.INI file.
- Foreground image is not used.
- It can be used as a controller.
Patch Selector (Kind=8)
- This control allows the user to select a patch from a list of predefined
values.
- The list of values is read from the [Items] section of the *.INI file.
- Each value should have a Bank MSB, Bank LSB and a Patch Number information
appended (see the description of the [Items] section above).
- Foreground image is not used.
Page Selector (Kind=9)
- This is a special type of control which allows you to select the visible
interface page (if there are any).
- Foreground image is not used.
Notes & Tips
- A control is identified by its name, so make sure to give it one that's
both descriptive and unique.
- Preferably put all controls of a certain group in a directory away
from the rest.
- If you don't specify a background image for a control, it's transparent.
Not all controls support this very well.
- Take a look at the provided controls, they'll show you most of what
you need to know.