現在?人閲覧中
目次
これは何?
Columns UI用のパネルを配置するためのsplitter。
ボーダーなしや、パネルを重ねたりなど少しは自由度の高い設定が出来る。(Release.txtより)
http://foo2k.chottu.net/で配布されている。
Columns UIが必要。
導入方法
foo_uie_panel_splitter.dllをcomponentsフォルダに入れ、
Columns UIのLayoutタブでSplitter>Panel Stack Splitterを選択、配置する。
操作方法
設定
関数
OPTIONSで複数の設定を指定する場合、区切り文字には半角スペースを使う。
フォント
$font()
$font(name,size,OPTIONS)
- name: フォント名
- size: フォントサイズ
- OPTIONS
- bold: 太字
- italic: 斜体
- underline: 下線
- strikeout: 打消し線
フォント設定
例 $font(Tahoma,10,bold italic)
描画
$drawstring()
$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()
$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()
$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()
$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()
$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)で楕円を描画
画像
$imageabs()
$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()
$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()
$getimagewidth(path), $getimageheight(path)
- path: 画像へのパス
pathで指定される画像が$imageabs $imageabs_rcもしくは $imagebuttonでメモリにキャッシュ中の画像であれば、
そのリサイズ済みの水平幅、垂直幅を返す。
$drawimage()
$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のリサイズ処理が気に入らない人向け。
ファイル
$findfile()
$findfile(path)
- path: 存在を調べるファイルへのパス
path(ワイルドカード可)で指定されるファイルが存在すれば、最初に見つかったファイルのパスを返す。
ファイルが無ければ何も返さない。
座標
$setparcentmode()
$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のいずれかを引数にもつ関数すべてに影響を及ぼす。
ボタン
$textbutton()
$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を更新する。
- COMMAND:command_path
- 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()
$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描画
GDIで描画する。 シンプルだけど処理が軽い場合がある。(特にWindowsXP)
$drawtext()
$drawtext(text,x,y,W,H,r-g-b,RESERVED)
- option
- left hcenter right
- top vcenter bottom
- noclip
文字列描画関数
textを座標(x,y)に出力
$drawtextex()
$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()
$gettextwidth(text)
GDIで描画したときのテキストの水平幅を返す。
$gettextheight()
$gettextheight()
GDIで描画したときのテキストの垂直幅を返す。
$fillrect()
$fillrect(x,y,w,h,r-g-b,RESERVED)
矩形塗りつぶし関数
パネル操作
$showpanel(),$showpanel_c()
$showpanel(i,sh),$showpanel_c(caption,sh)
- i: 子パネルリストでの何番目か(0から数えて)
- caption: パネルキャプション名
- sh
- 0: 非表示
- 1: 表示
パネルの表示、非表示変更関数
$movepanel(),$movepanel_c()
$movepanel(i,x,y,w,h),$movepanel_c(caption,x,y,w,h)
- i: 子パネルリストでの何番目か(0から数えて)
- caption: パネルキャプション名
Force layout指定されたパネルのみ、座標(x,y) サイズ(w,h)に移動させる。
$getcaption()
$getcaption(i)
- i: 子パネルリストでの何番目か(0から数えて)
子パネルリストでのi番目パネルに設定されているキャプションを返す。
$isvisible_c()
$isvisible_c(caption)
- caption: パネルキャプション名
パネルの表示状態を返す。(表示されていれば真、非表示なら偽)