今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
Panels UI Commands reference : 私的マニュアル

Panels UI 0.14.12 のマニュアルメモです。公式マニュアルの体裁を維持しつつ Panels UI を使っている時にプレーンテキストファイルにメモとして残していたのを加えたものを加筆したモノなので公式マニュアルのローカライズ版ではありません

また Panels UI 0.14.12 を使いながら titleformat の実行結果やその時のコード、スクリーンショットなども掲載しています

なお、ここの blog の仕様上、投稿記事の容量に制限がある為、現在の所 2つの記事に分けて掲載しています。記事の続きの方にさらに続けて内容が書けるのでそちらの方に vol.2 の分を加えました。私のブログでは記事の続きを閲覧する為にクリックは必要なく、続けて表示される様にテンプレートを修正しています

実行環境
  • Core (2008-01-01 02:57:54)
    foobar2000 core 0.9.5
  • foo_ui_panels.dll (2007-07-18 13:42:00)
    Panels UI 0.14.12 beta [Jul 18 2007 - 13:39:30]

※ 掲載されているスクリーンショットの内容は記事執筆者 zodiac の趣味、趣向を表すモノではありません


このリファレンスは Panels UI 特有の titleformat 機能と変数に関する情報です。ほとんどの情報が Panels UI 0.14.10 で導入された新しい構文を使用しています

目次
  1. 一般
    1. Color functions
      1. $c(r,g,b) または $color(r,g,b)
      2. $h(h,s,l)
      3. $hexcolor(c)
      4. $blendcolor(a,b,n)
      5. $syscolor(n)
    2. Alignment functions
      1. $alignabs()
      2. $alignabs(x,y)
      3. $alignabs(x,y,w,h[,h-align,v-align])
      4. $align(position[,position])
      5. $lineheight(n)
      6. $wordwrap()
      7. $tabx(n)
      8. $width()
      9. $height()
    3. Font functions
      1. $font(name,size[,option])
      2. $addcharspace(n)
      3. $fixedwidth(n)
      4. $textcolor(c)
      5. $smallcaps(large font,small font,text)
    4. Image and Shape functions
      1. $imageabs(x,y,filename[,options])
      2. $rectabs(x,y,w,h[,brush color,pen color,options])
    5. Persistent Variable functions
      1. $getpvar(name)
      2. $setpvar(name,value)
    6. Other functions
      1. $calcheight(s)
      2. $calcwidth(s)
      3. $eval(expression)
      4. $fileexists(file)
      5. $fontexists(name)
      6. $newsyntax()
    7. Special Fields
      1. %_height%
      2. %_width%
      3. %foobar_path%
      4. %glass%
      5. %playlist_name%
      6. %sortgroup%
      7. %sortgroup_preset_count%
  2. Track Display
    1. Redraw Types
      1. // Global
      2. // Background
      3. // PerTrack
      4. // PerSecond
    2. Button functions
      1. $imagebutton(x,y,image,hover image,command[,options])
      2. $textbutton(x,y,w,h,text,hover text,command[,options])
    3. Window functions
      1. $glass(left,top,right,bottom)
      2. $settitle(s)
      3. $settray(s)
      4. $windowstyle(option[,option])
    4. Other functions
      1. $panel(id,name,x,y,width,height)
      2. $sortgroup_preset(n)
    5. Special Fields
      1. %_trackinfo_mode%
      2. %_trackinfo_notrack%
  3. Single Column Playlist
    1. Group info
      1. $info_num(field)
      2. $meta_sum(field)
      3. %_focused%
      4. %_selected%
      5. %group_index%
      6. %group_count%
  4. Library Filter
    1. Group info
      1. %expanded%
      2. %selected%
      3. %sub_index%
      4. %max_index%
      5. %track_count%
      6. %child_count%

一般

Color funtions

色指定を異なった書式で指定します。各関数は BGR 16進数 の書式文字列を返します

$c(r,g,b) または $color(r,g,b)

パラメーター r には赤。g には緑。b には青 を 10進数表記の文字列で 0~255 の範囲内で指定します。RGB 形式でパラーメーターで指定された色を返します

$c(0,128,255)
$color(0,128,255)

$h(h,s,l)

パラメーター h には色相。s には彩度。l には輝度 を 10進数表記の文字列で指定します。HLS 形式でパラーメーターで指定された色を返します

$h(359,359,255)

色相、彩度、輝度で指定する値に統一性が見られない理由からなのか、指定する値の有効範囲に関する明示的な記述がありません。ただ、パラメーター h(色相) と s(彩度) は 0~359 が有効範囲の様です。無効な値を指定すると近似値を返す様です

$hexcolor(c)

パラメーター c には 16進数表記の文字列で指定します。RGB 16進数 形式でパラーメーターで指定された色を返します。HTML 記述の様に先頭の # (シャープ) は不要です

$hexcolor(00ff80)

$blendcolor(a,b,n)

パラメーター b の % を n% の色 a および (100-n) で色を返します

$blendcolor(10,10,5)

$syscolor(n)

パラメーター n で指定されたシステムで定義されている色を返します。n は 0~30 の整数値を指定します。n の値の記述については msdn または下記テーブルを参照してください

意味
213D オブジェクトの暗い影の色
153D オブジェクトの表面色と、ダイアログボックスの背景色
203D オブジェクトの最も明るい色(光源に面した辺)
223D オブジェクトの明るい色(光源に面した辺)
163D オブジェクトの影の色(光源に面していない辺)
10アクティブウィンドウの境界の色
2アクティブウィンドウのタイトルバーの色
Windows98 と Windows2000: グラデーション効果が有効になっている場合、アクティブウィンドウのタイトルバーのグラデーションのうち、左端の色を指定します
12マルチドキュメントインターフェイス(MDI) アプリケーションの背景色
1デスクトップの色
18プッシュボタンのテキストの色
9タイトルバー、サイズボックス、スクロールバーの矢印ボックス内のテキスト
27Windows98, Windows2000: アクティブウィンドウのタイトルバーのグラデーションのうち、右端の色を指定します
28Windows98 と Windows2000: 非アクティブウィンドウのタイトルバーのグラデーションのうち、右端の色を指定します
17淡色状態(無効状態) のテキストの色。現在のディスプレイドライバが純色(ベタ色) の淡色(灰色) をサポートしていない場合、この色は 0 に設定されます
13コントロール内で選択されている項目の色
14コントロール内で選択されている項目のテキストの色
26ホットトラッキング項目の色
11非アクティブウィンドウの境界の色
3非アクティブウィンドウのタイトルバーのテキストの色
Windows98, Windows2000: グラデーション効果が有効になっている場合、非アクティブウィンドウのタイトルバーのグラデーションのうち、左端の色を指定します
19非アクティブウィンドウのタイトルバーのテキストの色
24ツールチップコントロールの背景色
23ツールチップコントロールのテキストの色
4メニューの背景色
7メニュー内のテキストの色
0スクロールバーの軸の色
5ウィンドウの背景色
6ウィンドウの枠の色
8ウィンドウ内のテキストの色
表. システムカラーテーブル

Alignment functions

$alignabs()

文字配置を全てリセットします。この関数は以下の例と同様です

$alignabs(0,0)$align(left,top)


$rectabs(0,0,0,0,$c(220,220,220),null)
$align(right,bottom)$textcolor(0-128-255)これは右下に表示される foobar2000
$alignabs()$textcolor(0-0-255)これは左上に表示される foobar2000

$alignabs()
$alignabs()

上記のサンプルコードでは 1行目では描画領域全体を塗りつぶし、2行目で右下に文字列を表示し、3行目にて $alignabs() で文字配置を全てリセットし、文字列表示を行っています

$alignabs(x,y)

文字描画開始位置を指定します。パラメーター x には横座標、y には縦の座標を整数値、画素単位で指定します

パラメーター

  • x
    現在の描画領域矩形の横座標値
  • y
    現在の描画領域矩形の縦座標値

$alignabs(,10)$textcolor(0-128-255)foobar2000
$alignabs(10,)$textcolor(255-0-128)foobar2000$textcolor(0-255-0)foobar2000
$alignabs(20,20)$textcolor(0-0-255)foobar2000

$alignabs(x,y)
$alignabs(x,y)

サンプルコードと実行結果の画像から解るようにパラメーターを省略すると 0 と解釈されるようです

使用するにあたっての注意点

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

文字列の描画を行う矩形を設定します

パラメーター

  • x
    描画領域矩形の開始横座標値
  • y
    描画領域矩形の開始縦座標値
  • w
    描画領域矩形の幅
  • h
    描画領域矩形の高さ
  • h-align
    水平方向による文字列の配置を以下の中から指定します
    • left (左寄せ)
    • center (中央揃え)
    • right (右寄せ)
  • v-align
    垂直方向による文字列の配置を以下の中から指定します
    • top (上端)
    • middle (中央)
    • bottom (下端)

$alignabs(10, 10, $sub(%_width%,20), $sub(%_height%,20) )
$textcolor(0-128-255)1-foobar2000
$alignabs(10, 10, $sub(%_width%,20), $sub(%_height%,20), right, )
$textcolor(0-64-255)2-foobar2000
$alignabs(10, 10, $sub(%_width%,20), $sub(%_height%,20), , bottom )
$textcolor(0-0-255)3-foobar2000
$alignabs(10, 10, $sub(%_width%,20), $sub(%_height%,20), center, middle )
$textcolor(255-0-128)4-foobar2000

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

パラメーターを省略するには , (カンマ) を記述する必要があるようです。また w, h に 0 を指定すると、幅と高さが最大になるようです

使用するにあたっての注意点

$align(position[,position])

水平および垂直方向の文字列の配置方法を指定します

パラメーター

  • position
    文字列の配置方法を以下の中から指定します
    • left (左寄せ)
    • center (中央揃え)
    • right (右寄せ)
    • top (上端)
    • middle (中央)
    • bottom (下端)

$alignabs(0,0,0,0)$textcolor(0-128-255)
$align(,middle)foobar2000
$align(right,)foobar2000

$align(position[,position])
$align(position[,position])

パラメーターを省略するには , (カンマ) を記述する必要があるようです。2~3行目のコードの結果から解るようにそれぞれ left, top に設定されるようです

$lineheight(n)

現在の行の高さパラメーター n を整数値、画素単位で指定します

$lineheight(18)
foobar2000$char(10)
こんにちわ$char(10)
$lineheight()
foobar2000$char(10)
こんにちわ$char(10)

$lineheight(n)
$lineheight(n)

パラメーターを省略したり、無効な値を指定するとリセットされるようです

$wordwrap()

現在の行の幅で表示しきれない文字列は次の行に折り返されます。$char(10) を出力することによってこの設定を解除できます

哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位
$char(10)
$char(10)
$wordwrap()哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位

$wordwrap()
$wordwrap()

表示しきれない文字列は末尾が ... (3つのピリオド) に置き換わります

$tabx(n)

パラメーター n で指定した分だけ整数値、画素単位にて字下げを行います

foo$tabx(20)bar$tabx(60)2000$char(10)
hello$tabx(20)world$tabx(60)!!$char(10)

$tabx(n)
$tabx(n)

パラーメーター n が画素単位だと言う事に注意。タブコード $char(9) を出力する訳ではない

$width()

現在の短径領域の幅を返します

$alignabs(10,10,$sub(%_width%,20),$sub(%_height%,20),left,top)
'%_width%' : $tabx(60)%_width%$char(10)
'$width()' : $tabx(60)$width()$char(10)
'%_height%' : $tabx(60)%_height%$char(10)
'$height()' : $tabx(60)$height()

$width()
$width()

右の実行結果画像からも解るように機能していないようです。戻り値が %_width% よりも小さい値が返ってくるはずなんですが…

$height()

現在の短径領域の高さを返します

サンプルコードと実行結果は $width() を参照してください

これも、どうやら機能していないようです。戻り値が %_height% よりも小さい値が返ってくるはずなんですが…

Font functions

$font(name,size[,option])

$font() プレビュー
$font() エフェクトプレビュー

フォントの外観を設定します

パラメーター

  • name
    フォント名を指定します
  • size
    フォントサイズを指定します
  • options
    オプションは以下のパラメーターの組み合わせによって成り立っています
    • bold (強調)
    • thin (細く)
    • italic (斜体)
    • strikeout (取り消し線)
    • underline (下線)
    • nocleartype (クリアタイプを無効にします)
    • textalpha,n (テキストの透過度)
    • effectcolor,c (エフェクトの色)
    • alpha,n (エフェクトの透過度)
    • offset,n (エフェクトのズレ)
    • glow,n (エフェクトの発光度、輝度)
    • radius,n (エフェクトの半径)
    • iterations,n (エフェクトのボカシ度)

    boldthin オプションは排他的なものなので同時に指定すると表示がおかしくなります

注釈

Panels UI の設定画面の Effects ボタンを押す事によって、上記オプションをプレビューで確認しながら GUI で操作できるプレビューダイアログが表示されます。このダイアログ最下部に確定した $font() 関数のパラメーターが記述されているので、これをクリップボードにコピーし、元の Panels UI の設定ダイアログ上にペーストして使用できます

$font(Tahoma,30,bold,italic,strikeout,underline)札幌は$char(10)
$font(Tahoma,30,textalpha,128,alpha,128,
  radius,2,iterations,1,offset,5,glow,3,effectcolor,$c(0,0,255))雪が積もってる

$font(name,size[,option])
$font(name,size[,option])

上記のコードを実行すると右の画像の様な結果になります

$addcharspace(n)

文字にパラメーター n を整数値、画素単位で指定された分加えます。$addcharspace() は各文字の間を n 画素分追加、削除します

foobar2000だもん$char(10)
$addcharspace(5)foobar2000だもん$char(10)
foobar2000だもん$char(10)
$addcharspace(-1)foobar2000だもん$char(10)
$addcharspace(0)foobar2000だもん

$addcharspace(n)
$addcharspace(n)

設定を解除するには明示的にパラメーターに 0 を指定する必要があるようです。追加、削除される間隔は文字の右側です

$fixedwidth(n)

文字をパラメーター n を整数値で指定された幅に設定します

foobar2000だもん$char(10)
$fixedwidth(5)foobar2000だもん$char(10)
$fixedwidth(-1)foobar2000だもん$char(10)
$fixedwidth(10)foobar2000だもん$char(10)
$fixedwidth(0)foobar2000だもん

$fixedwidth(n)
$fixedwidth(n)

設定を解除するには明示的にパラメーターに 0 を指定する必要があるようです

$textcolor(c)

文字の色を BGR 16進数文字列パラメーター c によって設定します

サンプル

例1: 下記の例では文字が赤くなります

$textcolor($hexcolor(ff0000))

例2: 下記の例でも文字が赤くなります

$textcolor(255,0,0)

と、公式マニュアルでは記述されていますが、上記の2つの例は $newsyntax() 関数で新書式対応にしていないと動作しません。旧書式で上記の例と同じようにするには以下の様に記述します

$textcolor(255-0-0)


$textcolor($hexcolor(ff0000))foobar2000だもん$char(10)
$textcolor(255,0,128)foobar2000だもん$char(10)
$newsyntax()
$textcolor($hexcolor(ff0000))foobar2000だもん$char(10)
$textcolor(255,0,128)foobar2000だもん

$textcolor(c)
$textcolor(c)

$newsyntax() を行っていないと新書式では動作しないので注意。$newsyntax() を行いたくない場合は旧書式でパラメーターを記述する必要があります

$smallcaps(large font,small font,text)

パラメーター text のキャピタライズによってフォントを切り替えます。その際、同時に $textcolor() 等で色指定も可能です

$smallcaps(
  $font(Tahoma,14,bold)$textcolor(0-128-255),
  $font(Tahoma,12)$textcolor(255-0-128),
  fooBar2000$char(10)
)
$smallcaps(
  $font(Tahoma,14,bold)$textcolor(0-128-255),
  $font(Tahoma,12)$textcolor(255-0-128),
  FooフーバーBar
)

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

サンプルコードの実行結果からも解るようにマルチバイト文字は小文字扱いの様です。また、パラメーター text は大文字に変換されるようです

Image and Shape functions

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

この関数でサポートされる画像ファイルフォーマットは PNG, BMP, GIF, JPEG, ICO の 5種類

パラメーター

  • x
    画像を描画する x 座標を指定します
  • y
    画像を描画する y 座標を指定します
  • filename
    描画対象となる画像ファイル名を指定します
    ファイル名の先頭に / (スラッシュ) を記述する事によって foobar2000 をインストールしたディレクトリから相対的にファイルを指定できます。この場合 User Interface Module が Panels UI として foobar2000 動作しているかどうかで相対ディレクトリの開始パスが決まります
    User Interface Module が Panels UI の場合は %foobar_path%\PanelsUI となり、Panels UI 以外の User Interface Module だと %foobar_path% となります
  • options
    オプションは以下のパラメーターの組み合わせによって成り立っています
    • alpha,n (画像の透過度)
    • clip,x,y,w,h (画像の切り取り範囲) 画像切り取り範囲指定のパラメーターは以下の通り
      • x 切り取りを開始する x 座標
      • y 切り取りを開始する y 座標
      • w 切り取る幅
      • h 切り取る高さ
    • nokeepaspect (縦横の比率を無視)
    • resize,w,h (リサイズ)
      イメージをリサイズするw (幅),h (高さ) を指定します。拡大処理を行うには nokeepaspect を指定しなければなりません
    • rotateflip,n (イメージの回転)
      n意味
      1時計廻りに 90°回転
      2時計廻りに 180°回転
      3時計廻りに 270°回転
      4左右反転
      5時計廻りに 90°回転し、左右反転
      6上下反転
      7時計廻りに 90°回転し、上下反転
      表.1 イメージの回転パラメーターの値と意味

      n/a左右
      反転
      上下
      反転
      左右
      上下
      反転
      n/a
      時計廻りに 90°回転5731
      時計廻りに 180°回転6402
      時計廻りに 270°回転7513
      n/a4620
      表.2 イメージの回転パラメーターと回転、反転との関係

$imageabs(x,y,filename[,options])
基準となる画像 幅 300 x 高さ 225

右の基準となる画像を元にパラメーターの関係を表したサンプルコードと結果画像を以下に示します


resize,w,h パラメーターと clip,x,y,w,h パラメーターとの関係

$imageabs(0,$sub(%_height%,225),/i\imageabs_sample.png)
$imageabs($sub(%_width%,150),0,/i\imageabs_sample.png,resize,150,113)
$imageabs(10,10,/i\imageabs_sample.png,clip,55,84,33,28,resize,150,113)

$imageabs(x,y,filename[,options])
$imageabs() におけるパラメーター resize と clip の関係
  • 1行目で基準となる画像を下部に表示しています
  • 2行目で基準となる画像を半分に縮小し、右上に表示しています
  • 3行目で縮小した画像から一部を切り出して左上に表示しています
  • resize,w,hclip,x,y,w,h パラメーターが同時に指定された場合は resize,w,h パラメーターが優先されます

rotateflip,n パラメーターと clip,x,y,w,h パラメーターとの関係

$imageabs(0,0,/i\imageabs_sample.png,rotateflip,1)
$imageabs($sub(%_height%,70),0,/i\imageabs_sample.png,
  rotateflip,1,clip,130,200,70,70)

$imageabs(x,y,filename[,options])
$imageabs() におけるパラメーター rotateflip と clip の関係
  • 1行目で基準となる画像を時計廻りに 90°回転させて表示しています
  • 2~3行目で回転した画像から一部を切り出して右上に表示しています
  • rotateflip,nclip,x,y,w,h パラメーターが同時に指定された場合は rotateflip,n パラメーターが優先されます

resize,w,h パラメーターによる拡大処理

$imageabs(-90,0,/i\imageabs_sample.png,nokeepaspect,resize,400,300)

$imageabs(x,y,filename[,options])
$imageabs() におけるパラメーター resize による拡大処理

元画像より大きなサイズでリサイズを行うには nokeepaspect を指定しなければなりません

以上の結果から $imageabs() における同時指定パラメーターの優先順位は以下の順です

  1. resize,w,h
  2. rotateflip,n
  3. clip,x,y,w,h
使用するにあたっての注意点

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

矩形を描画します。元の関数名は $drawrect() です

パラメーター

  • x
    矩形を描画する x 座標を指定します
  • y
    矩形を描画する y 座標を指定します
  • w
    矩形の幅 w を指定します
  • h
    矩形の高さ h を指定します
  • brush color
    矩形を描画する際の brush color を指定します。入力する値は BGR 16進数表記文字列です。塗りつぶし色です
  • pen color
    矩形を描画する際の pen color を指定します。入力する値は BGR 16進数表記文字列です。矩形の線の色です
  • options
    オプションは以下のパラメーターの組み合わせによって成り立っています
    • alpha,n (矩形の透過度)
      このパラメーターを指定する際には、brush color, pen color パラメーター両方を指定しなければなりません。brush color パラメーターよりは pen color パラメーターの方が優先されます
    • glow,n (発光度、輝度)
    • radius,n (半径)
    • iterations,n (ボカシ度)
glow,n, radius,n, iterations,n この3つの options パラメーターはうまく機能していないようです

$rectabs(0,0,%_width%,%_height%,$c(0,128,255),null)
$imageabs(0,25,/i\10028807.jpg,resize,200,150)
$rectabs(30,30,$sub(%_width%,60),$sub(%_height%,60),null,$c(0,0,255))
$rectabs(50,50,$sub(%_width%,100),$sub(%_height%,100),
  $c(255,128,255),$c(255,128,255),alpha,128)

$rectabs(x,y,w,h[,brush color,pen color,options])
$rectabs(x,y,w,h[,brush color,pen color,options])
  • 1行目でパネル全体を青く塗りつぶしています
  • 2行目で1行目で塗りつぶした上から画像を表示しています
  • 3行目でパネル中央にを青い矩形を描画しています
  • 4~5行目で3行目で描画した矩形の中にピンク色で矩形を透過指定にて描画しています
使用するにあたっての注意点

Persistent Variable functions

Persistent Variable (略して PVARS) これらの変数の定義、取得関数は foobar2000 が起動している間、値を保つ変数です。Panels UI 自身、Track Display, Single Column Playlist, Library Filtertitleformat 中で共通して使用できます

コード結果
$getpvar(foo,bar)[unknown pvar]
$setpvar(foo,bar)
$getpvar(foo)bar
$getpvar(Foo)bar
$setpvar(foo,2000)
$getpvar(foo)2000

foobar2000 の変数操作関数 $put(), $puts(), $get() を使用して PVARS にアクセスすることができない事に注意

$getpvar(name)

最後にパラメーター name に格納された PVARS の値を返します。指定された変数が未定義であった場合 '[unknown pvar]' 文字列を返します

$select( $getpvar(display),
  シナリオ1,
  シナリオ2,
  シナリオ3
)

display 変数の値がそれぞれ 1, 2, 3 であった場合、それぞれの値に対応して シナリオ1、シナリオ2、シナリオ3 を実行します

$setpvar(name,value)

パラメーター name で指定された変数に value を格納します

$setpvar(display,2)

PVARS 変数名 display に 値 2 を格納します

foobar2000 を再起動しても $setpvar(name,value) で設定した変数は保持されたままです。 変数の保存先は .PUI ファイルとなります。現在の Panels UI Layout で使用している全ての PVARS を消去するには、Panels UI 設定画面の Clear PVARs ボタンにて行います。この様な仕様から、変数の初期化処理が必要となります。以下にその為のサンプルコードを示します

// Background
$if($strcmp($getpvar(display),'[unknown pvar]'),
  $setpvar(display,1)
)

使用する PVARS 変数名 display[unknown pvar] (つまり、未定義)の場合に 1 設定しています。起動時に一度だけ行えばよいので // Background 再描画セクションに記述するのが望ましいと思います

Other functions

$calcheight(s)

文字列パラメーター s の高さの画素数を返します

$calcwidth(s)

文字列パラメーター s の幅の画素数を返します

$eval(expression)

expression を評価してその結果を返します。整数値ではないオペランドが指定された場合は 0 に変換されます。エラーの場合 -1 を返します

パラメーター

  • expression
    expression 式は正の整数値と以下の表の演算子の組み合わせです
    演算子意味優先順位
    { }{ } 内の式を結合1
    *乗算2
    /除算2
    @剰余2
    +加算3
    -減算3

$eval(100/4@7+{5+3}*3)

上記の結果は 28 となります。式の結合規則は左から右の様です

$fileexists(file)

パラメーター file で指定されたファイルが存在すれば 真(true) を、そうでなければ 偽(false) を返します

$if($fileexists(%foobar_path%foobar2000.exe),'あるよ','ないね')

この関数は戻り値が 真/偽(boolean) を返すので $if() などを使う必要があります。file にはワイルドカード (*, ?) も使用できます

$fontexists(name)

パラメーター name で指定されたフォントが存在すれば 真(true) を、そうでなければ 偽(false) を返します

$if($fontexists(MS ゴシック),'ある','ない')

この関数は戻り値が 真/偽(boolean) を返すので $if() などを使う必要があります。大文字、小文字の区別はしていないようですが、それ以外は厳密にチェックしている様です

$newsyntax()

バージョン 0.14.10 以前の推奨されない関数、構文の処理をパスします。その結果、新しい関数と構文の完全な利用を可能にします。推奨されない関数、構文は認識されなくなります

注釈

// Global 再描画セクションの中でこの関数を使用しなければなりません

現在、この関数を使用して影響を受ける関数を以下に示します

Special Fields

%_height%

現在のパネルの高さが画素単位で格納されています

%_width%

現在のパネルの幅が画素単位で格納されています

%foobar_path%

foobar2000 がインストールされているディレクトリが完全なパス名で格納されています。末尾に \ (バックスラッシュまたは円記号)が付いています

%glass%

$glass() 関数がサポートされていれば 真(true) を、そうでなければ 偽(false) が格納されいます

%playlist_name%

現在のプレイリスト名が格納されています

%sortgroup%

現在のソートグループのプリセット名が格納されています

%sortgroup_preset_count%

ソートグループプリセット数が格納されています

Track Display Specific

トラックディスプレイ (Track Display) だけで使用できる titleformat です。User Interface ModulePanels UI にした場合の foobar2000 メインウィンドウはこのトラックディスプレイとなります

Redraw Types

titleformat スクリプトを効率的に動作させる為に再描画のタイミングを各セクションによって分類しています。それぞれのセクションはトラックディスプレイパネルに一度だけ宣言します。セクションの開始を表す構文は厳密に評価されます

// Global

このセクションでは変数の定義を行うのに最適です

// Background

パネルの背景画像、塗りつぶしなど一度だけ実行するようなコードを定義するのに最適です

// PerTrack

トラックが動的に変化する場合にこのセクションにコードを定義するのが最適です。%album%, %artist% またはボタンなど

// PerSecond

秒単位で動的に変化する値を再描画するのにこのセクションにコードを定義するのが最適です。%playback_time% やシークバーなど

// 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%

Button functions

ボタンは様々な機能を実行させる事ができるクリック可能なホットスポットを生成します。これらは masstagger スクリプト、metatag の値、メインメニューコマンド、コンテキストメニューコマンドなどを含む様々な foobar2000 の操作、変数の操作、ボタン特定のコマンド実行、および操作を含んでいます。ボタン関係の関数は // PerTrack 再描画セクションに定義しなければなりません

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

イメージベースのボタンを描画します

パラメーター

  • x
    ボタンイメージを描画する x 座標を指定します
  • y
    ボタンイメージを描画する y 座標を指定します
  • image
    通常表示の image ボタンイメージファイル名を指定します
  • hover image
    マウスカーソルを重ねた時の表示 hover image ボタンイメージファイル名を指定します
  • command
    クリックされた時の command を指定します
    • foobar2000 の main menu item および context menu item
      例えば Play や Pause, Preferences, Remove Duplicates などです。使用可能な項目は Panels UI 設定画面の Main および Context ボタンを押す事によって、下のドロップダウンコンボボックスに表示させる事ができます
    • EXEC
      コマンドの実行
      例: EXEC:'http://www.google.com/search?q='$replace(%artist%, ,+)
      指定された URL でブラウザを開きます
    • FILTER:name|value:name2|value2: ...
      フィルターされたプレイリストコンテキストメニューの表示
      value に !source! を使用する事によってプレイリストを選択できるサブメニューを表示できます
    • MENU
      foobar2000 メインメニューを表示します
    • PLAYLISTS-MENU
      全てのプレイリストをコンテキストメニュー表示します
    • POPUP:name
      新しい Panels UI ウィンドウを開きます。name は .PUI ファイル名です。.PUI ファイルが存在しない場合には Panels UI ディレクトリに作成されます
    • PVAR:SET:name:value
      name で指定された変数名に value 値を格納します
    • SORT:name|value:name|value + $filtered(name) + $sorted(name): ...
      フィルターを指定してフィルターされたプレイリストコンテキストメニューの表示
    • SORTGROUP-PRESETS-MENU
      ソートグループプリセットのコンテキストメニューの表示
    • TAG:operation:tag:value
      タグメタデータの操作を行います
      • operation
        operation は下記のいずれか一つを指定します
        • SET
          指定された tag タグに value 値を設定します。タグが存在しなければ作成されます。value を指定しなければ tag タグが削除されます
          例:
          TAG:SET:rating:
          rating タグを削除します
        • ADD
          指定された tag タグを value 値によって追加します。既存のタグは変更しません
        • REMOVE
          value が存在している場合のみ、tag タグを削除します
      • tag
        メタデータフィールド名 (タグ名)
      • value
        メタデータの値 (タグの値)
    • WINDOWSIZE:width:height[:h-anchor:v-anchor]
      指定された h-anchor 水平 v-anchor 垂直の基点によってウィンドウサイズを変更します
      • width
        ウィンドウの幅を指定します
      • height
        ウィンドウの高さを指定します
      • h-anchor
        サイズ変更の水平基点を指定します。下記のいずれか一つを指定します
        • LEFT
          左側を基点にします
        • RIGHT
          右側を基点にします
      • v-anchor
        サイズ変更の垂直基点を指定します。下記のいずれか一つを指定します
        • TOP
          上側を基点にします
        • BOTTOM
          下側を基点にします
  • options
    options は組み合わせる事ができます
    • tooltip,text
      ボタンのツールチップを指定します。text テキストがツールチップを設定します。tooltip が指定されていなければ command がツールチップとして設定されます。tooltip を指定し text が空ならばツールチップは設定されません
      ツールチップを設定しない例:
      tooltip,
    • hotspot,x,y,w,h
      ボタンのクリック可能な領域を設定します。hotspot が指定されていない場合はボタン画像全体がクリック可能領域となります
      • x
        ホットスポットを定義する x 座標を指定します
      • y
        ホットスポットを定義する y 座標を指定します
      • w
        ホットスポットを定義する w 幅を指定します
      • h
        ホットスポットを定義する h 高さを指定します

$imagebutton(5,10,
  /images\rating_star.png, /images\rating_star_hover.png,
  TAG:SET:rating:5,
  tooltip,,
  hotspot,0,0,25,25,
)

座標 x,y に 5,10 を指定し、通常表示とマウスカーソルを重ねた時の表示イメージファイル名 image,hover image を指定。ボタンが押された時の動作 commandrating というタグに値 5 を設定するように指定。ツールチップテキスト tooltip,text は非表示にし、クリック可能な領域 hotspot,x,y,w,h を 0,0,25,25 に指定

$imagebutton(0,0,
  /images\resize.png, /images\resize_hover.png,
  WINDOWSIZE:400:500:LEFT:TOP,
  tooltip,'Resize window'
)

座標 x,y に 0,0 を指定し、通常表示とマウスカーソルを重ねた時の表示イメージファイル名 image,hover image を指定。ボタンが押された時の動作 command は ウィンドウサイズ WINDOWSIZE:width:height[:h-anchor:v-anchor] を左上を基点にして幅400 高さ400 にリサイズするように指定。ツールチップテキスト tooltipResize Window というテキスト text を指定しています

使用するにあたっての注意点
  • foo_menu_addons コンポーネントをアクティブにしている状態で commandMENU を指定し、 ボタンを押すと Unhandled exception : Overflow とメッセージボックスを表示して foobar2000 が落ちる
  • かなり深刻な $newsyntax() の影響を受ける。x,y が最後に行った $alignabs(x,y) または $alignabs(x,y,w,h[,h-align,v-align]) からの相対座標となる

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

テキスト(文字列) ベースのボタンを描画します。$textbutton(x,y,w,h,text,hover text,command[,options])$imagebutton() と同じコマンドとオプションを使用します。コマンドとオプションパラメーターについては $imagebutton() を参照してください

パラメーター

$textbutton(0,0,150,14,
  Click for preferences,
  $textcolor(0-0-255)Click for preferences,
  Preferences
)

座標 x,y0,0 を指定し、幅、高さはそれぞれ w,h 150, 14 に指定。通常表示テキスト textClick for preferences に指定し、マウスカーソルを重ねた時のテキスト hover text を青色で表示するように指定。ボタンが押された時の動作 command は foobar2000 の設定画面を表示するように指定しています

使用するにあたっての注意点

Window functions

$glass(left,top,right,bottom)

Windows Vista Aero Glass のマージンを広げます。left, top, right, bottom が画素単位で指定する整数値パラメーターです。例えば $glass(0,0,0,100) とすると、下部の Vista Aero Glass マージンを広げます

Windows Vista だけで機能します

$settitle(s)

パラメーター s で指定された文字列をメインウィンドウタイトルに設定します

User Interface ModulePanels UI ではないと機能しません

$settray(s)

パラメーター s で指定された文字列をタスクトレイアイコンテキストに設定します

機能していません

$windowstyle(option[,option])

foobar2000 ウィンドウスタイルを設定します。$windowstyle(option[,option])// Background 再描画セクションに記述しなければなりません

パラメーター

  • options
    options は下記のいずれかです
    • hidetitlebar
      ウィンドウタイトルバー非表示にします
    • showtitlebar
      ウィンドウタイトルバー表示します
  • User Interface ModulePanels UI ではないと機能しません
  • hidetitlebar を行うと、ウィンドウの枠も非表示になります。ウィンドウの移動はパネル内の適当な所をマウスでドラッグする事によってできます

Other functions

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

Panels 名称リスト
Panels 名称リスト

現在のパネルにコンポーネント(パネルとも言う) を追加します。パネルには Track Display の様に互いに重ね合わせる事が可能です。特定のパネルは常に再描画されるものがあります

パラメーター

  • id
    パネルを識別する為の定義文字列
  • name
    コンポーネント名称
    正確なコンポーネント名称を知り得る為に設定画面の Panels ボタンを押す事によってコンボボックスドロップダウンリストボックスにコンポーネント名称が格納されます。このパラメーターに記述する名称はカテゴリなしの名称でなければなりません。例えば、Album Art コンポーネントの名称は Panels / Album Art ではなく Album Art です
  • x
    パネルを配置する左上の横座標 x を整数値、画素単位で指定します
  • y
    パネルを配置する左上の縦座標 y を整数値、画素単位で指定します
  • width
    パネルの幅 width を整数値、画素単位で指定します
  • height
    パネルの高さ height を整数値、画素単位で指定します

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

と、上記の様に公式マニュアルには記載されていますが、これでは機能しないので下記の様にする必要があります

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

最後のパラメーター height の後に , (カンマ) を記述しないと機能しません

$sortgroup_preset(n)

パラメーター n で指定されたソートグループプリセット名称を返します

Special Fields

%_trackinfo_mode%

Track Display での現在のトラック情報に関する現在のモードが格納されています。格納されている文字列は Now PlayingFollow cursor です

"%_trackinfo_mode%"$char(10)
"%_trackinfo_notrack%"$char(10)

%_trackinfo_mode%
%_trackinfo_mode%

Panels UI 0.14.12 で Track Display のモードを Now Playing の状態で、再生している曲を停止すると変数の後ろにゴミ(?) が付いているのが解ると思います

%_trackinfo_notrack%

Track Display のモードが Now Playing の場合に、トラック情報が格納されていない場合には 真(true) を、そうでなければ 偽(false) が格納されています

%_trackinfo_mode% の所でも述べましたが、Panels UI 0.14.12 では正しい情報が格納されていないので、以下のようなコードで対応する必要があります

$if($strcmp($left(%_trackinfo_mode%,3),'Now'),
  '%'_trackinfo_mode'%' is Now playing,
  '%'_trackinfo_mode'%' is Follow cusor
)
$char(10)
$if($strcmp($left(%_trackinfo_notrack%,1),1),
  '%'_trackinfo_notrack'%' is true,
  '%'_trackinfo_notrack'%' is false
)

Single Column Playlist

これらの変数と関数は Single Column Playlist 特有の titleformat です

Group info

$info_num(field)

グループにおける field の合計値を返します

機能していません

$meta_sum(field)

グループにおける field の合計値を返します

機能していません

%_focused%

%focused% ではなく %_focused% です。Single Column Playlist にキーボードフォーカスが得られているかどうかの変数だと思ったんですが、そうではないようです。単に Single Column PlaylistItem Display 内でカーソルのある項目が 真(true) を、そうでなければ 偽(false) が格納されています

%_selected%

%selected% ではなく %_selected% です。Item Display 内で選択された項目が 真(true) を、そうでなければ 偽(false) が格納されています

%group_index%

グループ内のインデックス番号が格納されています

%group_count%

グループ内のインデックス総数が格納されています

Library Filter

Group info

%expanded%

%selected%

%sub_index%

%max_index%

%track_count%

%child_count%

Library Filter はほとんどハッキングしていないので、詳細が記述できません…暇をみつけてこの機能も試してみるのでそれまでお待ちください…('A`)

以上で Panels UI Commands reference は終了です。できる限り正確な情報を掲載したつもりでしたが、如何でしたでしょうか?

更新履歴

日付内容
2008/07/03 (木)スタイルシートの改修に沿って修正
2008/02/03 (日)章番号が思いっきり間違ってました…('A`)
2008/02/01 (金)なんかリンクのパラグラフ指定がまぬけなのを修正('A`)
foobar2000comments (0)trackbacks (0) – pingbacks(0) – (24,336)
feel free of the comment please.

trackback URL of this article
QRcode of this article
qrcode:article
more information of this article

post date

2008年01月23日(水) 00:01:49

update

2008年07月03日(木) 06:35:57

tags

,

contents
most viewed (761757)
categories
archives
recent posts
recent updates
recent comments
  • Alphaziel : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • 泣き虫 : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • zodiac : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
  • Eleftherios Kosmas : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
  • Mike Liwsi : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
recent trackbacks
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie