summaryrefslogtreecommitdiffstats
path: root/DOCS/Chinese/skin.html
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS/Chinese/skin.html')
-rw-r--r--DOCS/Chinese/skin.html836
1 files changed, 366 insertions, 470 deletions
diff --git a/DOCS/Chinese/skin.html b/DOCS/Chinese/skin.html
index 9a8d394fd5..7afd489ef6 100644
--- a/DOCS/Chinese/skin.html
+++ b/DOCS/Chinese/skin.html
@@ -1,22 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=gbk">
-<title>制作Skin -- MPlayer -- Linux下的电影播放器</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=gbk">
+ <title>制作Skin -- MPlayer -- Linux下的电影播放器</title>
<link rel="stylesheet" type="text/css" href="default.css">
-<style type="text/css">
-em.note {color: green;
- font-style: normal;}
-em.warn {color: red;
- font-style: normal;}
-</style>
+ <style type="text/css">
+ em.note {color: green;
+ font-style: normal;}
+ em.warn {color: red;
+ font-style: normal;}
+ </style>
</head>
<body>
<h1>附录D - MPlayer skin的格式</h1>
-本文件的目的是描述MPlayer的skin的格式。这里所包含的信息可能不对,因为
+<p>本文件的目的是描述MPlayer的skin的格式。这里所包含的信息可能不对,因为</p>
<ol type="a">
<li>GUI不是我写的</li>
@@ -24,37 +24,31 @@ em.warn {color: red;
<li>我可能搞错了</li>
</ol>
-因此如果某个功能与它在这里被描述的工作方式不一样,不用大惊小怪。
+<p>因此如果某个功能与它在这里被描述的工作方式不一样,不用大惊小怪</p>。
-<p>
-谢谢<em>Zolt醤 Ponekker</em>的帮助。
-</p>
+<p>谢谢<em>Zolt醤 Ponekker</em>的帮助。</p>
-<p>
-<em>Andr醩 Mohari &lt;mayday@freemail.hu&gt;</em>
-</p>
+<p><em>Andr醩 Mohari &lt;mayday@freemail.hu&gt;</em></p>
<h2><a name="overview">D.1 综述</a></h2>
-这虽然与skin的格式扯不上什么关系,但是你应该了解MPlayer有<b>没有</b>内建的皮肤,
-因此<b>为了能够使用GUI必须安装至少一种皮肤。</b>
+<p>这虽然与skin的格式扯不上什么关系,但是你应该了解MPlayer有<b>没有</b>内建的皮肤,
+因此<b>为了能够使用GUI必须安装至少一种皮肤。</b></p>
<h3><a name="dirs">D.1.1 目录</a></h3>
-skin的搜索目录(按顺序)是:
+<p>skin的搜索目录(按顺序)是:</p>
<pre>
$(DATADIR)/Skin/
$(PREFIX)/share/mplayer/Skin/
~/.mplayer/Skin/
</pre>
-<p>
-注意,第一个路径倚赖于MPlayer的安装配置(见<code>configure</code>脚本
-的<code>--prefix</code>和<code>--datadir</code>的参数)。
-</p>
+<p>注意,第一个路径倚赖于MPlayer的安装配置(见<code>configure</code>脚本
+的<code>--prefix</code>和<code>--datadir</code>的参数)。</p>
-所有的skin被安装到上面列出的一个目录下的自己的目录中,例如:
+<p>所有的skin被安装到上面列出的一个目录下的自己的目录中,例如:</p>
<pre>
$(PREFIX)/share/mplayer/Skin/default/
</pre>
@@ -62,161 +56,135 @@ skin的搜索目录(按顺序)是:
<h3><a name="images">D.1.2 图像格式</a></h3>
-图像必须是真彩的(24或者32bpp)PNG图片
+<p>图像必须是真彩的(24或者32bpp)PNG图片。</p>
-<p>
-在主窗口(见下面)中你能使用包含“透明色”的图像:用颜色#FF00FF(<font color="#FF00FF">深红</font>)
-填充的区域在MPlayer看来是完全透明的。这意味着你甚至能改变窗口外形如果你的X服务器有XShape扩展。
-</p>
+<p>在主窗口(见下面)中你能使用包含“透明色”的图像:用颜色#FF00FF(<font color="#FF00FF">深红</font>)
+填充的区域在MPlayer看来是完全透明的。这意味着你甚至能改变窗口外形如果你的X服务器有XShape扩展。</p>
<h3><a name="components">D.1.3 Skin的组成部分</a></h3>
-Skin的格式是十分自由的(不是像Winamp/XMMS的那种固定格式的皮肤),所以能不能做出些东西取决于你。
+<p>Skin的格式是十分自由的(不是像Winamp/XMMS的那种固定格式的皮肤),所以能不能做出些东西取决于你。</p>
-<p>
-目前有三个要被修饰的窗口:<a href="#mainwin">主窗口</a>,<a href="#subwindow">副窗口</a>,<a href="#mainwin">播放条</a>和
-<a href="#skinmenu">Skin菜单</a>(右键单击弹出)。
-</p>
+<p>目前有三个要被修饰的窗口:<a href="#mainwin">主窗口</a>,<a href="#subwindow">副窗口</a>,<a href="#mainwin">播放条</a>和
+<a href="#skinmenu">Skin菜单</a>(右键单击弹出)。</p>
<ul>
-<li>
-<b>主窗口</b>和/或者<b>播放条</b>是你控制MPlayer的地方。窗口的背景是图像。各种项目可以(而且必须)被放置在这里:
-<em>按钮</em>,<em>滑动条</em>和<em>标签</em>。对于每一个项目,你都必须指定其位置和大小。
-
-<p>
-一个<b>按钮</b>有三种状态(按下,释放,禁止),所以按钮图像必须垂直地划分成三部分。
-细节参见<a href="#main.button">按钮</a>项目。
-</p>
-
-<p>
-<b>滑动条</b>(主要用于搜寻条和音量/平衡控制)可以有任意多的状态只要你把图像分成上下排列的足够多份。
-细节参见<a href="#main.hpotmeter">hpotmeter</a>和<a href="#main.potmeter">potmeter</a>。
-</p>
-
-<p>
-<b>标签</b>有一点特殊:字符需要从图像文件中绘制,而图像中的字符用<a href="#fonts">字体描述文件</a>描述。
+ <li><p><b>主窗口</b>和/或者<b>播放条</b>是你控制MPlayer的地方。窗口的背景是图像。各种项目可以(而且必须)被放置在这里:
+<em>按钮</em>,<em>滑动条</em>和<em>标签</em>。对于每一个项目,你都必须指定其位置和大小。</p>
+
+ <p>一个<b>按钮</b>有三种状态(按下,释放,禁止),所以按钮图像必须垂直地划分成三部分。
+细节参见<a href="#main.button">按钮</a>项目。</p>
+
+ <p><b>滑动条</b>(主要用于搜寻条和音量/平衡控制)可以有任意多的状态只要你把图像分成上下排列的足够多份。
+细节参见<a href="#main.hpotmeter">hpotmeter</a>和<a href="#main.potmeter">potmeter</a>。</p>
+
+ <p><b>标签</b>有一点特殊:字符需要从图像文件中绘制,而图像中的字符用<a href="#fonts">字体描述文件</a>描述。
后者一个纯文本文件规定图像中每一字符的x,y坐标和大小(图像文件和他的字体描述文件<em>共同</em>
-组成一个字体)。细节参见<a href="#main.dlabel">dlabel</a>和<a href="#main.slabel">slabel</a>。
-</p>
-
-<p>
-<em class=note>
-<b>注意:</b>所有图像都能像<a href="#images">图像格式</a>一节中说明的使用透明色。如果X Server不支持
-XShape扩展,透明的部分将显示为黑色。如果你想使用这个特性,主窗口背景图像的宽度应该能被8整除。
-</em>
-</p>
-</li>
-
-<li>
-<b>subwindow</b>是电影显示的地方。如果没有载入电影它将显示一个指定的图像(空的窗口太无聊了:-))
-<em class=note><b>注意:</b>在这里<b>不允许</b>使用透明色。</em>
-</li>
-
-<li>
-<b>skin菜单</b>仅仅是提供一个通过菜单控制MPlayer的方法。菜单需要两个图像:一个是基础图像
+组成一个字体)。细节参见<a href="#main.dlabel">dlabel</a>和<a href="#main.slabel">slabel</a>。</p>
+
+ <p><em class=note><b>注意:</b>所有图像都能像<a href="#images">图像格式</a>一节中说明的使用透明色。如果X Server不支持
+XShape扩展,透明的部分将显示为黑色。如果你想使用这个特性,主窗口背景图像的宽度应该能被8整除。</em></p>
+ </li>
+
+ <li><p><b>subwindow</b>是电影显示的地方。如果没有载入电影它将显示一个指定的图像(空的窗口太无聊了:-))
+<em class=note><b>注意:</b>在这里<b>不允许</b>使用透明色。</em></p>
+ </li>
+
+ <li><p><b>skin菜单</b>仅仅是提供一个通过菜单控制MPlayer的方法。菜单需要两个图像:一个是基础图像
用来显示菜单的正常状态,另一个用来显示被选择的项目。当菜单弹出时,显示第一个图像。如果你把鼠标在
菜单条目上移动,当前选择的项目从第二个图像中复制并覆盖到当前鼠标指针下面的菜单项目上。
-(第二个图像从来不作为整体来显示)。
-<p>
-一个菜单选项用图像中的位置和大小定义(细节参见<a href="#skinmenu">skin菜单</a>)。
-</p>
-</li>
+(第二个图像从来不作为整体来显示)。</p>
+
+ <p>一个菜单选项用图像中的位置和大小定义(细节参见<a href="#skinmenu">skin菜单</a>)。</p>
+ </li>
</ul>
-<p>
-还有一件重要的事情没有提到:为了使按钮,滑动条和菜单项工作,MPlayer必须知道如果他们被点击
+<p>还有一件重要的事情没有提到:为了使按钮,滑动条和菜单项工作,MPlayer必须知道如果他们被点击
的话应该做什么。这是利用<a href="#guimsg">消息</a>(事件)机制完成的。对于这些项目,你必须定义当
-他们被点击时将会产生的消息。
-</p>
+他们被点击时将会产生的消息。</p>
<h3><a name="files">D.1.4 文件</a></h3>
-你需要制作下列的文件构成一个skin:
+<p>你需要制作下列的文件构成一个skin:</p>
+
<ul>
-<li>
-一个配置文件称为<a href="#skin">skin</a>,告诉MPlayer如何将skin的不同部分放在一起,
-以及如果你在窗口中某处点击的话应该做什么。
-</li>
-<li>主窗口的背景图像。</li>
-<li>主窗口上代表物件的图像(包括一个或更多字体描述文件用来显示标签)。</li>
-<li>在副窗口中显示的图像(可选)。</li>
-<li>skin菜单的两个图像(仅当你想要创建菜单时才需要他们)。</li>
+ <li>一个配置文件称为<a href="#skin">skin</a>,告诉MPlayer如何将skin的不同部分放在一起,
+以及如果你在窗口中某处点击的话应该做什么。</li>
+ <li>主窗口的背景图像。</li>
+ <li>主窗口上代表物件的图像(包括一个或更多字体描述文件用来显示标签)。</li>
+ <li>在副窗口中显示的图像(可选)。</li>
+ <li>skin菜单的两个图像(仅当你想要创建菜单时才需要他们)。</li>
</ul>
-除了skin的配置文件之外,你能给其它文件起随便什么名字(但字体描述文件必须以<code>.fnt</code>为扩展名)。
+<p>除了skin的配置文件之外,你能给其它文件起随便什么名字(但字体描述文件必须以<code>.fnt</code>为扩展名)。</p>
-<h2><a name="skinfile">D.2 <code>skin</code>文件</a></h2>
+<h2><a name="skinfile">D.2 skin文件</a></h2>
-<p>
-如上所述,这是skin的配置文件。
-它是基于行的;注释行必须以'<code>;</code>'开头(只有空格和tab可以放在'<code>;</code>'之前)。
-</p>
+<p>如上所述,这是skin的配置文件。
+它是基于行的;注释行必须以'<code>;</code>'开头(只有空格和tab可以放在'<code>;</code>'之前)。</p>
-<p>
-文件由section组成。每一段描述一个程序的skin,使用下列的形式:
-</p>
+<p>文件由section组成。每一段描述一个程序的skin,使用下列的形式:</p>
-<table border=1 width="100%"><tr bgcolor=silver><td><pre>
+<table border=1 width="100%">
+ <tr bgcolor=silver>
+ <td>
+<pre>
section = <i>section name</i>
.
.
.
end
-</pre></td></tr></table>
+</pre>
+ </td>
+ </tr>
+</table>
-<p>
-目前只有一个程序,所以你只需要一个section:
-它的名称是<b>movieplayer</b>。
-</p>
+<p>目前只有一个程序,所以你只需要一个section:
+它的名称是<b>movieplayer</b>。</p>
-<p>
-这个段中每个窗口用下列形式的块描述:
-</p>
+<p>这个段中每个窗口用下列形式的块描述:</p>
-<table border=1 width="100%"><tr bgcolor=silver><td><pre>
+<table border=1 width="100%">
+ <tr bgcolor=silver>
+ <td>
+<pre>
window = <i>window name</i>
.
.
.
end
-</pre></td></tr></table>
+</pre>
+ </td>
+ </tr>
+</table>
-<p>
-其中<i>window name</i>可以是下面各字串中的一项:
-</p>
+<p>其中<i>window name</i>可以是下面各字串中的一项:</p>
<ul>
-<li><b>main</b> -- 对于主窗口</li>
-<li><b>sub</b> -- 对于副窗口</li>
-<li><b>menu</b> -- 对于skin菜单</li>
-<li><b>playbar</b> - 播放条</li>
+ <li><b>main</b> -- 对于主窗口</li>
+ <li><b>sub</b> -- 对于副窗口</li>
+ <li><b>menu</b> -- 对于skin菜单</li>
+ <li><b>playbar</b> - 播放条</li>
</ul>
-<p>
-(副窗口和skin菜单块是可选的 -- 你不一定要创建菜单或者修饰副窗口 )。
-</p>
+<p>(副窗口和skin菜单块是可选的 -- 你不一定要创建菜单或者修饰副窗口 )。</p>
-<p>
-在一个窗口的描述块内,你能用下列形式的一行定义窗口中的每一项目:
-</p>
+<p>在一个窗口的描述块内,你能用下列形式的一行定义窗口中的每一项目:</p>
<dl>
-<dt>
-<b><code>item = parameter</code></b>
-</dt>
-<dd>
-其中<code>item</code>是定义GUI项目的类型的字串,<code>parameter</code>是一个数字或者文字值
-(或者一组用逗号分开的值的列表)。
-</dd>
+ <dt><b><code>item = parameter</code></b></dt>
+ <dd>其中<code>item</code>是定义GUI项目的类型的字串,<code>parameter</code>是一个数字或者文字值
+(或者一组用逗号分开的值的列表)。</dd>
</dl>
-<p>
-把上述的放在一起,整个文件看起来就有点像这样:
-</p>
+<p>把上述的放在一起,整个文件看起来就有点像这样:</p>
-<table border=1 width="100%"><tr bgcolor=silver><td><pre>
+<table border=1 width="100%">
+ <tr bgcolor=silver>
+ <td>
+<pre>
section = movieplayer
window = main
; ... items for main window ...
@@ -234,18 +202,17 @@ section = movieplayer
; ... items for playbar ...
end
end
-</pre></td></tr></table>
+</pre>
+ </td>
+ </tr>
+</table>
-<p>
-图像文件的名称必须不带目录名 -- 图像在<code>Skin</code>目录中被搜索。你能(但是并不需要)规定扩展名。
+<p>图像文件的名称必须不带目录名 -- 图像在<code>Skin</code>目录中被搜索。你能(但是并不需要)规定扩展名。
如果文件不存在,MPlayer将试图装载<code>&lt;filename&gt;.&lt;ext&gt;</code>文件,
-<code>&lt;ext&gt;</code>可以是<code>png</code>或者<code>PNG</code>(按这个顺序尝试)。第一个匹配文件将被使用。
-</p>
+<code>&lt;ext&gt;</code>可以是<code>png</code>或者<code>PNG</code>(按这个顺序尝试)。第一个匹配文件将被使用。</p>
-<p>
-最后是一些用来定位的语句。主窗口和副窗口可以放置在屏幕的不同的角落,通过给定<code>X</code>和<code>Y</code>坐标。
-<code>0</code>代表顶端或左端,<code>-1</code>代表中心然后<code>-2</code>代表右边或底部:
-</p>
+<p>最后是一些用来定位的语句。主窗口和副窗口可以放置在屏幕的不同的角落,通过给定<code>X</code>和<code>Y</code>坐标。
+<code>0</code>代表顶端或左端,<code>-1</code>代表中心然后<code>-2</code>代表右边或底部:</p>
<pre>
@@ -259,44 +226,34 @@ end
</pre>
-<table border=1 cellpadding=5 width="100%"><tr bgcolor="#ffffcc"><td>
-这里有个例子可以把这个搞清楚。假设你有个叫<code>main.png</code>的图像用来做主窗口:
-<blockquote>
+<table border=1 cellpadding=5 width="100%">
+ <tr bgcolor="#ffffcc">
+ <td>这里有个例子可以把这个搞清楚。假设你有个叫<code>main.png</code>的图像用来做主窗口:
+ <blockquote>
<pre>
base = main, -1, -1
</pre>
-</blockquote>
-
-MPlayer将尝试装载<code>main</code>,<code>main.png</code>,<code>main.PNG</code>文件。
-<br>
-</td></tr></table>
+ </blockquote>
+ MPlayer将尝试装载<code>main</code>,<code>main.png</code>,<code>main.PNG</code>文件。<br>
+ </td>
+ </tr>
+</table>
<h3><a name="mainwindow">D.2.1 主窗口和播放条</a></h3>
-下面是所有能用于'<code>window = main</code>' .&nbsp;.&nbsp;. '<code>end</code>'和'<code>window = playbar</code>' &nbsp;.&nbsp;. '<code>end</code>'块中的项目的列表。
+<p>下面是所有能用于'<code>window = main</code>' .&nbsp;.&nbsp;. '<code>end</code>'和'<code>window = playbar</code>' &nbsp;.&nbsp;. '<code>end</code>'块中的项目的列表。</p>
<dl>
-<dt><a name="main.base">
-<b><code>base = image, X, Y</code></b>
-</a></dt>
-<dd>
-指定用于主窗口的背景图像。窗口将显示在屏幕上的<code>X,Y</code>位置,窗口的大小与图像相同。
-<div>
-<em class=warn>
-<b>注意:</b>这些参数目前对显示窗口不起作用。
-</em>
-<br>
-<em class=warn>
-<b>警告:</b>图像中的透明区域(彩色的#FF00FF )在没有XShape扩展的X服务器上是黑色的。图像的宽度必须能被8整除。
-</em>
-</div>
-</dd>
-
-<dt><a name="main.button">
-<b><code>button = image, X, Y, width, height, message</code></b></a></dt>
-<dd>
-将一个大小为<code>width</code>*<code>height</code>的按钮放置在<code>X</code>,<code>Y</code>的位置。
+ <dt><a name="main.base"><b><code>base = image, X, Y</code></b></a></dt>
+ <dd>指定用于主窗口的背景图像。窗口将显示在屏幕上的<code>X,Y</code>位置,窗口的大小与图像相同。
+ <div><em class=warn><b>注意:</b>这些参数目前对显示窗口不起作用。</em><br>
+ <em class=warn><b>警告:</b>图像中的透明区域(彩色的#FF00FF )在没有XShape扩展的X服务器上是黑色的。图像的宽度必须能被8整除。</em>
+ </div>
+ </dd>
+
+ <dt><a name="main.button"><b><code>button = image, X, Y, width, height, message</code></b></a></dt>
+ <dd>将一个大小为<code>width</code>*<code>height</code>的按钮放置在<code>X</code>,<code>Y</code>的位置。
指定的<code>message</code>将在按钮被点击时产生。被<code>image</code>制定的图像必须有从上到下三个部分
(根据按钮的可能状态),像这样:
<pre>
@@ -308,41 +265,26 @@ MPlayer将尝试装载<code>main</code>,<code>main.png</code>,<code>main.PNG</code>
| disabled |
+------------+
</pre>
-</dd>
-
-<dt><a name="main.decoration">
-<b><code>decoration = enable|disable</code></b>
-</a></dt>
-<dd>
-允许或禁止window manager修饰主窗口。缺省设定是<b>禁止</b>。
-<br>
-<br>
-<em class=warn>
-<b>注意:</b>这对显示窗口无效,它们不需要。
-</em>
-<br>
-</dd>
-
-<dt>
-<a name="main.hpotmeter">
-<b>
-<code>hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message</code>
-<br>
-<code>vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message</code>
-</b>
-</a>
-</dt>
-<dd>
-在<code>X</code>,<code>Y</code>位置放置一个大小为<code>width</code>*<code>height</code>的水平滑动条。
+ </dd>
+
+ <dt><a name="main.decoration"><b><code>decoration = enable|disable</code></b></a></dt>
+ <dd>允许或禁止window manager修饰主窗口。缺省设定是<b>禁止</b>。<br><br>
+ <em class=warn><b>注意:</b>这对显示窗口无效,它们不需要。</em><br>
+ </dd>
+
+ <dt><a name="main.hpotmeter"><b><code>hpotmeter = button, bwidth, bheight, phases, numphases, default,
+ X, Y, width, height, message</code><br><code>vpotmeter = button, bwidth, bheight, phases, numphases, default,
+ X, Y, width, height, message</code></b></a></dt>
+ <dd>在<code>X</code>,<code>Y</code>位置放置一个大小为<code>width</code>*<code>height</code>的水平滑动条。
所用的图像可以划分成不同的部分用来显示滑动条的不同状态(例如,你能做一个音量滑动条,当音量从最小变到最大时,
滑动条的颜色从绿色变成红色。)。<code>hpotmeter</code>可以有一个能被水平拖曳的按钮。
-<div>参数是:</div>
+ <div>参数是:</div>
-<ul>
-<li><code>button</code> -- 用于按钮的图像(必须有从上到下三部分,跟<a href="#main.button">button</a>中一样)</li>
-<li><code>bwidth</code>,<code>bheight</code> -- 按钮的大小</li>
-<li><code>phases</code> -- 用于hpotmeter的不同的状态的图像。如果你想不要这样的图像可以使用一个特殊的值<code>NULL</code>。
+ <ul>
+ <li><code>button</code> -- 用于按钮的图像(必须有从上到下三部分,跟<a href="#main.button">button</a>中一样)</li>
+ <li><code>bwidth</code>,<code>bheight</code> -- 按钮的大小</li>
+ <li><code>phases</code> -- 用于hpotmeter的不同的状态的图像。如果你想不要这样的图像可以使用一个特殊的值<code>NULL</code>。
图像必须像这样被垂直划分成<code>numphases</code>个部分:
<pre>
+------------+
@@ -355,202 +297,156 @@ MPlayer将尝试装载<code>main</code>,<code>main.png</code>,<code>main.PNG</code>
| phase #n |
+------------+
</pre>
-</li>
-<li><code>numphases</code> -- <code>phase</code>图像中储存的状态的数量</li>
-<li><code>default</code> -- hpotmeter的缺省值(范围0到100)</li>
-<li><code>X</code>,<code>Y</code> -- hpotmeter的位置</li>
-<li><code>width</code>,<code>height</code> -- <code>hpotmeter</code>的宽度和高度</li>
-<li><code>message</code> -- 当<code>hpotmeter</code>的值改变时产生的消息</li>
-</ul>
-
-</dd>
-
-<dt><a name="main.potmeter">
-<b><code>potmeter = phases, numphases, default, X, Y, width, height, message</code></b>
-</a></dt>
-<dd>
-没有按钮的<code>hpotmeter</code>。(我猜它是用来旋转,但它只对水平拖拽作出反应)。
+ </li>
+ <li><code>numphases</code> -- <code>phase</code>图像中储存的状态的数量</li>
+ <li><code>default</code> -- hpotmeter的缺省值(范围0到100)</li>
+ <li><code>X</code>,<code>Y</code> -- hpotmeter的位置</li>
+ <li><code>width</code>,<code>height</code> -- <code>hpotmeter</code>的宽度和高度</li>
+ <li><code>message</code> -- 当<code>hpotmeter</code>的值改变时产生的消息</li>
+ </ul>
+
+ </dd>
+
+ <dt><a name="main.potmeter"><b><code>potmeter = phases, numphases, default, X, Y, width, height, message</code></b></a></dt>
+ <dd>没有按钮的<code>hpotmeter</code>。(我猜它是用来旋转,但它只对水平拖拽作出反应)。
描述参数参见<a href="#main.hpotmeter">hpotmeter</a>。<code>phases</code>能设为<code>NULL</code>,
-但这实在没什么用处,因为那样你就看不到<code>potmeter</code>在哪里了。
-</dd>
-
-<dt><a name="main.font">
-<b><code>font = fontfile, fontid</code></b>
-</a></dt>
-<dd>
-定义一个字体。<code>fontfile</code>是以<code>.fnt</code>为扩展名的字体描述文件的名字(<b>不要</b>加上扩展名)。
+但这实在没什么用处,因为那样你就看不到<code>potmeter</code>在哪里了。</dd>
+
+ <dt><a name="main.font"><b><code>font = fontfile, fontid</code></b></a></dt>
+ <dd>定义一个字体。<code>fontfile</code>是以<code>.fnt</code>为扩展名的字体描述文件的名字(<b>不要</b>加上扩展名)。
<code>fontid</code>用来代表这种字体(见<a href="#main.dlabel">dlabel</a>和<a href="#main.slabel">slabel</a>)。
-可以定义25个字体。
-</dd>
-
-<dt><a name="main.slabel">
-<b><code>slabel = X, Y, fontid, "text"</code></b>
-</a></dt>
-<dd>
-在<code>X</code>,<code>Y</code>位置放置一个静态的标签。<code>text</code>将用<code>fontid</code>代表的字体显示。
+可以定义25个字体。</dd>
+
+ <dt><a name="main.slabel"><b><code>slabel = X, Y, fontid, "text"</code></b></a></dt>
+ <dd>在<code>X</code>,<code>Y</code>位置放置一个静态的标签。<code>text</code>将用<code>fontid</code>代表的字体显示。
text只能是无格式文本(<code>$x</code>之类的变量不起作用)而且必须封在一对双引号中(但是<code>"</code>字符不能是text的一部分)。
-标签使用由<code>fontid</code>代表的字体显示。
-</dd>
-
-<dt><a name="main.dlabel">
-<b><code>dlabel = X, Y, length, align, fontid, "text"</code></b>
-</a></dt>
-<dd>
-在<code>X</code>,<code>Y</code>位置放置一个动态的标签。标签被称为动态的,因为它的text周期性地刷新。标签的最大限度长度由
+标签使用由<code>fontid</code>代表的字体显示。</dd>
+
+ <dt><a name="main.dlabel"><b><code>dlabel = X, Y, length, align, fontid, "text"</code></b></a></dt>
+ <dd>在<code>X</code>,<code>Y</code>位置放置一个动态的标签。标签被称为动态的,因为它的text周期性地刷新。标签的最大限度长度由
<code>leghth</code>给定(它的高度是字符的高度)。如果将要显示的text比给定的宽度宽,它将滚动显示,否则它将在指定的空间之内按
-<code>align</code>参数的值对齐显示:<code>0</code>表示靠右对齐,<code>1</code>表示居中对齐,<code>2</code>表示靠左对齐。
-<br>
+<code>align</code>参数的值对齐显示:<code>0</code>表示靠右对齐,<code>1</code>表示居中对齐,<code>2</code>表示靠左对齐。<br>
要显示的文本由<code>text</code>给定:text必须封在一对双引号中(但是<code>"</code>字符不能是text的一部分)。标签使用由
<code>fontid</code>代表的字体显示。你能在文本中使用下列变量:
-<table align="center" border="1">
-<tr align=center><th>Variable</th><th align=left>Meaning</th></tr>
-<tr><td align=center><kbd>$1</kbd></td>
- <td><em>hh:mm:ss</em>格式的播放时间</td></tr>
-<tr><td align=center><kbd>$2</kbd></td>
- <td><em>mmmm:ss</em>格式的播放时间</td></tr>
-<tr><td align=center><kbd>$3</kbd></td>
- <td><em>hh</em>(小时)格式的播放时间</td></tr>
-<tr><td align=center><kbd>$4</kbd></td>
- <td><em>mm</em>(分)格式的播放时间</td></tr>
-<tr><td align=center><kbd>$5</kbd></td>
- <td><em>ss</em>(秒)格式的播放时间</td></tr>
-<tr><td align=center><kbd>$6</kbd></td>
- <td><em>hh:mm:ss</em>格式的电影长度</td></tr>
-<tr><td align=center><kbd>$7</kbd></td>
- <td><em>mmmm:ss</em>格式的电影长度</td></tr>
-<tr><td align=center><kbd>$8</kbd></td>
- <td><em>h:mm:ss</em>格式的电影长度</td></tr>
-<tr><td align=center><kbd>$v</kbd></td>
- <td><em>xxx.xx%</em>格式的音量</td></tr>
-<tr><td align=center><kbd>$V</kbd></td>
- <td><em>xxx.x</em>格式的音量</td></tr>
-<tr><td align=center><kbd>$b</kbd></td>
- <td><em>xxx.xx%</em>格式的声道平衡</td></tr>
-<tr><td align=center><kbd>$B</kbd></td>
- <td><em>xxx.x</em>格式的声道平衡</td></tr>
-<tr><td align=center><kbd>$$</kbd></td>
- <td><kbd>$</kbd>字符</td></tr>
-<tr><td align=center><kbd>$a</kbd></td>
- <td>一个代表音频格式的字母(none: <code>n</code>,mono: <code>m</code>,stereo: <code>t</code>)</td></tr>
-<tr><td align=center><kbd>$t</kbd></td>
- <td>track号(在播放列表中)</td></tr>
-<tr><td align=center><kbd>$o</kbd></td>
- <td>文件名</td></tr>
-<tr><td align=center><kbd>$f </kbd></td>
- <td>小写格式文件名</td></tr>
-<tr><td align=center><kbd>$F </kbd></td>
- <td>大写格式文件名</td></tr>
-<tr><td align=center><kbd>$T</kbd></td>
- <td>一个代表媒体流类型的字幕(文件: <code>f</code>,Video CD: <code>v</code>,DVD: <code>d</code>,URL: <code>u</code>)</td></tr>
-<tr><td align=center><kbd>$p</kbd></td>
- <td>"p"字符(如果电影正在播放并且字体中有"p"这个字符)</td></tr>
-<tr><td align=center><kbd>$s </kbd></td>
- <td>"s"字符(如果电影停止播放并且字体中有"s"这个字符)</td></tr>
-<tr><td align=center><kbd>$e</kbd></td>
- <td>"e"字符(如果playback被暂停并且字体中有"e"这个字符)</td></tr>
-<tr><td align=center><kbd>$x</kbd></td>
- <td>电影宽度</td></tr>
-<tr><td align=center><kbd>$y</kbd></td>
- <td>电影高度</td></tr>
-<tr><td align=center><kbd>$C</kbd></td>
- <td>使用的编解码器的名字</td></tr>
-</table>
-
-<em class="note">
-<b>注意:</b><kbd>$a</kbd>,<kbd>$T</kbd>,<kbd>$p</kbd>,<kbd>$s</kbd>和<kbd>$e</kbd>变量都返回应该被显示作为特殊的符号
+ <table align="center" border="1">
+ <tr align=center><th>Variable</th><th align=left>Meaning</th></tr>
+ <tr><td align=center><kbd>$1</kbd></td>
+ <td><em>hh:mm:ss</em>格式的播放时间</td></tr>
+ <tr><td align=center><kbd>$2</kbd></td>
+ <td><em>mmmm:ss</em>格式的播放时间</td></tr>
+ <tr><td align=center><kbd>$3</kbd></td>
+ <td><em>hh</em>(小时)格式的播放时间</td></tr>
+ <tr><td align=center><kbd>$4</kbd></td>
+ <td><em>mm</em>(分)格式的播放时间</td></tr>
+ <tr><td align=center><kbd>$5</kbd></td>
+ <td><em>ss</em>(秒)格式的播放时间</td></tr>
+ <tr><td align=center><kbd>$6</kbd></td>
+ <td><em>hh:mm:ss</em>格式的电影长度</td></tr>
+ <tr><td align=center><kbd>$7</kbd></td>
+ <td><em>mmmm:ss</em>格式的电影长度</td></tr>
+ <tr><td align=center><kbd>$8</kbd></td>
+ <td><em>h:mm:ss</em>格式的电影长度</td></tr>
+ <tr><td align=center><kbd>$v</kbd></td>
+ <td><em>xxx.xx%</em>格式的音量</td></tr>
+ <tr><td align=center><kbd>$V</kbd></td>
+ <td><em>xxx.x</em>格式的音量</td></tr>
+ <tr><td align=center><kbd>$b</kbd></td>
+ <td><em>xxx.xx%</em>格式的声道平衡</td></tr>
+ <tr><td align=center><kbd>$B</kbd></td>
+ <td><em>xxx.x</em>格式的声道平衡</td></tr>
+ <tr><td align=center><kbd>$$</kbd></td>
+ <td><kbd>$</kbd>字符</td></tr>
+ <tr><td align=center><kbd>$a</kbd></td>
+ <td>一个代表音频格式的字母(none: <code>n</code>,mono: <code>m</code>,stereo: <code>t</code>)</td></tr>
+ <tr><td align=center><kbd>$t</kbd></td>
+ <td>track号(在播放列表中)</td></tr>
+ <tr><td align=center><kbd>$o</kbd></td>
+ <td>文件名</td></tr>
+ <tr><td align=center><kbd>$f </kbd></td>
+ <td>小写格式文件名</td></tr>
+ <tr><td align=center><kbd>$F </kbd></td>
+ <td>大写格式文件名</td></tr>
+ <tr><td align=center><kbd>$T</kbd></td>
+ <td>一个代表媒体流类型的字幕(文件: <code>f</code>,Video CD: <code>v</code>,DVD: <code>d</code>,URL: <code>u</code>)</td></tr>
+ <tr><td align=center><kbd>$p</kbd></td>
+ <td>"p"字符(如果电影正在播放并且字体中有"p"这个字符)</td></tr>
+ <tr><td align=center><kbd>$s </kbd></td>
+ <td>"s"字符(如果电影停止播放并且字体中有"s"这个字符)</td></tr>
+ <tr><td align=center><kbd>$e</kbd></td>
+ <td>"e"字符(如果playback被暂停并且字体中有"e"这个字符)</td></tr>
+ <tr><td align=center><kbd>$x</kbd></td>
+ <td>电影宽度</td></tr>
+ <tr><td align=center><kbd>$y</kbd></td>
+ <td>电影高度</td></tr>
+ <tr><td align=center><kbd>$C</kbd></td>
+ <td>使用的编解码器的名字</td></tr>
+ </table>
+
+ <em class="note"><b>注意:</b><kbd>$a</kbd>,<kbd>$T</kbd>,<kbd>$p</kbd>,<kbd>$s</kbd>和<kbd>$e</kbd>变量都返回应该被显示作为特殊的符号
(例如,"e"通常代表像<code>||</code>这样的暂停符号)的字符。你应该有一个正常字符的字体以及另一个用于符号的不同的字体。
-更多信息参见<a href="#symbols">符号</a>部分。
-</em>
-</dd>
+更多信息参见<a href="#symbols">符号</a>部分。</em>
+ </dd>
</dl>
<h3><a name="subwindow">D.2.2 副窗口</a></h3>
-下列的项目能用于'<code>window = sub</code>' .&nbsp;.&nbsp;. '<code>end</code>'块。
+<p>下列的项目能用于'<code>window = sub</code>' .&nbsp;.&nbsp;. '<code>end</code>'块。<p>
<dl>
-<dt><a name="sub.base">
-<b><code>base = image, X, Y, width, height</code></b>
-</a></dt>
-<dd>
-在副窗口中将要显示的图像。窗口将在屏幕给定的<code>X</code>,<code>Y</code>位置出现(<code>0,0</code>是左上角)。
+ <dt><a name="sub.base"> <b><code>base = image, X, Y, width, height</code></b></a></dt>
+ <dd>在副窗口中将要显示的图像。窗口将在屏幕给定的<code>X</code>,<code>Y</code>位置出现(<code>0,0</code>是左上角)。
你能用<code>-1</code>指定中心<code>-2</code>指定右边(<code>X</code>)和底部(<code>Y</code>)。窗口将和图像一样大。
-<code>width</code>和<code>height</code>指定窗口的大小; 他们是可选的(如果没有他们,窗口是与图像同样的大小)。
-</dd>
-
-<dt><a name="sub.background">
-<b><code>background = R, G, B</code></b>
-</a></dt>
-<dd>
-让你设置背景颜色。它在图像小于窗口时有用。
-<code>R</code>,<code>G</code>和<code>B</code>规定颜色的的红,绿和蓝色的组成部分(它们中每一个都是从0到255的十进制数字)。
-</dd>
+<code>width</code>和<code>height</code>指定窗口的大小; 他们是可选的(如果没有他们,窗口是与图像同样的大小)。</dd>
+
+ <dt><a name="sub.background"><b><code>background = R, G, B</code></b></a></dt>
+ <dd>让你设置背景颜色。它在图像小于窗口时有用。
+<code>R</code>,<code>G</code>和<code>B</code>规定颜色的的红,绿和蓝色的组成部分(它们中每一个都是从0到255的十进制数字)。</dd>
</dl>
<h3><a name="skinmenu">D.2.3 Skin菜单</a></h3>
-如前所述,菜单用两个图像显示。
+<p>如前所述,菜单用两个图像显示。
正常的菜单条目从<code>base</code>项指定的图像中获得,当前选择的条目则从<code>selected</code>项指定的图像中获得。
-你必须通过<code>menu</code>项定义每个菜单条目的位置和大小。
+你必须通过<code>menu</code>项定义每个菜单条目的位置和大小。</p>
-<p>
-这些是能用于'<code>window = menu</code>'.&nbsp;.&nbsp;. '<code>end</code>'之间的项目。
-</p>
+<p>这些是能用于'<code>window = menu</code>'.&nbsp;.&nbsp;. '<code>end</code>'之间的项目。</p>
<dl>
-<dt><a name="menu.base">
-<b><code>base = image</code></b>
-</a></dt>
-<dd>
-正常的菜单条目的图像。
-</dd>
-
-<dt><a name="menu.selected">
-<b><code>selected = image</code></b>
-</a></dt>
-<dd>
-所有条目都被选择的菜单的图像。
-</dd>
-
-<dt><a name="menu.menu">
-<b><code>menu = X, Y, width, height, message</code></b>
-</a></dt>
-<dd>
-定义图像中一个菜单条目的<code>X,Y</code>位置和大小。当鼠标在该条目上被释放时产生<code>message</code>消息。
-</dd>
+ <dt><a name="menu.base"><b><code>base = image</code></b></a></dt>
+ <dd>正常的菜单条目的图像。</dd>
+
+ <dt><a name="menu.selected"><b><code>selected = image</code></b></a></dt>
+ <dd>所有条目都被选择的菜单的图像。</dd>
+
+ <dt><a name="menu.menu"><b><code>menu = X, Y, width, height, essage</code></b></a></dt>
+ <dd>定义图像中一个菜单条目的<code>X,Y</code>位置和大小。当鼠标在该条目上被释放时产生<code>message</code>消息。</dd>
</dl>
<h2><a name="fonts">D.3 字体</a></h2>
-就象在关于skin的各部分的一节中论及的,字体由一个图像和一个描述文件定义。你能将字符放置在图像中的任何地方,
-但是必须确保他们的位置和大小被精确的提交给描述文件。
+<p>就象在关于skin的各部分的一节中论及的,字体由一个图像和一个描述文件定义。你能将字符放置在图像中的任何地方,
+但是必须确保他们的位置和大小被精确的提交给描述文件。</p>
-<p>
-字体描述文件随着(以<code>.fnt</code>为扩展名)能有以'<code>;</code>'开始的注释行。文件必须有像这样的行</p>
+<p>字体描述文件随着(以<code>.fnt</code>为扩展名)能有以'<code>;</code>'开始的注释行。文件必须有像这样的行</p>
<dl>
-<dt><a name="font.image">
-<b><code>image = image</code></b>
-</a></dt>
-<dd>
-其中<code>image</code>是用于字体的图像文件的名字(你不必制定扩展名)。
-</dd>
-
<