Skip to main content

Topic: Skinnable UI - foo_ui_gfx (alpha) (Read 76740 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • kdx
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
okay, i've finally found the time to put a 0.9er-version together (which is probably more alpha than ever ..  )
ui_columns_ext-functionality is missing right now
if you have bugs or feature requests .. just write them into this thread

to really further develop this plugin, there should be at least one person, who wants to script his own ui and can tell me, what he wants and how he wants to do it ..
i've also experimented with a more interactive way to customize the ui, if there's interest in that ..
another alternative would be to make it possible to load winamps modern skins, but i dont even know, if this can be done or how difficult this would be

  • eddie
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #1
okay, i've finally found the time to put a 0.9er-version together (which is probably more alpha than ever ..  )
ui_columns_ext-functionality is missing right now
if you have bugs or feature requests .. just write them into this thread

to really further develop this plugin, there should be at least one person, who wants to script his own ui and can tell me, what he wants and how he wants to do it ..
i've also experimented with a more interactive way to customize the ui, if there's interest in that ..
another alternative would be to make it possible to load winamps modern skins, but i dont even know, if this can be done or how difficult this would be



Just tried it.  Seems to be missing misc.lua?

---------------------------
gfx_window: lua-execute error
---------------------------
cannot read misc.lua: No such file or directory
---------------------------
OK 
---------------------------
www.kickingdragon.com - tech ramblings of a game programmer

Skinnable UI - foo_ui_gfx (alpha)
Reply #2
I get the same misc.lua error, I also get it with the debug version.

  • kdx
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #3
Just tried it.  Seems to be missing misc.lua?

yes, you're right .. somehow i always manage to forget something
should be in now

  • eddie
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #4

Just tried it.  Seems to be missing misc.lua?

yes, you're right .. somehow i always manage to forget something
should be in now


Works like a charm.

it's too bad there doesn't seem to be a way to switch between Columns UI and your neat-o GFX plugin without a restart.  Or am I missing something?

I love ColumnsUI for editing playlists/etc, but your UI thing is much neater for minimalism.

Either way, thanks!
www.kickingdragon.com - tech ramblings of a game programmer

  • andrew_smolko
  • [*][*][*]
  • Developer
Skinnable UI - foo_ui_gfx (alpha)
Reply #5
it's too bad there doesn't seem to be a way to switch between Columns UI and your neat-o GFX plugin without a restart.  Or am I missing something?

foobar doesn't allow to switch UI without restart.

2 kdx
Great!  And the idea to use lua is great! It's really customizable UI. I can't even imagine what effects can be implemeted! Once more - great!

For those who hasn't understood the power of this UI and LUA: you can create your own controls!!!
Look into winamp.lua:
Code: [Select]
button_class = new_base_class(true);
function button_class:create(func, base, down, string, global, no_blend_out)
...

Button is defined in script (if I'm not making a mistake)!
Well, seems to me that it's time to dive into http://www.lua.org
  • Last Edit: 31 August, 2006, 12:24:20 PM by andrew_smolko

  • eddie
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #6
A bug and a question to report.

I notice that when I load up a shoutcast stream, I get an assert firing.  I don't have source code here, so I can't debug the root cause:

---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: C:\Data\USBDrive\Apps\Foobar\foobar2000.exe
File: c:\eigene dateien\visual studio-projekte\#common\misc.inl
Line: 13

Expression: max >= min

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
---------------------------
Abort  Retry  Ignore 
---------------------------


Also, I'm not sure if this is something I'm doing wrong or not, but in the playlist window the add|rem|sel|misc buttons don't seem to do anything.  Is this normal?  I'd like to add things to my playlist somehow.

Cheers!
www.kickingdragon.com - tech ramblings of a game programmer

  • andrew_smolko
  • [*][*][*]
  • Developer
Skinnable UI - foo_ui_gfx (alpha)
Reply #7
What about non-rectangular windows? Is this possible in current implemetation?

  • kdx
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #8
it's too bad there doesn't seem to be a way to switch between Columns UI and your neat-o GFX plugin without a restart.  Or am I missing something?
no, as it is "registered" as a normal ui, this is apararently not possible
the only thing i could do is make ui_gfx (optionally) a "detached" user-interface (like foo_looks was)

I notice that when I load up a shoutcast stream, I get an assert firing.  I don't have source code here, so I can't debug the root cause:
yeah, i'd love to have assertions with a stack trace (anybody knows, if/how this can be easily done?)
anyway, should be fixed (didnt expect a track to have a length of -1 ..  )

Also, I'm not sure if this is something I'm doing wrong or not, but in the playlist window the add|rem|sel|misc buttons don't seem to do anything. Is this normal? I'd like to add things to my playlist somehow.
yes, these buttons have no function yet .. but you can drag&drop things into the playlist

What about non-rectangular windows? Is this possible in current implemetation?
no - but afaik this shouldnt be too difficult .. the only thing i dont really know is, how one should define the shape of a window .?

  • eddie
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #9

I notice that when I load up a shoutcast stream, I get an assert firing.  I don't have source code here, so I can't debug the root cause:
yeah, i'd love to have assertions with a stack trace (anybody knows, if/how this can be easily done?)
anyway, should be fixed (didnt expect a track to have a length of -1 ..  )


http://msdn.microsoft.com/msdnmag/issues/05/11/Bugslayer/

Something like that could help you out.  SuperAssert will embed a callstack.

Thanks for the fix.  This UI is delicious.  I'd love to have functionality for the add/remove, and perhaps a list of skins to choose from --  but other than that -- superb!
www.kickingdragon.com - tech ramblings of a game programmer

Skinnable UI - foo_ui_gfx (alpha)
Reply #10
Thanks a lot.  Here are some things I've noticed.

* No longer shows |> marker on current song in playlist near the time, I miss that.

* It'd be nice if there was a way to crop a song from the playlist.  It doesn't seem to be available in foobar's context menu editor dialog, and the function is no longer available in foobar's main context menu (as it was in 0.8)

* "Small font" default font doesn't actually seem to be Arial size 6, as the dialog suggests.  If you open the dialog and click OK, Reload, the font changes  I'm not sure what font it is, but it looks better IMO than Arial size 6 and I can't find it, so I just reset the config and left it the default.

* Setting "Small font" size doesn't seem to affect the font size displayed for windowshade playlist or scrolling title (it did in the 0.8 version).  Only the font name takes effect.  Size and name take effect for bitrate and khz.

* <nevermind>

* If you have the foo_ui_gfx main window and playlist open, and the main window has focus, and you alt+f4 it, foobar closes, which is expected, but when you start foobar again, only the playlist window is visible and the only way to get the main window back seems to be by clicking "Reset Config".

* Setting "Visualization" doesn't seem to have an effect?

* Clicking "Reload" or "Reset Config" makes the seekbar disappear until another track is loaded.

I'll reiterate and expand on these from my previous post:

* The ability to drag and drop links from web browsers onto foobar would be nice.

* In order to update the current song playing title in the playlist in windowshade mode when on a shoutcast stream, you have toggle out and in of windowshade mode in the main window.

And also these, which I consider lower priority:

* Make windowshaded playlist window same width as resized normal view playlist window.

* Ability to format info string in windowshaded playlist window.

---

Sorry for all that .  I really like this plugin and I'll upgrade to 0.9 on my main box in the not too distant future.  I don't know Lua so I'd have to pick it up before scripting my own UI.  I'm happy with the classic winamp look, though it'd be nice if it actually had all of winamp's UI elements (like the mini-vis and functional playlist buttons--most importantly, crop).  I've been using the default skin that comes with it, but I just tried downloading my own and it loads flawlessly.

Thanks again for all your work on this alternative UI.
  • Last Edit: 01 September, 2006, 03:55:33 AM by deadfones

Skinnable UI - foo_ui_gfx (alpha)
Reply #11
There seems to be a handle leak.  Watching with Process Explorer, clicking "Reload" will cause User Objects to increase by 1 and GDI Objects by 19, but the real damage comes when doing anything else: Hovering over the play buttons doesn't release GDI Objects and neither does scrolling the playlist, causing GDI Objects to skyrocket.

The 0.8 version seems to be affected by the "Reload" bug but not the UI element bug.

  • pepoluan
  • [*][*][*][*][*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #12
@kdx: Screencaps would be nice
Nobody is Perfect.
I am Nobody.

http://pandu.poluan.info

  • kdx
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #13
[quote name='eddie' post='426236' date='Aug 31 2006, 18:08']
http://msdn.microsoft.com/msdnmag/issues/05/11/Bugslayer/
Something like that could help you out.  SuperAssert will embed a callstack.
[/quote]well, thanks for the hint, but unfortunately SuperAssert is only for the .NET-framework
[quote name='eddie' post='426236' date='Aug 31 2006, 18:08']
I'd love to have functionality for the add/remove, and perhaps a list of skins to choose from[/quote]you can extract any classic winamp-skin into the waskin-folder
the add/remove buttons are on the todo-list
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* No longer shows |> marker on current song in playlist near the time, I miss that.
[/quote]you can fix that in the title-formatting-preferences (just put a $if(%_isplaying%,'|> ') before %length%)
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* It'd be nice if there was a way to crop a song from the playlist.  It doesn't seem to be available in foobar's context menu editor dialog, and the function is no longer available in foobar's main context menu (as it was in 0.8)[/quote]hm, this is pretty strange, i thought, it had to be in the context-menu as both the default and columns ui have it in "their" context-menu, but a call to contextmenu_manager::win32_run_menu_context_playlist doesnt show it
i probably have to put it there manually ..
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* "Small font" default font doesn't actually seem to be Arial size 6, as the dialog suggests.  If you open the dialog and click OK, Reload, the font changes  I'm not sure what font it is, but it looks better IMO than Arial size 6 and I can't find it, so I just reset the config and left it the default.[/quote]that's probably because in the script, i setup a font with a name, height, width and weight, which gives you better control about how the font looks .. there should be an "advanced" font selector, where you can choose these parameters ..
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* Setting "Small font" size doesn't seem to affect the font size displayed for windowshade playlist or scrolling title (it did in the 0.8 version).  Only the font name takes effect.  Size and name take effect for bitrate and khz.[/quote]hm yes, i experimented with resizable text-boxes and there the font-height had to equal the text box's height .. i removed this and will probably make it optional ..

[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* If you have the foo_ui_gfx main window and playlist open, and the main window has focus, and you alt+f4 it, foobar closes, which is expected, but when you start foobar again, only the playlist window is visible and the only way to get the main window back seems to be by clicking "Reset Config".
* Clicking "Reload" or "Reset Config" makes the seekbar disappear until another track is loaded.[/quote]both fixed
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
Setting "Visualization" doesn't seem to have an effect?[/quote]no, it was based on ui_extentions, which are not in yet
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* The ability to drag and drop links from web browsers onto foobar would be nice.[/quote]one of the things, which could be a bit more difficult .. i'll look into it ..
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* In order to update the current song playing title in the playlist in windowshade mode when on a shoutcast stream, you have toggle out and in of windowshade mode in the main window.[/quote]i didnt test it, but it should be fixed
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* Make windowshaded playlist window same width as resized normal view playlist window.[/quote]well i see this more as a feature than a bug  but i've put it in (you can turn it off, though)
[quote name='deadfones' post='426256' date='Aug 31 2006, 20:09']
* Ability to format info string in windowshaded playlist window.[/quote]you can already modify it ("Playlist format (window-shade mode)" in prefs)
[quote name='deadfones' post='426286' date='Sep 1 2006, 00:14']
There seems to be a handle leak.  Watching with Process Explorer, clicking "Reload" will cause User Objects to increase by 1 and GDI Objects by 19, but the real damage comes when doing anything else: Hovering over the play buttons doesn't release GDI Objects and neither does scrolling the playlist, causing GDI Objects to skyrocket.
The 0.8 version seems to be affected by the "Reload" bug but not the UI element bug.
[/quote]fixed the UI element bug, the other one will probably need some more searching
[quote name='pepoluan' post='426313' date='Sep 1 2006, 02:33']
@kdx: Screencaps would be nice
[/quote]a screenshot from the 0.8er version can be found here
it's just a classic-winamp-skin rip-off (i'm no designer  )

  • foosion
  • [*][*][*][*][*]
  • Moderator
Skinnable UI - foo_ui_gfx (alpha)
Reply #14

* The ability to drag and drop links from web browsers onto foobar would be nice.
one of the things, which could be a bit more difficult .. i'll look into it ..
See playlist_incoming_item_filter for converting a list of metadb handles into a IDataObject and vice versa.
http://foosion.foobar2000.org/ - my components for foobar2000

  • haakhi
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #15
Awesome! This plugin was the blocker for my upgrade to 0.9.
Some small things about the winamp skin script...:
- It seems to have the offset of the song-position-indicator-thingie-picture of by one? It isn't visible with the default skin, but it shows when I use Fusion AMPman:
(screenshot) (the cyan line)
- A right click menu on the repeat button for selecting different repeat modes would be nice.
- So would a hover tip on the tray icon. It could show a format string... "now playing, next playing"?
- Half-shading the buttons on mouseover is nice and clever, but it looks a bit strange when the buttondown graphic does more than simple shading. Make it optional?

  • andrew_smolko
  • [*][*][*]
  • Developer
Skinnable UI - foo_ui_gfx (alpha)
Reply #16

What about non-rectangular windows? Is this possible in current implemetation?
no - but afaik this shouldnt be too difficult .. the only thing i dont really know is, how one should define the shape of a window .?

The shape can be built from bitmap. See http://www.codeproject.com/dialog/BitmapHandling.asp. The method implemented there is quite fast.

Skinnable UI - foo_ui_gfx (alpha)
Reply #17
Thanks for the bug fixes

I switched to 0.9 on my main box so I should be able to test this a little more thoroughly.

Bugs:

* I noticed the seekbar disappear on reload bug is fixed, but though it now shows itself, it is unusable.

* I added $if(%_isplaying%,'|> ') to my playlist formatting string, but it only shows itself in the playlist/updates for the song currently playing whenever I click Apply or Save All in the Title Formatting tab.

  • kdx
  • [*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #18
- It seems to have the offset of the song-position-indicator-thingie-picture of by one? It isn't visible with the default skin, but it shows when I use Fusion AMPman:
(screenshot) (the cyan line)
fixed .. (i think the kalak-skin has as glitch there, so i changed the offset in the script and the bitmap in the kalak-skin)

* I noticed the seekbar disappear on reload bug is fixed, but though it now shows itself, it is unusable.

* I added $if(%_isplaying%,'|> ') to my playlist formatting string, but it only shows itself in the playlist/updates for the song currently playing whenever I click Apply or Save All in the Title Formatting tab.
both fixed

Skinnable UI - foo_ui_gfx (alpha)
Reply #19
Thanks.  A couple more:

Anomaly:

* When multiple files or a folder is dragged onto the main window or playlist, and "cursor follows playback" is deselected in the default foobar ui and "change selection with cursor when 'playback / cursor follows playback' is enabled" is deselected in Preferences > General (so in essence, the cursor is unaffected by playback), all items in the playlist become selected.  Aesthetically, I'd prefer it if they weren't selected (esp. for when dragging onto the main window).  I understand that this behavior is similar to foobar's default ui, so it's not that big of a deal (except for the main window, I just don't see the point .

Bug:

* One cannot drag and drop files onto the playlist and insert them at the current mouse position, instead they are always added to the bottom of the playlist.  I believe it behaved correctly in 0.8 but I may be mistaken.  Anyway, it'd be nice if it behaved in the same way as the default foobar ui (insert items at current mouse position).
  • Last Edit: 15 September, 2006, 12:20:22 AM by deadfones

Skinnable UI - foo_ui_gfx (alpha)
Reply #20
Hope I wasn't too non-critical with those reports...

I'm going to look into lua and see if I can't add a couple features: dsp preset toggling with the eq button and total playlist time.

Skinnable UI - foo_ui_gfx (alpha)
Reply #21

  • Paws
  • [*][*][*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #22
Yes, its broke. Is this thing better then columns ui? If you could fix link please?
  • Last Edit: 16 November, 2006, 06:42:16 AM by Paws

Skinnable UI - foo_ui_gfx (alpha)
Reply #23
Yes, its broke. Is this thing better then columns ui? If you could fix link please?


Better?  It's different.  It's basically a winamp 2 clone.

Mirror: http://home.comcast.net/~deadfones/foo_ui_gfx-2006-09-25.zip

  • Paws
  • [*][*][*]
Skinnable UI - foo_ui_gfx (alpha)
Reply #24
Hey Thanks Alot deadfones  , i'm going to give it a try. Seems like a hopefully component.
take care.

Edit: Tried it out, its ok. Can't Make it big like foobar.
  • Last Edit: 19 November, 2006, 08:47:00 AM by Paws