EQWatcher Evolution > Skin Development > Skin Definition File (.skn)
EQWatcher's skin definition file, which has the extension .SKN, is a very simple text file. The entire file follows the same basic format: NAME = VALUE. For example, directly from the default skin: Mask =EQWatcher Mask.gif
Whitespace (extra spaces, tabs) is ignored, and all keywords other than control names are not case sensitive.
There are 7 basic NAMEs the system uses that are not for controls: MASK, NORMAL, DOWN, OVER, DISABLED, ESCAPE, DRAGRECT.
Control NAMEs must begin with a specific prefix for each type, and must be in capital letters (with exceptions for controls that do something like execute an alias or open a URL). Here are recognized prefixes: BUTTON_, CHECK_, EDIT_, LABEL_ (same as text), PROGRESS, SLIDER_, TEXT_ (same as label). Examples: BUTTON_EXIT, CHECK_VERSION, EDIT_COMMAND.
Controls use special parameters as their VALUE. These parameters take this form: NAME{VALUE}. Notice the parameter VALUE is surrounded by {} brackets. Some parameters do not have their own values to set, and therefore do not need to have any brackets (examples: HORIZONTAL, VERTICAL, TABSTOP). Multiple-value parameters use comma as their separator, like: NAME{VALUE,VALUE,VALUE}. Parameters are also separated by commas, like: NAME{VALUE,VALUE,VALUE},NAME{VALUE}. Most parameters are optional and have default values.
Here is a complete list of every parameter name and values required by that parameter. Any given control type can accept any of these parameters, but only specific ones are used per control type, and some parameters are required for specific controls.
WINDOWRECT{left,top,width,height} - Sets the rectangle defining the position of this control on the window REQUIRED BY ALL CONTROLS (ALL) - can also be RECT
CAPTION{caption} - Sets the caption text (BUTTON,CHECK,TEXT)
TOOLTIP{tooltip} - Sets the tooltip, the little box seen when the user hovers over the control for a few seconds with the mouse (BUTTON,CHECK,EDIT,SLIDER,TEXT)
VALUE{value} - Sets the default value (CHECK,EDIT,SLIDER,PROGRESS)
VARIABLE{varname} - Makes the control automatically update its value from a variable name (and to for sliders). In EQWatcher's case, this must be the name of a public variable (case sensitive). (ALL)
DUALEXECUTE{on,off} - Sets EQWatcher commands (aliases) to execute for the check box's ON or OFF states when the control name is CHECK_EXECUTE_xxxx. If the control is pressed while the check box is checked (or ON), on becomes the command to execute (and so on). (CHECK) - can also be DUAL
PICTURES{normal,over,down,disabled} - Sets alternate picture files to use when creating the buttons - note. You do not need to provide all of these, but if you wanted to (for example) set only a down, you must provide the first two commas before the value. (normal: ALL, over: BUTTON,CHECK,EDIT,SLIDER down:BUTTON,CHECK,EDIT,PROGRESS,SLIDER disabled: BUTTON,CHECK,EDIT,SLIDER)
TEXTRECT{left,top,width,height} - Sets the rectangle defining the position of the caption or text with respect to WINDOWRECT (i.e. this rectangle's 0,0 is the upper left corner of WINDOWRECT) The default is equal to the size of WINDOWRECT (BUTTON,CHECK,EDIT,PROGRESS,SLIDER)
COPYRECT{left,top,width,height} - Sets the rectangle defining the position on the picture to use as the control's background (for all of normal,over,down,disabled). Default is equal to WINDOWRECT. (BUTTON,CHECK,EDIT,PROGRESS,SLIDER,TEXT)
FONT{face name,size,color, . . .} - Sets the font used by the control. Extra parameters can be "BOLD" or "ITALIC" or "ITALICS" not case sensitive and not required. There is a default font when this parameter is not used. (BUTTON,CHECK,EDIT,TEXT)
CARET{picture} - Sets the caret used by the edit control (the blinking thingy) REQUIRED BY EDIT (EDIT)
MAXTEXT{max} - Sets the maximum number of text characters for the edit control (default 255), or the max range for sliders. (EDIT) - can also be MAX
RANGE{min,max} - Sets the range used by the control (SLIDER)
THUMBS{normal,down} - Sets the thumb button pictures for slider control for relaxed and down states REQUIRED BY SLIDER (SLIDER)
VERTICAL - Makes the control vertical (up/down). Default is horizontal. (SLIDER,PROGRESS)
HORIZONTAL - Makes the control horizontal (left/right). Default is horizontal. (SLIDER,PROGRESS)
TABSTOP - You do not need to use the {} when setting this. Makes the control a tab stop. Default is on. (BUTTON,CHECK,EDIT) - can also be TAB or STOP
NOTABSTOP - You do not need to use the {} when setting this. Prevents the control from being a tab stop. Default is on. (BUTTON,CHECK,EDIT) - can also be NOTAB or NOSTOP
REVERSE - Makes the control work in reverse -- right to left, or up to down, depending on the orientation. (SLIDER)
READONLY - Makes the control read-only to the user interface (the value can still be changed programmatically, but not directly by the user) (CHECK,EDIT,SLIDER) - can also be READ
For examples, open EQWATCHER.SKN in your EQWatcher Advanced\skins\default directory.