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