<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.84.21.189</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.84.21.189"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/78.84.21.189"/>
	<updated>2026-04-29T02:53:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Graphical_Browser_(foo_uie_graphical_browser)&amp;diff=25720</id>
		<title>Foobar2000:Components 0.9/Graphical Browser (foo uie graphical browser)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Graphical_Browser_(foo_uie_graphical_browser)&amp;diff=25720"/>
		<updated>2014-03-12T10:33:09Z</updated>

		<summary type="html">&lt;p&gt;78.84.21.189: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fb2k}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
foobar2000 v0.9.5.1+, Columns UI 0.3+&lt;br /&gt;
= Requirements =&lt;br /&gt;
* [http://www.foobar2000.org/ foobar2000 v0.9.5.1+]&lt;br /&gt;
* [http://yuo.be/columns.php Columns UI 0.3+]&lt;br /&gt;
&lt;br /&gt;
= Graphical Browser reference =&lt;br /&gt;
&lt;br /&gt;
Last version of this component is rev015. &#039;&#039;&#039;Further development for the component has ceased since, but as of foobar2000 1.1. it is still fully working.&#039;&#039;&#039; This reference is based on the Readme translated by &#039;&#039;&#039;thuan&#039;&#039;&#039; (rev014).&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Album cover browser for the active playlist.&lt;br /&gt;
&lt;br /&gt;
== Remarks ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caution&#039;&#039;&#039;: Settings are per panel so if you delete a panel, the settings for that panel also disappear.&lt;br /&gt;
&lt;br /&gt;
=== Sort ===&lt;br /&gt;
Blank Whatever works. Sorted by grouped strings.&lt;br /&gt;
&lt;br /&gt;
If you want to arrange in the same order as the playlist: &#039;&#039;$num(%gb_playlist_number%,10)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Popup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Transparent mode&#039;&#039;: You can apply different level of transparence to every pixel. (e.g.: transparent background with full opacity image and text.) GDI can&#039;t be used, please use GDI+ only. Even with GDI+, text rendering without using $gp_set_text_rendering_hint(aa) doesn&#039;t look good enough. Per track&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Draw order&#039;&#039;: Popup ? Per track(0) ? Per track(1) ? ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rendering settings (e.g.: pen, brush, font, ...) can&#039;t be set again midway.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image cache methods ===&lt;br /&gt;
&lt;br /&gt;
Old rev011 and older way. Cache images of all items. Image cache is purged when switching playlist. Default Cache images to the set size. Image cache is not purged when switching playlist. If the image cache reach the limit, it will be purged.&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
=== %gb_group% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return the group string. E.g.: If you used &#039;&#039;$if2(%album%,@skip)&#039;&#039; to group, it will return &#039;&#039;%album%&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %gb_width% ===&lt;br /&gt;
[Item]&lt;br /&gt;
&lt;br /&gt;
Item width&lt;br /&gt;
&lt;br /&gt;
[Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Popup width&lt;br /&gt;
&lt;br /&gt;
=== %gb_height% ===&lt;br /&gt;
[Item]&lt;br /&gt;
&lt;br /&gt;
Item height&lt;br /&gt;
&lt;br /&gt;
[Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Popup height&lt;br /&gt;
&lt;br /&gt;
=== %gb_focused% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Check whether focus is on the item or not&lt;br /&gt;
&lt;br /&gt;
=== %gb_mouse_over% ===&lt;br /&gt;
[Item]&lt;br /&gt;
&lt;br /&gt;
Check whether mouse cursor is on the item or not&lt;br /&gt;
&lt;br /&gt;
[Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Probably always true&lt;br /&gt;
&lt;br /&gt;
=== %gb_item_index% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return item index&lt;br /&gt;
&lt;br /&gt;
=== %gb_item_count% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return item count&lt;br /&gt;
&lt;br /&gt;
=== %gb_track_count% ===&lt;br /&gt;
[Sort], [Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return number of songs in an item&lt;br /&gt;
&lt;br /&gt;
=== %gb_playlist_number% ===&lt;br /&gt;
[Sort], [Item], [Popup]&lt;br /&gt;
&lt;br /&gt;
Return position of song in playlist for the first song in an item&lt;br /&gt;
&lt;br /&gt;
[Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return position of song in playlist&lt;br /&gt;
&lt;br /&gt;
=== %gb_col% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return item column number&lt;br /&gt;
&lt;br /&gt;
=== %gb_row% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return item row number&lt;br /&gt;
&lt;br /&gt;
=== %gb_col_count% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return number of columns&lt;br /&gt;
&lt;br /&gt;
=== %gb_row_count% ===&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Return number of rows&lt;br /&gt;
&lt;br /&gt;
=== %gb_isplaying% ===&lt;br /&gt;
[Item], [Popup]&lt;br /&gt;
&lt;br /&gt;
Return true if a song in the item is playing&lt;br /&gt;
&lt;br /&gt;
[Per track (Popup)]&lt;br /&gt;
&lt;br /&gt;
Return true if it is playing&lt;br /&gt;
&lt;br /&gt;
=== %gb_track_index% ===&lt;br /&gt;
[Per track (Popup)]&lt;br /&gt;
&lt;br /&gt;
Position of track in item (O based)&lt;br /&gt;
&lt;br /&gt;
=== %gb_length% ===&lt;br /&gt;
[Sort], [Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Total length of item/track&lt;br /&gt;
&lt;br /&gt;
=== %gb_length_seconds% ===&lt;br /&gt;
[Sort], [Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Total length in seconds of item/track&lt;br /&gt;
&lt;br /&gt;
=== Dimension calculations ===&lt;br /&gt;
* %gb_calc_x%&lt;br /&gt;
* %gb_calc_y%&lt;br /&gt;
* %gb_calc_width%&lt;br /&gt;
* %gb_calc_height%&lt;br /&gt;
[Item], [Popup], [Per track(Popup)]&lt;br /&gt;
&lt;br /&gt;
Values change with functions below&lt;br /&gt;
* $calc_text&lt;br /&gt;
* $gp_calc_string&lt;br /&gt;
* $gp_calc_string_path&lt;br /&gt;
* $draw_image&lt;br /&gt;
&lt;br /&gt;
== About functions ==&lt;br /&gt;
Functions are divided into GDI and GDI+. They are different in pens, brushes and points. For GDI, to set color with &amp;quot;r-g-b&amp;quot;, use a base 10 number for each color component; otherwise use base 16 number with &amp;quot;rrggbb&amp;quot;. For GDI+, to set color with &amp;quot;a-r-g-b&amp;quot;, se a base 10 number for each color component and alpha channel; otherwise use base 16 number with &amp;quot;aarrggbb&amp;quot;. If you want to draw some thing with transparency or effects like anti-aliasing, use GDI+. Some fonts (probably OpenType fonts with PostScript outline) can&#039;t be used in GDI+ mode. Full-width hyphen can&#039;t be displayed right in GDI+ mode.&lt;br /&gt;
&lt;br /&gt;
== GDI function ==&lt;br /&gt;
&lt;br /&gt;
=== $set_font(name,size,style) ===&lt;br /&gt;
Set font&lt;br /&gt;
* name - font name&lt;br /&gt;
* size - font size&lt;br /&gt;
* style - style&lt;br /&gt;
&lt;br /&gt;
Set multiple styles by combining options&lt;br /&gt;
* &amp;quot;b&amp;quot; - bold&lt;br /&gt;
* &amp;quot;i&amp;quot; - italic&lt;br /&gt;
* &amp;quot;u&amp;quot; - underline&lt;br /&gt;
* &amp;quot;s&amp;quot; - strikethrough&lt;br /&gt;
&lt;br /&gt;
=== $set_font_color(color) ===&lt;br /&gt;
Set font color&lt;br /&gt;
&lt;br /&gt;
color - color&lt;br /&gt;
&lt;br /&gt;
=== $draw_text(str,x,y) ===&lt;br /&gt;
Draw text&lt;br /&gt;
* str - string&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
&lt;br /&gt;
=== $draw_text(str,x,y,width,height,[option1],[option2],...) ===&lt;br /&gt;
Draw text within the set limit&lt;br /&gt;
* str - string&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
* width - drawing width&lt;br /&gt;
* height - drawing height&lt;br /&gt;
* option - other option&lt;br /&gt;
** &amp;quot;bottom&amp;quot; - draw at bottom, needs singleline&lt;br /&gt;
** &amp;quot;center&amp;quot; - center aligned&lt;br /&gt;
** &amp;quot;end_ellipsis&amp;quot; - if out of limit, append &amp;quot;....&amp;quot;&lt;br /&gt;
** &amp;quot;left&amp;quot; - left aligned&lt;br /&gt;
** &amp;quot;noclip&amp;quot; - no clip, same as no settings for width and height&lt;br /&gt;
** &amp;quot;path_ellipsis&amp;quot; – like end_ellipsis but used for file path&lt;br /&gt;
** &amp;quot;right&amp;quot; – right aligned&lt;br /&gt;
** &amp;quot;singleline&amp;quot; - display with 1 line&lt;br /&gt;
** &amp;quot;top&amp;quot; - draw at top&lt;br /&gt;
** &amp;quot;vcenter&amp;quot; - vertical center aligned, needs singleline&lt;br /&gt;
** &amp;quot;wordbreak&amp;quot; - display with multiple lines&lt;br /&gt;
** &amp;quot;word_ellipsis&amp;quot; - truncates any word that does not fit in the rectangle and adds ellipsis.&lt;br /&gt;
&lt;br /&gt;
Details at http://msdn2.microsoft.com/en-us/library/ms533909.aspx&lt;br /&gt;
&lt;br /&gt;
=== $calc_text(str) ===&lt;br /&gt;
$calc_text(str,width,height,[option1],[option2],...)&lt;br /&gt;
&lt;br /&gt;
Calculate size of str when drawn.&lt;br /&gt;
&lt;br /&gt;
Arguments are the same as &#039;&#039;[[$draw_text]]&#039;&#039; except x and y.&lt;br /&gt;
&lt;br /&gt;
Use &#039;&#039;%gb_calc_*%&#039;&#039; to obtain values after this function.&lt;br /&gt;
&lt;br /&gt;
=== $set_pen(color) ===&lt;br /&gt;
$set_pen(color,width)&lt;br /&gt;
$set_pen(color,width,style)&lt;br /&gt;
&lt;br /&gt;
Pen settings&lt;br /&gt;
* color - color&lt;br /&gt;
* width - width[1], only effective when using &amp;quot;solid&amp;quot; style&lt;br /&gt;
* style - style[&amp;quot;solid&amp;quot;]&lt;br /&gt;
** &amp;quot;solid&amp;quot; - solid line&lt;br /&gt;
** &amp;quot;dash&amp;quot; - dashed line&lt;br /&gt;
** &amp;quot;dot&amp;quot; - dotted line&lt;br /&gt;
** &amp;quot;dashdot&amp;quot; - line with alternating dashes and dots&lt;br /&gt;
** &amp;quot;dashdotdot&amp;quot; - line with alternating dashes and double dots&lt;br /&gt;
&lt;br /&gt;
Details at http://msdn2.microsoft.com/en-us/library/m...467(VS.85).aspx&lt;br /&gt;
&lt;br /&gt;
=== $set_brush(color) ===&lt;br /&gt;
$set_brush(color,style)&lt;br /&gt;
&lt;br /&gt;
Brush settings&lt;br /&gt;
* color - color&lt;br /&gt;
* style - style: if it is not set, then brush is solid&lt;br /&gt;
** &amp;quot;bdiagonal&amp;quot; - A 45-degree upward, left-to-right line pattern&lt;br /&gt;
** &amp;quot;cross&amp;quot; - Horizontal and vertical cross pattern&lt;br /&gt;
** &amp;quot;diagcross&amp;quot; - 45-degree cross pattern&lt;br /&gt;
** &amp;quot;fdiagonal&amp;quot; - A 45-degree downward, left-to-right line pattern&lt;br /&gt;
** &amp;quot;horizontal&amp;quot; - Horizontal line pattern&lt;br /&gt;
** &amp;quot;vertical&amp;quot; - Vertical line pattern&lt;br /&gt;
&lt;br /&gt;
=== $draw_rect(x,y,width,height) ===&lt;br /&gt;
Draw rectangle using pen&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
=== $fill_rect(x,y,width,height) ===&lt;br /&gt;
Fill rectangle using brush&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
=== $fill_draw_rect(x,y,width,height) ===&lt;br /&gt;
Draw rectangle using pen and brush&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
=== $round_rect(x,y,width,height,ellipse_width,ellipse_height) ===&lt;br /&gt;
Draw round corner rectangle with pen and brush&lt;br /&gt;
* x - start point x coordinate&lt;br /&gt;
* y - start point y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
* ellipse_width - ellipse width&lt;br /&gt;
* ellipse_height - ellipse height&lt;br /&gt;
&lt;br /&gt;
=== $draw_line(x1,y1,x2,y2) ===&lt;br /&gt;
Draw line using pen, end point is not drawn.&lt;br /&gt;
* x1 - start point x coordinate&lt;br /&gt;
* y1 - start point y coordinate&lt;br /&gt;
* x2 - end point x coordinate&lt;br /&gt;
* y2 - end point y coordinate&lt;br /&gt;
&lt;br /&gt;
== GDI+ function ==&lt;br /&gt;
Because pen, brush, font do not have default values, please set them up with &#039;&#039;$gp_set_*&#039;&#039; before using.&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_pen(argb,width) ===&lt;br /&gt;
$gp_set_pen(argb,width,style,line_join)&lt;br /&gt;
&lt;br /&gt;
Pen settings&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* argb - color&lt;br /&gt;
* width - width&lt;br /&gt;
* style - style [&amp;quot;solid&amp;quot;]&lt;br /&gt;
** &amp;quot;solid&amp;quot; - solid line&lt;br /&gt;
** &amp;quot;dash&amp;quot; - dashed line&lt;br /&gt;
** &amp;quot;dot&amp;quot; - dotted line&lt;br /&gt;
** &amp;quot;dashdot&amp;quot; - line with alternating dashes and dots&lt;br /&gt;
** &amp;quot;dashdotdot&amp;quot; - line with alternating dashes and double dots&lt;br /&gt;
** line_join - stroke corner style [&amp;quot;miter&amp;quot;]&lt;br /&gt;
** &amp;quot;miter&amp;quot;&lt;br /&gt;
** &amp;quot;bevel&amp;quot;&lt;br /&gt;
** &amp;quot;round&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_brush(argb) ===&lt;br /&gt;
Monocolor brush setting&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
argb - color&lt;br /&gt;
&lt;br /&gt;
==== $gp_set_brush(style,argb1,argb2) ====&lt;br /&gt;
&lt;br /&gt;
Hatch brush settings&lt;br /&gt;
Argument:&lt;br /&gt;
* style - Style&lt;br /&gt;
* Use number in range 0 ~ 53.&lt;br /&gt;
&lt;br /&gt;
Details at http://msdn2.microsoft.com/en-us/library/ms534127.aspx&lt;br /&gt;
&lt;br /&gt;
* argb1 - Foreground color.&lt;br /&gt;
* argb2 - Background color.&lt;br /&gt;
&lt;br /&gt;
==== $gp_set_brush(argb1,x1,y1,argb2,x2,y2) ====&lt;br /&gt;
&lt;br /&gt;
Set brush with linear gradual effect&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* argb1 - color 1&lt;br /&gt;
* x1 - color 1 x coordinate&lt;br /&gt;
* y1 - color 1 y coordinate&lt;br /&gt;
* argb2 - color 2&lt;br /&gt;
* x2 - color 2 x coordinate&lt;br /&gt;
* y2 - color 2 y coordinate&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_font(name,size) ===&lt;br /&gt;
$gp_set_font(name,size,style_1,style_2...)&lt;br /&gt;
&lt;br /&gt;
Font settings&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* name - font name&lt;br /&gt;
* size - font size&lt;br /&gt;
* style - style&lt;br /&gt;
* &amp;quot;b&amp;quot; - bold&lt;br /&gt;
* &amp;quot;i&amp;quot; - italic&lt;br /&gt;
* &amp;quot;bi&amp;quot; - bold and italic&lt;br /&gt;
* &amp;quot;u&amp;quot; - underline&lt;br /&gt;
* &amp;quot;s&amp;quot; - strikethrough&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_string_format(alignment,line_alignment,[trimming]) ===&lt;br /&gt;
Text drawing method settings&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* alignment - horizontal alignment&lt;br /&gt;
** &amp;quot;near&amp;quot; - left&lt;br /&gt;
** &amp;quot;center&amp;quot; - center&lt;br /&gt;
** &amp;quot;far&amp;quot; - right&lt;br /&gt;
* line_alignment - vertical alignment&lt;br /&gt;
** &amp;quot;near&amp;quot; - top&lt;br /&gt;
** &amp;quot;center&amp;quot; - center&lt;br /&gt;
** &amp;quot;far&amp;quot; - bottom&lt;br /&gt;
* trimming - Trimming.&lt;br /&gt;
** &amp;quot;character&amp;quot;&lt;br /&gt;
** &amp;quot;word&amp;quot;&lt;br /&gt;
** &amp;quot;ellipsis_character&amp;quot;&lt;br /&gt;
** &amp;quot;ellipsis_word&amp;quot;&lt;br /&gt;
** &amp;quot;ellipsis_path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_smoothing_mode(antialias) ===&lt;br /&gt;
Shape anti-alias setting&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* antialias - anti-alias&lt;br /&gt;
** 0 - disable&lt;br /&gt;
** 1 - enable&lt;br /&gt;
&lt;br /&gt;
=== $gp_set_text_rendering_hint(mode) ===&lt;br /&gt;
Text rendering method setting&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* mode - method&lt;br /&gt;
** &amp;quot;default&amp;quot; - default&lt;br /&gt;
** &amp;quot;sb+&amp;quot; - single bit per pixel grid fit&lt;br /&gt;
** &amp;quot;sb&amp;quot; - single bit per pixel&lt;br /&gt;
** &amp;quot;aa+&amp;quot; - anti alias grid fit&lt;br /&gt;
** &amp;quot;aa&amp;quot; - anti alias&lt;br /&gt;
** &amp;quot;ct&amp;quot; - clear type&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_arc(x,y,width,height,start_angle,sweep_angle) ===&lt;br /&gt;
Draw arc using pen&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
* start_angle - start angle (degree)&lt;br /&gt;
* sweep_angle - end angle (degree)&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_ellipse(x,y,width,height) ===&lt;br /&gt;
Draw ellipse using pen&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
*x - top left x coordinate&lt;br /&gt;
*y - top left y coordinate&lt;br /&gt;
*width - width&lt;br /&gt;
*height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_line(x1,y1,x2,y2) ===&lt;br /&gt;
Draw line using pen&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x1 - start point x coordinate&lt;br /&gt;
* y1 - start point y coordinate&lt;br /&gt;
* x2 - end point x coordinate&lt;br /&gt;
* y2 - end point y coordinate&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_pie(x,y,width,height,start_angle,sweep_angle) ===&lt;br /&gt;
Draw pie (fan shape) using pen&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
* start_angle - start angle (degree)&lt;br /&gt;
* sweep_angle - end angle (degree)&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_rectangle(x,y,width,height) ===&lt;br /&gt;
Draw rectangle using pen&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_string(str,x,y) ===&lt;br /&gt;
$gp_draw_string(str,x,y,width,height)&lt;br /&gt;
Draw string using brush&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* str - string&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* $gp_set_font&lt;br /&gt;
* $gp_set_brush&lt;br /&gt;
* $gp_set_text_rendering_hint&lt;br /&gt;
* $gp_set_string_format&lt;br /&gt;
&lt;br /&gt;
=== $gp_calc_string(str) ===&lt;br /&gt;
$gp_calc_string(str,width,height)&lt;br /&gt;
&lt;br /&gt;
Calculate size of str when drawn&lt;br /&gt;
&lt;br /&gt;
=== $gp_fill_ellipse(x,y,width,height) ===&lt;br /&gt;
Fill ellipse using brush&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_fill_pie(x,y,width,height,start_angle,sweep_angle) ===&lt;br /&gt;
Fill pie using brush&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
* start_angle - start angle (degree)&lt;br /&gt;
* sweep_angle - end angle (degree)&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_fill_rectangle(x,y,width,height) ===&lt;br /&gt;
Fill rectangle using brush&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
=== $gp_draw_string_path(str,size,mode,x,y) ===&lt;br /&gt;
$gp_draw_string_path(str,size,mode,x,y,width,height)&lt;br /&gt;
&lt;br /&gt;
Draw string with border.&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* str - string&lt;br /&gt;
* size - character size, px unit (different from current font size)&lt;br /&gt;
* mode - draw mode&lt;br /&gt;
* &amp;quot;&amp;quot; - fill and border&lt;br /&gt;
* &amp;quot;stroke&amp;quot; - only border&lt;br /&gt;
* &amp;quot;fill&amp;quot; - only fill&lt;br /&gt;
* x - top left x coordinate&lt;br /&gt;
* y - top left y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
Settings:&lt;br /&gt;
* [[#$gp_set_pen(argb,width) |$gp_set_pen]]&lt;br /&gt;
* $gp_set_brush&lt;br /&gt;
* $gp_set_font&lt;br /&gt;
* $gp_set_string_format&lt;br /&gt;
* [[#$gp_set_smoothing_mode(antialias) |$gp_set_smoothing_mode]]&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* $gp_set_font(Tahoma,9,b)&lt;br /&gt;
* $gp_set_pen(ff1500ff,2,,round)&lt;br /&gt;
* $gp_set_brush(ffddeeff)&lt;br /&gt;
* $gp_set_string_format(center,center)&lt;br /&gt;
* $gp_set_smoothing_mode(1)&lt;br /&gt;
* $gp_draw_string_path(%gb_group%,16,,0,0,%gb_width%,%gb_height%)&lt;br /&gt;
&lt;br /&gt;
=== $gp_calc_string_path(str,size,mode) ===&lt;br /&gt;
$gp_calc_string_path(str,size,mode,width,height)&lt;br /&gt;
&lt;br /&gt;
Calculate size of str with border when drawn&lt;br /&gt;
&lt;br /&gt;
=== $draw_image(x,y,width,height,path) ===&lt;br /&gt;
$draw_image(x,y,width,height,path,alpha)&lt;br /&gt;
&lt;br /&gt;
$draw_image(x,y,width,height,path,alpha,option)&lt;br /&gt;
&lt;br /&gt;
$draw_image(x,y,width,height,path,alpha,option,rotate_flip)&lt;br /&gt;
&lt;br /&gt;
Draw image function&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - starting point x coordinate&lt;br /&gt;
* y - starting point y coordinate&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
* path - absolute path to image, wild cards are accepted.&lt;br /&gt;
* alpha - degree of opacity[255]&lt;br /&gt;
* option - other options[&amp;quot;&amp;quot;]&lt;br /&gt;
* &amp;quot;nokeepaspect&amp;quot; - don&#039;t keep picture aspect ratio&lt;br /&gt;
* &amp;quot;top&amp;quot; - draw at the top&lt;br /&gt;
* &amp;quot;topright&amp;quot; - draw on the top right&lt;br /&gt;
* &amp;quot;right&amp;quot; - draw from the right&lt;br /&gt;
* &amp;quot;bottomright&amp;quot; - draw on the bottom right&lt;br /&gt;
* &amp;quot;bottom&amp;quot; - draw at the bottom&lt;br /&gt;
* &amp;quot;bottomleft&amp;quot; - draw on the bottom left&lt;br /&gt;
* &amp;quot;left&amp;quot; - draw from the left&lt;br /&gt;
* &amp;quot;topleft&amp;quot; - draw on the top left&lt;br /&gt;
* rotate_flip - Rotation and flip [0]&lt;br /&gt;
** 0 - No rotation = Rotate right 180 degrees, flip vertically then horizontally&lt;br /&gt;
** 1 - Rotate right 90 degrees = Rotate right 270 degrees, flip vertically then horizontally&lt;br /&gt;
** 2 - Rotate right 180 degrees = Flip vertically then horizontally&lt;br /&gt;
** 3 - Rotate right 270 degrees = Rotate right 90 degrees, flip vertically then horizontally&lt;br /&gt;
** 4 - Flip horizontally = Rotate right 180 degrees, flip vertically&lt;br /&gt;
** 5 - Rotate right 90 degrees, flip horizontally = Rotate right 270 degrees, flip vertically&lt;br /&gt;
** 6 - Rotate right 180 degrees, flip horizontally = Flip vertically&lt;br /&gt;
** 7 - Rotate right 270 degrees, flip horizontally = Rotate right 90 degrees, flip vertically&lt;br /&gt;
&lt;br /&gt;
After executing this function, you can use &#039;&#039;%gb_calc_*%&#039;&#039; to obtain the real dimensions used.&lt;br /&gt;
&lt;br /&gt;
== Other functions ==&lt;br /&gt;
&lt;br /&gt;
=== $set_size(width,height) ===&lt;br /&gt;
Modify popup size, please use it only when drawing the popup. Popup size is the upper limits, you can only set to smaller sizes. &#039;&#039;%gb_width%&#039;&#039;, &#039;&#039;%gb_height%&#039;&#039; values are changed accordingly.&lt;br /&gt;
&lt;br /&gt;
When width or height is 0 or less, popup won&#039;t be drawn.&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* width - width&lt;br /&gt;
* height - height&lt;br /&gt;
&lt;br /&gt;
=== $set_org(x,y) ===&lt;br /&gt;
Starting point setting&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* x - starting point x coordinate&lt;br /&gt;
* y - starting point y coordinate&lt;br /&gt;
&lt;br /&gt;
=== $sum(tf) ===&lt;br /&gt;
Calculate sum of values designated by TitleFormat.&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* tf - TitleFormat&lt;br /&gt;
&lt;br /&gt;
Example: Total number played&lt;br /&gt;
* $sum(&#039;%play_count%&#039;)&lt;br /&gt;
&lt;br /&gt;
=== $eval(expression) ===&lt;br /&gt;
Evaluate the expression and calculate&lt;br /&gt;
&lt;br /&gt;
expression - expression&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* $eval(5+3)&lt;br /&gt;
* $eval({%gp_width%-10}/2)&lt;br /&gt;
&lt;br /&gt;
Divide by zero expression returns 0.&lt;br /&gt;
&lt;br /&gt;
Can be used with sort&lt;br /&gt;
&lt;br /&gt;
== Change logs ==&lt;br /&gt;
2008/03/16 rev014&lt;br /&gt;
 Added - $set_size function&lt;br /&gt;
 Added - %gb_calc_x% variable&lt;br /&gt;
 Added - %gb_calc_y% variable&lt;br /&gt;
 Added - %gb_calc_width% variable&lt;br /&gt;
 Added - %gb_calc_height% variable&lt;br /&gt;
 Added - $calc_text function&lt;br /&gt;
 Added - $gp_calc_string function&lt;br /&gt;
 Added - $gp_calc_string_path function&lt;br /&gt;
 Fixed - $draw_image function&lt;br /&gt;
 Fixed - $gp_set_string_format function(trimming argument) (however, they can always be used before, just forgot to write here…&lt;br /&gt;
 Fixed - Several bugs fixed&lt;br /&gt;
2008/03/12 rev013&lt;br /&gt;
 Fixed - Fixed the slip happens sometimes when using keyboard to jump from item to item&lt;br /&gt;
 Fixed - When drawing in GDI mode, fixed a drawing background bug&lt;br /&gt;
2008/03/11 rev012&lt;br /&gt;
 Fixed - Fatal resource leak&lt;br /&gt;
 Added - Image cache options&lt;br /&gt;
2008/03/10 rev011&lt;br /&gt;
 Added - Ability to move focus to an item when pressing the first character of %gb_group% using keyboard&lt;br /&gt;
 Added - Ability to add to specified playlist instead of replacing it&lt;br /&gt;
 Fixed - Fixed a bug that prevents you to scroll in Windows 2000 (probably...)&lt;br /&gt;
 (TL&#039;s note: not sure about the last one, the meaning is a little vague and I don&#039;t have  Windows 2000 to test)&lt;br /&gt;
2008/03/09 rev010&lt;br /&gt;
 Fixed - For some reason, I changed the variable name %gb_subitem_count% to &#039;&#039;%gb_track_count%&#039;&#039; (the one before can still be used)&lt;br /&gt;
 Added - Function $gp_set_brush(style,argb1,argb2)&lt;br /&gt;
 Added - Function $set_org(x,y)&lt;br /&gt;
 Added - Popup display transparent mode&lt;br /&gt;
 Added - Popup delay setting&lt;br /&gt;
 Added - Function $sum(tf)&lt;br /&gt;
 Added - Variable %gb_isplaying%&lt;br /&gt;
 Added - Variable %gb_track_index%&lt;br /&gt;
 Added - Variable %gb_length%&lt;br /&gt;
 Added - Variable %gb_length_seconds%&lt;br /&gt;
2008/03/02 rev009&lt;br /&gt;
 Fixed - Fixed the bug that causes rotateflip does nothing&lt;br /&gt;
 Fixed - Fixed behavior when there&#039;s no scroll bar&lt;br /&gt;
 Added - Added mouse over popup.&lt;br /&gt;
2008/03/02 rev008&lt;br /&gt;
 Fixed - Fixed bug that prevent the use of wild cards in $draw_image function&lt;br /&gt;
2008/03/02 rev007&lt;br /&gt;
 Added - Ability to [always show|if necessary show|hide] scroll bar&lt;br /&gt;
 Fixed - $set_font function (style)&lt;br /&gt;
 Fixed - $draw_image function (rotate_flip)&lt;br /&gt;
 Added - Middle mouse button action&lt;br /&gt;
 Added - Ability to send to specified playlist&lt;br /&gt;
 Older change logs omitted.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=61412 Discussion thread]&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/90007630/foo_uie_graphical_browser.dll Download link]&lt;/div&gt;</summary>
		<author><name>78.84.21.189</name></author>
	</entry>
</feed>