Panels UI - Commands 中文版

尘飏 发表于 2008-08-22 12:13:57

Foobar2000:Components 0.9/Panels UI (foo ui panels)/Commands

这个命令参考包含有关Panels UI特有的titleformat函数和变量的信息。在Panels UI版本0.14.10中使用了许多新的语法介绍。
(英文出处:http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Panels_UI_%28foo_ui_panels%29/Commands
(翻译:Chyng


1
一般

1.1颜色函数

这一节的函数允许以不同方法指定一种颜色,但每个函数都以BGR十六进制格式返回其值。

1.1.1 $c(r,g,b)

使用RGB格式指定返回的颜色,其中,rgb指颜色的红、绿和蓝组成部分。

1.1.2 $color(r,g,b)

参阅$c()

1.1.3 $h(h,s,l)

使用HSL格式指定返回的颜色,其中,hsl指颜色的色调、饱和度和亮度组成部分。

1.1.4$hexcolor(c)

使用RGB十六进制格式指定返回的颜色,其中,c是一个6位的RGB十六进制值。

1.1.5 $blendcolor(a,b,n)

返回一个由n%的颜色a加上(100-n)%的颜色b组成的新颜色。

1.1.6 $syscolor(n)

返回元素n的当前系统颜色,其中,n是一个在030间的整数值。参阅MSDN技术资源库以获取对每个值的描述。

1.2对齐函数

1.2.1 $alignabs()

重置对齐。因为相对于$alignabs一切都是对齐的,所以,要摆脱以往的$alignabs声明,一个空的$alignabs()函数是必须的。

1.2.2 $alignabs(x,y)

调整对齐以使x被添加到左边缘,而且x是被从对齐矩形的右边缘减去的。y是被添加到上边缘的,而且y是被从对齐矩形的下边缘减去的。

parameters

x

边界对齐矩形的X轴坐标;这个整数值x被添加到边界对齐矩形的左边缘,并被从边界对齐矩形的右边缘减去。

y

边界对齐矩形的y轴坐标;这个整数值y被添加到边界对齐矩形的上边缘,并被从边界对齐矩形的下边缘减去。

notes

$alignabs(0,0)$alignabs()是一样的,都将由此重置对齐。

1.2.3 $alignabs(x,y,w,h[,h-align,v-align])

设置一个边界对齐矩形。

parameters

x

边界矩形的左上角X轴坐标

y

边界矩形的左上角Y轴坐标

w

边界矩形的宽度

h

边界矩形的高度

h-align

默认的水平对齐,由下列属性之一来指定:

*                   left

*                   center

*                   right

v-align

垂直对齐,由下列属性之一来指定:

*                   top

*                   middle

*                   bottom

1.2.4 $align(position[,position])

在一条线内对齐文本。

parameters

position

position可以是下列属性之一:

*                   right

*                   center

*                   left

*                   top

*                   middle

*                   bottom

1.2.5 $lineheight(n)

设置当前行占有的高度,其中,n是一个整数值。

1.2.6 $wordwrap()

包装文字,以使其同一行放不下时进入下一行而非添加省略号。$char(10)会使$wordwrap()无效。

1.2.7 $tabx(n)

n像素缩进文本,其中,n是一个正整数值。

1.2.8 $width()

返回当前对齐矩形的宽度

1.2.9 $height()

返回当前对齐矩形的高度

1.3字体函数

这些函数设置字体的属性和外观。

1.3.1 $font(name,size[,options])

指定一种字体的属性。包括字型、字号和字体样式。

parameters

name

字体的名字

size

以像素为单位的字体的大小

options

options可以是下列属性的任意组合:

*                      bold

*                      thin

*                      italic

*                      strikeout

*                      underline

*                      nocleartype

禁用ClearType的渲染

*                      textalpha,n

*                      effectcolor,c

*                      alpha,n

*                      offset,n

*                      glow,n

*                      radius,n

*                      iterations,n

notes

使用Panels UI配置窗口里的效果对话框,options参数能被应用文本“效果”属性。一个内建的预览允许容易地调整这些属性。

example

$font(Calibri,20,bold,textalpha,100)

see also

$fontexists()

1.3.2 $addcharspace(n)

使每个字符的宽度增加n像素,其中,n是一个正的或负的整数值。简而言之,$addcharspace()n像素增加或减少每个字符间的空白。

1.3.3 $fixedwidth(n)

为每个字符设置一个不变的“固定”间距,其中,n是一个以像素为单位的正数或整数值。简而言之,每个字符都会有n像素的等宽间距。

1.3.4 $textcolor(c)

设定文本的颜色,其中,c可以是一个BGR十六进制颜色值(从一种颜色函数返回)或一个格式为r,g,bRGB颜色值。

examples

1、使用一个颜色函数设置颜色为红。

$textcolor($hexcolor(FF0000))

2、直接输入一个RGB颜色值设置颜色为红。

$textcolor(255,0,0)

1.3.5 $smallcaps(large font,small font,text)

以小体大写字母的形式返回texttext里的大写字母以large font返回,而小写字母以small font返回。large fontsmall font使用字体函数定义,例如$font()$textcolor(),等等。

example

指定的短语将以小体大写字母的形式返回。large fontCalibri,20和蓝色(255,0,0)。small fontCalibri,15和红色(0,0255)。

// In this example a $textcolor() is specified but it is not required;

// it would otherwise inherit the last defined $textcolor() function.

 

$smallcaps(

     $font(Calibri,20)$textcolor(255,0,0),

     $font(Calibri,15)$textcolor(0,0,255),

     This text will be output using small-caps.

)

1.4图像和外形函数

1.4.1 $imageabs(x,y,filename[,options])

显示一个以下被支持格式的图像:PNGBMPGIFJPEGICO

parameters

x

左上角位置的X轴坐标

y

左上角位置的Y轴坐标

filename

以绝对或相对路径表示的图像文件名。要使用相对路径,需将正斜杠“/”作为第一个字符。

例如:/MyLayout\images\example.jpg

options

options可以是下列属性的任意组合:

*                   alpha,n

图像的不透明度,其中,整数值n可以介于0(完全透明)到255(完全不透明)间。没有明确声明alphan,n属性,图像就是完全不透明的。

*                   clip,x,y,w,h

依据给定的参数修剪图像:

x

图像将被修剪到的左上角位置的X轴坐标

y

图像将被修剪到的左上角位置的Y轴坐标

w

图像的修剪宽度

h

图像的修剪高度

*                   nokeepaspect

重设尺寸时忽略高宽比率。

*                   resize,w,h

使用w参数和h参数指定的高宽比例重设图像的尺寸,其中,wh是以像素为单位的宽度和高度。要重设尺寸的图像大于其原始尺寸时,nokeepaspect属性必须指定。

*                   rotateflip,n

1rotateflip

n

描述

1

顺时针旋转90

2

顺时针旋转180

3

顺时针旋转270

4

水平翻转

5

顺时针旋转90度并水平翻转

6

垂直翻转

7

顺时针旋转90度并垂直翻转

2、用乘法表格式表示的ratateflip

×

Flip Horizontal

Flip Vertical

Flip Horizontal+Vertical

None

Rotate 90° CW

5

7

3

1

Rotate 180° CW

6

4

0

2

Rotate 270° CW

7

5

1

3

None

4

6

2

0

example

在位于0,0x,y位置显示一个图像,重设尺寸为50 x 50像素,并忽略高宽比,不透明度设为150

$imageabs(0,0,

     /images\example.jpg,

     resize,50,50,

     nokeepaspect,

     alpha,150

)

1.4.2 $rectabs(x,y,w,h[,brush color,pen color,options])

绘制一个矩形。

parameters

x

左上角位置的X轴坐标

y

左上角位置的Y轴坐标

w

矩形的宽度

h

矩形的高度

brush color

用于填充矩形的颜色,使用一种颜色函数定义。null属性使brush color以无颜色定义。

pen color

边沿颜色,使用一种颜色函数定义。null属性使pen color以无颜色定义。

options

options可以包括下列属性的任意组合:

*                   alpha,n

矩形的不透明度,其中,整数值n可以介于0(完全透明)到255(完全不透明)间。没有明确声明alphan,n属性,矩形就是完全不透明的。

*                   glow,n

*                   radius,n

*                   iterations,n

notes

当使用高级的选项如alpha,n时,矩形将被使用pen color填充,而非brush color。然而,如果brush color被定义为null,仅有的一个边沿将被照常画出。

example

在位于5,5x,y位置,使用75像素乘75像素的宽度和高度创建一个矩形。该矩形是红色的($c(255,0,0)),pen color(边沿)被使用null忽略。

$rectabs(0,5,

     75,75,

     $c(255,0,0),

     null

)

1.5持续性变量函数

持续性的变量(简称为PVARS)是在foobar2000会话中永久地保持其值的变量。这些变量可以在整个Panels UI的任何地方(Panels UI本身、Track Display、单栏播放列表和媒体库过滤器)被操作。

代码

输出

$getpvar(foo,bar)
$setpvar(foo,bar)
$getpvar(foo)
$getpvar(Foo)
$setpvar(foo,2000)
$getpvar(foo)
[unknown pvar]
 
bar
bar
 
2000

重要提示:PVARS无法使用foobar2000核心的变量操作方式来访问,例如$put()$puts()$get()

1.5.1 $getpvar(name)

返回最后存储在名为namePVAR中的值。如果该变量是未定义的,将返回字符串[unknown pvar]

example

检索一个PVAR里的值以设立三种可能的情况。

$select($getpvar(display),

     Scenario one

,

     Scenario two

,

     Scenario three

)

1.5.2 $setpvar(name,value)

在名为name的变量里存储永久的值,无返回值。

example

在一个名为displayPVAR里存储值2

$setpvar(display,2)

1.6其它函数

1.6.1 $calcheight(s)

返回字符串s的以像素为单位的高度。

1.6.2 $calcwidth(s)

返回字符串s的以像素为单位的宽度。

1.6.3 $eval(expression)

求一个数学表达式的值并返回该值。如果以一个非整数的值作为操作数,该非整数值会被转换为0。返回值-1指示一个错误。

parameters

expression

expression可以包括正整数值的操作数和下列任何一种数学运算符:

运算符

描述

+

-

*

/

@

求余(返回除后的余数)

{ }

集体性质的表达式(波形括号充当括弧)

example

$eval(

    {%_width%/3}+$get(myVariable)

)

1.6.4 $fileexists(file)

如果file存在返回true,否则返回false

example

下面的例子判断音乐文件夹中是否存在folder.*

$if($fileexists($replace(%path%,%filename_ext%,folder.*)),

//   True

     The file exists

,

//   False

     The file does not exist

)

1.6.5 $fontexists(name)

如果名为name的字体存在就返回true,否则返回false

1.6.6 $newsyntax()

跳过对0.14.10版本前的废弃的函数和语法的处理,以充分利用较新的函数和语法。简而言之,废弃的函数将不会被识别。

notes

该函数必须在// Global重绘区里使用。

1.7特有字段

1.7.1 %_height%

返回以像素为单位的当前面板高度。

1.7.2 %_width%

返回以像素为单位的当前面板宽度。

1.7.3 %foobar_path%

返回foobar2000安装目录的完整路径名。

1.7.4 %glass%

如果支持$glass()函数就返回true,否则返回false

1.7.5 %playlist_name%

替代$playlistname()。返回当前播放列表的名字。本作%playlistname%

1.7.6 %sortgroup%

返回当前的Sort/Group预置或规范集的名字。

1.7.7 %sortgroup_preset_count%

返回Sort/Group预置的总数。

2音轨显示特有

这些titleformat函数是Track Display面板所独有的,Track Display是主要的Panels UI面板。

2.1重绘类型

重绘类型允许titleformat脚本被更高效地处理,方式是依照不同的刷新率需要将titleformatting代码分别放在不同的区域。重绘类型声明是大小写和语法敏感的,且每个面板只能声明一次。

2.1.1 // Global

// Global重绘类型区内最好声明全局值。

2.1.2 // Background

// Background重绘类型区内最适合放只绘制一次的代码,例如图像。

2.1.3 // PerTrack

// PerTrack重绘类型区内适合放每音轨改变的值,例如%album%%artist%和任何按钮函数。

2.1.4 // PerSecond

// PerSecond重绘类型区声明适合放需要每秒更新的值,例如%playback_time%

example

// Global

$if($meta_test(album artist),

     $puts(album_is_va,1)

)

$puts(fontStyle,Calibri,20,bold)

 

// Background

$imageabs(0,0,/images\background.png)

 

// PerTrack

Current song information: %artist% - %title%

$imagebutton(20,20,

     /images\play.png,

     /images\play_hover.png,

     'Play or Pause')

 

// PerSecond

$font($get(fontStyle))

%playback_time%

2.2按钮函数

按钮是交互式的矩形焦点,能被用来服务于各种功能。包括变量操作、按钮特有的命令的执行,以及包括masstagger脚本、meattag值、主菜单命令等等在内的各种foobar2000操作的执行和处理。按钮必须在// PerTrack重绘类型区里使用。

2.2.1 $imagebutton(x,y,image,hover image,command[,options])

创建一个基于图像的按钮。

parameters

x

左上角的X轴坐标

y

左上角的Y轴坐标

image

按钮在未激活状态时被显示的图像的绝对或相对路径。

hover image

按钮在激活状态时被显示的图像的绝对或相对路径。简而言之,该图像在鼠标指针悬停在按钮上时被显示。

command

具体指定按钮被按下时执行的操作。command可以包括下列之一:

foobar2000命令组中的一个主菜单项或上下文菜单项。例如,播放或暂停、参数设置、删除重复等。这些项目的准确列表可以在Panels UI配置窗口中点击MainContext按钮,再通过下拉列表找到。

*                   EXEC

执行命令。

例如“EXEC:'http://www.google.com/search?q='$replace(%artist%, ,+)”将打开一个Web浏览器窗口并定位到指定的URL

*                   FILTER:name|value:name2|value2: ...

为播放列表显示一个过滤用的上下文菜单。

value域使用!source!,将显示一个可以切换播放列表的子菜单。

*                   MENU

显示foobar2000主菜单的一个上下文菜单。

*                   PLAYLISTS-MENU

在一个上下文菜单里显示所有播放列表的一个列表。

*                   POPUP:name

打开一个新的Panels UI窗口,其中,name是一个PUI文件的名字。如果没有该PUI文件存在,将在本布局的Panels UI文件夹里创建一个以指定的name命名的文件。

*                   PVAR:SET:name:value

设置一个持久性的变量。其中,name是该变量的名字,value是该变量的值。

*                   SORT:name|value:name|value + $filtered(name) + $sorted(name): ...

为播放列表显示一个排序上下文菜单。

*                   SORTGROUP-PRESETS-MENU

显示一个Sort/Group预置上下文菜单。

*                   TAG:operation:tag:value

操作一个标签元数据。

operation

operation指出如何操作tagvalue。它必须是下列之一:

*                   SET

用指定的value创建或修改tag。这个SET属性应使用在大多数情况下。

空的value将删除tag。例如“TAG:SET:rating:”将删除rating标签。

*                   ADD

只以指定的value创建tag。不改变已存在的标签。

*                   REMOVE

只移除tag,如果指定的value存在。

tag

元数据字段名(标签的名字)

value

元数据值(标签值)

*                   WINDOWSIZE:width:height[:h-anchor:v-anchor]

使用锚点选项设定主窗口尺寸。

width

窗口的宽度

height

窗口的高度

h-anchor

水平锚点,可以是下列之一:

*                   LEFT

*                   RIGHT

v-anchor

垂直锚点,可以是下列之一:

*                   TOP

*                   BOTTOM

options

options可以包括:

*                   tooltip,text

指定按钮的工具提示,其中,text定义工具提示。在默认情况下,如果这个可选的tooltip,text属性未指定,工具提示被以command参数的值作为text使能。一个使用空text值的工具提示属性将禁用工具提示,例如:tooltip,

*                   hotspot,x,y,w,h

指定按钮的可点击区域的坐标。当未包括这个可选的hotspot,x,y,w,h属性时,整个按钮区域都是可点击的。

x

焦点的左上角X轴坐标

y

焦点的左上角Y轴坐标

w

以像素为单位的焦点的宽度

h

以像素为单位的焦点的高度

examples

1、使用rating_star.pngimage)和rating_star_hover.pnghover image)在位于x,y坐标5,10的地方创建一个按钮。该按钮的command设置一个名为ratingtag的值为5。工具提示被用一个空的tooltip值禁用。图像的可点击区域或称焦点的左上角位于图像的最左上角0,0,大小为25 x 25像素。

$imagebutton(5,10,

     /images\rating_star.png,

     /images\rating_star_hover.png,

     TAG:SET:rating:5,

     tooltip,,

     hotspot,0,0,25,25,

)

2、创建一个按钮图标来调整foobar2000窗口的大小为400 x 500像素。

$imagebutton(0,0,

     /images\resize.png,

     /images\resize_hover.png,

     WINDOWSIZE:400:500:LEFT:TOP,

     tooltip,'Resize window'

)

2.2.2 $textbutton(x,y,w,h,text,hover text,command[,options])

创建一个以文字为基底的按钮。$textbutton()使用和$imagebutton()相同的命令和选项参数;参见关于$imagebutton()commandoptions参数的描述。

parameters

w

以像素为单位的按钮宽度

h

以像素为单位的按钮高度

text

在按钮处于未激活状态时被显示的文本。能包含字体变化、矩形,以及图像。

hover text

在按钮处于激活状态时被显示的文本。简而言之,该文本在鼠标指针悬停在按钮上时被显示。

examples

x,y坐标0,0创建一个按钮,150 x 14像素的宽度和高度。处于非活动状态时,按钮显示文本Click for preferences。当鼠标指针悬停在该按钮上时,文字颜色更改为蓝色。当按钮被按下时,foobar2000参数设置窗口被打开。

$textbutton(0,0,

     150,14,

     Click for preferences,

     $textcolor(0,0,255)Click for preferences,

     Preferences

)

2.3窗口函数

2.3.1 $glass(left,top,right,bottom)

扩展Vsta Aero Glass框,其中,lefttoprightbottom指整型的、以像素为单位的边框值。例如,$glass(0,0,0,100)将用100像素扩展底部的Aero Glass边框。

notes

该函数只在Microsoft Windows Vsta上有效。

see also

%glass%

2.3.2 $settitle(s)

设置窗口标题为字符串s

2.3.3 $settray(s)

设置任务栏通知区域的托盘工具提示为字符串s

2.3.4 $windowstyle(option[,option])

设置foobar2000窗口的特性。$windowstyle()应该被放在// Background重绘区。

parameters

option

option能包括下列标志之一:

*                   hidetitlebar

隐藏标题栏

*                   showtitlebar

显示标题栏

notes

目前,该option参数只有两个属性。不过,未来的版本可能增强option,以包含一个“总在最上层”属性和“重设窗口尺寸”属性。

2.4其它函数

2.4.1 $panel(id,name,x,y,width,height)

添加一个组件(被提交作为一个面板)到布局。面板能重叠另一个,例如多个Track Display面板。然而,个别的面板总是被绘制在随后的面板上。

parameters

id

用于识别面板的一个用户定义的字符串。推荐用它来描述面板,但它可以是任何含义。

name

被添加的组件的名称。

查询配置窗口里的下拉列表(激活Panels按钮)里的正确的大小写敏感的语法。只有组件的在其前缀范畴外的名称是必须的。例如“Album Art”组件的正确指定是Album Art,不是Panels / Album Art

x

面板的左上角X轴坐标,其中,x是一个整数值。

y

面板的左上角Y轴坐标,其中,y是一个整数值。

width

以像素为单位的面板的宽度。

height

以像素为单位的面板的高度。

example

创建Peakmeter组件的一个名为MyPanel的面板。该面板显示在x,y坐标0,0,宽度为100像素,高度为500像素。

$panel(MyPanel,Peakmeter,0,0,100,500)

2.4.2 $sortgroup_preset(n)

返回Sort/Group预置n的名字。

2.5特有字段

2.5.1 %_trackinfo_mode%

返回面板的当前模式,Now playingFollow cursor

2.5.2 %_trackinfo_notrack%

在没有可用的音轨信息向面板提供时返回true。在Now Playing模式,这在播放停止时是true。在Follow Cursor模式,这始终是false

3单栏播放列表特有

这些是单栏播放列表面板独有的titleformat函数和变量。

3.1组信息

3.1.1$info_sum(field)

在一个组里的所有音轨的field总计

3.1.2 $meta_sum(field)

在一个组里的所有音轨的field总计

3.1.3 %focused%

3.1.4 %selected%

3.1.5 %group_index%

3.1.6 %group_count%

4媒体库过滤器特有

这些是媒体库过滤器面板独有的titleformat变量。

4.1组信息

4.1.1 %expanded%

4.1.2 %selected%

4.1.3 %sub_index%

4.1.4 %max_index%

4.1.5 %track_count%

4.1.6 %child_count%

关键词(Tag): fb2k pui 0.14.10+