Panel Stack Splitter (foo_uie_panel_splitter.dll)

Список разделов foobar2000 Плагины

Описание: Все о плагинах, компонентах, расширениях

Сообщение #1 mookhin » 20.11.2008, 17:32

Описание и ссылки:::: Panel Stack Splitter (foo_uie_panel_splitter.dll)

Официальный мануал к плагину::::    Manual for Panel Stack Splitter

Официальный сайт плагина на японском языке

Скачать плагин foo_uie_panel_splitter v0.3.8.3a(2009/12/11)

Если есть желаение сделать что-то своё (например свой собственный интерфейс ;)) на PSS, но нету опыта -->
рекомендую в качестве инструкции эту статью:::    Создание интерфейса на основе Panel Stack Splitter плагина



Ну блин... В конце-то концов найдется кто-нибудь, кто научит этого "узкоглазого" правильно отрабатывать isplaying/ispaused?
Его новые $if(%ps_isplaying%,$if(%ps_ispaused%,...) возвращают полную хрень...  :(
Код:
$if(%ps_isplaying%,$if(%ps_ispaused%,
$imagebutton($add($get(i),86),$sub(%_height%,53),,,$get(btn)/pause.png,$get(btn)/play+.png,COMMAND:Playback/Play or Pause,,),
$imagebutton($add($get(i),86),$sub(%_height%,53),,,$get(btn)/play.png,$get(btn)/pause+.png,COMMAND:Playback/Play or Pause,,)),
$imagebutton($add($get(i),86),$sub(%_height%,53),,,$get(btn)/play-.png,$get(btn)/play+.png,COMMAND:Playback/Play or Pause,,)
не работает... картинки не соответсвуют правде. Этот же код в track_info_mod - "катит" на ура...
Последний раз редактировалось Izotop 23.04.2010, 02:59, всего редактировалось 1 раз.
mookhin
Автор темы
Репутация: 0
С нами: 17 лет 3 месяца


Сообщение #61 Aum » 30.05.2010, 01:07

как в СUI обмануть Explorer tree и скрыть в нем вертикальный прогресс бар? (интерфейс PSS+CUI)
пробовал Explorer сделать шире, но он поверх плейлиста гад налазит..) может какие то хитрости кто знает?
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #62 Aum » 30.05.2010, 15:27

Подскажите, как правильнее реализовать показ album art'a на PSS?
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #63 Zin-Uru » 30.05.2010, 15:49

2Aum
Можно примерно таким кодом панельки:
Код: Выделить всё
$if($or($or($stricmp(%Choice_Art%,1),$or($stricmp(%Choice_Art%,2),$stricmp(%Choice_Art%,3))),$stricmp(%Choice_Art%,4)),,$set_ps_global(Choice_Art,1))

//Covers
$puts(ArtPath_F,$if3(

//Front
$findfile($replace(%path%,%filename_ext%,*folder*.*p*g)),
$findfile($replace(%path%,%filename_ext%,*front*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Cover\*front*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*front*.*p*g)),
$findfile($replace(%path%,%filename_ext%,*cover*.*p*g)),
$findfile(%foobar_path%\lastfm\album\%artist%-%album%.*p*g),
$findfile($replace(%path%,%filename_ext%,*.*p*g)),

0))

$puts(ArtPath_B,$if3(

//Back
$findfile($replace(%path%,%filename_ext%,*back*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Cover\*back*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*back*.*p*g)),
$findfile($replace(%path%,%filename_ext%,..\Covers\*back*.*p*g)),

0))

$puts(ArtPath_D,$if3(

//CD
$findfile($replace(%path%,%filename_ext%,*CD*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Cover\*CD*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*CD*.*p*g)),
$findfile($replace(%path%,%filename_ext%,..\Covers\*CD$right($replace(%path%,\%filename_ext%,),1)*.*p*g)),
$findfile($replace(%path%,%filename_ext%,*Disk*.*p*g))
$findfile($replace(%path%,%filename_ext%,Cover\*Disk*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*Disk*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*Inlay*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*Inside*.*p*g)),

0))

$puts(ArtPath_A,$if3(

//Artist
$findfile($replace(%path%,%filename_ext%,*artist*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Cover\*artist*.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\*artist*.*p*g)),
$findfile($replace(%path%,%filename_ext%,%artist%.*p*g)),
$findfile($replace(%path%,%filename_ext%,Cover\%artist%.*p*g)),
$findfile($replace(%path%,%filename_ext%,Covers\%artist%.*p*g)),
$findfile($replace(%path%,%filename_ext%,..\*artist*.*p*g)),
$findfile($replace(%path%,%filename_ext%,..\%artist%.*p*g)),

0))

$puts(art_path,$select(%Choice_Art%,$get(ArtPath_F),$get(ArtPath_B),$get(ArtPath_D),$get(ArtPath_A)))

//Init panel
$if($findfile(%ps_foobar2000_path%\components\foo_covers_mod.dll),$puts(covers,1),$puts(covers,2))

//No cover check
$puts(chk,0)
$select($get(covers),
  $if($imageabs(0,0,,,%path%,artreader_front nodisplay,,),,$puts(chk,$add($get(chk),1)))
  $if($imageabs(0,0,,,%path%,artreader_back nodisplay,,),,$puts(chk,$add($get(chk),1)))
  $if($imageabs(0,0,,,%path%,artreader_disc nodisplay,,),,$puts(chk,$add($get(chk),1)))
  $if($imageabs(0,0,,,%path%,artreader_artist nodisplay,,),,$puts(chk,$add($get(chk),1)))
,
  $if($findfile($get(ArtPath_F)),,$puts(chk,$add($get(chk),1)))
  $if($findfile($get(ArtPath_B)),,$puts(chk,$add($get(chk),1)))
  $if($findfile($get(ArtPath_D)),,$puts(chk,$add($get(chk),1)))
  $if($findfile($get(ArtPath_A)),,$puts(chk,$add($get(chk),1)))
)
$if(%ps_isplaying%,,$puts(chk,4))

//Draw covers
$ifequal($get(chk),4,
  $drawimage(0,0,%ps_width%,%ps_height%,%ps_foobar2000_path%\%Image_Path%\nocover.png,nokeepaspect,,)
,
  $if($select($get(covers),$imageabs(0,0,,,%path%,artreader_$select(%Choice_Art%,front,back,disc,artist) nodisplay,,),$findfile($get(art_path))),
    $drawimage(0,0,%ps_width%,%ps_height%,$ifequal($get(covers),1,%path%,$get(art_path)),$ifequal($get(covers),1,artreader_$select(%Choice_Art%,front,back,disc,artist),)$ifequal(%Choice_Art%,1,$ifequal($get(covers),1, ,)nokeepaspect,),,)
    $imagebutton(0,0,%ps_width%,%ps_height%,,,SETGLOBAL:Choice_Art:$ifequal(%Choice_Art%,4,1,$add(%Choice_Art%,1));REFRESH,,)
  ,
    $font(Starcraft,14,bold)
    $textbutton(0,0,%ps_width%,%ps_height%,$select(%Choice_Art%,No Front,No Back,No Disk,No Artist),$select(%Choice_Art%,No Front,No Back,No Disk,No Artist),SETGLOBAL:Choice_Art:$ifequal(%Choice_Art%,4,1,$add(%Choice_Art%,1));REFRESH,fontcolor:0-90-0,fontcolor:0-90-0)
  )
)

Там в начале как видно задаются все маски обложек. Плюс можно (но не обязательно) воспользоваться компонентом foo_covers_mod.dll - тогда обложки будут подхватываться из него.
Также ближе к концу нужно поменять шрифт на свой и путь к обложке no_cover.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #64 Zin-Uru » 30.05.2010, 15:56

Aum:как в СUI обмануть Explorer tree и скрыть в нем вертикальный прогресс бар? (интерфейс PSS+CUI)
пробовал Explorer сделать шире, но он поверх плейлиста гад налазит..) может какие то хитрости кто знает?

нужно запихнуть Эксплорер в дополнительную панель сплиттера, и тогда уже делать шире. Граница панели скроет полосу прокрутки.
Последний раз редактировалось Izotop 31.05.2010, 08:46, всего редактировалось 1 раз.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #65 Aum » 30.05.2010, 16:31

Все отлично!)
Еще вопросики:
Необходимо отрисовать полупрозрачный фон поверх всех изображений?(чет не получилось поверх артов?)
Можно ли еще добавить что то типа слайд шоу: все что нашел по маскам - по очереди отображал?
Последний раз редактировалось Aum 30.05.2010, 16:40, всего редактировалось 1 раз.
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #66 Zin-Uru » 30.05.2010, 16:49

2Aum полупрозрачный фон - просто в скрипт добавить в конце отрисовку картинки (или просто эффекта нужного) поверх всех остальных. Картинка сама должна быть, естественно, поддерживающей прозрачность png.
Автоматическое слайд-шоу - это надо тот же скрипт в Per Second, убрать переключение по клику, добавить проверку текущего состояния через доп. переменную и циклически ее менять. В общем, немного попрограммировать. ;)
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #67 Aum » 30.05.2010, 18:06

не могу рисунок поверх остальных отрисовать!(порылся - в свойствах вроде такого не прописывается)
$imageabs(x,y,w,h,path,OPTIONS,n,alpha,OPTIONS2)
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #68 Aum » 30.05.2010, 21:49

Точно!!! Да это супер выход! и с другими можно так же!! спасиба!!))
а от количества сплиттеров сборка тяжелеет на ресурсы? если у меня их десяток будет?
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #69 Zin-Uru » 30.05.2010, 22:06

2Aum, тяжелеет, но мало, особенно если в них нет скриптов.
Последний раз редактировалось Zin-Uru 31.05.2010, 00:12, всего редактировалось 1 раз.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #70 MrGrey » 31.05.2010, 05:28

Aum:Да это супер выход! и с другими можно так же!!
не совсем
можно только с теми панелями где полоса прокрутки присутствует всегда
в противном случае, при отсутствии скролла, возможно такое,что граница панели pss скроет нужную инфу
MrGrey M
Аватара
Откуда: Минск
Репутация: 29
С нами: 17 лет 5 месяцев

Сообщение #71 Izotop » 31.05.2010, 08:51

Aum:а от количества сплиттеров сборка тяжелеет на ресурсы? если у меня их десяток будет?
А зачем создавать много сплиттеров???
Может можно всё реализовать и в двух-трех?

Описывайте примеры необходимости множества PSS.
Может найдем более правильный и удобный вариант реализации без нагромождений ...
*пыво*
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 15 лет 4 месяца

Сообщение #72 kondrat » 03.06.2010, 18:40

Пожалуйста, покажите где ошибка (кнопка сворачивания-разворачивания групп)

Код: Выделить всё
$textbutton(182,8,60,23,C/E,C/E,$if(%el_is_collapsed%,command:View/ELPlaylist/Expand all groups,command:View/ELPlaylist/Collapse all groups),brushcolor:232-232-232 pencolor:0-0-0,brushcolor:216-241-255 pencolor:0-0-0)
kondrat
Репутация: 0
С нами: 14 лет 3 месяца

Сообщение #73 Zin-Uru » 03.06.2010, 18:55

2kondrat, ошибка в том, что PSS переменные ELPlaylist не видит, к сожалению. Соответственно, %el_is_collapsed% для него - пустой звук.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #74 kondrat » 03.06.2010, 19:17

Жалко. Вроде бы от одного автора плагины... Спасибо!
А нельзя как-нибудь эту переменную "глобализировать"?
Последний раз редактировалось kondrat 03.06.2010, 19:19, всего редактировалось 1 раз.
kondrat
Репутация: 0
С нами: 14 лет 3 месяца

Сообщение #75 Zin-Uru » 03.06.2010, 19:22

2kondrat, нельзя. Единственный более-менее приемлемый выход - сделать отдельно кнопку для коллапса и отдельно для разворачивания групп.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #76 Aum » 04.06.2010, 12:21

Izotop:А зачем создавать много сплиттеров???
Может можно всё реализовать и в двух-трех?


скачал вот очень хороший конфиг с девианта (на мой скромный взгляд - даже поудобнее оригинала будет) Silent Night, и уже 4ый день модифицирую под себя, так вот сплиттеров там видимо не видимо (штук наверное 30), врятли возможно что то упростить :)
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #77 Aum » 11.06.2010, 15:18

Помогите решить:
получилась у меня такая схема - три сплиттера - один в одном (1>2>3) :
PSS 1
//глобальный параметр
$init_ps_global(Info.switch,1)

    PSS 2
      //условие включения 3его
     $showpanel_c(PSS 3,$ifequal(%Info.switch%,1,1,0))
     //и кнопки включения/выключения PSS 3:
           $ifequal(%Info.switch%,0,
              $imagebutton($sub(%_width%,15),15,11,11,%images%/info1.png,%images%/info.png,SETGLOBAL:Info.switch:1;REFRESH,,)
                   ,)
           $ifequal(%Info.switch%,1,
             $imagebutton($sub(%_width%,15),15,11,11,%images%/info1.png,%images%/info.png,SETGLOBAL:Info.switch:0;REFRESH,,)
                 ,)

              PSS 3

Все работает нормально - кнопка в PSS 2 показывает и прячет PSS 3 (поверх PSS 2), но нужно еще и в PSS 3 сделать кнопочку, чтобы закрывала его, тоесть отображала 2ой сплиттер сверху над 3им(как бы назад)!

Возможно ли такое, если да, то как?
кнопка ...........SETGLOBAL:Info.switch:0;REFRESH,,) в последнем сплиттере не работает..
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #78 Zin-Uru » 11.06.2010, 15:35

2Aum, если нужно из самой панели управлять ею же или даже более высокой по уровню, то тут поможет прием:
COMMAND:'View/Show status pane';COMMAND:'View/Show status pane'
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Сообщение #79 Aum » 11.06.2010, 16:33

не могу дошурупить... *хз*
...SETGLOBAL:Info.switch:1;COMMAND:'View/Show status pane';COMMAND:'View/Show status pane';REFRESH,,)
...SETGLOBAL:Info.switch:0;COMMAND:'View/Show status pane';COMMAND:'View/Show status pane';REFRESH,,)
не катит..
или можно не к переключениям, а напрямую к показу панели как-то обращаться:
....SETGLOBAL:$showpanel_c(PSS Info):0;COMMAND:'View/Show status pane';COMMAND:'View/Show status pane';REFRESH,,)

как ему сказать, чтоб он прятал PSS Info?
Последний раз редактировалось Aum 11.06.2010, 16:35, всего редактировалось 1 раз.
Aum M
Аватара
Репутация: 20
С нами: 14 лет

Сообщение #80 Zin-Uru » 11.06.2010, 16:36

2Aum, странно, что не работает. Выложи сборку, посмотрю.

Aum:или можно не к переключениям, а напрямую к показу панели как-то обращаться:
....SETGLOBAL:$showpanel_c(PSS Info):0;COMMAND:'View/Show status pane';COMMAND:'View/Show status pane';REFRESH,,)
Вот так нельзя.
Zin-Uru M
Репутация: 45
С нами: 14 лет 6 месяцев

Пред.След.

Вернуться в Плагины