foobar2000

以前foobar2000の外見を変更したときは
マウス操作のことを考えてEsPlayListを上下に並べた
しかし殆ど使っていないことに気づいた。つーか邪魔
やっぱり必要だった
いつのまにかEsPlayListのβ版が更新されていたし
いい機会なので再び外見をものすごくちょびっと変えた
そのメモ
WSHここを参考にした
あんまよくわかってない



EsPlayListを一つ消去
カラムを全て中央揃えにし、トラックナンバー消去、アルバムアートを表示
RowHeightを14にした



Vertical splitter
WSH Panel Mod
├EsPlaylist…(1)
├Channel spectrum panel
└EsPlaylist…(2)

WSH シークバー兼タイトルフォーマット

function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
var g_titlefmt = fb.TitleFormat("[%album%] - [%title%] - [%artist%]");
var g_font = gdi.Font("MeiryoKe_UIGothic", 12, 0);
var g_drag = 0;
var hofset = 10;
var wh = 12;
function on_paint(gr){
	var vofset = (window.Height-wh)/2;
	var length = fb.PlaybackLength;
	var txt = g_titlefmt.Eval();
	var ww = window.Width - 25;
	var grad = 0;
	var i = 0;

	if (length > 0) {
		grad = fb.PlaybackTime/fb.PlaybackLength;
	} while (i < ww+1) {
		var col = (grad<=0) ? RGB(0,0,0) : (i<=grad*ww) ? RGB(40,40,40) : RGB(0,0,0);
		gr.FillSolidRect(hofset+1+i,vofset,4,wh,col);
		i = i +5;	
	} gr.DrawString(txt,g_font,RGB(255,255,255),0,vofset,ww,wh,0x11005000);
}
function on_mouse_lbtn_down(x,y){
	g_drag = 1;
}
function on_mouse_lbtn_up(x,y){
	on_mouse_move(x,y);
	g_drag = 0;
}
function on_mouse_move(x,y){
	var ww = window.Width - 25;
	if(g_drag){
		var v = (x-hofset)/ww;
		v = (v<0) ? 0 : (v<1) ? v : 1;
		fb.PlaybackTime = fb.PlaybackLength * v;
	}	
}
function on_mouse_wheel(delta){
    fb.PlaybackTime = fb.PlaybackTime + delta;
}
function on_playback_new_track(info){
	window.Repaint();
}
function on_playback_stop(){
	window.Repaint();
}
function on_playback_seek(time){
	window.Repaint();
}
function on_playback_time(time){
	window.Repaint();
}