Иногда возникает необходимость менять размеры элементов в окне плеера, с размерами панелей все понятно - набором арифметических действий они определяются и при необходимости масштабируются относительно друг-друга и относительно размеров и границ окна, инструментарий для этого, JavaScript, встроен в плеер. Размеры и расположение кнопок при этом, как правило, зафиксировано в нужных пределах, но в ряде случаев это неудобно.
Вот зафиксированная кнопка
$textbutton(2,$sub(%ps_height%,42),40,40,9,9,PANELSHOW:A:-1;PANELSHOW:B:1;REFRESH,%b_options1%,%b_options2%)
Означает сие: кнопка размером 40х40 пикселей, 2 пикселя от левого края и 42 от нижнего - ее координаты и они неизменны.
Но если в скрипте сплиттера записать вот такие глобальные переменные
$set_ps_global(sb,$div($add(%ps_width%,%ps_height%,),40))
$set_ps_global(sb2,$add(%sb%,2))
и использовать %sb% вместо "40" то размеры кнопки будут равны 1/40 от суммы длинны и ширины окна, т. е изменили окно - изменилась кнопка.
$textbutton(2,$sub(%ps_height%,%sb2%),%sb%,%sb%,9,9,PANELSHOW:A:-1;PANELSHOW:B:1;REFRESH,%b_options1%,%b_options2%)
phpBB [media]
- Код: Выделить всё
//foobar2000 v1.4//goodmusic by macarych v. 08.2018
//
$set_ps_global(color3,225-150-20)
$set_ps_global(color2,100-100-100)
$set_ps_global(color0,60-60-60)
$set_ps_global(color4,225-150-20)
$set_ps_global(color5,30-30-30)
$set_ps_global(color1,$if(%isplaying%,$if(%ispaused%,%color2%,%color4%),%color2%))
$set_ps_global(color6,$if(%isplaying%,$if(%ispaused%,%color2%,%color3%),%color2%))
$set_ps_global(color1,$if(%isplaying%,$if(%ispaused%,%color2%,%color4%),%color2%))
$set_ps_global(color8,$if(%isplaying%,$if(%ispaused%,%color0%,%color4%),%color0%))
//
$set_ps_global(sb,$div($add(%ps_width%,%ps_height%,),40))
$set_ps_global(sb2,$add(%sb%,2))
$set_ps_global(sf,$div(%sb%,2))
//
//%isplaying%,$if(%ispaused%,%color2%,%color4%),%color2%))
$set_ps_global(color8,$if(%isplaying%,$if(%ispaused%,%color0%,%color4%),%color0%))
//
$set_ps_global(img_path,$if(%isplaying%,$if(%ispaused%,%img_path1%,%img_path2%),%img_path1%))
$set_ps_global(b_options1,fontcolor:%color6% brushcolor:%color5% pencolor:%colo5%)
$set_ps_global(b_options2,fontcolor:%color6% brushcolor:%color0% pencolor:%color0%)
//
$font(Guifx v2 Transports,%sf%)
//
$textbutton(0,0,1,1,,,COMMAND:Help/About)
$set_ps_global(plps,$if(%isplaying%,$if(%ispaused%,1,2),1))
//
$textbutton(2,$sub(%ps_height%,%sb2%),%sb%,%sb%,9,9,PANELSHOW:A:-1;PANELSHOW:B:1;REFRESH,%b_options1%,%b_options2%)
$textbutton($add(%sb%,4),$sub(%ps_height%,%sb2%),%sb%,%sb%,5,5,COMMAND:Playback/Previous,%b_options1%,%b_options2%)
$textbutton($add($mul(%sb%,2),6),$sub(%ps_height%,%sb2%),%sb%,%sb%,%plps%,%plps%,COMMAND:Playback/Play or pause,%b_options1%,%b_options2%)
$textbutton($add($mul(%sb%,3),8),$sub(%ps_height%,%sb2%),%sb%,%sb%,6,6,COMMAND:Playback/Next,%b_options1%,%b_options2%)
$textbutton($sub(%ps_width%,$add($mul(%sb%,4),8)),$sub(%ps_height%,%sb2%),%sb%,%sb%,z,z,COMMAND:View/Popup Main Menu,%b_options1%,%b_options2%)
$textbutton($sub(%ps_width%,$add($mul(%sb%,3),6)),$sub(%ps_height%,%sb2%),%sb%,%sb%,|,|,COMMAND:View/Fullscreen,%b_options1%,%b_options2%)
$textbutton($sub(%ps_width%,$add($mul(%sb%,2),4)),$sub(%ps_height%,%sb2%),%sb%,%sb%,\,\,COMMAND:View/Hide,%b_options1%,%b_options2%)
$textbutton($sub(%ps_width%,%sb2%),$sub(%ps_height%,%sb2%),%sb%,%sb%,q,q,COMMAND:File/Exit,%b_options1%,%b_options2%)
//
$movepanel_c(A,2,2,$sub(%ps_width%,4),$sub(%ps_height%,$add(%sb%,6)))
$movepanel_c(B,2,2,$sub(%ps_width%,4),$sub(%ps_height%,$add(%sb%,6)))
$movepanel_c(sb,$add($mul(%sb%,4),10),$sub(%ps_height%,%sb2%),$Sub(%ps_width%,$add($mul(%sb%,8),22)),%sb%)
//
$fillrect($sub(%ps_width%,10),0,10,%ps_height%,%color8%)
$fillrect(0,0,%ps_width%,10,%color8%)
$fillrect(0,0,10,%ps_height%,%color8%)
$fillrect(0,$sub(%ps_height%,$add(%sb2%,4)),%ps_width%,$add(%sb2%,4),%color8%)
$fillrect($add($mul(%sb%,4),10),$sub(%ps_height%,%sb2%),$Sub(%ps_width%,$add($mul(%sb%,8),22)),%sb%,30-30-30)
P.S. Если у кого-то есть другие способы и наработки (например в WSH), давайте сюда же.