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: [Not my release] foo_uie_panel_splitter (Read 400611 times) previous topic - next topic
0 Members and 4 Guests are viewing this topic.

[Not my release] foo_uie_panel_splitter

Reply #825
@mire777

Please see the following for some insight:

http://www.hydrogenaudio.org/forums/index....st&p=796698

http://br3tt.deviantart.com/art/Xch4nge-21...fset=0#comments (post by Jny9 Feb 6 2012)


Thank you so much 'WilB', I installed wsh panel mod for xp from this site: https://sites.google.com/site/jk7800/foobar2000
works perfectly,now I don't have problem with letters transparency, also foobar still can be transparent if I select this in columns ui preference

[Not my release] foo_uie_panel_splitter

Reply #826
Hello,

I add an image button to my config but it doesn't work at all. It should active one of the DSP settings. Can anyone tell me what's wrong? (When I add a keyborad shortcut for it, the keyboard shortcut works) Here's the code:

Code: [Select]
$imagebutton(0,0,34,9,$get(skin_path)/stereo.png,$get(skin_path)/stereo_hov.png,COMMAND: 'Playback / DSP Settings / stereo';REFRESH,,)
$imagebutton(38,0,45,9,$get(skin_path)/binaural.png,$get(skin_path)/binaural_hov.png,COMMAND: 'Playback / DSP Settings / binaural';REFRESH,,)

[Not my release] foo_uie_panel_splitter

Reply #827
Code: [Select]
COMMAND: 'Playback / DSP Settings / stereo'


you don't need the spaces or quotes there. try it like this...

Code: [Select]
COMMAND:Playback/DSP Settings/stereo


[Not my release] foo_uie_panel_splitter

Reply #829
Such a command doesn't appear to exist. To see available commands see the PSS menu and context command list or keyboard shortcuts list - its not listed on my set up but may be you have another component that provides it. There is just Playback/DSP settings on my set up.


[Not my release] foo_uie_panel_splitter

Reply #831
Hey guys,

sry for the newbe question, but is there a command for changing the active playlist?

what i wanna do is to separate my library from my playing playlists. however i want to use the esPlaylist for the library, i need to have it following the active playlist, which should be 'filtered results' in order to get the CIU filter panels to work with the esPlaylist.
so when pushing a button to go to the library the active playlist should be switched to the 'filtered results' playlist the CUI filter is working on. when going back to the now playing view, the script should switch to the one playing a song or to the last one viewed before entering the library!!!

now: is this possible?!

thanks a lot!!!

[Not my release] foo_uie_panel_splitter

Reply #832
Is it possible to specify a background image location using a variable like %APPDATA%? This would allow me to distribute my theme without expecting users to manually change the location of this file.

[Not my release] foo_uie_panel_splitter

Reply #833
foo_uie_panel_splitter_mod.7z    modified by equinox.

to anyone wondering what exactly this is, I checked on the russian forums.
Its a small modification of the settings dialog. Everthing else stays the same.
From what I got, the size is changed and there i a different font in the script tab.

Thanks! Makes working with PPS a bit less a pain in the ass 

Is it possible to specify a background image location using a variable like %APPDATA%? This would allow me to distribute my theme without expecting users to manually change the location of this file.

Didn't try it, but you probably did that yourself... if it didn't work, there is your answer

I suggest you just draw the background image with imageabs(0,0,%_width%,%_height%,%themepath%background.jpg).

You can either set the path manually with $set_ps_global(themepath,'[your path]'), or use %ps_foobar2000_path%(path of foobar2000.exe) or %ps_user_profile_path% (user profile path.)

[Not my release] foo_uie_panel_splitter

Reply #834
I'm not sure if my question is just nonsense, but since nobody gave me some advice i'll just ask again:

Is there a way for me switching to a certain playlist (not just "View/Columns playlist/Activate now playing") when pushing a button? Can i somehow implement such a functionality?

Thank you 

[Not my release] foo_uie_panel_splitter

Reply #835
I'm not sure if my question is just nonsense, but since nobody gave me some advice i'll just ask again:

Is there a way for me switching to a certain playlist (not just "View/Columns playlist/Activate now playing") when pushing a button? Can i somehow implement such a functionality?

Thank you 


no way in PSS, but you can do it with WSH Panel Mod (jscript). With PSS, just set your wsh panel where you want, the panel fit the button size and you can also add it in the CUI toolbar... you can ask help about a such panel in the WSH Panel Mod discussion thread in 3rd party components.

HTH

[Not my release] foo_uie_panel_splitter

Reply #836
Ahhh ok i see!!! The PSS then defines the appearance of the button and refers to a command or function, which is specified in the WSH Panel, right?

Thank you so much for your answer!! :-)

[Not my release] foo_uie_panel_splitter

Reply #837
no - you'd have to make the button in WSH panel mod as well. but because you can position the panel anywhere you like in PSS it can appear seemlessly with a bit of styling.

[Not my release] foo_uie_panel_splitter

Reply #838
Ok, i guess i will have to dig into that stuff first...

Anyways, thank you so much for helping me so far ;-)

[Not my release] foo_uie_panel_splitter

Reply #839
Is there a way to move the same panel using two buttons? I have two buttons, both move the same panel but to different positions. Or is there a way to make one button do three different things so it can be clicked three times?

Code: [Select]
$if($isvisible_c(Artist)
,
$imagebutton($sub($get(bar.width),72),$get(play.button2.top),30,18,$get_ps_global(image.path)'/bt/list_off.png',$get_ps_global(image.path)'/bt/list_on.png',PANELSHOW:Artist:0;REFRESH,,)
$movepanel_c(Artist,1,$add($get(button.top),46),$get(bar.width),$sub(%_height%,78))
$movepanel_c(Graphical Browser,0,0,0,0)
,
$imagebutton($sub($get(bar.width),72),$get(play.button2.top),30,18,$get_ps_global(image.path)'/bt/list_off.png',$get_ps_global(image.path)'/bt/list_on.png',PANELSHOW:Similar:0;PANELSHOW:List:0;PANELSHOW:Artist:1;REFRESH,,)
$movepanel_c(Artist,$get(playlist.left),$sub($add($get(playlist.top),$get(playlist.h)),$get(playtabs.h)),$get(playlist.w),$get(playtabs.h))                              
)

$if($isvisible_c(Artist)
,
$imagebutton($sub($get(bar.width),36),$get(play.button2.top),30,18,$get_ps_global(image.path)'/bt/list_off.png',$get_ps_global(image.path)'/bt/list_on.png',PANELSHOW:Artist:0;REFRESH,,)
$drawrect(0,330,$add($get(bar.width),2),25,60-60-60,25-25-25,RESERVED)
$font(Myriad Web,10,bold)$drawtextex(%artist% | %genre%,0,334,$get(bar.width),,$get(track.color2),hcenter vtop end_ellipsis)
$movepanel_c(Artist,1,$add($get(button.top),46),$get(bar.width),280)
$movepanel_c(Graphical Browser,0,355,$add($get(bar.width),1),$sub(%_height%,383))
,
$imagebutton($sub($get(bar.width),36),$get(play.button2.top),30,18,$get_ps_global(image.path)'/bt/list_off.png',$get_ps_global(image.path)'/bt/list_on.png',PANELSHOW:Similar:0;PANELSHOW:List:0;PANELSHOW:Artist:1;REFRESH,,)
$movepanel_c(Artist,$get(playlist.left),$sub($add($get(playlist.top),$get(playlist.h)),$get(playtabs.h)),$get(playlist.w),$get(playtabs.h))                              
)


Using this code both buttons move the artist panel to the same place?

[Not my release] foo_uie_panel_splitter

Reply #840
rather than use PANELSHOW, i'd use global variables to save 3 different "states". each button click would cycle through them.

Code: [Select]
//sets state to 1 on first run. after that, the stored setting will be used.
$init_ps_global(state,1)

//note you don't need $get_ps_global, you can just wrap the variables in %% to access them. make sure they don't conflict with any tags/special fields that are in use.
$select(%state%,
//code here to show/hide/move panels if value is 1
,
//code here for 2
,
//code here for 3 etc
)


then in your button use this

Code: [Select]
SETGLOBAL:$select(%state%,2,3,1);REFRESH;


if the value of state is current 1, set it to 2.
if value is 2, set it to 3
if value is 3, set it back to 1 again.

[Not my release] foo_uie_panel_splitter

Reply #841
rather than use PANELSHOW, i'd use global variables to save 3 different "states". each button click would cycle through them.

Code: [Select]
//sets state to 1 on first run. after that, the stored setting will be used.
$init_ps_global(state,1)

//note you don't need $get_ps_global, you can just wrap the variables in %% to access them. make sure they don't conflict with any tags/special fields that are in use.
$select(%state%,
//code here to show/hide/move panels if value is 1
,
//code here for 2
,
//code here for 3 etc
)


then in your button use this

Code: [Select]
SETGLOBAL:$select(%state%,2,3,1);REFRESH;


if the value of state is current 1, set it to 2.
if value is 2, set it to 3
if value is 3, set it back to 1 again.


That works as I expected, thanks again foowizard.

[Not my release] foo_uie_panel_splitter

Reply #842
[!--sizeo:11--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]How to affect "sibling" (= parent's child) pss?[/size]

Hey there community! 
I hope I post in the right thread since I am new to this forum (in fact I just registered because of my question) 
I recently rediscovered Foobar and its vast amount of cusomization options, so I wanted to do my first own "theme" inspired by my needs as well as some skins seen around the internet.
It all went pretty well until now: I want to have a "Display-Switch", that means a button to change the whole appearance. So I created multiple "panel stack splitter" inside my main (empty) panel splitter. The buttons are coded in the main pss script, so I can swap appearance via $showpanel. Since the button is always located in the upper right corner it shouldn't be a big problem, BUT: I want it to be more included into the whole theme, not only to be "toolbar-like". E.g. one possible display should look like this: big album art on the left, and on the right in vertical order: buttons, pss ( wsh - track info ), pss ( virualization ; wsh - seekbar ). Not that much - and I got all to work, the display as well as the buttons - but I just can't combine them if I want the buttons to be in the display's parent pss' script, not in the display's script (that's easy  ).
I found two solutions/workarounds:
1. Move the Display Panels a bit down so I get free Space on top - makes the buttons appear
2. Create the buttons in the display's main pss' script and update ($showpanel) in the parent pss' per second section - the delay creates a bad feeling AND the buttons don't work when paused/stopped. A command to refresh the parent pss would be very helpfull, but I looked it up in the components documentation and couldn't find anything.

Picture, created by using method 1:


Related Code: (NOT using method 1)
MAIN PSS SCRIPT:
Code: [Select]
//---------GLOBAL VARIABLES---------
$init_ps_global(display.switch,1)

// ----- PANELS -----
$movepanel(0,0,0,%ps_width%%ps_height%)
$movepanel(1,0,0,%ps_width%,%ps_height%)
$movepanel(2,0,0,%ps_width%,%ps_height%)

// ----- SHOWPANEL -----
$showpanel(0,$ifequal(%display.switch%,1,1,0))
$showpanel(1,$ifequal(%display.switch%,2,1,0))
$showpanel(2,$ifequal(%display.switch%,3,1,0))

//------- APPEARANCE SWITCH BUTTONS ---------
$puts(bar.length,$mul($div($sub(%ps_width%,%ps_height%),4),1))
$puts(bar.x,$sub(%ps_width%,$get(bar.length)) )

$gradientrect($get(bar.x),0,$get(bar.length),14,237-237-237-255,26-26-26-255,horizontal aa,0)
$gradientrect($get(bar.x),1,$sub($get(bar.length),1),12,237-237-237-255,255-255-255-255,horizontal aa,0)

//-------- BUTTONS ------------
$puts(btn.w,26)
$font(Calibri,11,)

$puts(btn.x,$sub($sub(%ps_width%,25),$get(btn.w)) )
$drawrect($get(btn.x),1,$get(btn.w),12,46-46-46-255,46-46-46-255,aa)
$textbutton($get(btn.x),1,$get(btn.w),12,LIB,LIB,SETGLOBAL:display.switch:3;REFRESH,fontcolor:192-192-192,fontcolor:255-255-255)

$puts(btn.x,$sub($sub($get(btn.x),18),$get(btn.w)) )
$drawrect($get(btn.x),1,$get(btn.w),12,46-46-46-255,46-46-46-255,aa)
$textbutton($get(btn.x),1,$get(btn.w),12,B/W,B/W,SETGLOBAL:display.switch:1;REFRESH,fontcolor:192-192-192,fontcolor:255-255-255)

I tried almost everything from moving the panels via script, forced layout, fake transparency and everything I could imagine to help, but nothing worked - perhaps I just combined the wrong settings?
Thanks in advance for your help!
Have a nice day

[Not my release] foo_uie_panel_splitter

Reply #843
If I understand you correctly, you want a refreshall  command (the refresh command available only refreshes code in the containing panel). Unfortunately there isn't a refreshall command and so some sort of workaround is needed  that forces the code to run in the child panels when a button is clicked in the  parent panel.

One workaround is below.

Code: [Select]
Include $get(p.p) as a button command – this will refresh most child panels – and is documented earlier in the thread.
$puts(p.p,$if(%ps_ispause%,COMMAND:Playback/Play;COMMAND:Playback/Pause,$if(%ps_isplaying%,COMMAND:Playback/Pause;COMMAND:Playback/Play,COMMAND:Playback/Play;COMMAND:Playback/Pause)))
$textbutton(x,y,w,h,,,$get(p.p);REFRESH,,)
    I have never found this to interfere with playback and it also works with $imagebutton. The rapid change in playback state causes the code to run. It works best with the panels positioned with $movepanel and forced layout.


Another possibility is to force a small resize of the child  panels (e.g. 1 pixel height or width difference toggle when the button is  pressed – more difficult to code -  but  can trigger the code to run and help.

    I hope that helps and  that I understood your post correctly.

[Not my release] foo_uie_panel_splitter

Reply #844
Marc I can't get your global variable code to work, I thought it was working but looks like I've messed it up or I'm doing it wrong. Could you please check this for me?

Quote
$init_ps_global(banner,1)

$select(%banner%,
$drawimage($sub(%_width%,1226),0,1226,27,$get_ps_global(image.path)'/texture.png',OPTIONS,n,180)
,
$drawimage($sub(%_width%,1226),0,1226,27,$get_ps_global(image.path)'/texture2.png',OPTIONS,n,180)
,
$drawimage($sub(%_width%,1226),0,1226,27,$get_ps_global(image.path)'/texture3.png',OPTIONS,n,180)
)

$imagebutton(0,450,30,18,$get_ps_global(image.path)'/bt/list_on.png',$get_ps_global(image.path)'/bt/list_off.png',SETGLOBAL:$select(%banner%,2,3,1);REFRESH;)


I've been trying to make it work for the last two days am I missing something?

[Not my release] foo_uie_panel_splitter

Reply #845
This isn't setting the global:
SETGLOBAL:$select(%banner%,2,3,1);
Try:
SETGLOBAL:banner:$select(%banner%,2,3,1);

[Not my release] foo_uie_panel_splitter

Reply #846
obviously i missed it out to check people are awake...   

 

[Not my release] foo_uie_panel_splitter

Reply #847
I'M GOING TO KILL YOU MARC! 
I have been changing it for ages I nearly threw the keyboard out the window.

Thanks guys it's working now, I'm learning I'm learning. 

*Does this work as a global variable, the button only works if it's in the same PSS as the code? I thought it would be like $set_ps_global.

Quick question also is it more efficient to use title formatting than using $get and $puts?

[Not my release] foo_uie_panel_splitter

Reply #848
This is slower than my old method?? Now it lags when I click the button, the panel shows in three laggy pieces.

Code: [Select]
$init_ps_global(utils99,1)
$select(%utils99%,
$movepanel_c(Utils,$get(l.panel.left),$get(l.panel.top),$get_ps_global(l.panel.w),$add($get(l.panel.h),5))
,
$movepanel_c(Utils,0,0,0,0)
)
$imagebutton($add($get(l.panel.button.left),$mul($add($get(l.panel.button.x),$get(l.panel.button.sep)),4)),$get(l.panel.button.top),$get(l.panel.button.x),$get(l.panel.button.y),$get_ps_global(image.path)'/bt/blank_off.png',$get_ps_global(image.path)'/bt/blank_on.png',SETGLOBAL:utils99:$select(%utils99%,2,1);REFRESH;)


This method is instant:

Code: [Select]
$if($isvisible_c(Utils),
    
$imagebutton($add($get(l.panel.button.left),$mul($add($get(l.panel.button.x),$get(l.panel.button.sep)),4)),$get(l.panel.button.top),$get(l.panel.button.x),$get(l.panel.button.y),$get_ps_global(image.path)'/bt/blank_on.png',$get_ps_global(image.path)'/bt/blank_on.png',PANELSHOW:Cover:1;PANELSHOW:Filter:0;PANELSHOW:Artist:0;PANELSHOW:Lyrics:0;PANELSHOW:Bio:0;PANELSHOW:Info:0;PANELSHOW:Customize:0;PANELSHOW:Utils:0;REFRESH,,)
$movepanel_c(Utils,$get(l.panel.left),$get(l.panel.top),$sub($get_ps_global(l.panel.w),$get(l.panel.left),$get(l.panel.right)),$get(l.panel.h))
$movepanel_c(Cover,0,0,0,0)
,
$imagebutton($add($get(l.panel.button.left),$mul($add($get(l.panel.button.x),$get(l.panel.button.sep)),4)),$get(l.panel.button.top),$get(l.panel.button.x),$get(l.panel.button.y),$get_ps_global(image.path)'/bt/blank_off.png',$get_ps_global(image.path)'/bt/blank_on.png',PANELSHOW:Cover:0;PANELSHOW:Filter:0;PANELSHOW:Artist:0;PANELSHOW:Lyrics:0;PANELSHOW:Bio:0;PANELSHOW:Info:0;PANELSHOW:Customize:0;PANELSHOW:Utils:1;REFRESH,,)
$movepanel_c(Utils,0,0,0,0)
$movepanel_c(Cover,$get(l.panel.left),$get(l.panel.top),$get_ps_global(l.panel.w),$add($get(l.panel.h),5))
)

[Not my release] foo_uie_panel_splitter

Reply #849
If I understand you correctly, you want a refreshall  command (the refresh command available only refreshes code in the containing panel). Unfortunately there isn't a refreshall command and so some sort of workaround is needed  that forces the code to run in the child panels when a button is clicked in the  parent panel.

One workaround is below.
....

Another possibility is to force a small resize of the child  panels (e.g. 1 pixel height or width difference toggle when the button is  pressed – more difficult to code -  but  can trigger the code to run and help.

    I hope that helps and  that I understood your post correctly.


Thanks for the quick reply!
I just tested it and it works perfectly!
Although I needed it the other way round (refresh the parents' code when a child panel's button is clicked) your code did exactly this and no delay is audible!
Thanks thanks thanks
Have a  nice day!