「foobar2000」忘備録、Panel Stack Splitter編その4。

漸く「Panel Stack Splitter」編、完結?
まずは何も言わず、これを見て頂きたい。

オタクらしさを前面に押し出してみました。 プレイリストと言えばこういう一覧表示ですよね。
画像クリックで元の大きさの画像が見られます。

左上の部分、「Playback order」の上の辺りに「Menu」が置かれています。はい、見えませんね。何故か? 答えは「visual style」の設定です。

私が使っているものだと、「Menu」の文字が黒になっているんですよね。だから背景を黒にすると背景の中に混じって、まさにステルス状態。そういう状態になる方は少数派だとは思いますが、背景色と似た系統の色でちょっと見にくいとか、そういうのはあるのではないかと思います。

そこで対処法『だったら「Panel Stack Splitter」の「Menu」を置いた部分だけ、色を変えておけばいいんじゃね?』です。できるのか? できますとも! 「Panel Stack Splitter」は、splitter上に描画もできるのです。

全くこのsplitterは何処まで万能なんでしょう? 初心者にも扱いやすいところといい、有り難い存在です。今日も今日とて作者さんに感謝のドリップコーヒーをお供えしつつ、まずはMenuを置きましょう。
お約束ですが、お供えした珈琲は私が後で美味しく頂きました。珈琲は何よりコクが大事だと思う。

foober03.jpg

Preferences→Display→Columns UI→「Layout」で、レイアウト画面から「Insert Panel」で挿入です。その後はベースの「Panel Stack Splitter」の「splitter Settings」を開き、大きさなどの設定をします。

foober04.jpg
画像クリックで元の大きさの画像が見られます。

上の画面ですよ、ここの「Menu」を選択。

Menu

left : 50
Top : 20
Width :
height :

元々「Menu」は大きさが決まっているからか、Wとhは入れなくても問題ないみたいです。
これで問題なく「Menu」の文字が見られる方は構いませんが、私のように「見えない」「見辛い」方は、ここで更なる一工夫をします。ベースの「Panel Stack Splitter」の「splitter Settings」を開き、「script」タブの「PerTrack」を表示させましょう。

まずは冒頭に変数の宣言を入れます。必要な変数はこれ。

$puts(panel_sur,120-120-120) // 枠の色
$puts(panel,255-255-255) // 枠の背景色

描画する短形の色設定です。一つ一つ枠の色を変えるならともかく、大体の方は統一された色を使うので、確かに変数にした方が効率が良いですよね。

$drawroundrect(x,y,w,h,w2,h2,colour1,colour2,RESERVED)

これが利用する記述式です。
普通の短形、短形内をグラデーションで描画、輪郭ぼかし、丸を描画……と、似た様な記述式が幾つもありますので、コンポーネント付属のテキストファイルに目を通して、自分が利用したい物をお選び下さい。
私が使ったのは「短形の角を丸くして描画する」記述式。つまり角が丸い四角形のことです。

// Menu
$drawroundrect(40,15,300,30,4,4,$get(panel),$get(panel_sur),)

w2とh2の部分で丸みの調節をしています。後半のcolour1とcolour2には宣言した変数が代入されているので、後で色の変更をしたい時も、冒頭の変数を弄るだけで変数を使っている全ての色設定に変更が適用されるわけです。一つ一つ変えていく手間を考えると、物凄く便利なのが分かりますね。

その結果、こうなりました。ただの四角形より角が丸い方が何かこう、柔らかい感じがしていいですよね? xとy、wとhを「Menu」の設定と見比べてみれば分かりますが、「Menu」より少し大きめに描画されています。

foober05.jpg

「Playback order」と「Quick Search Toolbar」の横にある丸っぽい部分も、描画用の記述式で描かれています。これは利用したページに書いてあったのを真似したくて使ってみただけで、実際はない方がすっきりしていいかもです。

$drawellipse(x,y,w,h,colour1,colour2,RESERVED)

この半丸はこの記述式が使われています。
楕円を描画する記述式です。画面で見ると半円に見えますが、実際は円を半円に見える位置に置いているだけなんですね。

// 丸枠を表示
// Quick Search Toolbar
$drawellipse(60,90,21,21,$get(panel),$get(panel_sur),) // 左の丸
$drawellipse(238,90,21,21,$get(panel),$get(panel_sur),) // 右の丸

// Playback order
$drawellipse(130,58,22,22,$get(panel),$get(panel_sur),) // 左の丸
$drawellipse(240,58,22,22,$get(panel),$get(panel_sur),) // 右の丸

変数は「Menu」の背景用に角丸四角形を描画した物と同じです。使い回しとか言わない。効率的と言うのですこれは。

次はボタン類の横にある文字です。
これはテキストボタンとなっていて、画像ボタンと役目は同じです。押せば記述したコマンドを実行してくれます。

※今回は「default font」で指定した文字の大きさでテキストボタンを作っていますが、「$font(name,size,OPTIONS)」というフォントの指定があるので、それを利用する手もあったりします。

何はともあれ最初は変数の宣言をしましょう。テキストボタンで利用するのは以下の変数です。

$puts(tekix,100) //テキストボタン1つ目の開始位置の X 座標
$puts(tekiy,90) // テキストボタン1つ目の開始位置の y 座標
$puts(tekip,130) // テキストボタン 1 つあたりの幅
$puts(tekih,20) // テキストボタン 1 つあたりの高さ

// テキストボタン
$puts(tefoc,fontcolor:255-255-255) // テキストボタンの色
$puts(tefob,brushcolor:0-0-0-128) // テキストボタンの背景色
$puts(tefow,brushcolor:0-0-0-128) // テキストボタンの外枠色

// テキストボタンのマウスオーバー時
$puts(tefocm,fontcolor:210-0-0) // テキストボタンの色
$puts(tefobm,brushcolor:0-0-0-128) // テキストボタンの背景色
$puts(tefowm,brushcolor:0-0-0-128) // テキストボタンの外枠色

……数の多さに吃驚するかもしれませんが、とりあえず深呼吸して落ち着きましょう。x座標、y座標、ボタン一つ辺りの幅、この辺りは画像ボタンでも出てきましたよね? そこに今回は高さも加わります。

画像はその時点で高さも幅も決まっています。だから記述式でも高さや幅の省略が可能でしたが、テキストボタンはそうはいきません。なので高さにも変数が用意されているのです。

次の変数はテキストボタンの色設定です。
上から「文字色・背景・外枠」。これは次の変数群と対になっていて、こちらは「通常時」、次に用意されているのが「マウスオーバー時」の色設定となっています。画像ならそれぞれの画像を指定すればそれで済むんですが、テキストボタンの場合はそうはいきませんからね。

$textbutton(x,y,w,h,text,mover_text,command,options1,options2)

これが記述式。画像ボタンの物と殆ど変わりません。ただ画像を指定する部分がtextとなっています。この部分に文字を入れることにより、その文字がボタンとして描画されるわけです。マウスオーバー時も同じ文字にする決まりはないので、別々の文字にしても構いません。

カスタマイズした画面では「Send to Playlist」と「Activate now playing」と書かれていますが、現在は「Cursor follows」と「Activate now playing」にしています。

「Send to Playlist」をやめた理由は単純です。
右側のプレイリスト表示から左側のツリー表示されているプレイリスト名に、送りたいファイルをドラックアンドドロップできるので、そっちの方が手っ取り早いと思ったからです。置く前に気付こう、自分……。

それぞれのボタンの役目に付いては、再生中に別のファイルにカーソルを合わせることが多いので、フォーカスを再生中の曲に戻したい時に使うのが、「Activate now playing」。選択されているファイルを次に再生するかどうかの設定を切り替えるのが「Cursor follows」です。

$textbutton($add($mul($get(tekip),5),$get(tekix)),$get(tekiy),$get(tekip),$get(tekih),
Cursor follows,
Cursor follows,
COMMAND:'Playback/Playback follows cursor',
$get(tefoc) $get(tefob) $get(tefow),
$get(tefocm) $get(tefobm) $get(tefowm)
) //選択した曲を再生

$textbutton($add($mul($get(tekip),6),$get(tekix)),$get(tekiy),$get(tekip),$get(tekih),
Activate now playing,
Activate now playing,
COMMAND:'View/Columns playlist/Activate now playing',
$get(tefoc) $get(tefob) $get(tefow),
$get(tefocm) $get(tefobm) $get(tefowm)
) // 再生中の曲へ飛ぶ

ボタンの設置をした方なら、これを見ても何となく理解できるのではないでしょうか? 横幅や高さが省略されず変数が代入されていたり、画像指定の部分が文字になっていますが、殆ど同じ内容です。
大きな違いはコマンド入力の後ですね。

$get(tefoc) $get(tefob) $get(tefow)
$get(tefocm) $get(tefobm) $get(tefowm)

これは宣言された変数を見れば分かる通り、色の設定です。上が通常、下がマウスオーバー時です。それぞれに変数が用意されているので、マウスオーバー時に枠だけ色を変えたりするようなことも、かなり簡単にできます。

「Playback/Playback follows cursor」というコマンドですが、これは「現在選択しているファイルを次に再生にする」というものです。
再生設定をランダムなどにしていない限り、通常はプレイリストの上から順番に再生されます。しかしこのコマンドは、それを無視して現在選択しているファイルを次に再生するよう命令するのです。

私が用意したボタンは、「Playback/Playback follows cursor」のオン・オフを切り替える為のものです。このコマンドがオフ状態だと、選択したファイルを無視して通常の順番で再生されていきます。

ここで一つポイント。
「Playback/Playback follows cursor」とは別に「Playback/Cursor follows Playback」というのがあり、私は「Playback/Cursor follows Playback」をオンにした状態で「Playback/Playback follows cursor」のオン・オフを切り替えています。

これだとオンなら選択したファイルが次の再生となり、フォーカスもそちらへと勝手に移ります。オフだと通常の順番での再生となり、フォーカスも自動的にそれに合わせて移動してくれるというわけです。

……ややこしい、書いていて頭掻き毟りたくなりました。

Playback/Playback follows cursor
・現在選択しているファイルを次に再生する。

Playback/Cursor follows Playback
・次の再生時、そのファイルへと自動的にフォーカスを移す。

こんな感じですかね?
これらのオン・オフ状態は、「Menu」の「Playback」で確かめることができます。チェックを入れたければ選択、チェックを外したい時はこれまた選択。あれ? 「Menu」あるなら別にボタン要らないんじゃ……。

まぁそこは気にせず、おまけで「Send to Playlist」のテキストボタン表記も載せておきます。右クリックで使用できるコマンドを利用する際は、「COMMAND」の部分が「CONTEXT」に変わるので気を付けましょう。

$textbutton($add($mul($get(tekip),5),$get(tekix)),$get(tekiy),$get(tekip),$get(tekih),
Send to Playlist,
Send to Playlist,
CONTEXT:'Utils/Send to playlist...',
$get(tefoc) $get(tefob) $get(tefow),
$get(tefocm) $get(tefobm) $get(tefowm)
) //指定したプレイリストに送る

音楽をを聞くわけですから、シークバーの横に演奏時間とその経過時間を表示しておきたいですよね。そんなわけで最後は演奏時間の表示です。ベースの「Panel Stack Splitter」の「splitter Settings」を開き、「script」タブの「Persecond」を表示させましょう。

$puts(text,255-255-255) // 文字色
$font(MeiryoKe_PGothic,13,)
$drawtext( [[%playback_time%' / ']%length%],$sub(%_width%,175) ,50,100,50,$get(text),right noclip)
// プレイリスト上で選択した曲の演奏時間を表示。

「$font(name,size,OPTIONS)」は、フォントの指定です。

$if($files(C:\WINDOWS\Fonts\meiryo.ttc),$font(メイリオ,9),$font(Tahoma,10))

このように、TF記述で「あのフォントがあるならこれ、ないならこのフォントにしてね」という指定もできます。

title formatting referenceによると、「%length% : 曲の長さ」「%playback_time% : 曲の経過時間」となっており、曲が流れる限り経過時間は変化していくのですから、毎秒更新で使う「Persecond」に記述するわけですね。

これで大体の配置は終了しました。今度は細々した設定に入っていきます。



今日はここまで。
関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
http://dejiseikatu.blog77.fc2.com/tb.php/47-1da76b26
この記事にトラックバック(FC2Blog User)

サイト内検索

月別アーカイブ

07  02  11  10  05  04  03  02  12  11  10  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10 

スピーカー。

利用してる所とか。

ネットで買い物するなら。



ここで古本買ってます。 ブックオフオンライン

QRコード

QR

FC2カウンター

プロフィール

番頭はん

Author:番頭はん
腐女子なのに時々それを忘れる駄目オタク。
一日に二杯の珈琲を与えないと、目に見えて機嫌が悪くなる。
このサイトについて

ランキングに参加中。

人気ブログランキングへ

メールで連絡を取りたい方はこちらからどうぞ。

Amazon検索

カテゴリ

ユーザータグ

お世話になってます。



リンクシェア アフィリエイト紹介プログラム

最新コメント

最新トラックバック

Copyright © 番頭はん