#author("2016-05-07T12:27:09+09:00","","")
//0.5.4 beta [Jan 9 2007 - 15:42:59]
#contents
*これ何? [#ub0cf280]
Columns UI用のパネルを配置するためのsplitter。ボーダーなしや、パネルを重ねたりなど少しは自由度の高い設定が出来る。(Release.txtより)http://foo2k.chottu.net/で配布されている。
*導入方法 [#b7bf7f93]
foo_uie_panel_splitter.dllをcomponentsフォルダに入れ、Columns UIのLayoutタブでSplitter>Panel Stack Splitterを選択、配置する。
*操作方法 [#w0552265]
*設定 [#r26be706]
*関数 [#n9ee286d]
OPTIONSで複数の設定を指定する場合、区切り文字には半角スペースを使う。
**フォント [#m769d76c]
***$font() [#v3ccc129]
$font(name,size,OPTIONS)
-name: フォント名
-size: フォントサイズ
-OPTIONS
--bold: 太字
--italic: 斜体
--underline: 下線
--strikeout: 打消し線
フォント設定
-例 $font(Tahoma,10,bold italic)
**描画 [#nf24a1ab]
***$drawstring() [#y2f97363]
$drawstring(text,x,y,W,H,r-g-b-a,RESERVED)
-text: 描画する文字列
-r-g-b-a: 文字色(赤-緑-青-透明度)
-OPTIONS
--left: 左
--hcenter :中央
--right: 右
--top: 上
--vcenter: 中央
--bottom: 下
--nowrap: 描画の回り込みをしない
--noaa: アンチエイリアスをかけない(指定しなくてもかからないフォントもある)
文字列描画関数
-文字列はこの関数と$drawtext()でしか表示できない。
-textを座標(x,y)に出力
-TrueTypeフォントしか使えないかも。
-例 $drawstring(abcd,10,10,,,255-128-64-128,hcenter noaa)
***$drawrect() [#l6a9ee96]
$drawrect(x,y,w,h,R1-G1-B1-A1,R2-G2-B2-A2,OPTIONS)
-R1-G1-B1-A1: 内部色
-R2-G2-B2-A2: 枠の色
-OPTIONS
--aa: アンチエイリアスをかける
矩形描画関数
-座標(x,y)にサイズ(w,h)で矩形を描画
-例 $drawrect(0,50,50,50,255-128-64-128,,aa)
***$gradientrect() [#n8546b65]
$gradientrect(x,y,w,h,r1-g1-b1-a1,r2-g2-b2-a2,OPTIONS)
-r1-g1-b1-a1: グラデーション開始色
-r2-g2-b2-a2: グラデーション終了色
-OPTIONS
--vertical: 垂直方向
--horizontal: 水平方向
--aa: アンチエイリアスをかける
矩形内をグラデーションで塗りつぶす描画関数
-座標(x,y)にサイズ(w,h)で矩形を描画
-例 $gradientrect(0,50,50,50,255-128-64-128,255-255-255,vertical aa)
***$drawroundrect() [#s20153e2]
$drawroundrect(x,y,w,h,w2,h2,R1-G1-B1-A1,R2-G2-B2-A2,RESERVED)
-R1-G1-B1-A1: 内部色
-R2-G2-B2-A2: 枠の色
角を丸めた矩形描画関数
-座標(x,y)にサイズ(w,h)で角を丸めた矩形を描画。角の丸みは、w2,h2で調整できる。w > 4*w2 && h > 4*h2 を満たす必要がある。
-例 $drawroundrect(10,20,50,50,4,4,255-255-128-255,,)
***$drawellipse() [#i9bb1864]
$drawellipse(x,y,w,h,R1-G1-B1-A1,R2-G2-B2-A2,RESERVED)
-R1-G1-B1-A1 内部色
-R2-G2-B2-A2 枠の色
-楕円描画関数
-座標(x,y)にサイズ(w,h)で楕円を描画
**画像 [#sb1da9e8]
***$imageabs() [#z9b3548f]
$imageabs(x,y,w,h,path,OPTIONS,n)
-path: 画像へのパス
-OPTIONS
--nokeepaspect: アスペクト比を維持しない
--left
--right
--top
--bottom
--nodisplay: メモリに読み込むだけで表示しない
--artreader: pathのファイルに埋め込まれている画像を表示する
-n: rotateflipのためのインデックス
--1: 90
--2: 180
--3: 270
--4: 左右反転
--5: 90 + 左右反転
--6: 上下反転
--7: 90 + 上下反転
座標(x,y)にサイズ(w,h)で pathで指定される画像を表示する。
最初にTFが評価されたとき(起動時など)のサイズ(w,h)にリサイズしてメモリ上にキャッシュする。
メモリ上にキャッシュした後で参照されなくなった画像は、速やかにメモリ上から削除される。
次に同じpathで画像が参照されれば、すべてメモリ上のリサイズ済み画像を使って表示する。
w,hが省略されると、オリジナルのサイズでキャッシュする。
メモリにキャッシュした画像については、$getimagewidth(path),$getimageheight(path)が使える。
この関数は、毎回画像ファイルをHDDに読みにいくことを回避したり、処理速度を上げる目的で使用する。
リサイズに関する処理が気にいらなければ、drawimageを使うこと。
普通はこっち使っておけば問題ないはず。
-例1 $imageabs(10,10,,,C:\%album%.jpg)
-例2 $imageabs(10,10,50,50,C:\%album%.jpg)
-例3 $imageabs(10,10,50,50,C:\%album%.jpg,left top)
-例4 $imageabs(10,10,50,50,C:\%album%.jpg,,6)
-例5 $imageabs(10,10,50,50,%_path%,artreader)
***$imageabs_rc() [#v18c9328]
$imageabs_rc(rw,rh,srcx,srcy,srcw,srch,x,y,path,OPTIONS,n)
-path: 画像へのパス
-OPTIONS
--nokeepaspect: アスペクト比を維持しない
--nodisplay: メモリに読み込むだけで表示しない
-n: rotateflipのためのインデックス(imageabsと同じ)
リサイズ後クリップして画像を表示する関数。pathで指定される画像をサイズ(rw,rh)にリサイズ後に、その領域(srcx,srcy,srcw,srch)を座標(x,y)にサイズ(srcw,srch)で 表示する。
***$getimagewidth(), $getimageheight() [#ma389145]
$getimagewidth(path), $getimageheight(path)
-path: 画像へのパス
pathで指定される画像が$imageabs $imageabs_rcもしくは $imagebuttonでメモリにキャッシュ中の画像であれば、そのリサイズ済みの水平幅、垂直幅を返す。
***$drawimage() [#b73c8020]
$drawimage(x,y,w,h,path,OPTIONS,n)
-path: 表示する画像へのパス
-OPTIONS
--nokeepaspect: アスペクト比を維持しない
--left
--right
--top
--bottom
--artreader: pathのファイルに埋め込まれている画像を表示する
-n: rotateflipのためのインデックス
--1: 90
--2: 180
--3: 270
--4: 左右反転
--5: 90 + 左右反転
--6: 上下反転
--7: 90 + 上下反転
-座標(x,y)にサイズ(w,h)で path で指定される画像を表示
-wとhを省略するとオリジナルのサイズで表示する
-表示後処理後直ちにメモリ上から、削除される。TFが評価されるたびに画像の再読み込みを行う。
とてつもなく大きい画像を表示したり、画像を多く表示するのにメモリ占有量を減らしたかったりimageabsのリサイズ処理が気に入らない人向け。
**ファイル [#ta6f9cfb]
***$findfile() [#k841c1a4]
$findfile(path)
-path: 存在を調べるファイルへのパス
path(ワイルドカード可)で指定されるファイルが存在すれば、最初に見つかったファイルのパスを返す。ファイルが無ければ何も返さない。
**座標 [#q5aa4de0]
***$setparcentmode() [#p9275f07]
$setparcentmode(bx,by,bw,bh)
-bx: x座標指定モード
--0:Splitter内の絶対座標で指定するモード
--1:Splitterのサイズに対する相対値(パーセント値)での指定とする。
-by: y座標指定モード(同上)
-bw: w座標指定モード(同上)
-bh: h座標指定モード(同上)
座標の指定モードを設定する。ウィンドウの表示領域が(0,0) ~ (%_width%, %_height%)であるところを、パーセント値指定モードでは、(0,0) ~ (100,100)にマッピングする。
x,y,w,h個別に設定できる。x,y,w,hのいずれかを引数にもつ関数すべてに影響を及ぼす。
**ボタン [#pfc217a0]
***$textbutton() [#dc6bb077]
$textbutton(x,y,w,h,text,mover_text,command,options1,options2)
-text: ボタンのラベル
-mover_text: マウスオーバー時のボタンのラベル
-command: 実行するコマンド
--COMMAND:command_path
command_pathで指定されるメニューコマンドを実行する。
COMMAND:View/Equalizerや、
COMMAND:File/Preferences;COMMAND:Playback/Play
というように指定する。
command_pathもTFとして評価されるので注意
COMMAND:'View/Equalizer'としておくのを推奨。
--CONTEXT:context_path
context_pathで指定されるコンテキストメニューコマンドを実行する。
コンテキストメニューの処理対象は現在の再生トラック。
CONTEXT:Propertiesみたいに指定する。
context_pathもTFとして評価されるので注意
--WINDOWSIZE:cx:cy
ウィンドウサイズを(cx,cy)にする。
Splitter風情が、ウィンドウサイズを変更していいかは微妙。
--PANELSHOW:cap:sh
captionがcapである子パネルの表示/非表示を切り替える。
sh
0 非表示
1 表示
-1 表示/非表示のトグル
--TFMODE:mode
Per Trackのtitleformatのモードを変更する。
mode
0 nowplayingモード
1 follow curosrモード
-1 トグル
--REFRESH
TFのPerTrack, PerSecondを更新する。
-options1: デフォルトの装飾指定 (スペースで区切って複数指定可)
--fontcolor:r-g-b: テキストの色
--brushcolor:r-g-b-a: ボタン矩形の塗りつぶし色
--pencolor:r-g-b-a: ボタン外枠の色
--left top bottom right: テキストの位置
-options2: マウスオーバー時の装飾指定 (スペースで区切って複数指定可)
--fontcolor:r-g-b: テキストの色
--brushcolor:r-g-b-a: ボタン矩形の塗りつぶし色
--pencolor:r-g-b-a: ボタン外枠の色
--left top bottom right: テキストの位置
-コマンドは"命令種別:引数"の書式で指定する
--余分なスペースを入れないこと
-;で区切って複数命令指定可のつもり。指定できる命令がまだ少ない。すごく実装が面倒。。。
:や;はスプリッタ文字になっているので、これらの文字が含まれる引数は、上手くパース出来ない可能性がある。
-注意1: 処理時間のかかる命令を指定しないこと。
-注意2: 複数命令指定されている場合、命令の実行順序は保証されない。
特にCOMMANDとWINDOWSIZEが指定される場合、WINDOWSIZEの方がおそらく先に実行される。COMMAND,CONTEXT同士だと、順序が保証されるかも。
***$imagebutton() [#v0b91cfa]
$imagebutton(x,y,w,h,path,mover_path,command,options1,options2)
-path: ボタンに使用する画像へのパス
-mover_path:マウスオーバー時のボタンに使用する画像へのパス
-command: 実行するコマンド
-options1 画像表示オプション
--nokeepaspect
--left top bottom right
-options2: マウスオーバー時の画像表示オプション
--nokeepaspect
--left top bottom right
画像ボタンを作る。Per Trackのみ有効。 Per Secondには記述しないこと。画像の内部処理としては$imageabsと扱いが等しく、メモリ上にキャッシュされる。
w,hが省略されると、pathで指定される画像のオリジナルサイズになる。commandはtextbuttonと共通。
**GDI描画 [#wa9cd607]
GDIで描画する。 シンプルだけど処理が軽い場合がある。(特にWindowsXP)
***$drawtext() [#t8559350]
$drawtext(text,x,y,W,H,r-g-b,RESERVED)
-option
--left hcenter right
--top vcenter bottom
--noclip
文字列描画関数
-textを座標(x,y)に出力
***$drawtextex() [#vd148071]
$drawtextex(text,x,y,W,H,r-g-b,OPTIONS)
-OPTIONS
--left hcenter right: 水平アライン指定
--top vcenter bottom: 垂直アライン指定
--noclip: クリップしない
--wrap: ラップアラウンド許可指定(vcenter、bottomとは排他)
--end_ellipsis: テキストがクリップされる場合、テキストの最後を...に置き換える
GDI文字列描画関数2
-textを座標(x,y)に出力
-例 $drawtextex(text,0,0,%_width%,%_height%,0-0-0,hcenter vcenter end_ellipsis)
***$gettextwidth() [#e5b0c711]
$gettextwidth(text)
GDIで描画したときのテキストの水平幅を返す。
***$gettextheight() [#k7ffee9c]
$gettextheight()
GDIで描画したときのテキストの垂直幅を返す。
***$fillrect() [#ecdd2dcf]
$fillrect(x,y,w,h,r-g-b,RESERVED)
矩形塗りつぶし関数
**パネル操作 [#s39a6973]
***$showpanel(),$showpanel_c() [#l1d49991]
$showpanel(i,sh),$showpanel_c(caption,sh)
-i: 子パネルリストでの何番目か(0から数えて)
-caption: パネルキャプション名
-sh
--0: 非表示
--1: 表示
パネルの表示、非表示変更関数
***$movepanel(),$movepanel_c() [#wb18e4a2]
$movepanel(i,x,y,w,h),$movepanel_c(caption,x,y,w,h)
-i: 子パネルリストでの何番目か(0から数えて)
-caption: パネルキャプション名
Force layout指定されたパネルのみ、座標(x,y) サイズ(w,h)に移動させる。
***$getcaption() [#y26c17f9]
$getcaption(i)
-i: 子パネルリストでの何番目か(0から数えて)
子パネルリストでのi番目パネルに設定されているキャプションを返す。
***$isvisible_c() [#r0695eac]
$isvisible_c(caption)
-caption: パネルキャプション名
パネルの表示状態を返す。(表示されていれば真、非表示なら偽)