Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_uie_graphical_browser (Read 243984 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_uie_graphical_browser

Reply #150
Some new functions??

foo_uie_graphical_browser

Reply #151
Some new functions??

I can be nice to help you. But my kindness can't really be extended to the point of helping you reading the readme that I have translated in my previous post, can I?

foo_uie_graphical_browser

Reply #152
@Varluche

Delete top 4 line (except the image code I give you) which look like this.

Code: [Select]
$if(%gb_focused%,
  $set_pen(808080,1)
  $set_brush(128-192-255)
  $round_rect(0,0,%gb_width%,%gb_height%,5,5)
,)


If you hate to see the text, delete the next paragraph of code. the last paragraph of code draw the "box" around your cover when you hover your mouse over them. Delete them if you also hate that.

EDIT: THX thuan for translation, I'm start to getting confuse now with more thing added & using google to translated the readme..

foo_uie_graphical_browser

Reply #153
I started to do it long ago, but until now I only PM Keikonium to post it on the first post.


foo_uie_graphical_browser

Reply #155
can anyone advise on how you would get artist art to display as well as cd covers... now that foo_discogs works the way I want for artist art locating the image will be very easy...

any suggestions?

foo_uie_graphical_browser

Reply #156
can anyone advise on how you would get artist art to display as well as cd covers... now that foo_discogs works the way I want for artist art locating the image will be very easy...

any suggestions?


No problem but it all depends where you stored your artist images. Mine are in each artist's folders and are named folder.jpg or folder.gif (which makes XP show them as the folder icons/thumbnail).

Thus:

$draw_image(3,3,%gb_width%,%gb_width%,D:\Documents\My Music\%artist%\Folder.*,255,nokeepaspect)

foo_uie_graphical_browser

Reply #157
My updated config:
).
Download [a href="http://www.mediafire.com/?jfbjv110kld" target="_blank"]this file
[/b] and import it.

Requirements:
* Graphical browser rev014.
* Play icon and glare images. Put them info foobar components folder, if not tweak my config to accommodate your new paths.
* Item size requirement: horizontal size is about twice of vertical size. If you see cut off album names then tweak the setting I point to in item code.
* Popup size requirement: vertical size is 54 pixels bigger than horizontal size and minimum horizontal size is 150.
* If you're using WinXP, you need to have East Asian languages support. Those rating star characters need it.


Remember to set scroll size to your item vertical size if you change my settings so that your item isn't cut off when you scroll.

foo_uie_graphical_browser

Reply #158
I was thinking about some of the things you could do with this component for a while and I was wondering if it was possible to bind different instances to each other?

My idea was a sort of graphical facets. In one panel you have a picture of the artists. Clicking on the picture would focus that artists albums in another instance of a graphical browser and give a list of tracks in another.
This is a sort of mock up of what I was thinking of.


Currently If you have more than one artist in the left graphical browser panel the middle panel shows all the albums from all the artists. It would be nice if it would only display the albums of the artist that was selected.

foo_uie_graphical_browser

Reply #159
I'm hoping to build a graphical facets type interface, too.

I don't think it will be possible until you can feed an instance of graphical browser from a named playlist (rather than from the active playlist as at present). Then its pretty easy to do by using a couple of intermediate playlists.

I raised this as a feature request which is being considered/developed.

foo_uie_graphical_browser

Reply #160
That's cool.

The main reason I was thinking of it was because I'd love to use it as an interface for a touch screen.

foo_uie_graphical_browser

Reply #161
is there a way to use this with the library instead of the playlist?


foo_uie_graphical_browser

Reply #163
Hi,

i hope developper read will read these lines ...

1 - sometimes, text lose its anti-aliasing and looks ugly indeed, it looks to be a bug, could you fix it please ?

2 - to do list request : is it possible to add a default backgroud picture for the whole panel in order to fill the blank space left when there are only a few albums and that they don't fill the whole panel (only see the background color for now) ?

-->

thanx by advance

foo_uie_graphical_browser

Reply #164
Development of this component has stopped.


foo_uie_graphical_browser

Reply #166
BTW, where is the place you say that text loses its anti-aliasing? Is it in the popup?


foo_uie_graphical_browser

Reply #168
@Falstaff: There're three functions that can draw string/text. You may want to try a different function than what you're using now.

foo_uie_graphical_browser

Reply #169
with the latest foobar beta the cd case image and gloss effect I use over the album art no longer display.. I have not  changed anything and its as well?


never mind it works now.. weird

foo_uie_graphical_browser

Reply #170
Some times, this component just fails to display images if you use relative path for them, restart foobar should fix it. I think this is your problem.

foo_uie_graphical_browser

Reply #171

Development of this component has stopped.


what a shame !

I guess this is one of the components that will break in future foobar2000, because it uses titleformatting instead of a proper language for graphical display.

What a shame that devs does take this into account, when it's widely proclaimed that this is REALLY deprecated! (especially when nice concept components like this shows up)
Can't wait for a HD-AAC encoder :P

foo_uie_graphical_browser

Reply #172
Likely, it won't break is what he told me after some exchanges in emails (he said that this component does not use metadb_display_hook). The reason that the development of this component was stopped is to honor the decision of foobar developers. He might come up with a component similar to this one in the future which doesn't use title formatting. No need to make a fuss. And I think that other developers that are currently developing components like this one should consider the same action.

foo_uie_graphical_browser

Reply #173
New version rev015 anyway, so new readme translation.
Code: [Select]
Graphical Browser

● What this component does:
Album cover browser for the active playlist.


● Caution
Settings are per panel so if you delete a panel, the settings for that panel
also disappear.


● Sort
Blank → Whatever works.
* → Sorted by grouped strings.

If you want to arrange in the same order as the playlist → $num(%gb_playlist_number%,10)


● Popup
Transparent mode
You can apply different level of transparence to every pixel. (e.g.: transparent background
with full opacity image and text.)
I think that GDI can't be used, please use GDI+ only.
Even with GDI+, text rendering without using $gp_set_text_rendering_hint(aa) doesn't look
good enough.

Per track
Draw order:
Popup → Per track(0) → Per track(1) → ...
Rendering settings (e.g.: pen, brush, font, ...) can't be set again midway.


● Image cache methods
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.


● Variables
%gb_group%
[Item], [Popup], [Per track(Popup)]
Return the group string. E.g.: If you used $if2(%album%,@skip) to group,
it will return %album%.

%gb_width%
[Item]
Item width
[Popup], [Per track(Popup)]
Popup width

%gb_height%
[Item]
Item height
[Popup], [Per track(Popup)]
Popup height

%gb_focused%
[Item], [Popup], [Per track(Popup)]
Check whether focus is on the item or not

%gb_mouse_over%
[Item]
Check whether mouse cursor is on the item or not
[Popup], [Per track(Popup)]
Probably always true

%gb_item_index%
[Item], [Popup], [Per track(Popup)]
Return item index

%gb_item_count%
[Item], [Popup], [Per track(Popup)]
Return item count

%gb_track_count%
[Sort], [Item], [Popup], [Per track(Popup)]
Return number of songs in an item

%gb_playlist_number%
[Sort], [Item], [Popup]
Return position of song in playlist for the first song in an item
[Per track(Popup)]
Return position of song in playlist

%gb_col%
[Item], [Popup], [Per track(Popup)]
Return item column number

%gb_row%
[Item], [Popup], [Per track(Popup)]
Return item row number

%gb_col_count%
[Item], [Popup], [Per track(Popup)]
Return number of columns

%gb_row_count%
[Item], [Popup], [Per track(Popup)]
Return number of rows

%gb_isplaying%
[Item], [Popup]
Return true if a song in the item is playing
[Per track (Popup)]
Return true if it is playing

%gb_track_index%
[Per track (Popup)]
Position of track in item (O based)

%gb_length%
[Sort], [Item], [Popup], [Per track(Popup)]
Total length of item/track

%gb_length_seconds%
[Sort], [Item], [Popup], [Per track(Popup)]
Total length in seconds of item/track

%gb_calc_x%
%gb_calc_y%
%gb_calc_width%
%gb_calc_height%
[Item], [Popup], [Per track(Popup)]
Dimension calculations
Values change with functions below
$calc_text
$gp_calc_string
$gp_calc_string_path
$draw_image


● About functions:
Functions are divided into GDI and GDI+. They are different in pens, brushes and points.
For GDI, to set color with "r-g-b", use a base 10 number for each color component;
otherwise use base 16 number with "rrggbb". For GDI+, to set color with "a-r-g-b",
use a base 10 number for each color component and alpha channel; otherwise use
base 16 number with "aarrggbb". 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't be used in GDI+ mode. Full-width hyphen can't be
displayed right in GDI+ mode.


● GDI function
$set_font(name,size,style)
Set font
name - font name
size - font size
style - style
Set multiple styles by combining options
"b" - bold
"i" - italic
"u" - underline
"s" - strikethrough

$set_font_color(color)
Set font color
color - color

$draw_text(str,x,y)
Draw text
str - string
x - start point x coordinate
y - start point y coordinate

$draw_text(str,x,y,width,height,[option1],[option2],...)
Draw text within the set limit
str - string
x - start point x coordinate
y - start point y coordinate
width - drawing width
height - drawing height
option - other option
"bottom" - draw at bottom, needs singleline
"center" - center aligned
"end_ellipsis" - if out of limit, append "...."
"left" - left aligned
"noclip" - no clip, same as no settings for width and height
"path_ellipsis" – like end_ellipsis but used for file path
"right" – right aligned
"singleline" - display with 1 line
"top" - draw at top
"vcenter" - vertical center aligned, needs singleline
"wordbreak" - display with multiple lines
"word_ellipsis" - truncates any word that does not fit in the
rectangle and adds ellipsis.
Details at [url=http://msdn2.microsoft.com/en-us/library/ms533909.aspx]http://msdn2.microsoft.com/en-us/library/ms533909.aspx[/url]

$draw_text_blur(str,x,y,strength,[deep])
$draw_text_blur(str,x,y,width,height,strength,[deep],[option1],[option2],...)
○ Overview
Draw blurred text.
○ Arguments
str - string
x - start point x coordinate
y - start point y coordinate
strength - Blur strength (1..20)
deep - enable [1]
option - see $draw_text

$calc_text(str)
$calc_text(str,width,height,[option1],[option2],...)
Calculate size of str when drawn.
Arguments are the same as $draw_text except x and y.
Use %gb_calc_*% to obtain values after this function.

$set_pen(color)
$set_pen(color,width)
$set_pen(color,width,style)
Pen settings
color - color
width - width[1], only effective when using "solid" style
style - style["solid"]
"solid" - solid line
"dash" - dashed line
"dot" - dotted line
"dashdot" - line with alternating dashes and dots
"dashdotdot" - line  with alternating dashes and double dots
Details at [url=http://msdn2.microsoft.com/en-us/library/ms535467(VS.85).aspx]http://msdn2.microsoft.com/en-us/library/m...467(VS.85).aspx[/url]

$set_brush(color)
$set_brush(color,style)
Brush settings
color - color
style - style: if it is not set, then brush is solid
"bdiagonal" - A 45-degree upward, left-to-right line pattern
"cross" - Horizontal and vertical cross pattern
"diagcross" - 45-degree cross pattern
"fdiagonal" - A 45-degree downward, left-to-right line pattern
"horizontal" - Horizontal line pattern
"vertical" - Vertical line pattern

$draw_rect(x,y,width,height)
Draw rectangle using pen
x - start point x coordinate
y - start point y coordinate
width - width
height - height

$fill_rect(x,y,width,height)
Fill rectangle using brush
x - start point x coordinate
y - start point y coordinate
width - width
height - height

$fill_draw_rect(x,y,width,height)
Draw rectangle using pen and brush
x - start point x coordinate
y - start point y coordinate
width - width
height - height

$round_rect(x,y,width,height,ellipse_width,ellipse_height)
Draw round corner rectangle with pen and brush
x - start point x coordinate
y - start point y coordinate
width - width
height - height
ellipse_width - ellipse width
ellipse_height - ellipse height

$draw_line(x1,y1,x2,y2)
Draw line using pen, end point is not drawn.
x1 - start point x coordinate
y1 - start point y coordinate
x2 - end point x coordinate
y2 - end point y coordinate


● GDI+ function
Because pen, brush, font do not have default values, please set them up with
$gp_set_* before using.

$gp_set_pen(argb,width)
$gp_set_pen(argb,width,style,line_join)
○ Overview:
Pen settings
○ Arguments:
argb - color
width - width
style - style ["solid"]
"solid" - solid line
"dash" - dashed line
"dot" - dotted line
"dashdot" - line with alternating dashes and dots
"dashdotdot" - line  with alternating dashes and double dots
line_join - stroke corner style ["miter"]
"miter"
"bevel"
"round"

$gp_set_brush(argb)
○ Overview:
Monocolor brush setting
○ Arguments:
argb - color

$gp_set_brush(style,argb1,argb2)
○ Overview:
Hatch brush settings
○ Argument:
style - Style
Use number in range 0 ~ 53.
Details at http://msdn2.microsoft.com/en-us/library/ms534127.aspx
argb1 - Foreground color.
argb2 - Background color.

$gp_set_brush(argb1,x1,y1,argb2,x2,y2)
○ Overview:
Set brush with linear gradual effect
○ Arguments:
argb1 - color 1
x1 - color 1 x coordinate
y1 - color 1 y coordinate
argb2 - color 2
x2 - color 2 x coordinate
y2 - color 2 y coordinate

$gp_set_font(name,size)
$gp_set_font(name,size,style_1,style_2...)
○ Overview:
Font settings
○ Arguments:
name - font name
size - font size
style - style
"b" - bold
"i" - italic
"bi" - bold and italic
"u" - underline
"s" - strikethrough

$gp_set_string_format(alignment,line_alignment,[trimming])
○ Overview:
Text drawing method settings
○ Arguments:
alignment - horizontal alignment
"near" - left
"center" - center
"far" - right
line_alignment - vertical alignment
"near" - top
"center" - center
"far" - bottom
trimming - Trimming.
"character"
"word"
"ellipsis_character"
"ellipsis_word"
"ellipsis_path"

$gp_set_smoothing_mode(antialias)
○ Overview:
Shape anti-alias setting
○ Arguments:
antialias - anti-alias
0 - disable
1 - enable

$gp_set_text_rendering_hint(mode)
○ Overview:
Text rendering method setting
○ Arguments:
mode - method
"default" - default
"sb+" - single bit per pixel grid fit
"sb" - single bit per pixel
"aa+" - anti alias grid fit
"aa" - anti alias
"ct" - clear type

$gp_draw_arc(x,y,width,height,start_angle,sweep_angle)
○ Overview:
Draw arc using pen
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
start_angle - start angle (degree)
sweep_angle - end angle (degree)
○ Settings:
$gp_set_pen
$gp_set_smoothing_mode

$gp_draw_ellipse(x,y,width,height)
○ Overview:
Draw ellipse using pen
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_pen
$gp_set_smoothing_mode

$gp_draw_line(x1,y1,x2,y2)
○ Overview:
Draw line using pen
○ Arguments:
x1 - start point x coordinate
y1 - start point y coordinate
x2 - end point x coordinate
y2 - end point y coordinate
○ Settings:
$gp_set_pen
$gp_set_smoothing_mode

$gp_draw_pie(x,y,width,height,start_angle,sweep_angle)
○ Overview:
Draw pie (fan shape) using pen
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
start_angle - start angle (degree)
sweep_angle - end angle (degree)
○ Settings:
$gp_set_pen
$gp_set_smoothing_mode

$gp_draw_rectangle(x,y,width,height)
○ Overview:
Draw rectangle using pen
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_pen
$gp_set_smoothing_mode

$gp_draw_string(str,x,y)
$gp_draw_string(str,x,y,width,height)
○ Overview:
Draw string using brush
○ Arguments:
str - string
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_font
$gp_set_brush
$gp_set_text_rendering_hint
$gp_set_string_format

$gp_calc_string(str)
$gp_calc_string(str,width,height)
○ Overview
Calculate size of str when drawn

$gp_fill_ellipse(x,y,width,height)
○ Overview:
Fill ellipse using brush
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_brush
$gp_set_smoothing_mode

$gp_fill_pie(x,y,width,height,start_angle,sweep_angle)
○ Overview:
Fill pie using brush
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
start_angle - start angle (degree)
sweep_angle - end angle (degree)
○ Settings:
$gp_set_brush
$gp_set_smoothing_mode

$gp_fill_rectangle(x,y,width,height)
○ Overview:
Fill rectangle using brush
○ Arguments:
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_brush
$gp_set_smoothing_mode

$gp_draw_string_path(str,size,mode,x,y)
$gp_draw_string_path(str,size,mode,x,y,width,height)
○ Overview:
Draw string with border.
○ Arguments:
str - string
size - character size, px unit (different from current font size)
mode - draw mode
"" - fill and border
"stroke" - only border
"fill" - only fill
x - top left x coordinate
y - top left y coordinate
width - width
height - height
○ Settings:
$gp_set_pen
$gp_set_brush
$gp_set_font
$gp_set_string_format
$gp_set_smoothing_mode
○ Examples:
$gp_set_font(Tahoma,9,b)
$gp_set_pen(ff1500ff,2,,round)
$gp_set_brush(ffddeeff)
$gp_set_string_format(center,center)
$gp_set_smoothing_mode(1)
$gp_draw_string_path(%gb_group%,16,,0,0,%gb_width%,%gb_height%)

$gp_calc_string_path(str,size,mode)
$gp_calc_string_path(str,size,mode,width,height)
○ Overview
Calculate size of str with border when drawn


● Draw image function
$draw_image(x,y,width,height,path)
$draw_image(x,y,width,height,path,alpha)
$draw_image(x,y,width,height,path,alpha,option)
$draw_image(x,y,width,height,path,alpha,option,rotate_flip)
○ Overview:
Draw image
○ Arguments:
x - starting point x coordinate
y - starting point y coordinate
width - width
height - height
path - absolute path to image, wild cards are accepted.
alpha - degree of opacity[255]
option - other options[""]
"nokeepaspect" - don't keep picture aspect ratio
"top" - draw at the top
"topright" - draw on the top right
"right" - draw from the right
"bottomright" - draw on the bottom right
"bottom" - draw at the bottom
"bottomleft" - draw on the bottom left
"left" - draw from the left
"topleft" - draw on the top left
rotate_flip - Rotation and flip [0]
0 - No rotation = Rotate right 180 degrees,
flip vertically then horizontally
1 - Rotate right 90 degrees = Rotate right 270 degrees,
flip vertically then horizontally
2 - Rotate right 180 degrees = Flip vertically then
horizontally
3 - Rotate right 270 degrees = Rotate right 90 degrees,
flip vertically then horizontally
4 - Flip horizontally = Rotate right 180 degrees,
flip vertically
5 - Rotate right 90 degrees, flip horizontally = Rotate
right 270 degrees, flip vertically
6 - Rotate right 180 degrees, flip horizontally = Flip
vertically
7 - Rotate right 270 degrees, flip horizontally = Rotate
right 90 degrees, flip vertically
○ Reference
After executing this function, you can use
%gb_calc_*% to obtain the real dimensions used.


● Other functions
$set_size(width,height)
○ Overview
Modify popup size, please use it only when drawing the popup.
Popup size is the upper limits, you can only set to smaller sizes.
%gb_width%,%gb_height% values are changed accordingly.
When width or height is 0 or less, popup won't be drawn.
○ Arguments:
width - width
height - height

$set_org(x,y)
○ Overview
Starting point setting
○ Arguments:
x - starting point x coordinate
y - starting point y coordinate

$set_clip_rect()
$set_clip_rect(x,y,width,height)
○ Overview
Only draw GDI, GDI+, and pictures inside the designated area.
Cancel this function effect by calling it with no argument.

$sum(tf)
○ Overview
Calculate sum of values designated by TitleFormat.
○ Arguments:
tf - TitleFormat
○ Example: Total number played
$sum('%play_count%')


$eval(expression)
Evaluate the expression and calculate
expression - expression
E.g.: $eval(5+3)
E.g.: $eval({%gp_width%-10}/2)
※ Divide by zero expression returns 0.
Can be used with sort

● Change logs:
2008/04/20 rev015
Added - $draw_text_blur function
Added - $set_clip_rect function
Added - "(show track menu)" action

2008/03/16 rev014
Added - $set_size function
Added - %gb_calc_x% variable
Added - %gb_calc_y% variable
Added - %gb_calc_width% variable
Added - %gb_calc_height% variable
Added - $calc_text function
Added - $gp_calc_string function
Added - $gp_calc_string_path function
Fixed - $draw_image function
Fixed - $gp_set_string_format function(trimming argument) (however, they can always be used before,
just forgot to write here…
Fixed - Several bugs fixed

2008/03/12 rev013
Fixed - Fixed the slip happens sometimes when using keyboard to jump from item to item
Fixed - When drawing in GDI mode, fixed a drawing background bug

2008/03/11 rev012
Fixed - Fatal resource leak
Added - Image cache options

2008/03/10 rev011
Added - Ability to move focus to an item when pressing the first character of %gb_group%
using keyboard
Added - Ability to add to specified playlist instead of replacing it
Fixed - Fixed a bug that prevents you to scroll in Windows 2000 (probably...)
(TL's note: not sure about the last one, the meaning is a little vague and I don't have
Windows 2000 to test)

2008/03/09 rev010
Fixed - For some reason, I changed the variable name %gb_subitem_count% to %gb_track_count%
(the one before can still be used)
Added - Function $gp_set_brush(style,argb1,argb2)
Added - Function $set_org(x,y)
Added - Popup display  transparent mode
Added - Popup delay setting
Added - Function $sum(tf)
Added - Variable %gb_isplaying%
Added - Variable %gb_track_index%
Added - Variable %gb_length%
Added - Variable %gb_length_seconds%

2008/03/02 rev009
Fixed - Fixed the bug that causes rotateflip does nothing
Fixed - Fixed behavior when there's no scroll bar
Added - Added mouse over popup.

2008/03/02 rev008
Fixed - Fixed bug that prevent the use of wild cards in $draw_image function

2008/03/02 rev007
Added - Ability to [always show|if necessary show|hide] scroll bar
Fixed - $set_font function (style)
Fixed - $draw_image function (rotate_flip)
Added - Middle mouse button action
Added - Ability to send to specified playlist
Older change logs omitted.


● Copyright
TitleFormatting Editor
Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org> All Rights Reserved
[url=http://scintilla.sourceforge.net/]http://scintilla.sourceforge.net/[/url]

foo_uie_graphical_browser

Reply #174
Can any offer some advice? I want to do random "no cover art" images, but this doesn't seem to work:

$puts(nocover,images\noalbumart$rand(10).png)