home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 November / Chip_2000-11_cd2.bin / sharewar / Slunec / app / 16 / mimic.CAB / skins.txt < prev    next >
Text File  |  2000-01-10  |  29KB  |  838 lines

  1. Mimic    Version: 1.10, Jan 10/2000
  2. =====    (C)2000 Steve J. Gray  <sgray@acs.ryerson.ca>
  3.     http://www.ryerson.ca/~sgray
  4.  
  5. Skins Format Documentation
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  7.  
  8. Introduction
  9. ------------
  10.  
  11. Skins let you totally change the look of the program to almost
  12. anything you want. Skins are replacement images for all the buttons
  13. text and digits in the window.
  14.  
  15. A skin consists of two or three files:
  16.  
  17. 1) A text file that defines the placement of elements of the skin.
  18. 2) A "main" bitmap that represents the graphical "up" and "off"
  19.    state of all the elements.
  20. 3) An optional "resource" bitmap that contains the "down" or "on"
  21.    state of each element PLUS other images, such as digits.
  22.  
  23.   A basic skin only needs the first two files, however it will have limited
  24. user feedback (ie: when you click on a button the image does not change)
  25. and you are limited to standard text. By including the optional resource
  26. bitmap you can define the look of each button when depressed plus you can
  27. define graphic digits for the time, track number, or clock.
  28.  
  29.   Mimic is not limited to a rectangular form. In the skin file you
  30. can also define an irregular-shaped outline, or specify a specific colour
  31. to be transparent in your main bitmap for your skin.
  32.  
  33.   Mimic also includes a screen saver, which uses the same skin engine
  34. as Mimic itself. Because screen savers are not interactive you are limited
  35. to certain elements (labels etc). In the elements reference below, those
  36. marked with a "+" can be included in screen saver skins. All other elements
  37. will be ignored.
  38.  
  39.  
  40. How to make your own skin
  41. -------------------------
  42.  
  43. Tip: Look at the "default.skin" file. It is an example of an advanced
  44. skin using just almost all of the different skin features (except regions).
  45.  
  46. First, think about the layout of your skin. Where will the elements
  47. go? How big will the buttons be? Do you want your own digits or
  48. are standard text fonts okay?
  49.  
  50. There are a few different elements that will make up your skin. All
  51. elements are optional. If you don't define them they will not appear.
  52. These are the different types of elements available:
  53.  
  54.   * Animations
  55.   * Buttons
  56.   * Text
  57.   * Digital Displays
  58.   * Playlist
  59.   * Sliders
  60.   * Other (Bitmaps etc)
  61.  
  62.   The elements are placed in the program "window" which we will refer to
  63. as the "form". The background (static graphics that do not change), and
  64. buttons will be drawn on the main form. Other elements (such as text) will
  65. be placed on the form in the position you specify. Text placed on the form
  66. will have no background of its own (IE: your graphics will show through).
  67.  
  68.   You can use just about any graphics editor to create the bitmap(s).
  69. Bitmaps can be saved in either BMP, GIF, or JPEG format and can contain
  70. from 16 to 16 million colours. Keep in mind that if you try to display
  71. 16 million colours on a 256 colour or less screen mode, MS Windows will
  72. adjust the image and it may not appear as you intended! Also, note that
  73. JPEG images are good for life-like images with lots of colour but are
  74. not good for text or cartoon-like images. For these type images use GIF.
  75.  
  76.  
  77. The Main Bitmap
  78. ---------------
  79.  
  80.   The main bitmap is the image that appears on your form and gives the
  81. skin it's look. You can draw whatever you want and it will appear as-is
  82. on the form.
  83.  
  84.   Draw all the buttons in their "up" state. You could create buttons
  85. with labels on them or you could put the label outside the button.
  86. If all your buttons were the same size and you put the labels on the
  87. form (instead of inside the button) you could save some work since you
  88. would only need to draw one "down" button on the resource bitmap. If
  89. each button is labeled you will need to draw the "down" version of
  90. each button in the resource bitmap. Buttons can be any shape you want.
  91. They do not have to be rectangular, however the definition for the
  92. button area will be rectangular so you need to be careful how the
  93. buttons are placed so that the button areas do not overlap. Overlapping
  94. buttons are possible but you would need to do some creative drawing in
  95. the resource bitmap...
  96.  
  97.  
  98. The Resource Bitmap
  99. -------------------
  100.  
  101.   The "resource" bitmap contains all the buttons in their "down" state,
  102. sliders and any digital display digits or text.
  103.  
  104.   An easy way to make the resource bitmap is to copy the main bitmap then
  105. modify the buttons to look depressed. A common technique with "standard"
  106. buttons is to reverse the highlighting. IE, in the "up" button the top
  107. and left are light coloured, whereas the bottom and right are dark.
  108. When depressed those are reversed so that the top and left are now dark
  109. and the others are light. Another common technique is to make the button
  110. darker and to slightly offset the label down and to the right to give the
  111. appearance of being pushed in.
  112.  
  113.  The resource bitmap does not need to be the same size as the main bitmap.
  114. If you have a large-sized form with large areas and/or you need to create
  115. room for the digital display digits then you might need to re-arrange the
  116. "down" buttons on the resource form. If you do this you will need to
  117. specify the new coordinates in the skin file.
  118.  
  119.   To create the digital display digits, draw each digit in a single
  120. line like this:
  121.  
  122.   0123456789 .:    (there is a "space" between the "9" and "."!)
  123.  
  124.   Make sure ALL characters are all exactly the same width. The "space"
  125. character can be blank, a "zero", or the segments that make up the digit
  126. in an "unlit" state. The "." and ":" are special cases. Even though they
  127. take the same width in the bitmap as the others they can be thinner
  128. than the other digits by specifying their width (w2) in the parameter
  129. list (they will need to be aligned to the left).
  130.  
  131.  
  132. The Skin file
  133. -------------
  134.  
  135.   The skin file is a text file that ties everything together. In the skin
  136. file you define everything that makes the skin work. You define the size
  137. of the form in it's normal, expanded, and small modes. You define the
  138. location of the buttons and text, their sizes, colour, and font etc. You
  139. define where in the resource bitmap the digital digits are located and
  140. what size they are. You can also define all the points that make up the
  141. outline of the form if you choose to make your skin non-rectangular.
  142.  
  143. The format:
  144.  
  145.   The first FIVE lines must be in the following format. NO extra comments
  146. or blank lines can appear above them!
  147.  
  148. * Line1 is a string that indicates this is a Mimic skin. The line must
  149. start with the string:
  150.     "Mimic Skin"
  151.   You may optionally follow (on the same line) any or all of the following
  152.   strings to indicate the type of skin:
  153.     
  154.     "/Player", "/FMTuner", "/Calculator", "/Clock",
  155.     "/Notepad",    "/Browser", "/Karaoke", "/WebRadio"
  156.     "/Favorite", "/Combo"
  157.  
  158.   For example, if the skin was a player skin with clock you would use:
  159.     "Mimic Skin/Player/Clock"
  160.  
  161. * Line2 is a line for the skin name, your name, copyright etc that will
  162.     be displayed in the info tab
  163.  
  164. * Line3 are 3 pairs of Width/Height values corresponding to the size
  165.     of the normal form, extended form, and small form, like this:
  166.         w1,h1,w2,h2,w3,h3
  167.     NOTE: All dimensions are in pixels!
  168.  
  169. * Line4 is the bitmap or import control line.
  170.     > For standard skins it contains the bitmap filenames like this:    
  171.         main,resource
  172.         (Files can be bmp, gif, or jpeg format. If you don't have a
  173.         resource file then use the same filename as main)
  174.     > For import skins the format is:
  175.         *,directory,filter,defaultfile
  176.         - The directory is the default location for importing.
  177.         - The filter determines the type(s) of files to show.
  178.         - The defaultfile is the name of the main file.
  179.  
  180. * Line5 contains option settings:
  181.     Bmode,ScnPos,BgRed,BgGreen,BgBlue,xx,xx,xx
  182.  
  183.     - Bmode: Defines the action when the mouse pointer
  184.       goes over a button on the form:
  185.         0=No action
  186.         1=Draw border rectangle
  187.         2=Display down-button image
  188.     - ScnPos: Defines if the skin should appear in a specific
  189.       position on the screen:
  190.         0=No change (use last position)
  191.         1=Top Left corner
  192.         2=Top Right corner
  193.         3=Bottom Right corner
  194.         4=Bottom Left corner
  195.         5=Centred
  196.     - Bg[Red/Green/Blue]: Background Color of main form
  197.     - xx: extra elements for future use (use "0" for now)
  198.  
  199.   The rest of the file defines the elements in the skin. If you wish to
  200. add comments to the file put a semi-colon followed by a comma (";,") at
  201. the beginning of the line. Everything after the comma up to the end of
  202. the line will be ignored.
  203.  
  204. You can include skin comments, which are displayed in the "info" tab of
  205. the prefs screen by starting the line(s) with "/," characters.
  206.  
  207.  Eg:    /, This is a skin comment
  208.     /, This is another comment
  209.  
  210. Comments will be appended one after another and displayed exactly as
  211. entered on the line.
  212.  
  213.  
  214. Elements
  215. --------
  216.  
  217.   Different elements are defined using a unique identifier consisting of
  218. a letter and number (for example: B12). Following the identifier are one or
  219. more parameters depending on the type of element.
  220.  
  221. The following are the element codes:
  222.  
  223.   * A - Animations
  224.   * B - Buttons
  225.   * C - Pictures and Video Area
  226.   * D - Digital displays
  227.   * I - Indicator Lights
  228.   * K - Link Buttons
  229.   * L - Labels
  230.   * S - Sliders
  231.   * T - Text Input field
  232.   * X - Other (listboxes etc)
  233.  
  234. The Following are control codes:
  235.  
  236.   * N - Single Region initialization
  237.   * M - Multiple Region initialization
  238.   * O - Transparent Bitmap initialization
  239.   * P - Point in region
  240.   * R - Read bitmap (0=main,1=resource,2=temp)
  241.   * ? - Conditional jump based on success of "R" command
  242.   * W - Set width/height of bitmap
  243.   * Z - Blit from temp to main or resource bitmap
  244.   * /,- Skin comment
  245.   * ;,- Comment
  246.   * : - Label (target for "?" commnad)
  247.   * USE - use bitmaps
  248.  
  249. The following are possible parameters:
  250.  
  251.   * X, Y    - Coordinate of the top left of an element.
  252.   * W, H    - The Width and Height of an element.
  253.   * X2, Y2    - Coordinate of corresponding image in resource bitmap.
  254.             (if you use 0,0 then the main X,Y coordinates are used)
  255.   * W2, H2    - Extra Width and Height (ie: for a sub-image).
  256.   * key    - The Keyboard command.
  257.   * tooltip    - Text that appears when the mouse is over the element.
  258.             NOTE: if the text contains a comma you must enclose the
  259.             entire string in quotations!
  260.             Tooltips starting with "~" will not be displayed
  261.   * r, g, b    - The Red,Green,Blue colour components (Range is 0 to 255).
  262.   * pt    - The Point Size for the font.
  263.   * font    - The Font Name. To specify any of Bold, Italic or Underlined
  264.           append a colon then one or more letters: B, I, or U, like this:
  265.             MS Sans Serif:BIU
  266.             Small Fonts:B
  267.             NOTE: Make sure the font is available in the desired style!
  268.   * f        - Numeric Format type.
  269.  
  270.   NOTE: All coordinates and dimensions are in PIXELS!
  271.  
  272. If you DO NOT specify an element, or its Width or Height are zero it
  273. will NOT appear.
  274.  
  275. The following describes the format of the parameters for each element
  276. and the function of each element:
  277.  
  278.     Elements are listed in the format: Xnn - Description
  279.     Where X is the Element Code, nn is the element number.
  280.     The character before the Description indicates the status:
  281.         - = The function is implemented
  282.         + = The function can also be used in the screensaver
  283.         * = The function is NOT implemented in the current version
  284.             but is reserved for future use
  285.  
  286.  
  287. (A) Animations
  288. --------------
  289.  
  290. These are animation elements. When an animation is stopped the first frame
  291. is displayed. When active it will loop from the second frame to the last frame
  292. then back to the second frame, and so on.
  293.  
  294. Format: Ann,x,y,x2,y2,w,h,r,c,speed,tooltip
  295.  
  296.     A01 + General Animation (always active if included)
  297.     A02 - Player Animation
  298.     A03 - Web Browser Animation
  299.     A04 - Web Radio Animation
  300.  
  301. Where:
  302.     - x2,y2 is the location in resource bitmap
  303.     - w,h are size of one frame
  304.     - r,c are number of rows/columns (note: you must have at least 2 columns!)
  305.     - speed is the speed of animation (1=fastest, higher=slower)
  306.  
  307.  
  308. (B) Buttons
  309. -----------
  310.  
  311. Format: Bnn,x,y,w,h,x2,y2,key,tooltip
  312.  
  313. General Buttons:
  314.     B01 - Power button
  315.     B02 - Minimize (hide) window
  316.     B03 - Toggle Large Mode (window size 2)
  317.     B04 - Toggle Small Mode (window size 3)
  318.     B05 - About/Preferences
  319.     B06 - Select Skin
  320.     B07 - Volume Down
  321.     B08 - Volume Up
  322.     B09 - Volume Mute
  323. Player Buttons:
  324.     B10 - Stop
  325.     B11 - Pause
  326.     B12 - Play
  327.     B13 - Eject
  328.     B14 - Previous Track
  329.     B15 - Next Track
  330.     B16 - Info
  331.     B17 - Delete Track
  332.     B18 - Move Track Down
  333.     B19 - Move Track Up
  334.     B20 - Clear Playlist
  335.     B21 - Load Playlist
  336.     B22 - Save Playlist
  337.     B23 - Add Track
  338.     B24 - Add Directory
  339.  
  340.     B25 - Toggle Intro
  341.     B26 - Toggle STP
  342.     B27 - Toggle Repeat
  343.     B28 - Toggle Shuffle
  344.     B29 - Show Mixer
  345.     B30 - Set A point (or toggle A/B/Off if B31 not visible)
  346.     B31 - Set B point
  347.     B32 - Reverse
  348.     B33 - Forward
  349.     B34 - Toggle Cover Window
  350.     B35 - Visual Playlist Selector
  351.     B36 - Play/Pause Toggle
  352.     B37 * Mode Select (Media / CD)
  353.     B38 - Menu (same as right click on form)
  354.     B39 - Jump to Selected Track (Number displayed via L23)
  355. Calculator/Keypad Buttons:
  356.     B40-B50 - Numeric Keys: 0 to 9, period
  357.     B51-B59 - +, -, x, /, =, +/-, %, sqrt, 1/x
  358.     B60-B69 - BACKSPACE, CLEAR, CE, MC, MS, MR, M+
  359.             Convert-To, Convert-From, Select Conversion
  360. Timer Buttons:
  361.     B70-B75 - Sel+, Sel-, Start/Stop, Reset, Lap, Reset All
  362. Notepad Buttons:
  363.     B76-B79 - Load, Save, New, Print
  364. FMTuner Buttons:
  365.     B80-B83 - Scan Down, Scan Up, Tune Down, Tune Up
  366.     B84-B87 - Preset: Prev, Next, Add, Delete
  367.     B88-B90 - Preset: Move Down, Move Up, Store (*)
  368.     B91-B100- Preset: Preset 1 to 10 (to tune to a specific preset)
  369. Web Browser Buttons:
  370.     B101-B109 - Home, Refresh, Back, Forward, Stop, Search, Print, Add Bookmark, Add to URL Button, Bookmarks Menu
  371.     B111-B120 - URL Buttons: 1 to 10
  372. Web Radio Buttons:
  373.     B130-B139 - WebRadio Station Presets: 1 to 10
  374.     B140-B146 - Preset: Prev, Next, Add, Delete, Move Down, Move Up, Store
  375.     B147 - Play
  376.     B148 - Stop
  377.     B149 * Reserved
  378. Misc Buttons:
  379.     B150 - Player Quick Find/Play
  380.     B151 - Load Previous Skin
  381.  
  382. *** The following are planned for the future:
  383.  
  384. Dual Playlist Buttons:
  385.     B200 - Copy selected to PL1
  386.     B201 - Copy selected to PL2
  387.     B202 - Move selected to PL1
  388.     B203 - Move selected to PL2
  389.     B204 - Swap selected PL1/PL2 entries
  390. Dual-Player Buttons:
  391.     B210 - Stop
  392.     B211 - Pause
  393.     B212 - Play
  394.     B213 - Eject
  395.     B214 - Previous Track
  396.     B215 - Next Track
  397.     B216 - Info
  398.     B217 - Delete Track
  399.     B218 - Move Track Down
  400.     B219 - Move Track Up
  401.     B220 - Clear Playlist
  402.     B221 - Load Playlist
  403.     B222 - Save Playlist
  404.     B223 - Add Track
  405.     B224 - Add Directory
  406.  
  407.     Notes:
  408.     - You can have multiple buttons with the same function by
  409.       specifying the button more than once in the skin file.
  410.     - There can be a maximum of 120 buttons in the skin including "Link" buttons.
  411.  
  412. (C) Pictures / Video Area
  413. -------------------------
  414.  
  415.   These are picture elements. Bitmaps are scaled to fit the specified size.
  416.  
  417. Format: Cnn,x,y,w,h,ToolTip  
  418.  
  419.     C01 + Album Cover bitmap (Screensaver=General picture displayer)
  420.     C02 - Web Browser
  421.     C03 - Video Playback Area
  422.  
  423.  
  424. (D) Digital Displays
  425. --------------------
  426.  
  427.  These are digital displays using graphics digits/letters of any size. 
  428.  
  429. Format: Dnn,x,y,x2,y2,w,h,w2,g,s,f,ToolTip
  430.  
  431.     D01 - Track Time
  432.     D02 - Track Number
  433.     D03 + Current Time - HH:MM
  434.     D04 - kbps setting
  435.     D05 - kHz setting
  436.     D06 - Track Title
  437.     D07 - Track to Play / Calculator Display
  438.     D08 * Current Timer
  439.     D09 - FM Frequency
  440.     D10 - FM Preset#
  441.     D11 + Current Time - SS (seconds)
  442.     D12 - Web Radio Play Time
  443.  
  444. Where:
  445.     - w,h are for a SINGLE digit
  446.     - w2 is the width of the period and colon.
  447.     - g is the source bitmap format
  448.         0=Numeric Only (0123456789 .:-)
  449.             (the space can be blank, a "zero", or "unlit" form of the digit)
  450.             (cannot be used for element D6!)
  451.         1=Alphanumeric (Full ascii)
  452.         2=Alphanumeric (Uppercase ascii)
  453.         3=WinAmp Standard (Uppercase ascii)
  454.     - s is additional spacing for destination
  455.     - f is the display format number:
  456.         -1 to -15 = number of digits
  457.         0 = "MM:SS"    (elapsed time)
  458.         1 = "HH:MM"    (time)
  459.         2 = "HH:MM:SS" (time)
  460.         3 = "999.9"    (frequency)
  461.         4 = "999.999"  (frequency)
  462.         10 or higher = length of track title
  463.  
  464.  
  465. (I) Indicator Lights
  466. --------------------
  467.  
  468. Format: Inn,x,y,w,h,r,g,b,shape,comment
  469.  
  470.     I01 - FM Stereo Station Tuned Light
  471.     I02 - Player Stopped Light
  472.     I03 - Player Paused Light
  473.     I04 - Player Playing Light    
  474.     I05 - Player Intro Light
  475.     I06 - Player STP Light
  476.     I07 - Player Repeat Light
  477.     I08 - Player AB Repeat Light
  478.     I09 - Player Random Play Light
  479.     I10 * Player Shuffle Play Light
  480.     I11 - Player NOT Intro
  481.     I12 - Player NOT STP
  482.     I13 - Player NOT Repeat
  483.     I14 - Player NOT AB Repeat
  484.     I15 - Player NOT Random
  485.     I16 - Player NOT Shuffle
  486.     I17 - Player Mute
  487.     I18 - Player NOT Mute
  488.     I19 * Web Radio Buffering
  489.     I20 * Web Radio NOT Buffering
  490.  
  491. Where:
  492.     - Shape values are:
  493.         0=Rectangle 1=Square 2=Oval 3=Circle
  494.           4=Rounded Rect 5=Rounded Square
  495.     - Comments are only for reference
  496.  
  497. Note:    The "NOT" indicators can be used to hide parts of the display,
  498.     or to simulate a single indicator with different colours.
  499.  
  500.  
  501. (K) Link Buttons
  502. ----------------
  503.  
  504.  These buttons perform special functions when pressed. The "Skin Link"
  505. buttons let you load a specific named skin. They can be used when you
  506. want to switch between your favorite skins or to have elements appear
  507. to move around etc. The "Web Link" buttons take you to the specified
  508. URL using your default browser.
  509.  
  510. Format: Knn,x,y,w,h,x2,y2,key,tooltip,link
  511.  
  512.     K01-K10 Skin Link Button 1 to 10
  513.     K11-K20 Web  Link Button 1 to 10
  514.  
  515.   link = The name of the skin or URL to load
  516.      (Note: Skin links should include the extension but not the path!)
  517.  
  518.  If you link to a "full-screen" skin and you have created a skin for
  519. each screen resolution you may use the format "name*" for the skinname.
  520. Mimic will substitute the current screen width into the name when
  521. the button is clicked. Example:
  522.  
  523.     Element definition:  K01,.......,"deluxe*"
  524.     
  525.     Screen        Skin to load
  526.     ------        ------------
  527.     640x400        "deluxe640.skin"
  528.     800x600        "deluxe800.skin"
  529.     1024x768        "deluxe1024.skin"
  530.     ...and so on
  531.  
  532.     Make sure you have a skin that matches your screen resolution
  533.     otherwise you will get an error message.
  534.  
  535.  
  536.   Web Links can be used to open the default browser and use it to connect
  537. to the specified location. For example, to link to the Mimic home page
  538. you could do this:
  539.  
  540.     K11,......,"http://www.ryerson.ca/~sgray/mimic.htm"
  541.  
  542. Note: Skin links can also be used effectively to create "dynamic" skins.
  543.     If several skins use the same resource bitmap file there is no need
  544.     to re-load the file, which means skins can change quickly. You could
  545.     design a set of skins that work together to create a complex user
  546.     interface using a series of ".skin" files.
  547.  
  548.  
  549. (L) Labels
  550. ----------
  551.  These are text labels that have a transparent background so that the
  552. graphics on the form show through.
  553.  
  554. Format: Lnn,x,y,w,h,r,g,b,pt,font,tooltip
  555.  
  556.     L01 - Time (elapsed/remain)
  557.     L02 - Track Title
  558.     L03 + Current Time
  559.     L04 - Track Number
  560.     L05 - Snooze Time indicator
  561.     L06 + Full Date
  562.     L07 + Day of week
  563.     L08 - Mute indicator 
  564.     L09 + AM/PM indicator (blank when in 24hr mode)
  565.     L10 - Kbps
  566.     L11 - KHz
  567.     L12 - Stereo/Mono
  568.     L13 - Total Track Time
  569.     L14 - Playlist Title
  570.     L15 - Status (playing/paused etc)
  571.     L16 - Total entries in playlist
  572.     L17 * Total time of all playlist entries
  573.     L18 - Volume (0-100%)
  574.     L19 * Jukebox Current Page
  575.     L20 * Jukebox Max Page
  576.     L21 * Jukebox Credits
  577.     L22 * Jukebox Status
  578.     L23 - Track to Play / Calculator Display
  579.     L24 - Playback Rate (%)
  580.     L25 - Balance (%left/right, centre)
  581.     L26 - Mode (CD/Media)
  582.     L27 - Current Conversion Description
  583.     L28 - Currently Selected Timer
  584.     L29 * Current Timer Status (Stopped/Running)
  585.     L30 - Current Timer Value
  586.     L31-40 - Timer 1 to 10 Value
  587.     L41 - FM Frequency
  588.     L42 - FM Station Name
  589.     L43 - FM Preset Number
  590.     L44 * Reserved
  591.     L45 - Browser Document Title
  592.     L46 - Browser Status
  593.     L47 * Browser Download Status
  594.     L48 * Reserved
  595.     L49 * Reserved
  596.     L50-L59 - Browser URL 1 to 10
  597.     L60 - Web Radio Station Name
  598.     L61 - Web Radio Title
  599.     L62 - Web Radio Author
  600.     L63 - Web Radio Status (Stopped/Playing/Buffering etc)
  601.     L64 - Web Radio Buffer %
  602.     L65 - Web Radio Stream Rate (bps)
  603.     L66 - Web Radio Elapsed Time
  604.     L67-L68 * Reserved
  605.     L69 - Media Filetype (extension)
  606.     L70 - Lyric; Current Line
  607.     L71 - Lyric; Next Line
  608.     L72 - Lyric; Previous Line
  609.  
  610.  
  611. (S) Sliders / Graphic Indicator
  612. -------------------------------
  613.  
  614.  These are analog sliders that can be dragged to any position and
  615. Graphic Indicators whos width or height changes proportionally 
  616. in sync with another slider.
  617.  
  618. Format: Snn,x,y,w,h,x2,y2,w2,h2,tooltip
  619.  
  620.     S01 - Playback 1 position
  621.     S02 - Main Volume
  622.     S03 - Main Balance
  623.     S04 - Main Volume Indicator (graphic)
  624.     S05 * Playback Rate (Speed)
  625.     S06 - FM Frequency Dial
  626.     S07 * Playback 2 position
  627.  
  628. Notes:
  629.     - x,y are the position of the top left of the slider
  630.     - w,h determine the length of the slider. One MUST be zero!
  631.     - x2,y2,w2,h2 is the position of the slider image in the res bitmap.
  632.     - For graphics indicators w2 and h2 should be the same as w and h!
  633.  
  634.  
  635. (T) Text Input Field
  636. --------------------
  637.  
  638. Format: Tnn,x,y,w,h,r,g,b,pt,font,tooltip
  639.  
  640.     T01 - FM Station Description
  641.     T02 - Web Browser URL
  642.     T03 - Web Radio Description and URL (Desc @URL)
  643.  
  644.  
  645. (X) Other Elements
  646. ------------------
  647.  
  648. Format: Xnn,x,y,w,h,r1,g1,b1,r2,g2,b2,pt,font,tooltip
  649.  
  650.     X01 - Playlist 1 (PL1)
  651.     X02 - Notepad Area
  652.     X03 * Playlist 2 (PL2)
  653.     X04 - Lyrics Area
  654.     X05 - Calculator Conversion List
  655.     X06 - FM Preset List
  656.     X07 - URL Entry/History List
  657.     X08 - WebRadio Station List
  658.  
  659. Where:
  660.     - r1,g1,b1 are foreground colours
  661.     - r2,g2,b2 are background colours
  662.     - Note: Not all elements support all properties
  663.  
  664. Import skins
  665. ============
  666.  
  667.   Import skins are standard skins with additional commands to read bitmap
  668. files and assemble them into a format that Mimic understands. To indicate
  669. an import skin, line 4 of the skin definition file must start with a "*". 
  670.  
  671. The format is:  *,directory,filter,defaultfile
  672.  
  673.   - The directory is the default location for importing.
  674.   - The filter determines the type(s) of files to show.
  675.   - The defaultfile is the name of the main file.
  676.  
  677. There are three temporary bitmaps (0 to 2) that you can use:
  678.  
  679.   0 - Corresponds to the main bitmap
  680.   1 - Corresponds to the resource bitmap
  681.   2 - Temp bitmap. Used as the source for blitting to 0 or 1.
  682.  
  683. The following extra commands are available:
  684.  
  685.   * Rn,filename    - Read bitmap (0=main,1=resource,2=temp)
  686.   * ?c,label    - Conditional forward jump based on success of R cmd
  687.               Where c is: 0=false, 1=true
  688.   * :label        - Label (target of ? cmd)
  689.   * Wn,w,h        - Set width/height of bitmap (0 or 1)
  690.   * Zn,x,y,w,h,x2,y2    - Blits from temp to main or resource bitmap
  691.   * USE            - use bitmaps (copy 0 to main, 1 to resource)
  692.  
  693. The "R" command reads in a bitmap from the import path. You can use the "?"
  694. command to test if the read command was successful (1=yes,0=no). The command can be
  695. used to skip other commands/elements that depend on the bitmap existing (ie: blit
  696. commands and buttons). Example:
  697.  
  698.   R1,playlist.bmp    ;read the playlist bitmap file
  699.   ?0,skip        ;if it doesn't exist (0=false) jump to the line labelled "skip"
  700.   ...            ;do whatever you need here (ie: blit and define elements)
  701.   :skip        ;this is the label it jumps to if false
  702.   ...            ;continue normal processing
  703.  
  704. Note: The "?" command only jumps FORWARD. Labels do not have to be unique.
  705.  
  706.  
  707. How to make a non-rectangular skin (Window Regions)
  708. --------------------------------------------------------------
  709.  
  710. Method 1: Bitmap with "transparent" colour
  711.  
  712.     For the main bitmap pick a colour, then draw any area to become transparent
  713. in that color. Make sure you do not use that color anywhere in the bitmap that
  714. you want to be visible. In the skin use the letter "O" command to specify the
  715. transparent colour like this:
  716.  
  717.   O,r,g,b    - where r,g,b are the red/green/blue values of the transparent colour
  718.  
  719.  
  720. Method 2: Vector Region Co-ordinates
  721.  
  722.     You must define all the points that make up the bounding area
  723. (region) or areas. Points are connected by straight lines, so to make a
  724. circular section you will need to specify many points. If you specify
  725. multiple regions that overlap a "cutout" (or hole) will be produced.
  726.  
  727.   For Single Regions you must first specify the number of points in the
  728. region, like this:
  729.  
  730.     Nnn    - Where: nn is the total number of points
  731.  
  732.   For Multiple Regions you must specify the number of points in total,
  733. the number of regions and the number of points in EACH region, like this:
  734.  
  735.     Mnn,xx,R1,R2...Rxx
  736.  
  737.     Where:
  738.         - nn is the total number of points
  739.         - xx is the number of regions
  740.         - R1 to Rxx are the number of points in each region
  741.  
  742. Then, you must follow with the appropriate number of coordinate points in
  743. a list like this:
  744.  
  745.     Px,y
  746.     Px,y
  747.     Px,y
  748.  
  749.     etc...
  750.  
  751.   Coordinates are specified in pixels. If you list extra coordinates they
  752. will be ignored. If you list fewer coordinates the entire region(s) will
  753. be ignored!
  754.  
  755. Note: Your form should be bigger than the entire region otherwise points
  756. outside the form rectangle will not produce the desired effect (the edge
  757. will be straight where the form ends). This could also be a good thing if
  758. used properly (for example with the "toggle large" button).
  759.  
  760. In a Single region skin the last point will automatically be joined to the
  761. first point. In multiple region skins you must join them yourself in EACH
  762. region!
  763.  
  764.  
  765. Ending the skin
  766. ---------------
  767.  
  768.   The skin file must end with the single line: END
  769.  
  770.  
  771. Linking Skins
  772. -------------
  773.  
  774.   There may be a situation where you need to "link" skins together to
  775. achieve the desired look or functionality for your skin.
  776.  
  777.  Example 1: You want to have a simple skin with minimal controls but
  778. sometimes need the ability to use the other controls, which you want to
  779. be located to the right. You could use the "toggle large" button to make
  780. the window wider but what if you had the power button in the "title bar"
  781. at the top right of the normal window? The button would now be in the
  782. middle of the titlebar and wouldn't look right. What you need to do is
  783. create another bitmap with the power button in the new location, which
  784. means you need a new skin file with new coordinates. You can do this by
  785. creating a new skin and "linking" the first skin to the new skin, then
  786. the second skin links back to the first one.
  787.  
  788.  Example 2: You would like to have the album cover bitmap normally visible
  789. but then when you click on a button you want the cover to be replaced by
  790. the playlist and the playlist editing buttons (move up/down del etc).
  791. You need to create two skin files each linking to the other.
  792.  
  793.  Example 3: You have a really outrageous non-rectangular skin, and like
  794. example#1 you want to display some controls only occasionally. One skin
  795. can't have two different region outlines, so you must link two skins.
  796.  
  797.   To link skins use link buttons K01 to K10 in the skin file. These
  798. buttons are just like normal buttons with the addition of the name
  799. of the skin file added to the end of the parameter list. The complete
  800. name of the skin file must be specified, however the name does not have
  801. to end in ".skin" (this lets you "hide" the skin from the standard select
  802. skin requester box). In the main file you link to the second skin
  803. (ie with button K01) then in the second skin link back to the original
  804. skin (also with button K01). In this way pressing the button appears to
  805. cause a transformation of the skin. For complicated skins you may need to
  806. use more than one link button.
  807.  
  808.   
  809. Some final tips when creating a skin
  810. ------------------------------------
  811.  
  812. * Use a bitmap editor with a pixel coordinate info display. Have the skin
  813.   file open at the same time and use the mouse to help you locate the
  814.   points for your elements.
  815.  
  816. * By using the selection tool you can select a single "button" image to
  817.   find out it's width and height.
  818.  
  819. * Try to avoid moving the buttons around in the resource file. Remember,
  820.   large areas that don't contain buttons can be used for the digital
  821.   display digits.
  822.  
  823. * The resource bitmap can be larger than the main bitmap. You can increase
  824.   the width or hight of the resource bitmap to make room for the digital
  825.   display digits.
  826.  
  827. * If the main bitmap is large with lots of open areas you can also
  828.   decrease the size of the resource bitmap by rearranging the elements into
  829.   a small area. This will also reduce the memory requirement of the skin,
  830.   however it means you will need to specify the new coordinates of each
  831.   element (those that are moved only) in the skin file.
  832.  
  833.   Finally, if you think of a new or innovative way to improve the skin
  834. capabilities, don't hesitate to e-mail me.
  835.  
  836. Thanks!
  837. Steve.
  838.