First I want to apologize for my somewhat bad english, especially when writing about technical stuff like this. As I'm german, I hope, my English is good enough to give you an idea of what I have in mind.
While PanelsUI isn't working in the latest foobar versions any more, many people would love to see a new component to take it's place and add some nice skinning support to foobar again. Well, there's that Japanese guy with his Panel Stack Splitter, but I think that component goes in the same wrong direction as PanelsUI did with using title formatting for designing the skins. Also it's not that advanced yet and I never heard anything if there will be better versions in the future.
As far as I know, there's no other component, that allows to skin foobar the way PanelsUI did. Because of that, I tried to work out a little concept, how such a component could work using something else than title formatting. Unfortunately I have no experience in programming with C++ (I'm just starting some C#), so I decided to share this idea whit you in the hope to find someone with the knowledge and time, who would like to code that component.
The idea is as follows:
The component should be an extension of ColumnsUI and can use it's panels. To design a skin with it, a special XML syntax could be used. It should be possible to do all the positioning of panels, text formatting, drawing rectangles, images etc with it. Also it should have buttons, some variables, that will be safed when foobar is closed and the possibility to have if-else constructs and also per-track and per-second settings. It should also have an own seek bar and volume bar panel to add.
The syntax could look something like this:
CODE
<theme name='testtheme' version='1.1' url='http:\\test'>
<var name='showpanel1' type=boolean default='true'/>
<var name='fullscreenmode' type=boolean default='false'/>
<stdpanel
name='test'
width='%width%-10'
height='%height%-10'
color='#ffffff00'
border='ffffff00'>
<if condition='@showpanel1@'>
<cuipanel
type='elplaylist'
name='playlist'
width='500'
height='300' />
<else>
</else>
</if>
<pertrack>
<text
value='%artist%'
showempty=true
font-face='Arial'
font-size='12'
font-bold=true
font-italics=true
font-smallcaps=true
color='#aaaaaaaa'
x=100
y=100
width=200
height=11 />
<font
face='Arial'
size='12'
bold=true
italics=true
smallcaps=true
color='#aabbccdd'>
<text value='%title%' width=200 height=10 />
</font>
<image src='%image%' width= height=100 x=10 y=10 opacity=100 behaviour='cutout center center' />
<rectangle width=200 height=50 x=1 y=1 bgcolor='#00000000' gradcolor='#ffffffff' bordercolor='#00000000' border=2 gradtype='linear' />
<button action='playlist:play'>
<normalstate>
<image> <text> etc.
</normalstate>
<hoverstate></hoverstate>
</button>
<bar type='volume / seek' imgleft='' imgcenter='' imgright='' imgselector='' width=200 height=10 x=11 y=11 />
</pertrack>
<persecond>
</persecond>
</stdpanel>
</theme>
This is just a very simple and not very useful example, but I think it will demonstrate, what I have in mind. If somebody is interested to develop such a component, I would love to contribute to it and define the complete XML syntax and also XSD validation.
I think, using XML it's possible to give the user a simple and effective way to skin foobar and should be simple to parse with C++ and draw everything on the screen.
Well, that should be all at the moment. What do you think? Would you like to see a component like that for foobar? Could anybody imaging to develop it? Would be great to hear some comments from you!