foo_uie_elplaylist.dll v0.6.8.2 beta
for foobar2000 v1.0+, Columns UI0.3+, Windows Vista+ 
(mFWindows Vistâ)

SDK version
foobar2000:2009-01-09
       cui:6.3

Columns UIp SCPL likePlaylist view
vCXg̊egbNgroup formatɐݒ肵vfŃO[sOăXg\܂B

ݒ͕ςƂ́AENbNj[Settings...ݒ_CAOĂяoĂB
ݒҏWɂ́ATitleformat(TF)̒mKvłBTitleformatɂĂ͕ʓr ̉TCgQƂĂB



ݒ荀

[ script]
ɃXg̊es̓̕`̃JX^}CYs܂B
	title format script presets: `𐧌䂷TFLq܂Bݒ͕o^ł܂B
		Track list
			gbNs̕`𐧌䂷TFB
		Group header
			O[vwb_̕`𐧌䂷TFB
		Per Second
			ĐgbNsŖbXV`𐧌䂷TFB(Now playing infonTFgpł܂B)
		Popup(Background)
			|bvAbvEBhE̕`𐧌䂷TFBPopup(Track)̑OɎsB
			قƂǂ̊gtB[h͎gȂB
		Popup(Track)
			|bvAbvEBhẼgbNPʂ̕`𐧌䂷TFBO[vwb_Popup̏ꍇɂ̓O[ṽgbNƂɎsB
			قƂǂ̊gtB[h͎gȂB
			{bvAbv̋N_AgbNsO[vwb_%el_is_group%Ŕ肵ĂB
			܂AO[vwb_̏ꍇA%el_item_index%ŕ`ʒu炵ĂB
				[]:	PopupĂȂo[WĂo[WɍXVƂɁA
				        ݒ_CAOJPopup̃ftHgTitleformatZbgĉȂȂĂ܂܂AdlłB
					̏ԂŁAݒۑƁAPopupɂ͉\ȂȂ܂B
				        Popup@\Graphical BrowserȂQlɂĂ܂B肪΁A͂܂B


[style]
	custom background colour :
		JX^wiFw肵܂B
		total : Ŝ̔wiFw肵܂B
		odd item  : swiFw肵܂B
		even item : swiFw肵܂B
		selected item :Is̔wiFw肵܂B
		playing item  :ĐgbN̔wiFw肵܂B
		selected playing item :IsĐgbN̔wiFw肵܂B

		oddeven itemɂĂleft paddingright paddingŕ`͈͂wł܂B

		odd and even are calculated by the list index:
			on̂ƂA/Xg̍sԍŌ߂܂B
			off̂Ƃ́AO[v̏ԂŌ߂܂B

		\镶ɊւύX́AscriptҏW邵܂B

	default font... :
		ftHg̃tHgw肵ĂB

	pseudo transparent    :
		[IȔwi߂s܂BdȂ邱ƂłB
		(dꍇA\̈ƃ}VɂȂ邩܂B
		 ҂gĂȂ̂ōœKCȂ )

	Enable Visual Style : 
		es̔wiVisualStyleȂǂŎIɕ`悵܂BWindows VistaB
		custom background colour ̕`ŁAtitle format script̕]Oɕ`悳܂B
		eLXg̐F́AŕύX܂B

	scrollbar :
		XN[o[̕\Ԃ̐ݒ:default(ŕ\/\؂ւ)/hide(ɔ\)/show(ɕ\)A
		уXN[ʂݒ肵܂(0̓VXẽftHg)B

[ grouping ]
ɃO[sOɊւJX^}CYƁAsɂ킽郊Xg̕\̃JX^}CY\łB

	group by:  ̐ݒpresetƂĕۑł܂B
		group format :
			egbNO[sO邽߂TitleformatLq܂B
			TFƂĕ]ʂɂȂꑱ̃gbNO[vƂĈ܂B
			group formaťʂłAvCXgŗĂgbN͈قȂO[vƂĈ܂B
			group format"|||"ŕ邱ƂŁAKwIgroupݒł܂B

			: %album artist%|||%album%
			qO[vO[vɂ́AgbN蓖ĂȂƂ񂪂܂B
			̂悤ȃO[vɃgbN蓖Ă悤ƂƁA_~[O[vwb_}܂B
			̃eLXg̍ŌɏڂĂ܂B

		sort format:
			vCXgsorts߂TitleformatLq܂B
			sort̎śAReLXgj[s܂B
			[] sorts킯ł͂܂B
			       

		row height :
			Xgɂ1s̊{ݒ肵܂B


		row number of group header:
			"row height"PʂƂO[vwb_̍ݒ肵܂B
			TitleformatLłBTFƂďꂽʂl(0`16)ԂȂ΂Ȃ܂B
			̂߃O[vwb_̍́AKrow height̐{(0`16{)ɂȂ܂B
			[]: O[v擪gbNgāAgroup row͕]܂B

		minimum row number of group:
			eO[v̍s̉ݒł܂B
			Ⴆ΁AO[ṽgbN̐ȂĂAo摜̕\͈͂mۂprȂǂɎgpł܂B
			TitleformatLłBTFƂďʂ0ȏ̐lԂȂ΂Ȃ܂B
			O[sOʁAO[ṽgbN̐̐ݒlɖȂꍇAemptys}Đ܂B			

			[] O[v擪gbNgāAmin item num͕]܂B
			       emptysł́ATrack list Titleformat$enabledraw()gȂA`@\offɂȂ܂B
			       ̗LsƓlɕ`悵ꍇ́A$enabledraw(1)ȂǂŁA`@\onɂĂB
			       emptysTrack list Titleformat́ÃO[v̍Ō̗LgbNgĕ]܂B

		playlist filter :
			enable playlist filteron̏ꍇAvCXg؂ւƂɃvCXg̖Ogroup by presetőIł悤ɂ܂B
				enable all playlists  ׂẴvCXgpresetLB
				enable only on        w̃vCXgɈvꍇpresetLB
				disable on            w̃vCXgɈvꍇpresetB
				presetXg̏ŗDx܂܂B

				 w肷vCXg̖ÓA";"ŋ؂邱Ƃŕwł܂BTF⃏ChJ[h͖łB

		associated titleformat script name : 
			presetƊ֘Attileformat scrpit̖O1ݒł܂B


	enable playlist filter :
		playlist filterLɂ vCXggroup by presetőI悤ɂ܂B

	prioritize active preset :
		LpresetTƂɁA܂IĂgroup by presetŗDɂ܂B

[field definition]
	title format preprocessor :
		e Titleformat[Track list] [Group header] [Per Second] [Popup(Background)] [Popup(Track)] [row number of group header] [minimum row number of group]
		]OɁAfield̒us܂B
		e TitleformatŋʂɎQƂR[hݒ肷̂ɕ֗܂B
		foo  :  C:\%album%.jpg  Ɛݒ肵ꍇA
		e Titleformat  %foo%  C:\%album%.jpg ɒu܂B

[ behaviour ]
	click action :
		vCXgŃNbNƂ̓ύXł܂B

	mouse hover action :
		}EX΂炭~ƂɎs铮wł܂B

	enable hover :
		mouse hover actionon/offł܂B

	delay :
		}EX~Ămouse hover actions܂ł̒xԁB

	display only the focused group :
		tH[JXO[v̂ݕ\܂B̃vCXg\pl(Graphical BrowserƂ)Ƃ̘AgOłB

	collapse all groups when playlist is changed :
		ftHgŃO[v܂B
	threshold of number of groups :
		O[v̌̐lȏ̂ƂɃO[v܂B
	auto-collapse :
		tH[JXO[vȊÕO[v܂B
		̃IvVonƁAO[vwb_single click邾ŃgbNs̕\/\؂ւ悤ɂȂ܂B
		܂NbNANVŊJO[v͎ł͕܂B
		ĐgbNɒǏ]ꍇAPlayback/Cursor Follows PlaybackƑgݍ킹ĎgĂB

	allow collapsing group with no group header :
		O[vwb_Ȃ(group row0)O[vł悤ɂ܂B

	disable focus change by single click at group header
		O[vwb_emptysŃVONbNƂɁAtH[JXړ̂~߂܂B

	update every second :
		ĐgbNPer SecondLɂB萳mɂ́AbPʂ̕`̍XVon/off邾łB

	move items with drag and dop :
		IgbNDrag & Dropňړł悤ɂ܂B
		̃IvVoffłA[Alt] Ȃ Drag & Dropňړł܂B

	enable incremental search :
		L[͂ɏ]āAgroup format(%el_group_format%)CN^܂B
		L[[h́AXe[^Xo[ɏo͂܂B
		܂A5b LL[͂ȂꍇAL[[h͎ŃZbg܂B
		V[gJbgL[oChQƁB
		XPIMEȂ΁A{ł\Ȃ悤ɑΉłB
		Vistał̓At@xbg(ASCII)ɂ錟݂̂܂B(ƂVistał͓얢mFłB)
		VistaASCIIȊOꍇ́ACtrl-fŃ_CAOx[X̌\ł̂ŁAgpĂB


	disable to follow the focused item
		tH[JXړۂɁA\͈͓Ɏ܂悤ɃXN[̂𖳌ɂ܂B


	resize quality :
		摜̊g/kiݒł܂B
		Ƃɂiグꍇ́AHighQualityBicubicɂĂΗǂ̂ł͂ȂƁB

	context menu :
		eReLXg[(ENbNj[)̍ڂ\邩AȂݒł܂B


[misc]
	popup
	|bvAbvmouse hover actions܂B
		max size :
			|bvAbv̍őTCYBTitleformatŏ͂ł܂B

		popup opacity :
			|bvAbv̕sxB0ɂƊSɓɂȂ̂ŁA\ȂȂ܂B

		fade-in :
			\ƂɃtF[hCʂ܂BȂKɍĂ܂B(VistaƃftHgŃtF[hCH)

		enable colorkey :
			J[L[ݒ肵܂Bݒ肵F߂܂BwiFƓ(ftHg)Ȃwi߂܂B
			AA`GCAXƁAYɓ߂܂B

		prevent going outside of display
			|bvAbvfBXvC̕\͈͊Oɂł邾oȂ悤ɂ܂B}`fBXvCΉłB
		
		max track num:
			Popup(Track)sgbN̏lB
			PopupTitleformat script́A
			Popup(Background) -> Popup(Track) -> Popup(Track) -> 
			Ǝs܂B

	additional sort format
		ReLXgj[sortڂɒǉsort formatݒ肵܂B
		group by presetƂ͓ƗĂ܂B


V[gJbgL[oCh
	Ctrl-c : Copy
	Ctrl-v : Paste
	Ctrl-x : Cut
	Ctrl-a : SI
	Ctrl-f : _CAO(%el_group_format%̌ł܂)
	Ctrl-g : ̃O[vɃWv
	Ctrl-b : ÕO[vɃWv
	Delete : vCXggbN
	Alt-[Up]/[Down] : IgbN̈ړ  ("hide all items when playlist is changed"  offł邱)
	[]: foobar2000{̂General->Keyboard Shortcuts̐ݒ肪D悳܂B

	##[Alt] + Drag & Drop łIgbN̈ړł܂B

	CN^T[`
	L[͂group format(%el_group_format%)CN^ł܂B(enable incremental searchon̏ꍇ̂)
	܂Aȉ̃V[gJbgL[LłB
	Ctrl-e : L[[hZbgB
	Ctrl-d : B(Ctrl-s󂢂ĂΗǂ̂ɥ)
	Ctrl-r : OB

Cj[
	ׂẴplɉe܂B
	Show now playing   :ĐgbN\悤ɃXN[܂B
	Show focused item  :tH[JXgbN\悤ɃXN[܂B
	Expand all groups  :ׂẴO[vWJ܂B
	Collapse all groups:ׂẴO[v܂B
	Redraw             :Iɍĕ`𔭐܂B
	Refresh            :ăO[sOƁA摜̃LbVNA܂B


gR}ht@X
(ɏĂ̈ȊOɂfoobar{̂̃ftHgTF͂g܂)


 fields 

%el_width%
	s̕\̈̉Ԃ
	[Track list] [Group header] [Per Second] [Popup]


%el_height%
	s̕\̈̍ԂB
	( O[vs%el_height% = %el_group_row% * %el_row_height%
	  gbNs%el_height% = %el_row_height% )
	$setworldtransform()̉e󂯂B
	[Track list] [Group header] [Per Second] [Popup]


%el_isplaying%
	Đۂ 
	[Track list] [Group header] [Per Second]


%el_selected%
	vCXgőI𒆂ۂ
	[Track list] [Per Second]
	click actionSelect groupőIꂽO[vۂ
	[Group header] 


%el_focused%
	vCXgŃtH[JXۂ
	[Track list] [Per Second]


%el_row_height%
	s̊{IȍԂB
	(O[vwb_sł%el_height%ƈقȂB)
	[Track list] [Group header] [Per Second]


%el_group_row%
	O[vwb_s̍%el_row_height%B
	O[vwb_ł%el_height% = %el_group_row% * %el_row_height% ̊֌W
	[Track list] [Group header] [Per Second]


%el_item_count%
	O[ṽgbŇ
	[Track list] [Group header] [Per Second] [Group row] [Min item num]
	[Popup]


%el_item_count2%
	emptys܂ރO[ṽgbŇ
	    [Track list] [Group header] [Per Second]
	PopupŏgbN
	    [Popup]


%el_direct_item_count%
	O[vɒڊ蓖ĂĂgbŇB
	ȏꍇāATuO[vO[vł0ɂȂB
	܂ATuO[vȂO[vł́A%el_direct_item_count% = %el_item_count%ƂȂ(͂)B
	[Track list] [Group header] [Per Second] [Group row] [Min item num]

%el_total_item_count%
	vCXXg̃gbN̑
	[Track list] [Group header] [Per Second] [Popup]

%el_item_index%
	O[ṽgbÑCfbNX(0琔)
	emptysł̓JEgAbvȂB
	[Track list] [Per Second] [Popup]


%el_item_index2%
	O[ṽgbÑCfbNX(0琔)
	emptysłJEgAbvB
	[Track list] [Per Second]


%el_total_group_count%
	O[v̌(ׂẴO[vwb_̌)
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_total_group_index%
	O[ṽCfbNX(Xgł̃O[vwb_̃CfbNX)
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_group_count%
	eO[vɑĂO[v̌
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_group_index%
	eO[v猩Ƃ̃O[ṽCfbNX(0琔)
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_group_depth%
	݂̃O[v̐[(0琔)
	[Track list] [Group header] [Per Second] [Group row] [Min item num] [Popup]


%el_subgroup_count%
	TuO[v̐
	qO[v̐łAO[v̐Ȃǂ̓JEgȂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_subgroup_count2%
	TuO[v̗ݐϐ
	O[vȍ~ɃJEgB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_group_format%
	݂̃O[vgroup formatTFŏʂԂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]

%el_group_first_path%
	݂̃O[v̍ŏ̃gbÑpXԂB
	$imageabsB
	[Track list] [Group header] [Per Second] 


%el_is_collapsed% (%el_is_hide_item%)
	O[vĂ邩ۂB
	(O[vwb_݂̂̕\ǂ)
	[Group header] [Group row] 


%el_is_empty%
	emptysۂB
	(P%el_is_valid%Ƌt)
	    [Track list] [Per Second]
	TuO[v\肭\łȂꍇɁA_~[ƂēO[vsۂB
	    [Group header] [Group row] [Min item num]


%el_is_valid%
	L(emptysł͂Ȃ)sۂB
	[Track list] [Per Second]
	[Group header] [Group row] [Min item num]


%el_is_noheader%
	O[vwb_邩Ȃ
	(%el_group_row%0Ȃ1)
	[Track list] [Per Second]


%el_sum_length%
	O[ṽgbN̒v [hh:]mm:ss
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_sum_length_seconds%
	O[ṽgbN̒v (b)
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_backcolour%
	wiFr-g-b`ŕԂB
	r-g-b-a`ꍇ́A
	%el_backcolour%-192 ȂǂalphalǉłB
	[Track list] [Group header] [Per Second]


%el_preset_index%
	݂group bypreset̃CfbNXԂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_preset_name%
	݂group bypreset̖OԂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_is_group%
	PopupO[vwb_ۂB
	[Popup]


%el_popup_width%, %el_popup_height%
	̎_ł̃|bvAbvTCYB
	%el_width%A%el_height%max sizeԂ̂ŒӁB
	[Popup]


%el_is_themed%
	enable Visual StyleLۂ
	[Track list] [Group header] [Per Second] [Group row] [Min item num]


%el_foobar2000_path%
	foobar2000̎st@ĈtH_pXԂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num]
	

%el_user_profile_path%
	[U[vt@C̃tH_pXԂB
	[Track list] [Group header] [Per Second] [Group row] [Min item num] [Popup]


%el_system_date%
	foobar2000NA܂́APlaylist؂ւtԂB

	Returns system date on startup/playlist change.

	[Track list] [Group header] [Per Second] [Group row] [Min item num] [Popup]



 functions 

`搧֐
	[Track list], [Group header], [Per Second], [Popup]ŗLB

$font(name,size,OPTIONS)
	tHgݒB
	OPTIONS: bold italic underline strikeout

	: $font(Tahoma,10,bold italic)


$drawstring(text,x,y,W,H,r-g-b-a,OPTIONS [,OPTIONS2])
	`֐B
	textW(x,y)ɕ`悷B
	[]͂̊֐drawtextdrawtextexł\łȂB
	TrueTypetHggȂB

	OPTIONS : ACwA`iwANbvwȂǂB
		left hcenter right       ACw
		top  vcenter bottom      ACw

		nowrap                   bvAEhȂ

 		noaa                     ClearTypeA`GCAXB
		aa                       A`GCAX郂[hBClearTypeȂtHgłA`GCAXB
		hq                       ōiŕ`悷郂[hBClearType[hB(default)

		trimchar  trimword       \͈͂Ɏ܂Ȃꍇ̃g~OB
		elipchar  elipword       \͈͂Ɏ܂ȂꍇɍŌ𥥥ɒuB

		mempos                   getlastposŁA`悵W擾ł悤ɂB   

	OPTIONS2 (IIvV, experimental option)
		glowʂ̏w肷B

		glow:expand:colour:strength  glowIvV
			expand - [0-5]
			colour - r-g-b
			strength - [0-3]

		offset:x:y
			x  - glow̐̃ItZbg
			y  - glow̐̃ItZbg

		 glow͏dłB(pseudo transparent̂Ƃ)


		NOTE: glow effect is quite slow. please use carefully.


	  $drawstring(abcd,10,10,,,255-128-64-128,)
	    $drawstring(abcd,10,10,,,255-128-64-128,left vcenter,glow:2:255-255-255:3)
	    $drawstring(wxyz,10,10,,,255-255-255,,glow:2:32-168-268:1 offset:1:1)
	    $drawstring(wxyz,10,10,,,255-255-255,elipchar)


$drawrect(x,y,w,h,R1-G1-B1-A1,R2-G2-B2-A2,OPTIONS)
	``֐B
	W(x,y)ɃTCY(w,h)ŋ``悷B
	R1-G1-B1-A1  F
	R2-G2-B2-A2  g̐F

	OPTIONS
		aa - A`GAX

	  $drawrect(0,50,50,50,255-128-64-128,,aa)


$gradientrect(x,y,w,h,r1-g1-b1-a1,r2-g2-b2-a2,OPTIONS,PEAK)
	`Of[VœhԂ`֐B
	W(x,y)ɃTCY(w,h)ŋ``悷B
	r1-g1-b1-a1  Of[VJnF
	r2-g2-b2-a2  Of[Vs[NF

	OPTIONS
		vertical    Of[V
		horizontal  Of[V
		aa          A`GAX
		nonlinear   Of[V̎d`

	PEAK: 0-100
		Of[Ṽs[Nʒu炷B
		0̓ftHgŁAs[NFŏIB
		50̂Ƃ́ASs[NFƂȂB

	: $gradientrect(0,50,50,50,255-128-64-128,255-255-255,vertical aa)
	    $gradientrect(0,50,50,50,255-128-64-128,255-255-255,,10)


$drawblurrect(x,y,w,h,colour,level)
	֊sڂċ`hԂ`֐B
	level [1-7]


$drawfocusrect(x,y,w,h)
	w̋`ɃtH[JXg_ŕ`悷֐B


$drawthemerect(x,y,w,h,control_name,partId,stateId)
	Visual Stylegċ`ɃRg[({^vOXo[)`悷֐B
	摜Ƃĕ`悷邾Ȃ̂Ŏp͒ႢȂB
	Visual StyleŒ`ĂȂRg[͕`悳ȂB
	ȂƂWindowXPȏK{B

	control_name  : `悵Rg[̎ނ̖Ow肷Bȉ̂ꂩB
		window button rebar toolbar status listview header progress tab trackbar tooltip treeview spin scrollbar
		edit combobox taskbar taskband startpanel explorerbar

	partId: `悵iIDBڈƂăRg[ƂɈȉ͈̔͂̐lgpo\B
	        قƂǂ̏ꍇA`Ă̂̕Ȃ݂B
		window: 1-37
		button rebar listview tooltip: 1-5
		toolbar: 1-6
		status treeview taskband: 1-3
		header spin: 1-4
		progress: 1-4
		tab trackbar scrollbar:1-10
		edit: 1-2
		combobox: 1
		taskbar: 1-8
		startpanel: 1-11
		explorerbar: 1-12

	stateId: IȂǂ̏ԂIDB ԂȂȉꍇ0w肷B
	         stateId012ŕ`悳ȂȂA̕i͒`ĂȂB

	: 
        VistaȂ΁AGNXv[̃X^CKpłB
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,1) //default
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,2) //hot
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,3) //selected
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,4) //disable
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,5) //notfocused selected
	    $drawthemerect(0,0,%el_width%,%el_height%,listview,1,6) //hot selected
            $drawthemerect(0,0,%el_width%,1,listview,7,0)           //group header line

$drawroundrect(x,y,w,h,w2,h2,R1-G1-B1-A1,R2-G2-B2-A2,RESERVED)
	pۂ߂``֐B
	W(x,y)ɃTCY(w,h)Ŋpۂ߂``悷B
	p̊ۂ݂́Aw2,h2ŒłB
	w > 4*w2 && h > 4*h2 𖞂KvB
	R1-G1-B1-A1  F
	R2-G2-B2-A2  g̐F

      $drawroundrect(10,20,50,50,4,4,255-255-128-255,,)


$drawellipse(x,y,w,h,R1-G1-B1-A1,R2-G2-B2-A2,RESERVED)
	ȉ~`֐B
	W(x,y)ɃTCY(w,h)őȉ~`悷B
	R1-G1-B1-A1  F
	R2-G2-B2-A2  g̐F


$drawtriangle(x1,y1,x2,y2,x3,y3,R1-G1-B1-A1,R2-G2-B2-A2,OPTIONS)
	(x1,y1),(x2,y2),(x3,y3)𒸓_ƂOp``֐B
	R1-G1-B1-A1  F
	R2-G2-B2-A2  g̐F

	OPTIONS
		aa - A`GAX

	: $drawtriangle(10,5,20,10,10,15,200-100-100,,aa)


$imageabs(x,y,w,h,path,OPTIONS,n,alpha,OPTIONS2)
	W(x,y)ɃTCY(w,h) path Ŏw肳摜\B
	TCỶ摜ɕێāAɎQƂꂽꍇ̏B
	QƂȂ摜́Âォ폜B
	w,hȗƃIWi摜TCYŕ\ALbVB
	(Aw,hȗĂɂłɃLbVĂꍇ́Â܂܃LbVĂ摜TCYɂȂ)

	̏kꍇA
	kɊg傳Ɖ掿B
	nodisplaynoexpansionȂǂ𗘗pāA
	gpk̒ōł傫kōŏɃ̃LbV̂悢B

	摜݂trueAȂfalseԂB

	dipsplays the image specified by path.
	after the image is resized, it is cached on the memory. 

	path: 摜̐΃pX (or 摜ߍ܂ꂽ AudioFile  path)

	OPTIONS
		 <appearance>
		nokeepaspect AXyNgێȂ(nodisplay,archive,iconȊÕIvVƔr)B
		nodisplay    ɓǂݍނŕ\ȂB
		noexpansion  k͂邪Ag債ȂB

		 <align>	ꂼrB
		left right   ACwB
		top bottom   ACwB

		 <misc>
		wc           wildcard(*,?) LɂBread engineɉw肷ƖɂȂB
		delay        ʃXbhŉ摜ǂݍ݂LɂȂBTCY̑傫摜t@Cǂݍޏꍇ͐B
		             V摜ǂݍƂꍇAUAԂlƂtrueѕƂ"delay"ԂB
		             āAʃXbh쐬A摜̓ǂݍ݂sB
		             摜̓ǂݍ݂OɁẢ摜̓ǂݍ݂ꍇAԂlƂfalseԂB
		             摜̓ǂݍ݂ƁAēxTF͕]B
		nodelay      ʃXbhł̉摜ǂݍ݂𖳌ɂB


		 <read engine>	ꂼrB
		archive      archive readeroRpath̉摜\B
		             path̏archive readerɈˑ邪Aɂ̐΃pX|ɓt@CpX {B
		             :  C:\aaa\image.zip|bbb/ccc.jpg
		icon         pathŎw肳icont@C(*.ico)\B

		artreader        pathŎw肳Audiot@C̖ߍ݉摜foobar2000coreartwork readerœǂݍށB
		                 ߍ݉摜Ȃ΁AAudiot@C̃tH_摜ǂݍށBᑬB		                
		artreader_front  pathŎw肳Audiot@C̖ߍ݉摜foobar2000coreartwork readerœǂݍށB
		artreader_back   pathŎw肳Audiot@C̖ߍ݉摜foobar2000coreartwork readerœǂݍށB
		artreader_disc   pathŎw肳Audiot@C̖ߍ݉摜foobar2000coreartwork readerœǂݍށB
		artreader_icon   pathŎw肳Audiot@C̖ߍ݉摜foobar2000coreartwork readerœǂݍށB
		(artreader*** are currently disrecommended options because these option seem to be slow)


		* NOTE *
		if you use artreader and artreader_*** options, you must pass %el_group_first_path% to "path".(since foobar2000 v1.0)
				

	n   rotateflip̂߂̃CfbNX
		1: 90
		2: 180
		3: 270
		4: E] 
		5: 90 + E] 
		6: ㉺] 
		7: 90 + ㉺] 

	alpha  0-255
		sx

	OPTIONS2 (shadow effect)
		glow:expand:colour
		offset:x:y


      $imageabs(10,10,50,50,C:\%album%.jpg)
        $imageabs(10,10,50,50,C:\%album%.jpg,left top)
        $imageabs(10,10,50,50,C:\%album%.jpg,,6)
        $imageabs(10,10,50,50,C:\%album%.*,wc,6)
        $imageabs(10,10,50,50,C:\%album%.jpg,bottom nodelay,,128)
        $imageabs(10,10,50,50,C:\%album%.jpg,bottom,,,glow:2:0-0-0 offset:4:4)
        $imageabs(10,10,50,50,%el_group_first_path%,artreader_front)


$imageabs_rc(rw,rh,srcx,srcy,srcw,srch,x,y,path,OPTIONS,n,alpha,OPTIONS2)
	TCYăNbv摜\B
	path Ŏw肳摜TCY(rw,rh)ɃTCYA
	̈̕(srcx,srcy,srcw,srch)W(x,y)ɃTCY(srcw,srch)ŕ\B

	(rw,rh)ŃLbVB
	TF]Ƃ(rw,rh)ωƁA摜ēǂݍ݂B
	̂߁Arw, rh͌ŒlŎw肷ׂB

	摜݂trueAȂfalseԂB

	OPTIONS (imageabsQ)
		nokeepaspect AXyNgێȂ
		nodisplay    ɓǂݍނŕ\Ȃ
		archive
		icon
    	(  left      
      	   hcener 
       	   right
       	   top
       	   vcenter
           bottom ) 
	n   rotateflip̂߂̃CfbNX
		1: 90
		2: 180
		3: 270
		4: E] 
		5: 90 + E] 
		6: ㉺] 
		7: 90 + ㉺] 

	alpha  0-255
        sx
    
	:
	 $imageabs_rc(200,100,0,0,100,50,10,10,C:\%album%.jpg,,6,192)
	 $imageabs_rc(200,100,0,0,200,100,10,10,C:\%album%.jpg,,)  ( = $imageabs(10,10,200,100,C:\%album%.jpg,left top,,) )
	 $imageabs_rc(150,120,0,0,150,120,20,15,C:\%album%.jpg,hcenter vcenter,)  ( = $imageabs(20,15,150,120,C:\%album%.jpg,,,) )


$albumart(x,y,w,h,target,OPTIONS,n,alpha,OPTIONS2)
	foobar2000 core api p 摜\֐
	W(x,y)ɃTCY(w,h) path Ŏw肳摜\B
	TCỶ摜ɕێāAɎQƂꂽꍇ̏B
	QƂȂ摜́Âォ폜B
	w,hȗƃIWi摜TCYŕ\ALbVB
	(Aw,hȗĂɂłɃLbVĂꍇ́Â܂܃LbVĂ摜TCYɂȂ)

	̏kꍇA
	kɊg傳Ɖ掿B
	nodisplaynoexpansionȂǂ𗘗pāA
	gpk̒ōł傫kōŏɃ̃LbV̂悢B

	摜݂trueAȂfalseԂB


	Dipsplays the image specified by foobar2000 core API.
	After the image is resized, it is cached on the memory. 



	target: 0  group first track's album art
		1  current track's album art

		   To use target=0 is strongly recommended.
		   Please use target=1 carefully.

	OPTIONS
		 <appearance>
		nokeepaspect AXyNgێȂ(nodisplay,archive,iconȊÕIvVƔr)B
		nodisplay    ɓǂݍނŕ\ȂB
		noexpansion  k͂邪Ag債ȂB

		 <align>	ꂼrB
		left right   ACwB
		top bottom   ACwB


		 <read engine>	ꂼrB
		front
		back
		disc
		icon
		artist 


	n   rotateflip̂߂̃CfbNX
		1: 90
		2: 180
		3: 270
		4: E] 
		5: 90 + E] 
		6: ㉺] 
		7: 90 + ㉺] 

	alpha  0-255
		sx

	OPTIONS2 (shadow effect)
		glow:expand:colour
		offset:x:y


      $albumart(10,10,50,50,0)
        $albumart(10,10,50,50,0,left top)
        $albumart(10,10,50,50,0,front,6)


`⏕

$getlastpos(elem)
	摜\֐imageabs, imageabs_rc̒ŁAۂɉ摜`悵W擾B
	܂Ameasurestrinǧʂ擾ƂɂgB
	drawstring̏ꍇ́Amemposw肵ꍇ̂ݒɍW擾łB

   	elem  擾vfw肷B
		x :  left
		y :  top
		w :  width
		h :  height
		r :  right
		b :  bottom

	:  
		$setworldtransform(2)
		$puts(img_path,C:\%album%.jpg)
		$imageabs(10,4,100,100,$get(img_path),top noexpansion,)
		$imageabs($getlastpos(x),$getlastpos(b),$getlastpos(w),20,$get(img_path),top nokeepaspect,6)
		$gradientrect($getlastpos(x),$getlastpos(y),$getlastpos(w),$getlastpos(h),%el_backcolour%-128,%el_backcolour%-255)
		$setworldtransform(0)


$measurestring(text,x,y,W,H,OPTIONS)
	$drawstringŕ`悵ꍇ̕\̈vZB
	܂AʂƂāA\̈̐ԂB
	\̈̌ʂ$getlastposŎ擾B
	OPTIONS$drawstringƓB
	AvZʂ́Aۂɕ`挋ʂ傫߂̌ʂԂB
	(]܂߂ʂԂBJ[jOɂĕ`挋ʂ̕ȂB)


$getimagewidth(path), $getimageheight(path)
	pathŎw肳摜$imageabs $imageabs_rc ɃLbV
	摜ł΁ÃTCYς݂̐AԂB
	܂$imageabs $imageabs_rčłgpłȂB
	nokeepaspectKpĂȂ΃AXyNgvZł邩ȂB


$setcoordinate(mode)
$setcoordinate(0,X,Y,W,H)
$setcoordinate(1,X,Y,R,B)
	`֐ň "(x,y,w,h)" w̂A(x,y,right,bottom)wɕςB
	$imageabs_rc$drawtriangleɑ΂Ă͖B
	܂X,Y,W,Hw肷ƁA`֐ōWwȗꍇ̃ftHg`ʒuύX邱ƂłB
	$imageabs, $imageabs_rc$drawtriangleɑ΂Ă͖B

	mode : W̎w胂[h
		0    default  (x,y,w,h)
		1    (x,y,right,bottom)

 (x,y)<------w------->
    |----------------|
    |                |
  h |                |
    |                |
    |________________| 
                    (right,bottom)


$setworldtransform(mode)
	WnύXB
	WnςĂʂ̍sɕ`ł킯ł͂ȂB
	GroupŜ╡̃gbN܂`sƂɕ֗Ȃ͂B
	ɉ摜\ꍇɗLB
	Popupł͎gp֎~B
	(gp͏TFQƁB)

	mode 
		0:default
			egbŇ_(x,y)=(0,0)́Aꂼ̃gbN̍B

		1: group ʍWn
			GroupƊegbŇ_(x,y)=(0,0)Groups̍ƂB
			%el_height% = (%el_item_count2% + %el_group_row%) * %el_row_height%ɂȂB

		2:item listʍWn
			egbŇ_(x,y)=(0,0)𓯃O[v̍ŏ̃gbNs̍ƂB
			%el_height% = %el_item_count2% * %el_row_height%ɂȂB

default
  (0,0)
     |----------------|
     |________________| 
                    (el_width,el_height)

group ʍWn
  (0,0)
     |----------------|
     |  group header  |
     |----------------|
     |----------------|
     |----------------|
     |----------------|
     |________________|
                    (el_width,el_height)

item listʍWn
     |----------------|
     |  group header  |
(0,0)|----------------|
     |----------------|
     |----------------|
     |----------------|
     |________________|
                    (el_width,el_height)


$enabledraw(mode)
	`n֐($draw**** $imageabs**)̕`sǂ𐧌䂷B
	̊֐ĂьĂ΂܂ł̕`on/offB
	emptysł̕`̐ɎgB

	mode
		0: `n֐
		1: L

	: $enabledraw(1)
	    $enabledraw(%el_is_valid%)


$getsyscolour(index)
	VXeJ[r-g-b`ŕԂB

	index:[0-30] VXeJ[̃CfbNX


$averagecolour(colour1,colour2[,])
	r-g-b-a`̐F̕ςB
	(colour1 + colour2 +)/N


$blendcolour(colour1,w1,colour2,w2,[,])
	r-g-b-a`ŏd݂ςԂB
	(w1*colur1 + w2*colour2 +  + wN * colourN)/ (w1 + w2 +  + wN)


$addcolour(colour1,colour2[,])
	r-g-b-a`̐FZB
	colour1 + colour2 +  + colourN


$subcolour(colour1,colour2[,])
	r-g-b-a`̐FZB
	colour1 - colour2 - colour3  - colourN


$xorcolour(colour1,colour2[,])
	r-g-b`̐FXORZsBalpha`lcolour1̒lԂB
	colour1  xor  colour2  xor  colour3   xor  colourN



ėpn֐
	{I[Track list] [Group header] [Per Second] [Group row] [Min item num] [Popup]ŗLB

$getgroupformat(group_index)
	group_indexŎw肳O[vgroup formatTFƂďʂԂB
	group_index : w肷groupԖڂ(0琔)B
	%el_group_format% = $getgroupformat(%el_total_group_index%)̊֌WB


$findfile(path,[path2,path3,...])
	path(ChJ[h)Ŏw肳t@C݂΁AŏɌt@C̃pXԂB
	t@C݂ȂfalseԂB
	path͕w\B


$el_scale(val,factor[,DIV])
	val * factor/100 ܂ val * factor / DIVԂB
	valfactor傫ƃI[o[t[܂B



GDIn`֐
	GDIgĕ`悷BVvȕAɏꍇB


$drawtext(text,x,y,W,H,r-g-b,OPTIONS)
	GDI`֐
	textW(x,y)ɏo

	OPTIONS
		left hcenter right       ACw
		top  vcenter bottom      ACw
		noclip                   NbvȂ


$drawtextex(text,x,y,W,H,r-g-b,OPTIONS)
	GDI`֐2
	textW(x,y)ɏo

	OPTIONS
		left hcenter right       ACw
		top  vcenter bottom      ACw
		noclip                   NbvȂ
		wrap                     bvAEhw(vcenterAbottomƂ͔r)
		end_ellipsis             eLXgNbvꍇAeLXg̍Ō...ɒu
	
	: $drawtextex(text,0,0,%_width%,%_height%,0-0-0,hcenter vcenter end_ellipsis)


$gettextwidth(text)
$gettextwidth(text, FONTNAME, SIZE, OPTIONS)
	GDI(drawtext,drawtextex)text`悵Ƃ̃eLXg̐ԂB
	font̎w(IvV$fontQ)B


$gettextheight()
$gettextheight(FONTNAME,SIZE,OPTIONS)
	GDIŕ`悵Ƃ̃eLXg̐ԂB
	font̎w(IvV$fontQ)B


$fillrect(x,y,w,h,r-g-b,RESERVED)
	`hԂ֐


$fillroundrect(x,y,w,h,w2,h2,r1-g1-b1,r2-g2-b2)
	p̊ۂ`hԂ֐



Popupn֐
[Popup(Background)], [Popup(Track)]ŗLB

$popupsize(w,h)
	|bvAbvTCYk֐B
	܂A
		w < max size(width)
		h < max size(height)
	𖞂KvB


$popuphide()
	|bvAbvȂB
	xłĂяoƂ̎_ŁA|bvAbvȂƂm肷B


$popuptracknum(num)
	gbN̍ő吔numɌ炷B
	Popup(Background) ̂ݗLB



[]k]: ֐̒ŐFɂƂƂł r-g-b-a`ȊOɂ $rgb(r,g,b)Ŏw肵ł(͂)B
        ܂drawtext̂݁AtextɁA$rgb֐$transition֐gpĐF̎w邱Ƃo(͂)B

==============================================================================


ƐӎȂ
̃\tgEFAgpƂɂĐׂĂ̑QEQENQEsɊւāA\tgEFA҂́A؂̐ӔC𕉂܂B
ƂoOƂĂAC̋`𕉂܂B
̎ɗ̂݁Ae̐ӔCɂĂgpB


{\tgEFAɂ́AL̎gpƂƂɔzzĂ\tgEFÄꕔ܂܂Ă܂B
foobar2000 0.9.5 SDK
  Copyright (c) 2001-2008, Peter Pawlowski
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
  Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation or other materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Columns UI SDK 6.3.1


CZXɂ
  Copyright (c) 2008, ssenna

  oCi`ōĔЕzꍇAЕzɕt̃hLg̎ɁAL̒쌠\A{ꗗAщLƐӏ܂߂邱ƁB
  ʂɂʂ̋ȂɁA{\tgEFAhi̐`܂͔̔iɁA쌠L҂܂͍v҂̖OgpĂ͂ȂȂB

  ̃\tgEFA͒쌠L҂эv҂ɂû܂܁v񋟂̂ƂAƓIȎgp\̖ړIɑ΂KȂǂ̕ۏ؂܂߁AIÖٓI킸AȂۏ؂܂B
  쌠L҂эv҂́AR̔@킸AQ̌̔@킸AӔC̍_ł邩iӔCł邩iߎ̑js@sׂł邩킸Aɂ̂悤ȑQ\m炳ĂƂĂA
  ̃\tgEFA̎gp甭ڑQAԐڑQAIȑQAʑQAIQA܂͌ʑQiւ̕iT[rX̒BAgp@f[^◘v̑AƖ̒f܂ށA鑹Qjɑ΂ĈؐӔC𕉂܂B 



==============================================================================



change log
v0.6.8.0b
%el_system_date%ǉ
$albumartǉ
̓̕ύX
$albumart target=1 肭삵Ȃꍇ̂C(v0.6.8.1b)
Playlist filterwildcard g悤ɂ(v0.6.8.1b)
$albumart target=1 Ŗߍ݉摜\łȂ̂C(v0.6.8.2b)

v0.6.7.0b
ߍ݉摜ȂǂA\łȂȂĂ̂ŏCB
$imageabśAartreaer_***̂ƂɁA摜ȂꍇAstub摜ǂݍނ悤ɂB


v0.6.6.5b
foobar2000 v1.0album art APIΉB


v0.6.6b
 NowPlaying PlaylistɒǏ]郂[hǉB
  ContextMenu->Playlists->Follow NowPlaying Playlist ŐݒB
 %el_foobar2000_path% %el_user_profile_path%ǉB
 vCXg؂ւꍇ̃XN[ʒú̕A
  O\Ƃ̈ʒuł͂ȂAPɃtH[JX̂gbNʒuɃXN[悤ɎdlύXB
 NbNANVAIȃReLXgj[IłȂ̂CB
 Follow NowPlaying Playlist̏ꍇɁAtH[JXɒǏ]ɍĐgbN݂̂ɒǏ]悤ɂB
  ܂ADisplay only the focused groupon̏ꍇĐgbN܂ރO[v\悤ɂB
  (v0.6.6.1b)
IȃReLXgj[ŁAGUIDReLXgj[ƁA肭FłȂ̂C(v0.6.6.2b)
font̐ݒ菈܂C(v0.6.6.2b)
ȌCŁAsłȂIȃReLXgj[łĂ܂̂C(v0.6.6.3b)
v0.6.6.2bA$fontł̐ݒ肪ȂȂꍇ̂C(v0.6.6.4b)
gbÑtH[JXړƂɁA\͈͂ɓ悤ɃXN[邩ǂI\ɂB
 Behaviour-> Disable to follow the focused item(v0.6.6.4b)

v0.6.5b
ActivePlaylistɒǏ]邩ۂAIł悤ɂB
 ContextMenu->Playlists->Follow Active Playlist on/off
ׂCB
vCXg폜ƂɁA\̂C(v0.6.5.1b)
NbV邱Ƃ̂C(v0.6.5.2b)
ŐVSDKɍXV(v0.6.5.2b)
IɃXN[ʒuo悤ɂāANɂ̃XN[ʒu𕜌悤ɂB(v0.6.5.3b)
$imageabsŉ摜ʃXbhœǂݍނ悤ɂB(v0.6.5.3b)
  nodelay optionŕʃXbhǂݍ݂̓LZł܂B
$imageabsartreader option%el_group_first_path%ǉB(v0.6.5.3b)
XN[ʒu̕肭ȂP[X̂CB(v0.6.5.3.1b)
delaŷƂwildcardɂȂĂ̂CB(v0.6.5.3.2b)
tH[JX֘A̕sCB(v0.6.5.3.3b)
傫vCXg̏xPB(v0.6.5.4b)
L[{[hV[gJbg̏CB(v0.6.5.5b)
L[{[hV[gJbg̏CB(v0.6.5.5b)
tbVR}hReLXgj[ɒǉB(v0.6.5.6b)
ׂoOC(v0.6.5.6b)

v0.6.4b
click actionSelect groupŃO[vIł悤ɂB
 (O[vwb_%el_is_selected%g悤ɂȂ)
sAIsȂǂ̔wiFwł悤ɂB
System colour mode-->enable Visual StyleɕύXAѕ`͈͎wǉA%el_is_themed%ǉB
ݒl̕ύXAenable Visual StyleLɂĂςɂȂȂ悤ɏTFXVB
Expand/Collapse all groupsŕ\ʒuĂ܂̏CB(v0.6.4.1b)
TF̕ύXȂǁAׂB(v0.6.4.1b)
O[vwb_emptys̃NbNŃtH[JXړȂIvVǉB(v0.6.4.2b)
j[̕Expand/Collapse all groupsŕ\ʒuĂ܂̏CB(v0.6.4.2b)

v0.6.3b
VistaSystem colour modêƂɃXg̔wiFAGNXv[̂悤Visual StyleKp悤ɂB
$drawthemerectŃGNXv[̂悤Visual Style`ł悤ɂ(Vistâ)B
}EXWFX`Ŋ蓖ĂR}hSettingsǉB


v0.6.2b
foo_mouse_gestureƑgݍ킹ă}EXWFX`@\g悤ɂB
oOCȂ(v0.6.2.1b)
style preset̑IɊւoOC(v0.6.2.2b)
clickactionŎsłȂReLXgj[̂C(v0.6.2.3b)
XN[o[̕\ȂǐݒύXĂɔfȂȂĂ̂C(v0.6.2.3b)
foo_mouse_gestureCɑΉ foo_mouse_gesture 0.2+ K{(v0.6.2.4b)
ColumnsUI artwork viewcurrent slection modeɑΉ(v0.6.2.4b)
v0.6.2.4foo_mouse_gestureȂƗvIȃoOC(v0.6.2.5b)
ݒ_CAO𐮗(v0.6.2.6b)
foo_mouse_gestureCɑΉ foo_mouse_gesture 0.3+ K{(v0.6.2.7b)
O[v̐Ȃꍇcollpase all groups when playlist is changed𖳌ɂł悤ɂ(v0.6.2.8b)
foo_mouse_gesture 0.4+Ή(v0.6.2.8b)

v0.6.1b
emptysɂclick action蓖Ă悤ɂB
5{^}EX̑4A5{^ɂclick action蓖Ă悤ɂB(5{^}EXȂ̂œ얢mF)
 v0.6.1.1b
 row heightgroup by presetŐݒł悤ɂB
 CN^consolełȂXe[^Xo[ɏԂo͂悤ɕύXB
 enable playlist filteron̏ꍇAReLXgj[group by presetIĂAÎ
  LɂȂȂꍇ̂CB
 v0.6.1.2b
 $imageabswildcardIvVɕύXB
 sƂ̕`̍XVŁAXV̍s珇ɕ`悳悤ɕύXĂ̂AŜXVĂ`悷悤ɖ߂B

v0.6.0b
ŐVSDKɕύXB(v0.9.5+K{H)
O[vwb_̃hbOT|[gB
plOƂDrag&DropT|[gB
ߍ݉摜̕\()ΉB(ᑬ)
sort format̒ǉ@\B
vCXgɃgbNȂƂɃhbOŒǉłȂ̂C(v0.6.0.1b)
clickactionmainmenuR}hLɂȂȂoOC(v0.6.0.2b)

v0.5.2b
CN^@\ǉB
$findfileŕpXw\ɂB
$imageabsŃChJ[hgp\ɂB
V[gJbgL[ǉB
 v0.5.2.1b
 $drawblurrect$fillrectɂȂĂ̂CB

v0.5.1b
O[vwb_łꉞ|bvAbvł悤ɂB
}EX~Ŏsł邱ƂIׂ悤ɂB
$fillroundrect, |bvAbvñtB[hA֐ǉB
 v0.5.1.1b
 ݒ_CAOB
 IԂύXĂ`悪XVȂꍇ̂CB
 TFύXB

v0.5.0b
|bvAbv@\ǉB

v0.4.5b
%el_is_hide_item%(--> %el_is_collapsed%ɕύX\)group rowłg悤ɂB
gradientrect̃IvVǉB
playlist filteř̎dlύXB
グB

v0.4.4b
drawstring̎dlAglown̎dlύXB
TF̏yB
`TFۑł悤ɂB
drawstringnoaaȂǂȂȂĂ̂C(v0.4.4.1b)
ݒ_CAO reset  ݒ肪oOC(v0.4.4.2b)
ׂoOC(v0.4.4.3b)

v0.4.3b
O[oϐ̒u@\ǉB܂TFOɒu邾łB
TF啝ɏB
$imageabs, $imageabs_rcglowIvVǉ
$drawblurrect֐ǉ

v0.4.2b
ׂoOC
dl̐
 KV[ %_width% Ȃ "el" Ŏn܂ȂtB[hgȂ܂B

v0.4.1b
ݒύX%el_preset_name%sɂȂꍇ̂CB
ݒύXɂplaylist filters悤ɂB
$drawstring̃IvVǉB(Ō𥥥ɒuȂ)
$measurestringǉB
 v0.4.1.1b
 gbL[ȃO[v\w肳ꂽƂ̃AP[XɂoOCB
 v0.4.1.2b
 pseudo transparent̂Ƃ̍ĕ`搧ύXB


v0.4.0b
<@\ǉ>
group format̐ݒȂǂ𕡐Ă悤ɂB
 ܂ݒReLXgj[؂ւ悤ɂB
ReLXgj[ǉB܂eڂ\ɂł悤ɂB
<oOC>
vCXg؂ւɃXN[ʒu\Ȃ畜悤ɂB
Toggle Selectionmiddle clickɌ肵B
<dlύX>
_~[gbNs̕`ftHgoffɂB܂ÖٓI $enabledraw(%el_is_valid%) Ԃł͂܂B
  _~[gbNsŕ`悵ꍇ $enabledraw(1) ȂǂŖIonɂKvB
_~[gbNsł́Aclick actionNȂ悤ɂB


v0.3.3a
$getlastpos֐ǉB
NbNANVőIׂ鍀ڂ𑝂₵BmainmenucontextmenuIׂ悤ɂB
 contextmenȕꍇ O[vɊ܂܂gbNΏۂɂȂ܂B
drawrectŘg`悷ꍇ̍W̎dlύXB
 v0.3.3.1a
 TuO[v̍ۂɃ_~[łO[vssKvȏꍇɂĂ܂̂CB
 _~[łO[vsŁA%el_is_empty%1Ԃ悤ɂB
 v0.3.3.2a
 ACeBĂꍇAIԂ̕\̍XVȂꍇ̂C
 auto collapsẽO[vJ̔ĕ\ʒuȂ悤ɏC



v0.3.2a
drawthemerect, drawfocusrect֐ ǉ
ǉ     %el_total_group_count%,%el_total_group_index%,
 dlύX %el_group_count%, %el_group_index%,
 폜     %el_subgroup_index%
 v0.3.2.1a
   v0.3.1aclear cacheȂȂĂ̂CB
   TuO[vꍇɂ ACeBɑΉ
   NbN̓AtH[JẌړ̎dIɑ啝ɕύX
 v0.3.2.2a
   ʂȍĕ`悪sĂ̂CB(͌yȂ)
   v0.3.2.1aŃV[gJbgL[肭삵ȂȂꍇ̂CB
 
 v0.3.2.3a
   vCXg؂ւƂɕ\ʒu̎dlƂ肠v0.3.2aȑOƓɂB
 v0.3.2.4a
   v0.3.2.1aPƂ̃L[͂ŃXg擪ɖ߂Ă܂̂CB
 v0.3.2.5a
   v0.3.2.1aPageDown/PageUp/Home/EndȂȂĂ̂CB
   Ctrl-aőSIǉ
   TuO[vO[ṽwb_click actionselect itemsƂ
    TuO[ṽACeIłȂ̂CB
   nɍœK


v0.3.1a
%el_subgroup_count2%A%el_subgroup_index% ǉ
ݒʂ^u
reset/import/export@\ǉ
Tu[v݂ꍇ%el_item_count%A%el_item_count2%TuO[ṽgbNԂ悤ɂB

v0.3.0a
qۂgroups}@\ǉB(%el_group_depth%, %el_subgroup_count%ǉ)
glow̎dlύXB

v0.2.9a
Drag & DropɂACëړ̋@\ǉB
 v0.2.9.1a
   + single click actionǉ + imageabsnɏɓ摜\@\ǉ(ʂɏɂ̓WJ͔ɒᑬł)B
 v0.2.9.2a
   + gettextwidth, gettextheightfontwǉ
   + imageabsnoexpansion@\ĂȂoOCB
   + imageabsicont@C̓ǂݍ݃IvVǉB
 v0.2.9.3a
   + drawtextdrawtextexłgȂfont̂CB
   + XN[o[ƂɉŐXN[Ă܂ύXB
   + drawstringɎIglowIvVǉB
   + glow̃p[^(v0.2.9.3.1av0.2.9.3.2a)
 v0.2.9.4a
   + drawstringɃIvVǉB
   + glowق̏(v0.2.9.4.1a)
 v0.2.9.5a
   + drawstringɃtHgiŕ`悷IvVǉ


v0.2.8a
_~[s̐TitleFormatgpƂB
%el_backcolour%ǉB
 v0.2.8.1a
   + _~[s̃oOC
 v0.2.8.2a
   + sort̎dlύX
   + %el_group_format%, $getgroupformatǉB


v0.2.7a
tH[JXO[v\郂[hǉB
 O[vԂ̈ړ͑̃vCXgłĂB
 (ႦGraphical BrowserƂ)
 v0.2.7.1a
 + pseudo transparentł̍̐ȂB(XP)
 + "hide header when there is only one group"폜
 + "hide all items when..."auto-collapseIvVǉB
 v0.2.7.2a
 + group rowŊgtB[h̎gp\ɂB
   "hide header when there is only one group" option ̑ group row: $ifequal(%el_group_count%,1,0,3)
   ƂőΉĂB
 v0.2.7.3a
 + hideꂽACȇIԂ̓ύXB
 + XN[o[̕\/\AXN[ ݒǉ
 v0.2.7.4a
 + XN[o[ɕ\Ɣ\̂ƂɁAvCXg؂ւł̂ł邾}悤ɂB
 + Cj[R}hǉB
 v0.2.7.5a
 + display only the focused group ŗꍇ̂C


v0.2.6a
V[gJbgL[̒ǉƍ폜B
 Ctrl-c(Copy), Ctrl-v(Paste), Ctrl-x(Cut)ǉB
 fBAL[n̑폜
ReLXgj[Playlist̑IǉB
drawetextexŁA&ȂoOCB
drawtriangle֐ǉ
 v0.2.6.1a 
 + imageabsɉ摜𓧖xw肷ǉ
 + gbÑ^f[^ύXꂽƂɁAXĝ߂B
 v0.2.6.2a
 + imageabs_rcɉ摜𓧖xw肷ǉ
 + %el_group_index%, %el_group_count%ǉB
 + vCXg̃gbNȂƂ [wi߃[ĥƂ̋PB
  **  pseudo trasnparaent mode currently requires that the height of ELPlaylist is integer multiples of row height **
 v0.2.6.3a
 + Per Track܂Ȃꍇ̂CB

v0.2.5a
group rowtitleformatKp\ɂB0ݒ\B
Alt + ㉺L[ŁAIACëړł悤ɂB
pseudo transparent̃XN[ƂwiꏏɃXN[Ă܂C(肾ǂł傤H)
%[el]_is_hide% --> %[el]_is_hide_item%ɕύXB(΂炭%_is_hide%g܂B)
  v0.2.5.1a
  + metadb_handle leakĂȂƂCB
  + hide items which have no group headerۑȂoOC


v0.2.4a
NbNANVƂǉB
witemɖȂꍇA_~[s@\ǉB
O[vȂꍇɃO[vwb_\ȂIvVǉB
ۂ̍s̍Arow heightw̒l+1 ɂȂĂ̂CB
Per Secondׂ̕Ȃ茸炵B
+ ftHgitem listhideԂɂłIvVǉB
  imageabsgĂꍇAӂKvB
+ GDIeLXgn֐ǉB
+ Groupclick actionɐ擪gbN̍ĐǉB
+ TFtB[hǉ+Groupwb_TFł%el_isplaying%g悤ɂB

v0.2.3a
wi߂Groupɂ܂Ŋg
`Of[V֐ǉ
Per SecondǉB
 TFXVB
 + plTCYύXƂGroupwb_̔wi߂邱Ƃ̂CB
 + ĐgbNςƂɕ`悪Ȃ̂CB
 + ̃vCXgƓȂꍇ̂ɑΉB
 + ׂăACeIԂAɑIȂꍇA
   XV܂łɂ₽玞Ԃ̂CB

v0.2.2a
Wݒ֐setworldtransform֐ǉB
 (摜\₷ȂƎv)
sortLɂ邩ǂIł悤ɂB
ׂoOC

v0.2.1a
Apply{^̃oOC

v0.2a
eLXg`֐̃ACݒȂǒǉB
wiFwǉB
gbNŝ݋[IȔwi߂\ɂBWindowsXP̂݁B
 Windows2000ƋNȂ̂B
X̃oOCB

v0.1a
J(+ title format̂ǋL)



===========================================
Appendix
O[v\̐
̂悤ȎqO[vO[v(group1)track\͂Ƃ܂B
group1
  |-group2
  |   |-track1
  |   |-track2
  |
  |-group3
  |   |-track3
  |   |-track4
  |   |-track5
  |
  |-----track6
  |-----track7

̏ꍇA̍\͉̂悤ɕϊ܂B
group1
  |-group2
  |   |-track1
  |   |-track2
  |
  |-group3
  |   |-track3
  |   |-track4
  |   |-track5
  |
  |-group4(dummy)
  |   |-track6
  |   |-track7


