        ############ GQmpeg skin specifications file. ############

       (A quick reference of what is required in the image files
        for each widget type is located at the end of this document )

Skins are simply a directory which contain image files and
a skindata file (named skindata).

All skin features are configured in the skindata file.

Note: when using an alternate skin, it's specs go into a file named
skindata_alt, it uses the same format as the skindata file. Pressing
the Alt_Skin_Button button switches between the two skins.
(each skin must contain an Alt_Skin_Button if you want the alternate
skin feature to work)

Any line can be made into a comment by prefacing it with a '#' symbol.

All image files can be any size, GQmpeg will calculate the drawing data
for you. Skins can have any size buttons, display items, digits, and
fonts. The files can be of any type supported by imlib (xpm, png, jpeg,
gif, etc.) The recommended file format is png.

Prelights are optional on all items that support them. A prelight is an
alternate image that is displayed when the mouse is over a pressable
item (button or slider). For example, the default skin includes prelights
for all buttons, notice the buttons 'brighten' when the mouse moves over
them.

Every image within a file must have the same width and height, for example
if the play button was 30 by 20, the resulting image file would be
180 by 20. (6 button states total, including status lights and prelights)

 Addendum: If the above button was specified with the status light and
           prelight options as false, the resulting image file would be
           60 by 20. (2 button states total, 1 for normal, 1 for pressed)

Note that images for buttons and numbers contain the items horizontally,
the images for items contain the items vertically, the image for a font
contains 3 rows of 32 items, and the slider contains the background and
handle horizontally or vertically (depending if a slider is horizontal
or verticle, respectivley).

Only the background image is required, all other elements are optional
(although it would be nice to always have a play button :)
If you do not want an item displayed, comment out the line with
a '#' symbol.

        ############# skindata file format #################

Note: For an example skindata file see the file skindata-template.

x and y are always the position in the window (use the -skinhelp command line
option to have GQmpeg print out the mouse coordinates as the mouse moves)


*****
Background: filename
 filename
  The background image file, the window will be the same size as this image.

*****
Mask: filename
 filename
  The mask image file, only needed for skins which are shaped windows (not
  rectangular). Contains a transparency mask for the main window.

 Note:
  While this can be the same file as for Background:, it is recommended that
  this be a separate file. And the the background image should contain
  suitable graphics over transparent areas in the event transparency fails
  to work on some X servers.

*****
Title/Album/Artist/Genre: filename length [extended] x y
 filename
   Should contain a fixed font. With 3 or 6 lines of 32 characters each,
   these are the characters, they are listed in three rows so you can copy
   and past them into you graphics program. (first character in the top line
   is a space)

            !"#$%&'()*+,-./0123456789:;<=>?
           @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
           `abcdefghijklmnopqrstuvwxyz{|}~ 

   When extended is TRUE these are the 3 addition lines of international chars

           XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
           XXXXXXX FIXME! TO DO! XXXXXXXXXX
           XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 length
   Maximum number of characters to display in window.
 extended
   (optional, absence defaults to FALSE)
   When TRUE, the image contains 3 additional lines for internation
   characters. The result is 6 lines of 32 characters each.

*****
Play/Pause/Stop/Shuffle/Repeat_Button: filename prelight status_light x y
 filename
  Image file. Contains the buttons horizontally in this order:
    default up , default pushed, lit up, lit down, prelight up, prelight lit up

 prelight
  TRUE or FALSE, specifies whether or not prelight buttons are available, If
  FALSE, do not include the last two prelight buttons in the image file.

 status_light
  TRUE or FALSE, specifies whether or not button lights are available. If FALSE,
  do not include the 'lit up', 'lit down', and 'prelight lit up' buttons in the
  image file.

*****
Next/Prev/FF/RW/Playlist/Config/
            Iconify/Mixer/Exit/Alt_Skin_Button: filename prelight x y
 filename
  Image file. Contains the buttons horizontally in this order:
    default up , default pushed, prelight up

 prelight
  TRUE or FALSE, specifies whether or not prelight buttons are available. If
  FALSE, do not include the last prelight button in the image file.

*****
Stereo/Shuffle/Repeat/Mpegversion/Mpeglayer/Mpegmode/Status_Item: filename x y
 filename
  Image file. Contains the items vertically in the order below:

        Stereo_Item:  blank, mono , stereo
        Shuffle_Item:  off, on
        Repeat_Item:  off, on
        Mpegversion_Item:  blank, 1, 2
        Mpeglayer_Item:  blank, 1, 2, 3
        Mpegmode_Item:  blank, stereo, joint-stereo, dual-channel, single-channel
	Status_Item: stop, pause, play


*****
Digit_Large/Digit_Small_Default: filename
 filename
  Image file. Contains digits horizontally from 0 to 9, and a blank space.

 These two digits are a convenience function, if you want to use a digit more than
 once it is quicker to load it into on of these two slots. Then when using the digit
 in the number item type below, use the words 'Large' or 'Small' in place of the
 filename.

*****
Hour/Minute/Second/Song/Total/In_Rate/In_Hz/Out_Bits/Out_Hz/
            Song_Minute/Song_Second/Frame/Frame_Total/CPU/
            Hour_Total/Minute_Total/Second_Total_Number: filename [length] x y
 filename
  Image file for the number's digit, or the word 'Large' or 'Small' (see above).
  If a filename is specified, the image should contain the digits horizontally
  from 0 to 9, and a blank space.
 length (optional)
  The number of digits to display, if not present the default is assumed.

*****
Volume_Up/Volume_Down/Balance_Left/Balance_Right_Button: filename prelight x y
 filename
  Image file. Contains the buttons horizontally in this order:
    default up , default pushed, prelight up

 prelight
  TRUE or FALSE, specifies whether or not prelight buttons are available. If
  FALSE, do not include the last prelight button in the image file.

 Note:
  Same format as the Next/Prev/FF/RW/Playlist/Config/Etc_Button, but listed
  here to be closer to related functions.

*****
Position/Volume/Balance_Item: filename sections x y
 filename
  Image file. Contains images vertically in the order representing the lowest to
  highest values.

 sections
  The number of images within the file, recommended number of images is 16 to 32.
  The most possible usable images is 101 for volume and blance (from volume=0%
  to volume = 100%).

 Note:
  These items are different from others in that they require the number of
  image sections within the file to be specified. Also note that These items
  must be listed before their respective sliders:
  (Position/Volume/Balance_Slider).

*****
Position/Volume/Balance_Slider: filename prelight verticle reversed length x y
 filename
  Image file. Contains images horizontally in this order:
    slider background, handle normal, handle pressed, handle prelit
  (handles must have the same dimensions)

 prelight
  TRUE or FALSE, specifies whether or not a prelight handle is available, if FALSE,
  do not include a 'handle prelit' in the image file.

 verticle
  TRUE or FALSE. If false the slider is horizontal, if true, verticle.

 reversed
  TRUE or FALSE. If true, the slider works opposite than normal. For example
  when false the slider moves from left to right, when true the slider moves
  from right to left. On a verticle slider and reversed is false, the slider
  moves from top to bottom.

 length
  The width of the slider's background, this is the complete width the slider will
  be in the window, and must match the length of the 'slider background' in the
  image file.

              ************ Quick reference tables **************
Note: All example values used below set coordinates x=1 and y=1, and the filename to fn.png.

*********
 Buttons (all button images contained horizontally)
*********
Play/Pause/Stop/Shuffle/Repeat_Button: filename prelight status_light x y

Option line:           | # images | Normal | Pressed |  Lit   |   Lit   | Prelit | Prelit     |
                       |  total   |        |         | Normal | Pressed | Normal | Lit Normal |
-----------------------+----------+--------+---------+--------+---------+--------+------------+
 fn.png TRUE TRUE 1 1  |     6    |   X    |   X     |   X    |    X    |   X    |      X     |
 fn.png TRUE FALSE 1 1 |     3    |   X    |   X     |        |         |   X    |            |
 fn.png FALSE TRUE 1 1 |     4    |   X    |   X     |   X    |    X    |        |            |
 fn.png FALSE FALSE 1 1|     2    |   X    |   X     |        |         |        |            |

******
Next/Prev/FF/RW/Playlist/Config/Iconify/Mixer/Exit/Alt_Skin_Button: filename prelight x y
Volume_Up/Volume_Down/Balance_Left/Balance_Right_Button: filename prelight x y

Option line:           | # images | Normal | Pressed | Prelit |
                       |  total   |        |         | Normal |
-----------------------+----------+--------+---------+--------+
 fn.png TRUE 1 1       |     3    |   X    |   X     |   X    |
 fn.png FALSE 1 1      |     2    |   X    |   X     |        |


*********
  Items (all item images contained vertically)
*********
Stereo/Shuffle/Repeat/Mpegversion/Mpeglayer/Mpegmode/Status_Item: filename x y

Item:                  | # images | Image 1 | Image 2 | Image 3 | Image 4 | Image 5 |
                       |  total   |         |         |         |         |         |
-----------------------+----------+---------+---------+---------+---------+---------+
 Stereo_Item           |    3     |  blank  |  mono   | stereo  |         |         |
 Shuffle_Item          |    2     |   off   |   on    |         |         |         |
 Repeat_Item           |    2     |   off   |   on    |         |         |         |
 Mpegversion_Item      |    3     |  blank  |  ver 1  |  ver 2  |         |         |
 Mpeglayer_Item        |    4     |  blank  | layer 1 | layer 2 | layer 3 |         |
 Mpegmode_Item         |    5     |  blank  | stereo  | j-stereo| dual-ch |single-ch|
 Status_Item           |    3     |  stop   | pause   |  play   |         |         |

******
Position/Volume/Balance_Item: filename sections x y

Option Line: (*)            | # images | 1st Image | middle Image |  Last Image   |
                            |  total   |           |              |               |
----------------------------+----------+-----------+--------------+---------------+
 Volume_Item fn.png 17 1 1  |    17    | 1 - 0% vol| 9 - 50 % vol | 17 - 100% vol |
 Volume_Item fn.png 31 1 1  |    31    | 1 - 0% vol| 16 - 50 % vol| 31 - 100% vol |
 Balance_Item fn.png 17 1 1 |    17    | 1 - Left  | 9 - middle   | 17 - Right    |
 Balance_Item fn.png 13 1 1 |    13    | 1 - Left  | 6 - middle   | 13 - Right    |

 (*)note: The values (17, 31, 17, 13) above are only examples, any number of images
        can be specified.


*********
 Sliders (all slider images contained horizontally)
*********
Position/Volume/Balance_Slider: filename prelight verticle reversed length x y

Option line:                       | # images | Background  | Normal | Pressed | Prelit |
                                   |  total   |    width    |        |         | Normal |
-----------------------------------+----------+-------------+--------+---------+--------+
 fn.png TRUE FALSE FALSE 32 1 1    |     4    | 32 pixels   |   X    |   X     |   X    |
 fn.png FALSE FALSE FALSE 250 1 1  |     3    | 250 pixels  |   X    |   X     |        |


*********
 Numbers (all number images contained horizontally)
*********
*_Number: filename [length] x y

Option line:   | # images | Images in order (left to right)                |
               |  total   |                                                |
---------------+----------+------------------------------------------------+
 fn.png 1 1    |    11    | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " "(blank space) |
 fn.png 3 1 1  |    11    | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " "(blank space) |


*********
  Fonts  (all font images contained in 3 or 6 rows of 32 columns)
*********
Title/Album/Artist/Genre: filename length [extended] x y

Option line:            | # images | Images in order    |
                        |  total   |                    |
------------------------+----------+--------------------+
 fn.png 16 1 1          |    96    | see grid 1 (below) |
 fn.png 16 FALSE 1 1    |    96    | see grid 1 (below) |
 fn.png 16 TRUE 1 1     |    192   | see grid 2 (below) |

                  +------------------------------------+
character grid 1: |                                    |
(standard)        |   !"#$%&'()*+,-./0123456789:;<=>?  |
                  |  @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  |
                  |  `abcdefghijklmnopqrstuvwxyz{|}~   |
                  |                                    |
                  +------------------------------------+

                  +------------------------------------+
character grid 2: |                                    |
(international    |   !"#$%&'()*+,-./0123456789:;<=>?  |
 extended)        |  @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  |
                  |  `abcdefghijklmnopqrstuvwxyz{|}~   |
                  |  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  |
                  |  XXXXXXX FIXME! TO DO! XXXXXXXXXX  |
                  |  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  |
                  |                                    |
                  +------------------------------------+

#################################
