Ignore:
Timestamp:
06/07/10 06:36:10 (3 years ago)
Author:
jeroen
Message:

rewritten playlists/mediaformats/options guides and fixed crosslinks, references to 'type' and pdf rendering.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fl5/doc/publishers/skinning.rst

    r1082 r1104  
    11.. _skinning: 
    22 
    3 --------------------------------- 
    4 XML-Image Skinning in JW Player 5 
    5 --------------------------------- 
    6  
    7 ======== 
    8 Overview 
    9 ======== 
     3PNG Skinning 
     4============ 
    105 
    116With skins, you can customize the face of your JW player. You can alter the design of any of the player’s four component parts—ControlBar, Display, Dock and Playlist, as well as skinning-enabled plugins.  Before JW Player 5, it was only possible to build skins using Flash.  Now, with JW Player 5, designers can build skins in their graphical editor of choice, and save the visual elements as bitmaps. This allows for rapid prototyping without the need to compile a swf file, and opens up skinning to designers who don't have Flash experience or software. 
    127 
    13 =============================== 
    14 Supported Graphics File Formats 
    15 =============================== 
    16  
    17 Bitmap File Formats 
    18 ------------------- 
     8 
     9Supported Graphics Formats 
     10-------------------------- 
    1911 
    2012JW Player 5 will accept most commonly used bitmap image formats including: 
     13 
    2114 * JPG 
    2215 * GIF (*Allows Transparency*) 
     
    2417 * PNG (24-Bit) (*Allows Transparency and Partial Transparency*) 
    2518  
    26 *Examples in this guide will use the PNG file format* 
    27   
     19Examples in this guide will use the PNG file format. It is the preferred format for creating slick skins due to its partial transparency support. 
     20 
     21JW Player 5.2 and up support the use of SWF assets in the XML skinning format.  However, we recommend that designers restrict themselves to the bitmap formats above, since skins created using SWF assets will not compatible with the JW Player for HTML5. 
     22 
    2823.. note:: Animated gif files are not supported. 
    2924 
    30 Other Formats 
    31 ------------- 
    32  
    33 JW Player 5.2 and up supports the use of SWF assets in the XML skinning format.  However, we recommend that designers restrict themselves to the bitmap formats above, since skins created using SWF assets will not compatible with the JW Player for HTML5. 
    34  
    35 ============= 
    36 Configuration 
    37 ============= 
     25 
     26 
    3827 
    3928The XML Document 
     
    4130 
    4231The XML (Extensible Markup Language) file, or document, contains all the settings for your skin—the color settings for text and dock elements; margins and font-sizes for the ControlBar; and paths to images for every element in the skin. 
    43          
    44 Anatomy of the JW Player Skin 
    45 ----------------------------- 
    4632 
    4733A player skin consists of its own settings and its components. Here is an example of an XML document before the elements have been defined: 
    4834 
    49 Basic XML Structure of a Skin 
    50 ............................. 
    51  
    52 .. code-block:: xml 
    53  
    54         <?xml version="1.0"?> 
    55         <skin version="1.0" name="SkinName" author="http://www.yoursite.com/"> 
    56                 <components> 
    57                         <component name="controlbar"> 
    58                                 <settings> 
    59                                         <setting name="..." value="..." /> 
    60                                 </setting> 
    61                                 <layout> 
    62                                         ... 
    63                                 </layout> 
    64                                 <element name="..." src="..." /> 
    65                                 <element name="..." src="..." /> 
    66                                 <element name="..." src="..." /> 
    67                         </component> 
    68                         <component name="display"> 
    69                                 <settings> 
    70                                         <setting name="..." value="..." /> 
    71                                 </setting> 
    72                                 <element name="..." src="..." /> 
    73                                 <element name="..." src="..." /> 
    74                                 <element name="..." src="..." /> 
    75                         </component> 
    76                         <component name="dock"> 
    77                                 <settings> 
    78                                         <setting name="..." value="..." /> 
    79                                 </setting> 
    80                                 <element name="..." src="..." /> 
    81                                 <element name="..." src="..." /> 
    82                                 <element name="..." src="..." /> 
    83                         </component> 
    84                         <component name="playlist"> 
    85                                 <settings> 
    86                                         <setting name="..." value="..." /> 
    87                                 </setting> 
    88                                 <element name="..." src="..." /> 
    89                                 <element name="..." src="..." /> 
    90                                 <element name="..." src="..." /> 
    91                         </component> 
    92                 </components> 
    93         </skin> 
    94  
    95  
    96 Beginning Your XML Skin Document 
    97 ................................ 
     35Basic XML Structure 
     36^^^^^^^^^^^^^^^^^^^ 
     37 
     38.. code-block:: xml 
     39 
     40   <?xml version="1.0"?> 
     41   <skin version="1.0" name="SkinName" author="http://www.yoursite.com/"> 
     42      <components> 
     43         <component name="controlbar"> 
     44            <settings> 
     45               <setting name="..." value="..." /> 
     46            </setting> 
     47            <layout> 
     48               ... 
     49            </layout> 
     50            <element name="..." src="..." /> 
     51            <element name="..." src="..." /> 
     52            <element name="..." src="..." /> 
     53         </component> 
     54         <component name="display"> 
     55            <settings> 
     56               <setting name="..." value="..." /> 
     57            </setting> 
     58            <element name="..." src="..." /> 
     59            <element name="..." src="..." /> 
     60            <element name="..." src="..." /> 
     61         </component> 
     62         <component name="dock"> 
     63            <settings> 
     64               <setting name="..." value="..." /> 
     65            </setting> 
     66            <element name="..." src="..." /> 
     67            <element name="..." src="..." /> 
     68            <element name="..." src="..." /> 
     69         </component> 
     70         <component name="playlist"> 
     71            <settings> 
     72               <setting name="..." value="..." /> 
     73            </setting> 
     74            <element name="..." src="..." /> 
     75            <element name="..." src="..." /> 
     76            <element name="..." src="..." /> 
     77         </component> 
     78      </components> 
     79   </skin> 
     80 
     81 
     82Beginning Your XML Skin 
     83^^^^^^^^^^^^^^^^^^^^^^^ 
    9884 
    9985The opening declaration of your XML document declares that it *IS* an XML document, and establishes that this is a JW Player skin.  Inside the skin element are two attributes:  *name* and *author*. 
     
    10187.. code-block:: xml 
    10288 
    103         <?xml version="1.0"?> 
    104         <skin version="1.0" name="SkinName" author="http://www.yoursite.com/"> 
    105                  
     89   <?xml version="1.0"?> 
     90   <skin version="1.0" name="SkinName" author="http://www.yoursite.com/"> 
     91       
    10692You can replace these with your skin's name and your website, or your own name if you'd prefer not to have your URL in the *author* attribute. 
    10793 
    108 XML and Linking to Images 
    109 ......................... 
     94Linking to Images 
     95^^^^^^^^^^^^^^^^^ 
    11096 
    11197Images must reside in a subdirectory corresponding to their parent container of the skin's folder.  For instance, Controlbar images should reside in the *controlbar* subdirectory. 
    11298 
    113 ========== 
    114 Components 
    115 ========== 
     99Component sections 
     100^^^^^^^^^^^^^^^^^^ 
    116101 
    117102The player's controls are broken into four components.  Each of these is defined in a **<component>** tag, and are all placed inside of the skin's **<components>** block.  The player controls are: 
     
    125110 
    126111.. image:: ../images/skinning/Components.png 
    127         :alt: Components layout 
    128   
     112   :alt: Components layout 
     113 
     114 
     115 
     116 
    129117The Controlbar 
    130118-------------- 
     
    132120The ControlBar component is used more than any of the other JW Player skin components. It controls video playback, shows you your point in time, toggles to full-screen mode and allows you to control the volume. 
    133121 
    134 Controlbar XML Syntax 
    135 ..................... 
    136  
    137 .. code-block:: xml 
    138  
    139         <component name="controlbar"> 
    140                 <settings> 
    141                         <setting name="backgroundcolor" value="0x000000"/> 
    142                         <setting name="margin" value="10" /> 
    143                         <setting name="font" value="_sans" /> 
    144                         <setting name="fontsize" value="10" /> 
    145                         <setting name="fontcolor" value="0x000000" /> 
    146                         <setting name="fontstyle" value="normal" /> 
    147                         <setting name="fontweight" value="normal" /> 
    148                         <setting name="buttoncolor" value="0xFFFFFF" /> 
    149                 </settings> 
    150                 <layout> 
    151                         ... 
    152                 </layout> 
    153                 <elements> 
    154                         <element name="background" src="file.png" /> 
    155                         <element name="capLeft" src="file.png" /> 
    156                         <element name="capRight" src="file.png" /> 
    157                         <element name="divider" src="file.png" /> 
    158                                  
    159                         <element name="playButton" src="file.png" /> 
    160                         <element name="playButtonOver" src="file.png" />         
    161                         <element name="pauseButton" src="file.png" /> 
    162                         <element name="pauseButtonOver" src="file.png" /> 
    163                                  
    164                         <element name="prevButton" src="file.png" /> 
    165                         <element name="prevButtonOver" src="file.png" /> 
    166                         <element name="nextButton" src="file.png" /> 
    167                         <element name="nextButtonOver" src="file.png" /> 
    168                                  
    169                         <element name="stopButton" src="file.png" /> 
    170                         <element name="stopButtonOver" src="file.png" /> 
    171                                  
    172                         <element name="timeSliderRail" src="file.png" /> 
    173                         <element name="timeSliderBuffer" src="file.png" /> 
    174                         <element name="timeSliderProgress" src="file.png" /> 
    175                         <element name="timeSliderThumb" src="file.png" /> 
    176                                  
    177                         <element name="fullscreenButton" src="file.png" /> 
    178                         <element name="fullscreenButtonOver" src="file.png" /> 
    179                         <element name="normalscreenButton" src="file.png" /> 
    180                         <element name="normalscreenButtonOver" src="file.png" /> 
    181                                  
    182                         <element name="muteButton" src="file.png" /> 
    183                         <element name="muteButtonOver" src="file.png" /> 
    184                         <element name="unmuteButton" src="file.png" /> 
    185                         <element name="unmuteButtonOver" src="file.png" /> 
    186                                  
    187                         <element name="volumeSliderRail" src="file.png" /> 
    188                         <element name="volumeSliderBuffer" src="file.png" /> 
    189                         <element name="volumeSliderProgress" src="file.png" /> 
    190                          
    191                         <element name="blankButton" src="file.png" /> 
    192                         <element name="blankButtonOver" src="file.png" /> 
    193                 </elements> 
    194         </component> 
    195  
    196  
    197 Controlbar Settings 
    198 ................... 
     122XML Syntax 
     123^^^^^^^^^^ 
     124 
     125.. code-block:: xml 
     126 
     127   <component name="controlbar"> 
     128      <settings> 
     129         <setting name="backgroundcolor" value="0x000000"/> 
     130         <setting name="margin" value="10" /> 
     131         <setting name="font" value="_sans" /> 
     132         <setting name="fontsize" value="10" /> 
     133         <setting name="fontcolor" value="0x000000" /> 
     134         <setting name="fontstyle" value="normal" /> 
     135         <setting name="fontweight" value="normal" /> 
     136         <setting name="buttoncolor" value="0xFFFFFF" /> 
     137      </settings> 
     138      <layout> 
     139         ... 
     140      </layout> 
     141      <elements> 
     142         <element name="background" src="file.png" /> 
     143         <element name="capLeft" src="file.png" /> 
     144         <element name="capRight" src="file.png" /> 
     145         <element name="divider" src="file.png" /> 
     146             
     147         <element name="playButton" src="file.png" /> 
     148         <element name="playButtonOver" src="file.png" />    
     149         <element name="pauseButton" src="file.png" /> 
     150         <element name="pauseButtonOver" src="file.png" /> 
     151             
     152         <element name="prevButton" src="file.png" /> 
     153         <element name="prevButtonOver" src="file.png" /> 
     154         <element name="nextButton" src="file.png" /> 
     155         <element name="nextButtonOver" src="file.png" /> 
     156             
     157         <element name="stopButton" src="file.png" /> 
     158         <element name="stopButtonOver" src="file.png" /> 
     159             
     160         <element name="timeSliderRail" src="file.png" /> 
     161         <element name="timeSliderBuffer" src="file.png" /> 
     162         <element name="timeSliderProgress" src="file.png" /> 
     163         <element name="timeSliderThumb" src="file.png" /> 
     164             
     165         <element name="fullscreenButton" src="file.png" /> 
     166         <element name="fullscreenButtonOver" src="file.png" /> 
     167         <element name="normalscreenButton" src="file.png" /> 
     168         <element name="normalscreenButtonOver" src="file.png" /> 
     169             
     170         <element name="muteButton" src="file.png" /> 
     171         <element name="muteButtonOver" src="file.png" /> 
     172         <element name="unmuteButton" src="file.png" /> 
     173         <element name="unmuteButtonOver" src="file.png" /> 
     174             
     175         <element name="volumeSliderRail" src="file.png" /> 
     176         <element name="volumeSliderBuffer" src="file.png" /> 
     177         <element name="volumeSliderProgress" src="file.png" /> 
     178          
     179         <element name="blankButton" src="file.png" /> 
     180         <element name="blankButtonOver" src="file.png" /> 
     181      </elements> 
     182   </component> 
     183 
     184 
     185Settings 
     186^^^^^^^^ 
    199187 
    200188In the example above, you will notice the bit of code containing the settings element for the ControlBar component. It looks like this: 
     
    203191.. code-block:: xml 
    204192 
    205         <settings> 
    206                 <setting name="backgroundcolor" value="0x000000"/> 
    207                 <setting name="margin" value="10" /> 
    208                 <setting name="font" value="_sans" /> 
    209                 <setting name="fontsize" value="10" /> 
    210                 <setting name="fontcolor" value="0x000000" /> 
    211                 <setting name="fontstyle" value="normal" /> 
    212                 <setting name="fontweight" value="normal" /> 
    213                 <setting name="buttoncolor" value="0xFFFFFF" /> 
    214         </settings> 
     193   <settings> 
     194      <setting name="backgroundcolor" value="0x000000"/> 
     195      <setting name="margin" value="10" /> 
     196      <setting name="font" value="_sans" /> 
     197      <setting name="fontsize" value="10" /> 
     198      <setting name="fontcolor" value="0x000000" /> 
     199      <setting name="fontstyle" value="normal" /> 
     200      <setting name="fontweight" value="normal" /> 
     201      <setting name="buttoncolor" value="0xFFFFFF" /> 
     202   </settings> 
    215203 
    216204Here is a list of the Controlbar settings, along with their default values: 
     
    251239 
    252240 
    253 The Background Element 
    254 ...................... 
     241Background 
     242^^^^^^^^^^ 
    255243 
    256244**background** is a graphic which stretches horizontally to fit the width of the Controlbar.  **capLeft** and **capRight** are placed to the left and right of the background. 
     
    258246 
    259247Caps and Dividers 
    260 ................. 
     248^^^^^^^^^^^^^^^^^ 
    261249 
    262250The Controlbar has a few elements which allow you to add space between elements.  They are non-functioning bitmaps meant to give space to the right and left edges of the Controlbar. 
     
    264252.. describe:: capLeft 
    265253    
    266         The left cap graphic to your controlbar skin 
     254   The left cap graphic to your controlbar skin 
    267255    
    268256.. describe:: capRight 
    269257 
    270         The right cap graphic to your controlbar skin 
    271          
     258   The right cap graphic to your controlbar skin 
     259    
    272260.. describe:: divider  
    273261 
    274         A separator element between buttons and sliders.  *(this same element can appear multiple times)* 
     262   A separator element between buttons and sliders.  *(this same element can appear multiple times)* 
    275263 
    276264.. note:: JW Player 5.1 and below will fail to load without the **capLeft**, **capRight** and **volumeSlider** elements in the XML File.  This issue was resolved in version 5.2. 
    277          
     265     
    278266Buttons 
    279 ....... 
     267^^^^^^^ 
    280268 
    281269Buttons have two states.  The **button** state is visible when the mouse is not hovering over the button.  The **buttonOver** state -- which should have the same dimensions as **button** -- is shown when the user hovers the mouse above the button. 
     
    295283  
    296284Toggle Buttons 
    297 ++++++++++++++ 
     285^^^^^^^^^^^^^^ 
    298286 
    299287Certain buttons replace each other depending on the state of the JW Player. For instance, when a video is playing, the **playButton** is replaced by the **pauseButton** element. 
     
    306294 
    307295The TimeSlider 
    308 .............. 
     296^^^^^^^^^^^^^^ 
    309297 
    310298The **timeSlider** element is a unique element which is really several elements stacked on top of each other.  Of those elements, three of them automatically scale to a width based on the free space in the player.  Those elements are:  
     
    312300.. describe:: timeSliderRail 
    313301 
    314         the *background* graphic which serves as the frame for the timeSlider 
     302   the *background* graphic which serves as the frame for the timeSlider 
    315303 
    316304.. describe:: timeSliderBuffer 
    317305 
    318         the file's buffer indicator 
     306   the file's buffer indicator 
    319307    
    320308.. describe:: timeSliderProgress 
    321309 
    322         the file's progress indicator 
     310   the file's progress indicator 
    323311 
    324312Additional **timeSlider** elements: 
     
    326314.. describe:: timeSliderThumb 
    327315 
    328         serves as a handle which can be dragged across the progress bar to allow the user to specify a seek position. 
    329          
     316   serves as a handle which can be dragged across the progress bar to allow the user to specify a seek position. 
     317    
    330318.. describe:: timeSliderCapLeft 
    331319 
    332         Left-hand end-cap, placed to the left of the **timeSliderRail** element. 
     320   Left-hand end-cap, placed to the left of the **timeSliderRail** element. 
    333321 
    334322.. describe:: timeSliderCapRight 
    335323 
    336         Right-hand end-cap, placed to the right of the **timeSliderRail** element. 
     324   Right-hand end-cap, placed to the right of the **timeSliderRail** element. 
    337325 
    338326.. image:: ../images/skinning/timeSlider.png 
    339         :alt: TimeSlider Screenshot 
     327   :alt: TimeSlider Screenshot 
    340328 
    341329 
     
    344332 
    345333The VolumeSlider 
    346 ................ 
     334^^^^^^^^^^^^^^^^ 
    347335 
    348336The **volumeSlider** element is quite similar to the **timeSlider**, except that it does not scale automatically.  It will be as large as graphics you produce.   
     
    350338.. describe:: volumeSliderRail 
    351339 
    352         the **background** graphic which serves as the frame for the volumeSlider 
     340   the **background** graphic which serves as the frame for the volumeSlider 
    353341 
    354342.. describe:: volumeSliderBuffer 
    355343 
    356         this shows the potential volume the slider can have. 
     344   this shows the potential volume the slider can have. 
    357345 
    358346.. describe:: volumeSliderProgress 
    359347 
    360         this is shows the current level at which the volumeSlider is set. 
     348   this is shows the current level at which the volumeSlider is set. 
    361349 
    362350.. describe:: volumeSliderThumb 
    363351 
    364         the handle to slide the volume, also indicates the volume level. 
     352   the handle to slide the volume, also indicates the volume level. 
    365353 
    366354.. describe:: volumeSliderCapLeft 
    367355 
    368         Left-hand end-cap, placed to the left of the **volumeSliderRail** element. 
     356   Left-hand end-cap, placed to the left of the **volumeSliderRail** element. 
    369357 
    370358.. describe:: volumeSliderCapRight 
    371359 
    372         Right-hand end-cap, placed to the right of the **volumeSliderRail** element. 
    373  
    374  
    375         the handle to slide the volume, also indicates the volume level. 
     360   Right-hand end-cap, placed to the right of the **volumeSliderRail** element. 
     361 
     362 
     363   the handle to slide the volume, also indicates the volume level. 
    376364 
    377365.. image:: ../images/skinning/volumeSlider.png 
    378         :alt: VolumeSlider Screenshot 
     366   :alt: VolumeSlider Screenshot 
    379367 
    380368 
     
    383371   
    384372BlankButton 
    385 ........... 
     373^^^^^^^^^^^ 
    386374 
    387375The **blankButton** element is used when plugins insert additional buttons into the Controlbar.  This element should simply be a button background; the foreground element will be added by the plugins. 
    388376 
    389377Text Fields 
    390 ........... 
     378^^^^^^^^^^^ 
    391379 
    392380Two text fields can be laid out in the controlbar: 
     
    394382.. describe:: elapsed 
    395383 
    396         Amount of time elapsed since the start of the video (format: mm:ss) 
    397          
     384   Amount of time elapsed since the start of the video (format: mm:ss) 
     385    
    398386.. describe:: duration 
    399387 
    400         Duration of the currently playing video (format: mm:ss) 
     388   Duration of the currently playing video (format: mm:ss) 
     389 
     390 
    401391 
    402392 
    403393Controlbar Layout 
    404 ................. 
     394----------------- 
    405395 
    406396The controlbar's components (*buttons*, *text fields*, *sliders* and *dividers*) are laid out according to a block of XML code in the Controlbar section. 
    407397 
    408398Layout XML Syntax 
    409 +++++++++++++++++ 
     399^^^^^^^^^^^^^^^^^ 
    410400 
    411401Inside the controlbar's **<component>** block, you can insert an optional **<layout>** block which allows you to override the default controlbar layout. 
    412402 
    413403.. code-block:: xml 
    414          
    415         <layout> 
    416                 <group position="left"> 
    417                         <button name="play" /> 
    418                         <divider /> 
    419                         <button name="prev" /> 
    420                         <divider /> 
    421                         <button name="next" /> 
    422                         <divider /> 
    423                         <button name="stop" /> 
    424                         <divider /> 
    425                         <text name="duration" /> 
    426                         <divider /> 
    427                 </group> 
    428                 <group position="center"> 
    429                         <slider name="time" />                                   
    430                 </group> 
    431                 <group position="right"> 
    432                         <text name="elapsed" /> 
    433                         <divider /> 
    434                         <button name="blank" /> 
    435                         <divider /> 
    436                         <button name="mute" /> 
    437                         <slider name="volume" /> 
    438                         <divider /> 
    439                         <button name="fullscreen" /> 
    440                 </group> 
    441         </layout> 
     404    
     405   <layout> 
     406      <group position="left"> 
     407         <button name="play" /> 
     408         <divider /> 
     409         <button name="prev" /> 
     410         <divider /> 
     411         <button name="next" /> 
     412         <divider /> 
     413         <button name="stop" /> 
     414         <divider /> 
     415         <text name="duration" /> 
     416         <divider /> 
     417      </group> 
     418      <group position="center"> 
     419         <slider name="time" />                
     420      </group> 
     421      <group position="right"> 
     422         <text name="elapsed" /> 
     423         <divider /> 
     424         <button name="blank" /> 
     425         <divider /> 
     426         <button name="mute" /> 
     427         <slider name="volume" /> 
     428         <divider /> 
     429         <button name="fullscreen" /> 
     430      </group> 
     431   </layout> 
    442432 
    443433Layout Groups 
    444 +++++++++++++ 
     434^^^^^^^^^^^^^ 
    445435 
    446436The Controlbar's layout is made up of three groupings, *left*, *right* and *center*.  
    447437 
    448 * Left: 
    449   
    450         Elements placed in the **<group position="left">** tag will be placed left to right and be left-aligned. 
    451  
    452 * Center: 
    453   
    454         Elements placed in the **<group position="center">** tag will be placed between the *left* and *right* groups.  Furthermore, if the **timeSlider** element is placed here, it will be stretched to any space not assigned to other elements. 
    455  
    456 * Right: 
    457   
    458         Elements placed in the **<group position="right">** tag will be placed left to right and be right-aligned. 
     438* **Left**:Elements placed in the **<group position="left">** tag will be placed left to right and be left-aligned. 
     439* **Center**: Elements placed in the **<group position="center">** tag will be placed between the *left* and *right* groups.  Furthermore, if the **timeSlider** element is placed here, it will be stretched to any space not assigned to other elements. 
     440* **Right**: Elements placed in the **<group position="right">** tag will be placed left to right and be right-aligned. 
    459441 
    460442Layout Elements 
    461 +++++++++++++++ 
     443^^^^^^^^^^^^^^^ 
    462444 
    463445The **<group>** tag can contain the following elements: 
     
    465447.. describe:: <button name="..." /> 
    466448 
    467         Used to place the Controlbar button elements described above.  For example, the **play** button would appear as **<button name="play" />** 
     449   Used to place the Controlbar button elements described above.  For example, the **play** button would appear as **<button name="play" />** 
    468450 
    469451.. describe:: <text name="..." /> 
    470452 
    471         Used to place the Controlbar text elements, **elapsed** and **duration**. 
     453   Used to place the Controlbar text elements, **elapsed** and **duration**. 
    472454 
    473455.. describe:: <slider name="..." /> 
    474456 
    475         Used to place the Controlbar slider elements, **timeSlider** and **volumeSlider**. 
     457   Used to place the Controlbar slider elements, **timeSlider** and **volumeSlider**. 
    476458 
    477459.. describe:: <divider /> 
    478460 
    479         Used to place the **divider** element.  This tag can define two optional attributes (only one attribute may be used at a time): 
    480          
     461   Used to place the **divider** element.  This tag can define two optional attributes (only one attribute may be used at a time): 
     462    
    481463* *element*: Allows an arbitrary element to be placed between other elements.  If no *element* or *width* attribute is set, the default **divider** graphic is used.  Example: 
    482464 
    483465.. code-block:: xml 
    484466 
    485                         <divider element="alternate_divider" /> 
     467         <divider element="alternate_divider" /> 
    486468* *width*: If this attribute is set, the specified number of pixels will be placed into the layout.  No graphical element will be used; the controlbar's **background** element will be visible.  Example: 
    487          
    488 .. code-block:: xml 
    489  
    490                         <divider width="10" /> 
     469    
     470.. code-block:: xml 
     471 
     472         <divider width="10" /> 
    491473 
    492474 
    493475Controlbar Composition 
    494 ++++++++++++++++++++++ 
     476^^^^^^^^^^^^^^^^^^^^^^ 
    495477 
    496478.. image:: ../images/skinning/controlBar.png 
    497         :alt: Controlbar Screenshot 
     479   :alt: Controlbar Screenshot 
    498480 
    499481 
     
    524506 * volumeSliderCapRight 
    525507 * capRight 
    526          
    527  
    528  
    529 Display Icons 
    530 ------------- 
    531  
    532 Display Icons are the buttons you see in the middle of the player. You see the familiar triangular **play** icon before the movie is playing, and also when you pause.  When the user has muted the player, the **Mute** icon appears.  Display Icons come in two parts: a global background element to every icon, and the icon itself, which is programmatically centered over the background layer.  All images must reside in the *display* subdirectory of the skin. 
     508     
     509 
     510 
     511The Display 
     512----------- 
     513 
     514The display largely consists of the buttons you see in the middle of the player. You see the familiar triangular **play** icon before the movie is playing, and also when you pause.  When the user has muted the player, the **Mute** icon appears.  Display Icons come in two parts: a global background element to every icon, and the icon itself, which is programmatically centered over the background layer.  All images must reside in the *display* subdirectory of the skin. 
    533515 
    534516.. image:: ../images/skinning/Display.png 
    535         :alt: Display Screenshot 
     517   :alt: Display Screenshot 
    536518 
    537519.. note:: By default, the **bufferIcon** will rotate clockwise while buffering. 
    538520 
    539521Display XML Syntax 
    540 .................. 
    541  
    542 .. code-block:: xml 
    543  
    544         <component name="display"> 
    545                 <settings> 
    546                         <settings> 
    547                                 <setting name="backgroundcolor" value="0x000000" /> 
    548                                 <setting name="bufferrotation" value="15" /> 
    549                                 <setting name="bufferinterval" value="100" /> 
    550                         </settings> 
    551                 </settings> 
    552                 <elements> 
    553                         <element name="background" src="file.png" /> 
    554                         <element name="playIcon" src="file.png" /> 
    555                         <element name="muteIcon" src="file.png" /> 
    556                         <element name="bufferIcon" src="file.png" /> 
    557                 </elements> 
    558         </component> 
     522^^^^^^^^^^^^^^^^^^ 
     523 
     524.. code-block:: xml 
     525 
     526   <component name="display"> 
     527      <settings> 
     528         <settings> 
     529            <setting name="backgroundcolor" value="0x000000" /> 
     530            <setting name="bufferrotation" value="15" /> 
     531            <setting name="bufferinterval" value="100" /> 
     532         </settings> 
     533      </settings> 
     534      <elements> 
     535         <element name="background" src="file.png" /> 
     536         <element name="playIcon" src="file.png" /> 
     537         <element name="muteIcon" src="file.png" /> 
     538         <element name="bufferIcon" src="file.png" /> 
     539      </elements> 
     540   </component> 
    559541 
    560542Display Settings 
    561 ................ 
     543^^^^^^^^^^^^^^^^ 
    562544 
    563545Here is a list of Display settings, along with their default values: 
     
    577559 
    578560 
    579 Dock Icons 
    580 ---------- 
     561The Dock 
     562-------- 
    581563 
    582564Dock Icons elements sit at the top right corner of your player and can be both informative or functional.  For instance, if you've installed the HD plugin, once you've toggled High Definition Playback to ON, a small HD Dock Icon will appear in top corner of your player, letting you know you're watching in HD.  The Dock Icon only has one element: 
     
    586568 
    587569.. image:: ../images/skinning/Dock.png 
    588         :alt: Dock Screenshot 
     570   :alt: Dock Screenshot 
    589571 
    590572  
    591573Dock XML Syntax 
    592 ............... 
    593  
    594 .. code-block:: xml 
    595  
    596         <component name="dock"> 
    597                 <settings> 
    598                         <setting name="fontcolor" value="0x000000" /> 
    599                 </settings> 
    600                 <elements> 
    601                         <element name="button" src="file.png" /> 
    602                         <element name="buttonOver" src="file.png" /> 
    603                 </elements> 
    604         </component> 
     574^^^^^^^^^^^^^^^ 
     575 
     576.. code-block:: xml 
     577 
     578   <component name="dock"> 
     579      <settings> 
     580         <setting name="fontcolor" value="0x000000" /> 
     581      </settings> 
     582      <elements> 
     583         <element name="button" src="file.png" /> 
     584         <element name="buttonOver" src="file.png" /> 
     585      </elements> 
     586   </component> 
    605587 
    606588 
    607589Dock Settings 
    608 ............. 
     590^^^^^^^^^^^^^ 
    609591 
    610592Here is a list of the settings that can be placed in the dock's **<settings>** block, along with their default values: 
     
    615597 
    616598 
    617 Playlist 
    618 -------- 
     599The Playlist 
     600------------ 
    619601 
    620602There are two main Playlist skin elements; Playlist Items, and the Playlist Slider.  Item graphics scale horizontally and are placed behind the description/thumbnail of videos in your playlist.  The slider is a vertical scrollbar rail and handle (thumb), with optional top and bottom endcaps.  The *background* element serves as the default background of the playlist if there are fewer elements than the height of the playlist. 
     
    622604 
    623605.. image:: ../images/skinning/Playlist.png 
    624         :alt: Playlist Screenshot 
     606   :alt: Playlist Screenshot 
    625607 
    626608The following Playlist elements are available: 
     
    628610.. describe:: background 
    629611 
    630         Stretched behind the playlist items 
    631          
     612   Stretched behind the playlist items 
     613    
    632614.. describe:: item 
    633615 
    634         Background graphic for each playlist item.  Stretch to the width of the playlist, minus the slider width (if necessary). 
     616   Background graphic for each playlist item.  Stretch to the width of the playlist, minus the slider width (if necessary). 
    635617 
    636618.. describe:: itemOver 
    637619 
    638         Over state for **item**.  Replaces **item** whenever the user mouses over. 
     620   Over state for **item**.  Replaces **item** whenever the user mouses over. 
    639621 
    640622.. describe:: itemImage 
    641623 
    642         Image placeholder.  This element is visible when the playlist item does not have an image associated with it.  If the playlist item image is present, **itemImage**'s shape serves as a mask around the playlist item image.  If the playlist item image has any transparency, **itemImage** will be visible behind it. 
    643          
     624   Image placeholder.  This element is visible when the playlist item does not have an image associated with it.  If the playlist item image is present, **itemImage**'s shape serves as a mask around the playlist item image.  If the playlist item image has any transparency, **itemImage** will be visible behind it. 
     625    
    644626.. describe:: itemActive 
    645627 
    646         Active state for **item**.  Replaces **item** whenever the corresponding playlist item is the currently playing/loaded playlist item. 
    647          
     628   Active state for **item**.  Replaces **item** whenever the corresponding playlist item is the currently playing/loaded playlist item. 
     629    
    648630.. describe:: sliderRail 
    649631 
    650         Background of the vertical slider.  When the playlist's slider is visible, **sliderRail** is stretched to the height of the playlist, minus the height of any end caps. 
    651          
     632   Background of the vertical slider.  When the playlist's slider is visible, **sliderRail** is stretched to the height of the playlist, minus the height of any end caps. 
     633    
    652634.. describe:: sliderThumb 
    653635 
    654         Draggable thumb for the vertical slider.  This element is stretched vertically, and is proportional to the visible area of the playlist versus its total size.  For example, if 50% of the playlist items are currently visible in the playlist, the thumb will be 50% of the height of the playlist. 
    655          
     636   Draggable thumb for the vertical slider.  This element is stretched vertically, and is proportional to the visible area of the playlist versus its total size.  For example, if 50% of the playlist items are currently visible in the playlist, the thumb will be 50% of the height of the playlist. 
     637    
    656638.. describe:: sliderCapTop 
    657639 
    658         Top end cap for the playlist slider.  Placed above **sliderRail**. 
     640   Top end cap for the playlist slider.  Placed above **sliderRail**. 
    659641 
    660642.. describe:: sliderCapBottom 
    661643 
    662         Bottom end cap for the playlist slider.  Placed below **sliderRail**. 
    663  
     644   Bottom end cap for the playlist slider.  Placed below **sliderRail**. 
    664645 
    665646Playlist XML Syntax 
    666 ................... 
    667  
    668  
    669 .. code-block:: xml 
    670  
    671         <component name="playlist"> 
    672                 <settings> 
    673                         <setting name="fontcolor" value="0x999999" /> 
    674                         <setting name="overcolor" value="0xFFFFFF" /> 
    675                         <setting name="activecolor" value="0x990000" /> 
    676                         <setting name="backgroundcolor" value="0x000000"/> 
    677                         <setting name="font" value="_sans" /> 
    678                         <setting name="fontsize" value="12" /> 
    679                         <setting name="fontweight" value="normal" /> 
    680                         <setting name="fontstyle" value="normal" /> 
    681                 </settings> 
    682                 <elements> 
    683                         <element name="background" src="background.png" /> 
    684                         <element name="item" src="item.png" /> 
    685                         <element name="itemOver" src="itemOver.png" /> 
    686                         <element name="itemActive" src="itemActive.png" /> 
    687                         <element name="itemImage" src="itemImage.png" /> 
    688                         <element name="sliderRail" src="sliderRail.png" /> 
    689                         <element name="sliderThumb" src="sliderThumb.png" /> 
    690                         <element name="sliderCapTop" src="sliderCapTop.png" /> 
    691                         <element name="sliderCapBottom" src="sliderCapBottom.png" /> 
    692                 </elements> 
    693         </component> 
     647^^^^^^^^^^^^^^^^^^^ 
     648 
     649.. code-block:: xml 
     650 
     651   <component name="playlist"> 
     652      <settings> 
     653         <setting name="fontcolor" value="0x999999" /> 
     654         <setting name="overcolor" value="0xFFFFFF" /> 
     655         <setting name="activecolor" value="0x990000" /> 
     656         <setting name="backgroundcolor" value="0x000000"/> 
     657         <setting name="font" value="_sans" /> 
     658         <setting name="fontsize" value="12" /> 
     659         <setting name="fontweight" value="normal" /> 
     660         <setting name="fontstyle" value="normal" /> 
     661      </settings> 
     662      <elements> 
     663         <element name="background" src="background.png" /> 
     664         <element name="item" src="item.png" /> 
     665         <element name="itemOver" src="itemOver.png" /> 
     666         <element name="itemActive" src="itemActive.png" /> 
     667         <element name="itemImage" src="itemImage.png" /> 
     668         <element name="sliderRail" src="sliderRail.png" /> 
     669         <element name="sliderThumb" src="sliderThumb.png" /> 
     670         <element name="sliderCapTop" src="sliderCapTop.png" /> 
     671         <element name="sliderCapBottom" src="sliderCapBottom.png" /> 
     672      </elements> 
     673   </component> 
    694674 
    695675Playlist Settings 
    696 ................. 
     676^^^^^^^^^^^^^^^^^ 
    697677 
    698678Here is a list of the settings that can be placed in the dock's **<settings>** block, along with their default values: 
     
    740720.. code-block:: xml 
    741721 
    742         <component name="hd"> 
    743                 <elements> 
    744                         <element name="dockIcon" src="dockIcon.png" /> 
    745                         <element name="controlbarIcon" src="controlbarIcon.png" /> 
    746                 </elements> 
    747         </component> 
    748  
    749  
    750  
    751 =================== 
     722   <component name="hd"> 
     723      <elements> 
     724         <element name="dockIcon" src="dockIcon.png" /> 
     725         <element name="controlbarIcon" src="controlbarIcon.png" /> 
     726      </elements> 
     727   </component> 
     728 
     729 
     730 
     731 
    752732Packaging your Skin 
    753 =================== 
     733------------------- 
    754734 
    755735Packaging your skin is as easy as zipping the skin XML file along with the subfolders containing the component graphics. 
    756736 
    757737Zip File Structure 
    758 ------------------ 
     738^^^^^^^^^^^^^^^^^^ 
    759739 
    760740The XML file should named the same as the skin itself.  For example, a skin called *myskin* would contain an XML file called *myskin.xml*, and would be zipped into *myskin.zip*.  All images belong in their corresponding folders and reside on the same level as the XML file. 
     
    766746 * playlist (folder with images) 
    767747 
    768 Once you have zipped everything up, see :ref:`usingskins` for instructions on embedding your skin into the JW Player. 
    769  
    770  
    771 ============= 
    772 Example Skins 
    773 ============= 
    774  
    775 `Download Example Skin: Beelden <http://developer.longtailvideo.com/trac/changeset/643/skins/beelden?old_path=%2F&format=zip>`_ - Example Skin Source (Files, XML, Photoshop Originals) 
     748Once you have zipped everything up, using a skin is a matter of: 
     749 
     750* Uploading the skin to your server 
     751* Setting the :ref:`skin option <options>` in your player's :ref:`embed code <embedding>` to the URL of the ZIP file. 
     752 
     753Example skins 
     754^^^^^^^^^^^^^ 
     755 
     756A number of example skins can be freely downloaded from our `addons repository <http://www.longtailvideo.com/addons/>`_. Feel free to tweak any of these skins to make them fit your site design. 
Note: See TracChangeset for help on using the changeset viewer.