Mercurial > mplayer.hg
annotate DOCS/xml/en/skin.xml @ 23588:a44fc12de744
Nico claims to never have had any problems with X11 compilation on Mandrake.
author | diego |
---|---|
date | Sat, 23 Jun 2007 08:22:10 +0000 |
parents | f551403d82a9 |
children | b89c59df8ba6 |
rev | line source |
---|---|
20535 | 1 <?xml version="1.0" encoding="utf-8"?> |
10913
49b1a67e7381
Add revision keyword to english xml files, to ease translation synchronization
lumag
parents:
10875
diff
changeset
|
2 <!-- $Revision$ --> |
9675 | 3 <appendix id="skin"> |
11540 | 4 <title><application>MPlayer</application> skin format</title> |
9675 | 5 |
6 <sect1 id="skin-overview"> | |
7 <title>Overview</title> | |
21521 | 8 |
9675 | 9 <para> |
10 It does not really have anything to do with the skin format, but you should | |
21521 | 11 know that <application>MPlayer</application> has |
12 <emphasis role="bold">no</emphasis> builtin skin, so | |
13 <emphasis role="bold">at least one skin must be installed in order to be able | |
14 to use the GUI.</emphasis> | |
9675 | 15 </para> |
16 | |
21521 | 17 <!-- ********** --> |
18 | |
9675 | 19 <sect2 id="skin-overview-directories"> |
20 <title>Directories</title> | |
21521 | 21 |
9675 | 22 <para> |
23 The directories searched for skins are (in order): | |
24 <orderedlist> | |
25 <listitem><para> | |
21521 | 26 <filename class="directory">$(DATADIR)/skins/</filename> |
9675 | 27 </para></listitem> |
28 <listitem><para> | |
21521 | 29 <filename class="directory">$(PREFIX)/share/mplayer/skins/</filename> |
9675 | 30 </para></listitem> |
31 <listitem><para> | |
21521 | 32 <filename class="directory">~/.mplayer/skins/</filename> |
9675 | 33 </para></listitem> |
34 </orderedlist> | |
35 </para> | |
36 | |
37 <para> | |
21521 | 38 Note that the first path may vary according to the way |
39 <application>MPlayer</application> was configured (see the | |
40 <option>--prefix</option> and <option>--datadir</option> | |
11540 | 41 arguments of the <command>configure</command> script). |
9675 | 42 </para> |
43 | |
44 <para> | |
45 Every skin is installed into its own directory under one of the directories | |
46 listed above, for example: | |
17974
9a5a62f480e6
Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents:
17276
diff
changeset
|
47 <screen>$(PREFIX)/share/mplayer/skins/default/</screen> |
9675 | 48 </para> |
49 </sect2> | |
50 | |
21521 | 51 <!-- ********** --> |
52 | |
9675 | 53 <sect2 id="skin-overview-formats"> |
54 <title>Image formats</title> | |
21521 | 55 |
9675 | 56 <para>Images must be truecolor (24 or 32 bpp) PNGs.</para> |
57 <para> | |
58 In the main window and in the playbar (see below) you can use images with | |
59 `transparency': Regions filled with the color #FF00FF (magenta) are fully | |
11540 | 60 transparent when viewed by <application>MPlayer</application>. This means |
61 that you can even have shaped windows if your X server has the XShape extension. | |
9675 | 62 </para> |
63 </sect2> | |
64 | |
65 <sect2 id="skin-overview-components"> | |
66 <title>Skin components</title> | |
21521 | 67 |
9675 | 68 <para> |
11715 | 69 Skins are quite free-format (unlike the fixed-format skins of |
70 <application>Winamp</application>/<application>XMMS</application>, | |
9675 | 71 for example), so it is up to you to create something great. |
72 </para> | |
73 | |
74 <para> | |
12405 | 75 Currently there are four windows to be decorated: the |
9675 | 76 <link linkend="skin-file-main">main window</link>, the |
77 <link linkend="skin-file-subwindow">subwindow</link>, the | |
78 <link linkend="skin-file-main">playbar</link>, and the | |
79 <link linkend="skin-file-menu">skin menu</link> (which can be activated | |
80 by a right click). | |
81 | |
82 <itemizedlist> | |
21521 | 83 <listitem> |
84 <para> | |
9675 | 85 The <emphasis role="bold">main window</emphasis> and/or the |
11540 | 86 <emphasis role="bold">playbar</emphasis> is where you can control |
87 <application>MPlayer</application>. The background of the window is an image. | |
21521 | 88 Various items can (and must) be placed in the window: |
89 <emphasis>buttons</emphasis>, <emphasis>potmeters</emphasis> (sliders) and | |
90 <emphasis>labels</emphasis>. | |
11540 | 91 For every item, you must specify its position and size. |
21521 | 92 </para> |
93 | |
94 <para> | |
9675 | 95 A <emphasis role="bold">button</emphasis> has three states (pressed, released, |
96 disabled), thus its image must be divided into three parts vertically. See the | |
97 <link linkend="skin-button">button</link> item for details. | |
21521 | 98 </para> |
99 | |
100 <para> | |
9675 | 101 A <emphasis role="bold">potmeter</emphasis> (mainly used for the seek bar and |
102 volume/balance control) can have any number of phases by dividing its image | |
103 into different parts below each other. See | |
104 <link linkend="skin-hpotmeter">hpotmeter</link> and | |
105 <link linkend="skin-potmeter">potmeter</link> for details. | |
21521 | 106 </para> |
107 | |
108 <para> | |
9675 | 109 <emphasis role="bold">Labels</emphasis> are a bit special: The characters |
110 needed to draw them are taken from an image file, and the characters in the | |
21521 | 111 image are described by a |
112 <link linkend="skin-fonts">font description file</link>. | |
9675 | 113 The latter is a plain text file which specifies the x,y position and size of |
114 each character in the image (the image file and its font description file | |
21521 | 115 form a font <emphasis>together</emphasis>). |
116 See <link linkend="skin-dlabel">dlabel</link> | |
9675 | 117 and <link linkend="skin-slabel">slabel</link> for details. |
21521 | 118 </para> |
119 | |
120 <note><para> | |
121 All images can have full transparency as described in the section about | |
9675 | 122 <link linkend="skin-overview-formats">image formats</link>. If the X server |
123 doesn't support the XShape extension, the parts marked transparent will be | |
124 black. If you'd like to use this feature, the width of the main window's | |
125 background image must be dividable by 8. | |
21521 | 126 </para></note> |
9675 | 127 </listitem> |
128 | |
129 <listitem><para> | |
130 The <emphasis role="bold">subwindow</emphasis> is where the movie appears. It | |
131 can display a specified image if there is no movie loaded (it is quite boring | |
21521 | 132 to have an empty window :-)) <emphasis role="bold">Note:</emphasis> |
133 transparency is <emphasis role="bold">not allowed</emphasis> here. | |
9675 | 134 </para></listitem> |
135 | |
21521 | 136 <listitem> |
137 <para> | |
11540 | 138 The <emphasis role="bold">skin menu</emphasis> is just a way to control |
139 <application>MPlayer</application> by means of menu entries. Two images | |
140 are required for the menu: one of them is the base image that shows the | |
141 menu in its normal state, the other one is used to display the selected | |
142 entries. When you pop up the menu, the first image is shown. If you move | |
143 the mouse over the menu entries, the currently selected entry is copied | |
144 from the second image over the menu entry below the mouse pointer | |
9675 | 145 (the second image is never shown as a whole). |
21521 | 146 </para> |
147 <para> | |
9675 | 148 A menu entry is defined by its position and size in the image (see the |
21521 | 149 section about the <link linkend="skin-file-menu">skin menu</link> for |
150 details). | |
151 </para> | |
152 </listitem> | |
9675 | 153 </itemizedlist> |
154 </para> | |
155 | |
156 <para> | |
21521 | 157 There is an important thing not mentioned yet: For buttons, potmeters and |
158 menu entries to work, <application>MPlayer</application> must know what to | |
159 do if they are clicked. This is done by <link linkend="skin-gui">messages</link> | |
160 (events). For these items you must define the messages to be generated when | |
161 they are clicked. | |
9675 | 162 </para> |
163 </sect2> | |
164 | |
21521 | 165 <!-- ********** --> |
166 | |
9675 | 167 <sect2 id="skin-files"> |
168 <title>Files</title> | |
21521 | 169 |
9675 | 170 <para> |
171 You need the following files to build a skin: | |
172 <itemizedlist> | |
173 <listitem><para> | |
174 The configuration file named <link linkend="skin-file">skin</link> tells | |
11540 | 175 <application>MPlayer</application> how to put different parts of the skin |
176 together and what to do if you click somewhere in the window. | |
9675 | 177 </para></listitem> |
178 <listitem><para> | |
179 The background image for the main window. | |
180 </para></listitem> | |
181 <listitem><para> | |
182 Images for the items in the main window (including one or more font | |
183 description files needed to draw labels). | |
184 </para></listitem> | |
185 <listitem><para> | |
186 The image to be displayed in the subwindow (optional). | |
187 </para></listitem> | |
188 <listitem><para> | |
189 Two images for the skin menu (they are needed only if you want to create | |
190 a menu). | |
191 </para></listitem> | |
192 </itemizedlist> | |
193 With the exception of the skin configuration file, you can name the other | |
194 files whatever you want (but note that font description files must have | |
195 a <filename>.fnt</filename> extension). | |
196 </para> | |
197 </sect2> | |
198 </sect1> | |
12815 | 199 |
21521 | 200 |
201 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
202 | |
203 | |
9675 | 204 <sect1 id="skin-file"> |
205 <title>The skin file</title> | |
21521 | 206 |
9675 | 207 <para> |
208 As mentioned above, this is the skin configuration file. It is line oriented; | |
21521 | 209 comment lines start with a '<literal>;</literal>' character at the beginning of |
210 the line (only spaces and tabs are allowed before the '<literal>;</literal>'). | |
9675 | 211 </para> |
212 | |
213 <para> | |
214 The file is made up of sections. Each section describes the skin for an | |
215 application and has the following form: | |
216 <programlisting> | |
217 section = <replaceable>section name</replaceable> | |
218 . | |
219 . | |
220 . | |
221 end | |
222 </programlisting> | |
223 </para> | |
224 | |
225 <para> | |
21521 | 226 Currently there is only one application, so you need only one section: its name |
227 is <emphasis role="bold">movieplayer</emphasis>. | |
10111 | 228 </para> |
229 | |
230 <para> | |
231 Within this section each window is described by a block of the following form: | |
232 <programlisting> | |
233 window = <replaceable>window name</replaceable> | |
234 . | |
235 . | |
236 . | |
237 end | |
238 </programlisting> | |
239 </para> | |
240 | |
241 <para> | |
9675 | 242 where <replaceable>window name</replaceable> can be one of these strings: |
243 <itemizedlist> | |
21521 | 244 <listitem><para> |
245 <emphasis role="bold">main</emphasis> - for the main window | |
246 </para></listitem> | |
247 <listitem><para> | |
248 <emphasis role="bold">sub</emphasis> - for the subwindow | |
249 </para></listitem> | |
250 <listitem><para> | |
251 <emphasis role="bold">menu</emphasis> - for the skin menu | |
252 </para></listitem> | |
253 <listitem><para> | |
254 <emphasis role="bold">playbar</emphasis> - playbar | |
255 </para></listitem> | |
9675 | 256 </itemizedlist> |
257 </para> | |
258 | |
259 <para> | |
260 (The sub and menu blocks are optional - you do not need to create a menu or | |
261 decorate the subwindow.) | |
262 </para> | |
263 | |
264 <para> | |
265 Within a window block, you can define each item for the window by a line in | |
266 this form: | |
267 <programlisting>item = parameter</programlisting> | |
268 Where <literal>item</literal> is a string that identifies the type of the GUI | |
269 item, <literal>parameter</literal> is a numeric or textual value (or a list of | |
270 values separated by commas). | |
271 </para> | |
272 | |
273 <para> | |
274 Putting the above together, the whole file looks something like this: | |
275 <programlisting> | |
276 section = movieplayer | |
277 window = main | |
278 ; ... items for main window ... | |
279 end | |
280 | |
281 window = sub | |
282 ; ... items for subwindow ... | |
283 end | |
12815 | 284 |
9675 | 285 window = menu |
286 ; ... items for menu ... | |
287 end | |
288 | |
289 window = playbar | |
290 ; ... items for playbar ... | |
291 end | |
292 end | |
293 </programlisting> | |
294 </para> | |
295 | |
296 <para> | |
297 The name of an image file must be given without leading directories - images | |
17974
9a5a62f480e6
Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents:
17276
diff
changeset
|
298 are searched for in the <filename class="directory">skins</filename> directory. |
9675 | 299 You may (but you need not) specify the extension of the file. If the file does |
11540 | 300 not exist, <application>MPlayer</application> tries to load the file |
9675 | 301 <filename><filename>.<ext></filename>, where <literal>png</literal> |
302 and <literal>PNG</literal> are tried for <filename><ext></filename> | |
303 (in this order). The first matching file will be used. | |
304 </para> | |
305 | |
306 <para> | |
21521 | 307 Here is an example to make this clear. Suppose that you have an image called |
308 <filename>main.png</filename> that you use for the main window: | |
309 <programlisting>base = main, -1, -1</programlisting> | |
310 <application>MPlayer</application> tries to load <filename>main</filename>, | |
311 <filename>main.png</filename>, <filename>main.PNG</filename> files. | |
312 </para> | |
313 | |
314 <para> | |
315 Finally some words about positioning. The main window and the subwindow can be | |
316 placed in the different corners of the screen by giving <literal>X</literal> | |
317 and <literal>Y</literal> coordinates. <literal>0</literal> is top or left, | |
9675 | 318 <literal>-1</literal> is center and <literal>-2</literal> is right or bottom, as |
319 shown in this illustration: | |
320 <informalfigure> | |
321 <screen> | |
322 (0, 0)----(-1, 0)----(-2, 0) | |
323 | | | | |
324 | | | | |
325 (0,-1)----(-1,-1)----(-2,-1) | |
326 | | | | |
327 | | | | |
328 (0,-2)----(-1,-2)----(-2,-2) | |
329 </screen> | |
330 </informalfigure> | |
331 </para> | |
332 | |
21521 | 333 <!-- ********** --> |
9675 | 334 |
335 <sect2 id="skin-file-main"> | |
336 <title>Main window and playbar</title> | |
21521 | 337 |
9675 | 338 <para> |
339 Below is the list of entries that can be used in the | |
11444
d6ef9000aed5
removed for added consistency, we do not use them anywhere else.
diego
parents:
10913
diff
changeset
|
340 '<literal>window = main</literal>' ... '<literal>end</literal>', |
d6ef9000aed5
removed for added consistency, we do not use them anywhere else.
diego
parents:
10913
diff
changeset
|
341 and the '<literal>window = playbar</literal>' ... '<literal>end</literal>' |
9675 | 342 blocks. |
343 </para> | |
344 | |
345 <variablelist> | |
346 <varlistentry> | |
347 <term><literal> | |
348 <anchor id="skin-main-base"/>base = image, X, Y | |
349 </literal></term> | |
21521 | 350 <listitem> |
351 <para> | |
352 Lets you specify the background image to be used for the main window. | |
353 The window will appear at the given <literal>X,Y</literal> position on | |
354 the screen The window will have the size of the image. | |
355 </para> | |
356 <note><para> | |
357 These coordinates do not currently work for the display window. | |
358 </para></note> | |
359 <warning><para>Transparent regions in the image (colored #FF00FF) appear black | |
360 on X servers without the XShape extension. The image's width must be dividable | |
361 by 8.</para></warning> | |
362 </listitem> | |
9675 | 363 </varlistentry> |
364 | |
365 <varlistentry> | |
366 <term><literal> | |
367 <anchor id="skin-button"/>button = image, X, Y, width, height, message | |
368 </literal></term> | |
21521 | 369 <listitem> |
370 <para> | |
371 Place a button of <literal>width</literal> * <literal>height</literal> size at | |
372 position <literal>X,Y</literal>. The specified <literal>message</literal> is | |
373 generated when the button is clicked. The image given by | |
374 <literal>image</literal> must have three parts below each other (according to | |
375 the possible states of the button), like this: | |
376 </para> | |
377 <informalfigure> | |
378 <screen> | |
9675 | 379 +------------+ |
380 | pressed | | |
381 +------------+ | |
382 | released | | |
383 +------------+ | |
384 | disabled | | |
21521 | 385 +------------+<!-- |
386 --></screen> | |
387 </informalfigure> | |
9675 | 388 </listitem> |
389 </varlistentry> | |
390 | |
391 <varlistentry> | |
392 <term><literal> | |
393 <anchor id="skin-decoration"/>decoration = enable|disable | |
394 </literal></term> | |
21521 | 395 <listitem> |
396 <para> | |
397 Enable or disable window manager decoration of the main window. Default is | |
398 <emphasis role="bold">disable</emphasis>. | |
399 </para> | |
400 <note><para> | |
401 This doesn't work for the display window, there is no need to. | |
402 </para></note> | |
9675 | 403 </listitem> |
404 </varlistentry> | |
405 | |
406 <varlistentry> | |
407 <term><literal> | |
408 <anchor id="skin-hpotmeter"/>hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message | |
409 </literal></term> | |
410 <listitem><para> | |
21521 | 411 </para></listitem> |
9675 | 412 </varlistentry> |
413 | |
414 <varlistentry> | |
415 <term><literal> | |
416 <anchor id="skin-vpotmeter"/>vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message | |
417 </literal></term> | |
418 <listitem><para> | |
21521 | 419 Place a horizontal (hpotmeter) or vertical (vpotmeter) potmeter of |
420 <literal>width</literal> * <literal>height</literal> size at position | |
421 <literal>X,Y</literal>. The image can be divided into different parts for the | |
422 different phases of the potmeter (for example, you can have a pot for volume | |
423 control that turns from green to red while its value changes from the minimum | |
424 to the maximum.). <literal>hpotmeter</literal> can have a button that can be | |
425 dragged horizontally. The parameters are: | |
426 <itemizedlist> | |
427 <listitem><para> | |
428 <literal>button</literal> - the image to be used for the | |
9675 | 429 button (must have three parts below each other, like in case of |
430 <link linkend="skin-button">button</link>) | |
21521 | 431 </para></listitem> |
432 <listitem><para> | |
433 <literal>bwidth</literal>, <literal>bheight</literal> - size | |
9675 | 434 of the button |
21521 | 435 </para></listitem> |
436 <listitem><para> | |
437 <literal>phases</literal> - the image to be used for the | |
438 different phases of the hpotmeter. A special value of <literal>NULL</literal> | |
439 can be used if you want no such image. The image must be divided into | |
440 <literal>numphases</literal> parts vertically like this: | |
441 <informalfigure><screen> | |
9675 | 442 +------------+ |
443 | phase #1 | | |
444 +------------+ | |
445 | phase #2 | | |
446 +------------+ | |
447 ... | |
448 +------------+ | |
449 | phase #n | | |
21521 | 450 +------------+<!-- |
451 --></screen></informalfigure> | |
452 </para></listitem> | |
453 <listitem><para> | |
454 <literal>numphases</literal> - number of phases stored in the | |
9675 | 455 <literal>phases</literal> image |
21521 | 456 </para></listitem> |
457 <listitem><para> | |
458 <literal>default</literal> - default value for hpotmeter | |
9675 | 459 (in the range <literal>0</literal> to <literal>100</literal>) |
21521 | 460 </para></listitem> |
461 <listitem><para> | |
462 <literal>X</literal>, <literal>Y</literal> - position for the hpotmeter | |
463 </para></listitem> | |
464 <listitem><para> | |
465 <literal>width</literal>, <literal>height</literal> - width and height | |
9675 | 466 of the <literal>hpotmeter</literal> |
21521 | 467 </para></listitem> |
468 <listitem><para> | |
469 <literal>message</literal> - the message to be generated when the | |
9675 | 470 value of <literal>hpotmeter</literal> is changed |
21521 | 471 </para></listitem> |
472 </itemizedlist> | |
473 </para></listitem> | |
9675 | 474 </varlistentry> |
475 | |
476 <varlistentry> | |
477 <term><literal> | |
478 <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message | |
479 </literal></term> | |
480 <listitem><para> | |
21521 | 481 A <literal>hpotmeter</literal> without a button. (I guess it is meant to be |
482 turned around, but it reacts to horizontal dragging only.) For the description | |
483 of the parameters see <link linkend="skin-hpotmeter">hpotmeter</link>. | |
484 <literal>phases</literal> can be <literal>NULL</literal>, but it is quite | |
485 useless, since you cannot see where the <literal>potmeter</literal> is set. | |
486 </para></listitem> | |
9675 | 487 </varlistentry> |
488 | |
489 <varlistentry> | |
490 <term><literal> | |
491 <anchor id="skin-font"/>font = fontfile, fontid | |
492 </literal></term> | |
493 <listitem><para> | |
21521 | 494 Defines a font. <literal>fontfile</literal> is the name of a font description |
495 file with a <filename>.fnt</filename> extension (do not specify the extension | |
496 here). <literal>fontid</literal> is used to refer to the font | |
497 (see <link linkend="skin-dlabel">dlabel</link> | |
498 and <link linkend="skin-slabel">slabel</link>). Up to 25 fonts can be defined. | |
499 </para></listitem> | |
9675 | 500 </varlistentry> |
501 | |
502 <varlistentry> | |
503 <term><literal> | |
21596 | 504 <anchor id="skin-slabel"/>slabel = X, Y, fontid, "text" |
9675 | 505 </literal></term> |
506 <listitem><para> | |
21521 | 507 Place a static label at the position <literal>X,Y</literal>. |
508 <literal>text</literal> is displayed using the font identified by | |
509 <literal>fontid</literal>. The text is just a raw string | |
510 (<literal>$x</literal> variables do not work) that must be enclosed between | |
21596 | 511 double quotes (but the " character cannot be part of the text). The |
21521 | 512 label is displayed using the font identified by <literal>fontid</literal>. |
513 </para></listitem> | |
9675 | 514 </varlistentry> |
515 | |
516 <varlistentry> | |
517 <term><literal> | |
21596 | 518 <anchor id="skin-dlabel"/>dlabel = X, Y, length, align, fontid, "text" |
9675 | 519 </literal></term> |
520 <listitem> | |
21521 | 521 <para> |
522 Place a dynamic label at the position <literal>X,Y</literal>. The label is | |
523 called dynamic because its text is refreshed periodically. The maximum length | |
524 of the label is given by <literal>length</literal> (its height is the height | |
525 of a character). If the text to be displayed is wider than that, it will be | |
526 scrolled, | |
527 otherwise it is aligned within the specified space by the value of the | |
528 <literal>align</literal> parameter: <literal>0</literal> is for right, | |
529 <literal>1</literal> is for center, <literal>2</literal> is for left. | |
530 </para> | |
531 <para> | |
532 The text to be displayed is given by <literal>text</literal>: It must be | |
21596 | 533 written between double quotes (but the " character cannot be part of the |
21521 | 534 text). The label is displayed using the font identified by |
535 <literal>fontid</literal>. You can use the following variables in the text: | |
536 </para> | |
9675 | 537 |
21521 | 538 <informaltable> |
539 <tgroup cols="2"> | |
540 <thead> | |
541 <row><entry>Variable</entry><entry>Meaning</entry></row> | |
542 </thead> | |
543 <tbody> | |
544 <row> | |
545 <entry>$1</entry> | |
546 <entry>play time in <emphasis>hh:mm:ss</emphasis> format</entry> | |
547 </row> | |
548 <row> | |
549 <entry>$2</entry> | |
550 <entry>play time in <emphasis>mmmm:ss</emphasis> format</entry> | |
551 </row> | |
552 <row> | |
553 <entry>$3</entry> | |
554 <entry>play time in <emphasis>hh</emphasis> format (hours)</entry> | |
555 </row> | |
556 <row> | |
557 <entry>$4</entry> | |
558 <entry>play time in <emphasis>mm</emphasis> format (minutes)</entry> | |
559 </row> | |
560 <row> | |
561 <entry>$5</entry> | |
562 <entry>play time in <emphasis>ss</emphasis> format (seconds)</entry> | |
563 </row> | |
564 <row> | |
565 <entry>$6</entry> | |
566 <entry>movie length in <emphasis>hh:mm:ss</emphasis> format</entry> | |
567 </row> | |
568 <row> | |
569 <entry>$7</entry> | |
570 <entry>movie length in <emphasis>mmmm:ss</emphasis> format</entry> | |
571 </row> | |
572 <row> | |
573 <entry>$8</entry> | |
574 <entry>play time in <emphasis>h:mm:ss</emphasis> format</entry> | |
575 </row> | |
576 <row> | |
577 <entry>$v</entry> | |
578 <entry>volume in <emphasis>xxx.xx</emphasis>% format</entry> | |
579 </row> | |
580 <row> | |
581 <entry>$V</entry> | |
582 <entry>volume in <emphasis>xxx.xx</emphasis> format</entry> | |
583 </row> | |
584 <row> | |
585 <entry>$b</entry> | |
586 <entry>balance in <emphasis>xxx.xx</emphasis>% format</entry> | |
587 </row> | |
588 <row> | |
589 <entry>$B</entry> | |
590 <entry>balance in <emphasis>xxx.xx</emphasis> format</entry> | |
591 </row> | |
592 <row> | |
593 <entry>$$</entry> | |
594 <entry>the $ character</entry> | |
595 </row> | |
596 <row> | |
597 <entry>$a</entry> | |
598 <entry>a character according to the audio type (none: <literal>n</literal>, | |
599 mono: <literal>m</literal>, stereo: <literal>t</literal>)</entry> | |
600 </row> | |
601 <row> | |
602 <entry>$t</entry> | |
603 <entry>track number (in playlist)</entry> | |
604 </row> | |
605 <row> | |
606 <entry>$o</entry> | |
607 <entry>filename</entry> | |
608 </row> | |
609 <row> | |
610 <entry>$f</entry> | |
611 <entry>filename in lower case</entry> | |
612 </row> | |
613 <row> | |
614 <entry>$F</entry> | |
615 <entry>filename in upper case</entry> | |
616 </row> | |
617 <row> | |
618 <entry>$T</entry> | |
619 <entry> | |
620 a character according to the stream type (file: <literal>f</literal>, | |
621 Video CD: <literal>v</literal>, DVD: <literal>d</literal>, | |
622 URL: <literal>u</literal>) | |
623 </entry> | |
624 </row> | |
625 <row> | |
626 <entry>$p</entry> | |
627 <entry>the <keycap>p</keycap> character (if a movie is playing and the font | |
628 has the <keycap>p</keycap> character)</entry> | |
629 </row> | |
630 <row> | |
631 <entry>$s</entry> | |
632 <entry>the <keycap>s</keycap> character (if the movie is stopped and the | |
633 font has the <keycap>s</keycap> character)</entry> | |
634 </row> | |
635 <row> | |
636 <entry>$e</entry> | |
637 <entry>the <keycap>e</keycap> character (if playback is paused and the font | |
638 has the <keycap>e</keycap> character)</entry> | |
639 </row> | |
640 <row> | |
641 <entry>$x</entry> | |
642 <entry>movie width</entry> | |
643 </row> | |
644 <row> | |
645 <entry>$y</entry> | |
646 <entry>movie height</entry> | |
647 </row> | |
648 <row> | |
649 <entry>$C</entry> | |
650 <entry>name of the codec used</entry> | |
651 </row> | |
652 </tbody> | |
653 </tgroup> | |
654 </informaltable> | |
9675 | 655 |
21521 | 656 <note><para> |
657 The <literal>$a, $T, $p, $s</literal> and <literal>$e</literal> | |
658 variables all return characters that should be displayed as special symbols | |
659 (for example, <keycap>e</keycap> is for the pause symbol that usually looks | |
660 something like ||). You should have a font for normal characters and | |
661 a different font for symbols. See the section about | |
662 <link linkend="skin-fonts-symbols">symbols</link> for more information. | |
663 </para></note> | |
664 </listitem> | |
9675 | 665 </varlistentry> |
666 </variablelist> | |
21521 | 667 </sect2> |
9675 | 668 |
21521 | 669 <!-- ********** --> |
9675 | 670 |
671 <sect2 id="skin-file-subwindow"> | |
672 <title>Subwindow</title> | |
21521 | 673 |
9675 | 674 <para> |
675 The following entries can be used in the | |
676 '<literal>window = sub</literal>' . . . '<literal>end</literal>' block. | |
677 </para> | |
678 | |
679 <variablelist> | |
680 <varlistentry> | |
681 <term><literal> | |
682 <anchor id="skin-sub-base"/>base = image, X, Y, width, height | |
683 </literal></term> | |
684 <listitem><para> | |
21521 | 685 The image to be displayed in the window. The window will appear at the given |
686 <literal>X,Y</literal> position on the screen (<literal>0,0</literal> is the | |
687 top left corner). You can specify <literal>-1</literal> for center and | |
688 <literal>-2</literal> for right (<literal>X</literal>) and bottom | |
689 (<literal>Y</literal>). The window will be as large as the image. | |
690 <literal>width</literal> and <literal>height</literal> | |
691 denote the size of the window; they are optional (if they are missing, the | |
692 window is the same size as the image). | |
693 </para></listitem> | |
9675 | 694 </varlistentry> |
695 | |
696 <varlistentry> | |
697 <term><literal> | |
698 <anchor id="skin-background"/>background = R, G, B | |
699 </literal></term> | |
700 <listitem><para> | |
21521 | 701 Lets you set the background color. It is useful if the image is smaller than |
702 the window. <literal>R</literal>, <literal>G</literal> and | |
703 <literal>B</literal> specifies the red, green and blue component of the color | |
704 (each of them is a decimal number from 0 to 255). | |
705 </para></listitem> | |
9675 | 706 </varlistentry> |
707 </variablelist> | |
708 </sect2> | |
709 | |
21521 | 710 <!-- ********** --> |
711 | |
9675 | 712 <sect2 id="skin-file-menu"> |
713 <title>Skin menu</title> | |
21521 | 714 |
9675 | 715 <para> |
716 As mentioned earlier, the menu is displayed using two images. Normal menu | |
717 entries are taken from the image specified by the <literal>base</literal> item, | |
718 while the currently selected entry is taken from the image specified by the | |
719 <literal>selected</literal> item. You must define the position and size of each | |
720 menu entry through the menu item. | |
721 </para> | |
722 | |
723 <para> | |
724 The following entries can be used in the | |
725 '<literal>window = menu</literal>'. . .'<literal>end</literal>' block. | |
726 </para> | |
727 | |
728 <variablelist> | |
729 <varlistentry> | |
730 <term><literal> | |
731 <anchor id="skin-menu-base"/>base = image | |
732 </literal></term> | |
733 <listitem><para> | |
21521 | 734 The image for normal menu entries. |
735 </para></listitem> | |
9675 | 736 </varlistentry> |
737 | |
738 <varlistentry> | |
739 <term><literal> | |
740 <anchor id="skin-selected"/>selected = image | |
741 </literal></term> | |
742 <listitem><para> | |
21521 | 743 The image showing the menu with all entries selected. |
744 </para></listitem> | |
9675 | 745 </varlistentry> |
746 | |
747 <varlistentry> | |
748 <term><literal> | |
749 <anchor id="skin-menu"/>menu = X, Y, width, height, message | |
750 </literal></term> | |
751 <listitem><para> | |
21521 | 752 Defines the <literal>X,Y</literal> position and the size of a menu entry in |
753 the image. <literal>message</literal> is the message to be generated when the | |
754 mouse button is released over the entry. | |
755 </para></listitem> | |
9675 | 756 </varlistentry> |
757 </variablelist> | |
758 </sect2> | |
759 </sect1> | |
760 | |
21521 | 761 |
762 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
763 | |
764 | |
9675 | 765 <sect1 id="skin-fonts"> |
766 <title>Fonts</title> | |
767 <para> | |
768 As mentioned in the section about the parts of a skin, a font is defined by an | |
21521 | 769 image and a description file. You can place the characters anywhere in the |
770 image, but make sure that their position and size is given in the description | |
771 file exactly. | |
9675 | 772 </para> |
773 | |
774 <para> | |
775 The font description file (with <filename>.fnt</filename> extension) can have | |
776 comment lines starting with '<literal>;</literal>'. The file must have a line | |
777 in the form | |
778 <anchor id="skin-font-image"/> | |
779 <programlisting>image = <replaceable>image</replaceable></programlisting> | |
780 Where <literal><replaceable>image</replaceable></literal> is the name of the | |
781 image file to be used for the font (you do not have to specify the extension). | |
782 <anchor id="skin-font-char"/> | |
21596 | 783 <programlisting>"char" = X, Y, width, height</programlisting> |
9675 | 784 Here <literal>X</literal> and <literal>Y</literal> specify the position of the |
785 <literal>char</literal> character in the image (<literal>0,0</literal> is the | |
786 upper left corner). <literal>width</literal> and <literal>height</literal> are | |
787 the dimensions of the character in pixels. | |
788 </para> | |
789 | |
790 <para> | |
791 This example defines the A, B, C characters using <filename>font.png</filename>. | |
792 <programlisting> | |
21596 | 793 ; Can be "font" instead of "font.png". |
9675 | 794 image = font.png |
795 | |
796 ; Three characters are enough for demonstration purposes :-) | |
21596 | 797 "A" = 0,0, 7,13 |
798 "B" = 7,0, 7,13 | |
799 "C" = 14,0, 7,13 | |
9675 | 800 </programlisting> |
801 </para> | |
802 | |
21521 | 803 <!-- ********** --> |
804 | |
9675 | 805 <sect2 id="skin-fonts-symbols"> |
806 <title>Symbols</title> | |
21521 | 807 |
9675 | 808 <para> |
809 Some characters have special meanings when returned by some of the variables | |
810 used in <link linkend="skin-dlabel">dlabel</link>. These characters are meant | |
811 to be shown as symbols so that things like a nice DVD logo can be displayed | |
812 instead of the character '<literal>d</literal>' for a DVD stream. | |
813 </para> | |
21521 | 814 |
9675 | 815 <para> |
816 The following table lists all the characters that can be used to display | |
817 symbols (and thus require a different font). | |
818 </para> | |
819 | |
820 <informaltable> | |
821 <tgroup cols="2"> | |
822 <thead> | |
823 <row><entry>Character</entry><entry>Symbol</entry></row> | |
824 </thead> | |
825 <tbody> | |
21521 | 826 <row><entry><keycap>p</keycap></entry><entry>play</entry></row> |
827 <row><entry><keycap>s</keycap></entry><entry>stop</entry></row> | |
828 <row><entry><keycap>e</keycap></entry><entry>pause</entry></row> | |
829 <row><entry><keycap>n</keycap></entry><entry>no sound</entry></row> | |
830 <row><entry><keycap>m</keycap></entry><entry>mono sound</entry></row> | |
831 <row><entry><keycap>t</keycap></entry><entry>stereo sound</entry></row> | |
832 <row><entry><keycap>f</keycap></entry><entry>stream is a file</entry></row> | |
833 <row><entry><keycap>v</keycap></entry><entry>stream is a Video CD</entry></row> | |
834 <row><entry><keycap>d</keycap></entry><entry>stream is a DVD</entry></row> | |
835 <row><entry><keycap>u</keycap></entry><entry>stream is a URL</entry></row> | |
9675 | 836 </tbody> |
837 </tgroup> | |
838 </informaltable> | |
839 </sect2> | |
840 </sect1> | |
841 | |
21521 | 842 |
843 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
844 | |
845 | |
9675 | 846 <sect1 id="skin-gui"> |
847 <title>GUI messages</title> | |
21521 | 848 |
9675 | 849 <para> |
850 These are the messages that can be generated by buttons, potmeters and | |
851 menu entries. | |
852 </para> | |
853 | |
854 <variablelist> | |
855 <title>Playback control:</title> | |
856 <varlistentry> | |
857 <term><emphasis role="bold">evNext</emphasis></term> | |
858 <listitem><para> | |
21521 | 859 Jump to next track in the playlist. |
860 </para></listitem> | |
9675 | 861 </varlistentry> |
862 | |
863 <varlistentry> | |
864 <term><emphasis role="bold">evPause</emphasis></term> | |
865 <listitem><para> | |
21521 | 866 Forms a switch together with <literal>evPlaySwitchToPause</literal>. They can |
867 be used to have a common play/pause button. Both messages should be assigned | |
868 to buttons displayed at the very same position in the window. This message | |
869 pauses playing and the image for the <literal>evPlaySwitchToPause</literal> | |
870 button is displayed (to indicate that the button can be pressed to continue | |
871 playing). | |
872 </para></listitem> | |
9675 | 873 </varlistentry> |
874 | |
875 <varlistentry> | |
876 <term><emphasis role="bold">evPlay</emphasis></term> | |
877 <listitem><para> | |
21521 | 878 Start playing. |
879 </para></listitem> | |
9675 | 880 </varlistentry> |
881 | |
882 <varlistentry> | |
883 <term><emphasis role="bold">evPlaySwitchToPause</emphasis></term> | |
884 <listitem><para> | |
21521 | 885 The opposite of <literal>evPauseSwitchToPlay</literal>. This message starts |
886 playing and the image for the <literal>evPauseSwitchToPlay</literal> button | |
887 is displayed (to indicate that the button can be pressed to pause playing). | |
888 </para></listitem> | |
9675 | 889 </varlistentry> |
890 | |
891 <varlistentry> | |
892 <term><emphasis role="bold">evPrev</emphasis></term> | |
893 <listitem><para> | |
21521 | 894 Jump to previous track in the playlist. |
895 </para></listitem> | |
9675 | 896 </varlistentry> |
897 | |
898 <varlistentry> | |
899 <term><emphasis role="bold">evStop</emphasis></term> | |
900 <listitem><para> | |
21521 | 901 Stop playing. |
902 </para></listitem> | |
9675 | 903 </varlistentry> |
904 </variablelist> | |
905 | |
906 <variablelist> | |
907 <title>Seeking:</title> | |
908 <varlistentry> | |
909 <term><emphasis role="bold">evBackward10sec</emphasis></term> | |
910 <listitem><para> | |
21521 | 911 Seek backward 10 seconds. |
912 </para></listitem> | |
9675 | 913 </varlistentry> |
914 | |
915 <varlistentry> | |
916 <term><emphasis role="bold">evBackward1min</emphasis></term> | |
917 <listitem><para> | |
21521 | 918 Seek backward 1 minute. |
919 </para></listitem> | |
9675 | 920 </varlistentry> |
921 | |
922 <varlistentry> | |
923 <term><emphasis role="bold">evBackward10min</emphasis></term> | |
924 <listitem><para> | |
21521 | 925 Seek backward 10 minutes. |
926 </para></listitem> | |
9675 | 927 </varlistentry> |
928 | |
929 <varlistentry> | |
930 <term><emphasis role="bold">evForward10sec</emphasis></term> | |
931 <listitem><para> | |
21521 | 932 Seek forward 10 seconds. |
933 </para></listitem> | |
9675 | 934 </varlistentry> |
935 | |
936 <varlistentry> | |
937 <term><emphasis role="bold">evForward1min</emphasis></term> | |
938 <listitem><para> | |
21521 | 939 Seek forward 1 minute. |
940 </para></listitem> | |
9675 | 941 </varlistentry> |
942 | |
943 <varlistentry> | |
944 <term><emphasis role="bold">evForward10min</emphasis></term> | |
945 <listitem><para> | |
21521 | 946 Seek forward 10 minutes. |
947 </para></listitem> | |
9675 | 948 </varlistentry> |
949 | |
950 <varlistentry> | |
951 <term><emphasis role="bold">evSetMoviePosition</emphasis></term> | |
952 <listitem><para> | |
21521 | 953 Seek to position (can be used by a potmeter; the |
954 relative value (0-100%) of the potmeter is used). | |
955 </para></listitem> | |
9675 | 956 </varlistentry> |
957 </variablelist> | |
958 | |
959 <variablelist> | |
960 <title>Video control:</title> | |
961 <varlistentry> | |
14589 | 962 <term><emphasis role="bold">evHalfSize</emphasis></term> |
963 <listitem><para> | |
21521 | 964 Set the movie window to half size. |
965 </para></listitem> | |
14589 | 966 </varlistentry> |
967 <varlistentry> | |
9675 | 968 <term><emphasis role="bold">evDoubleSize</emphasis></term> |
969 <listitem><para> | |
21521 | 970 Set the movie window to double size. |
971 </para></listitem> | |
9675 | 972 </varlistentry> |
973 <varlistentry> | |
974 <term><emphasis role="bold">evFullScreen</emphasis></term> | |
975 <listitem><para> | |
21521 | 976 Switch fullscreen mode on/off. |
977 </para></listitem> | |
9675 | 978 </varlistentry> |
979 <varlistentry> | |
980 <term><emphasis role="bold">evNormalSize</emphasis></term> | |
981 <listitem><para> | |
21521 | 982 Set the movie window to its normal size. |
983 </para></listitem> | |
9675 | 984 </varlistentry> |
985 </variablelist> | |
986 | |
987 <variablelist> | |
988 <title>Audio control:</title> | |
989 <varlistentry> | |
990 <term><emphasis role="bold">evDecAudioBufDelay</emphasis></term> | |
991 <listitem><para> | |
21521 | 992 Decrease audio buffer delay. |
993 </para></listitem> | |
9675 | 994 </varlistentry> |
995 | |
996 <varlistentry> | |
997 <term><emphasis role="bold">evDecBalance</emphasis></term> | |
998 <listitem><para> | |
21521 | 999 Decrease balance. |
1000 </para></listitem> | |
9675 | 1001 </varlistentry> |
1002 | |
1003 <varlistentry> | |
1004 <term><emphasis role="bold">evDecVolume</emphasis></term> | |
1005 <listitem><para> | |
21521 | 1006 Decrease volume. |
1007 </para></listitem> | |
9675 | 1008 </varlistentry> |
1009 | |
1010 <varlistentry> | |
1011 <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term> | |
1012 <listitem><para> | |
21521 | 1013 Increase audio buffer delay. |
1014 </para></listitem> | |
9675 | 1015 </varlistentry> |
1016 | |
1017 <varlistentry> | |
1018 <term><emphasis role="bold">evIncBalance</emphasis></term> | |
1019 <listitem><para> | |
21521 | 1020 Increase balance. |
1021 </para></listitem> | |
9675 | 1022 </varlistentry> |
1023 | |
1024 <varlistentry> | |
1025 <term><emphasis role="bold">evIncVolume</emphasis></term> | |
1026 <listitem><para> | |
21521 | 1027 Increase volume. |
1028 </para></listitem> | |
9675 | 1029 </varlistentry> |
1030 | |
1031 <varlistentry> | |
1032 <term><emphasis role="bold">evMute</emphasis></term> | |
1033 <listitem><para> | |
21521 | 1034 Mute/unmute the sound. |
1035 </para></listitem> | |
9675 | 1036 </varlistentry> |
1037 | |
1038 <varlistentry> | |
1039 <term><emphasis role="bold">evSetBalance</emphasis></term> | |
1040 <listitem><para> | |
21521 | 1041 Set balance (can be used by a potmeter; the |
1042 relative value (0-100%) of the potmeter is used). | |
1043 </para></listitem> | |
9675 | 1044 </varlistentry> |
1045 | |
1046 <varlistentry> | |
1047 <term><emphasis role="bold">evSetVolume</emphasis></term> | |
1048 <listitem><para> | |
21521 | 1049 Set volume (can be used by a potmeter; the relative |
1050 value (0-100%) of the potmeter is used). | |
1051 </para></listitem> | |
9675 | 1052 </varlistentry> |
1053 </variablelist> | |
1054 | |
1055 <variablelist> | |
1056 <title>Miscellaneous:</title> | |
1057 <varlistentry> | |
1058 <term><emphasis role="bold">evAbout</emphasis></term> | |
1059 <listitem><para> | |
21521 | 1060 Open the about window. |
1061 </para></listitem> | |
9675 | 1062 </varlistentry> |
1063 | |
1064 <varlistentry> | |
1065 <term><emphasis role="bold">evDropSubtitle</emphasis></term> | |
1066 <listitem><para> | |
21521 | 1067 Disables the currently used subtitle. |
1068 </para></listitem> | |
9675 | 1069 </varlistentry> |
1070 | |
1071 <varlistentry> | |
1072 <term><emphasis role="bold">evEqualizer</emphasis></term> | |
1073 <listitem><para> | |
21521 | 1074 Turn the equalizer on/off. |
1075 </para></listitem> | |
9675 | 1076 </varlistentry> |
1077 | |
1078 <varlistentry> | |
1079 <term><emphasis role="bold">evExit</emphasis></term> | |
1080 <listitem><para> | |
21521 | 1081 Quit the program. |
1082 </para></listitem> | |
9675 | 1083 </varlistentry> |
1084 | |
1085 <varlistentry> | |
1086 <term><emphasis role="bold">evIconify</emphasis></term> | |
1087 <listitem><para> | |
21521 | 1088 Iconify the window. |
1089 </para></listitem> | |
9675 | 1090 </varlistentry> |
1091 | |
1092 <varlistentry> | |
1093 <term><emphasis role="bold">evLoad</emphasis></term> | |
1094 <listitem><para> | |
21521 | 1095 Load a file (by opening a file browser window, where you can choose a file). |
1096 </para></listitem> | |
9675 | 1097 </varlistentry> |
1098 | |
1099 <varlistentry> | |
1100 <term><emphasis role="bold">evLoadPlay</emphasis></term> | |
1101 <listitem><para> | |
21521 | 1102 Does the same as <literal>evLoad</literal>, but it automatically starts |
1103 playing after the file is loaded. | |
1104 </para></listitem> | |
9675 | 1105 </varlistentry> |
1106 | |
1107 <varlistentry> | |
1108 <term><emphasis role="bold">evLoadSubtitle</emphasis></term> | |
1109 <listitem><para> | |
21521 | 1110 Loads a subtitle file (with the fileselector) |
1111 </para></listitem> | |
9675 | 1112 </varlistentry> |
1113 | |
1114 <varlistentry> | |
1115 <term><emphasis role="bold">evLoadAudioFile</emphasis></term> | |
1116 <listitem><para> | |
21521 | 1117 Loads an audio file (with the fileselector) |
1118 </para></listitem> | |
9675 | 1119 </varlistentry> |
1120 | |
1121 <varlistentry> | |
1122 <term><emphasis role="bold">evNone</emphasis></term> | |
1123 <listitem><para> | |
21521 | 1124 Empty message, it has no effect (except maybe in Subversion versions :-)). |
1125 </para></listitem> | |
9675 | 1126 </varlistentry> |
1127 | |
1128 <varlistentry> | |
13752
e193600132d5
Important typo noticed by Piero di Vita <scognito at libero dot it>
diego
parents:
12815
diff
changeset
|
1129 <term><emphasis role="bold">evPlaylist</emphasis></term> |
9675 | 1130 <listitem><para> |
21521 | 1131 Open/close the playlist window. |
1132 </para></listitem> | |
9675 | 1133 </varlistentry> |
1134 | |
1135 <varlistentry> | |
1136 <term><emphasis role="bold">evPlayDVD</emphasis></term> | |
1137 <listitem><para> | |
21521 | 1138 Tries to open the disc in the given DVD-ROM drive. |
1139 </para></listitem> | |
9675 | 1140 </varlistentry> |
1141 | |
1142 <varlistentry> | |
1143 <term><emphasis role="bold">evPlayVCD</emphasis></term> | |
1144 <listitem><para> | |
21521 | 1145 Tries to open the disc in the given CD-ROM drive. |
1146 </para></listitem> | |
9675 | 1147 </varlistentry> |
1148 | |
1149 <varlistentry> | |
1150 <term><emphasis role="bold">evPreferences</emphasis></term> | |
1151 <listitem><para> | |
21521 | 1152 Open the preferences window. |
1153 </para></listitem> | |
9675 | 1154 </varlistentry> |
1155 | |
1156 <varlistentry> | |
1157 <term><emphasis role="bold">evSetAspect</emphasis></term> | |
1158 <listitem><para> | |
21521 | 1159 Sets displayed image aspect. |
1160 </para></listitem> | |
9675 | 1161 </varlistentry> |
1162 | |
1163 <varlistentry> | |
1164 <term><emphasis role="bold">evSetURL</emphasis></term> | |
1165 <listitem><para> | |
21521 | 1166 Displays the URL dialog window. |
1167 </para></listitem> | |
9675 | 1168 </varlistentry> |
1169 | |
1170 <varlistentry> | |
1171 <term><emphasis role="bold">evSkinBrowser</emphasis></term> | |
1172 <listitem><para> | |
21521 | 1173 Open the skin browser window. |
1174 </para></listitem> | |
9675 | 1175 </varlistentry> |
1176 </variablelist> | |
21521 | 1177 </sect1> |
9675 | 1178 |
21521 | 1179 |
1180 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
1181 | |
9675 | 1182 |
17276 | 1183 <sect1 id="skin-quality"> |
1184 <title>Creating quality skins</title> | |
1185 | |
1186 <para> | |
1187 So you have read up on creating skins for the | |
1188 <application>MPlayer</application> GUI, done your best with the | |
1189 <application>Gimp</application> and wish to submit your skin to us? | |
1190 Read on for some guidelines to avoid common mistakes and produce | |
1191 a high quality skin. | |
1192 </para> | |
1193 | |
1194 <para> | |
1195 We want skins that we add to our repository to conform to certain | |
1196 quality standards. There are also a number of things that you can do | |
1197 to make our lives easier. | |
1198 </para> | |
1199 | |
1200 <para> | |
1201 As an example you can look at the <systemitem>Blue</systemitem> skin, | |
1202 it satisfies all the criteria listed below since version 1.5. | |
1203 </para> | |
1204 | |
1205 <itemizedlist> | |
21521 | 1206 <listitem><para> |
1207 Each skin should come with a | |
17276 | 1208 <filename>README</filename> file that contains information about |
1209 you, the author, copyright and license notices and anything else | |
1210 you wish to add. If you wish to have a changelog, this file is a | |
21521 | 1211 good place. |
1212 </para></listitem> | |
17276 | 1213 |
21521 | 1214 <listitem><para> |
1215 There should be a file <filename>VERSION</filename> | |
17276 | 1216 with nothing more than the version number of the skin on a single |
21521 | 1217 line (e.g. 1.0). |
1218 </para></listitem> | |
17276 | 1219 |
21521 | 1220 <listitem><para> |
1221 Horizontal and vertical controls (sliders like volume | |
17276 | 1222 or position) should have the center of the knob properly centered on |
1223 the middle of the slider. It should be possible to move the knob to | |
21521 | 1224 both ends of the slider, but not past it. |
1225 </para></listitem> | |
17276 | 1226 |
21521 | 1227 <listitem><para> |
1228 Skin elements should have the right sizes declared | |
17276 | 1229 in the skin file. If this is not the case you can click outside of |
1230 e.g. a button and still trigger it or click inside its area and not | |
21521 | 1231 trigger it. |
1232 </para></listitem> | |
17276 | 1233 |
21521 | 1234 <listitem><para> |
1235 The <filename>skin</filename> file should be | |
17276 | 1236 prettyprinted and not contain tabs. Prettyprinted means that the |
21521 | 1237 numbers should line up neatly in columns. |
1238 </para></listitem> | |
17276 | 1239 </itemizedlist> |
1240 | |
1241 </sect1> | |
9675 | 1242 </appendix> |