Panels
и кликните по выпадающему списку ниже.Это старая версия документа!
Страница в разработке…
Новый интерфейс, объединяющий возможности Track Info Panel и Single Columns Playlist с поддержкой собственных панелей. Использует новые графические возможности Windows Vista, и имеет шанс стать популярным интерфейсом. Плагин находится в активной разработке.
$panel(ID,Name,x,y,width,height,options)
$glass(left,right,top,bottom)
Установка стандартна: скачайте последнюю версию и разархивируйте dll-файл в папку компонентов плеера. При апдейте убедитесь, что сохранили старые конфигурации Panels UI, сделайте бекап.
Чтобы открыть окно конфигурации, кликните правой кнопкой по заголовку foobar2000 и выберите Settings… из контекстного меню. Альтернативный вариант: Ctrl+P → Display → PanelsUI → Edit Layout
.
Для облегчения кодирования начиная с версии 0.3.0 в область кодирования встроен редактор с возможностью подсветки на базе scintilla.
Чтобы изменить размер шрифта в области редактирования, нажмите Ctrl+колесо мышки вверх/вниз.
Табуляция и пробелы игнорируются.
Пример:
$if(%isplaying%, Playing , Not Playing )
Если вы хотите добавить пробелы в код, то заключите их в символы апострофа «'».
test ' 'test test
Позволяют вам экономить ресурсы путем разделения кода на разные секции в зависимости от требований по прорисовке изображений или другой информации. Доступно четыре различных типа прорисовки: global, background, per track и per second.
Примечание: It has to be the exact same syntax (capitalization, etc.)
Пример:
// Global $if($meta_test(album artist),$puts(album_is_va,1)) $puts(fontStyle,$font(Calibri,10,bold,0-255-128)) [[...]] // Background $imageabs(,,imagesbground.png,) [[...]] // PerTrack $button(0,0,0,0,0,0,imagesplay.png,imagesplay_hover.png,'Play or Pause',) [[...]] // PerSecond %playback_time% [[...]]
$panel(ID,Name,x,y,width,height,options)
* ID — идентификатор. * Name — название компонента. Для дополнительного синтаксиса обратитесь к выпадающему меню1) в окне конфигурирования Panels UI. * x & y — указывают позицию панели (значения могут быть отрицательными). * width & height — указывают размер панели. * options — пока недоступны.
Следующий пример создаст SCPL2) с координатами 5,5 и размером 200px на 300px. В верхнем правом углу экрана редактирования (где список панелей) появится новая панель «Identification»; нажав на кнопку Configure
, вы сможете редактировать код SCPL.
$panel(Identification,Single Column Playlist,5,5,200,300,)
Добавить свои границы3) со «стеклянным» эффектом Windows Vista:
$glass(left,right,top,bottom)
Вычисление математических функций.
$eval()
Примечание: эта функция может нестабильно работать4) в субпанелях Track Display.
Пример:
$eval(**{**%_width%**/**3**}**+$get(column.offset))
$setpvar(name,value) $getpvar(name)
Пример:
Код:
$getpvar(foo,bar) $setpvar(foo,bar) $getpvar(foo) $getpvar(Foo) $setpvar(foo,2000) $getpvar(foo)<\/code>
На выходе:
[[unknown|pvar]] bar bar 2000
Вы можете настроить три возможных раскладки используя PVAR'ы.
$select($getpvar(display), //Код первой панели , //Код второй панели , //Код третьей панели )
$align(H,V)
Параметр | Определение | Примечание |
---|---|---|
(H)orizontal | Горизонально. Может принимать значения left, center и right (слева, по центру или справа). |
|
(V)ertical | Вертикально. Может принимать значения top, middle и bottom (сверху, по середине или снизу). | top будет проверяться на перезапись. |
Если с помощью этой функции выравнять несколько раз подряд (например, $align(left,middle)
больше чем один раз), то выравнивание будет происходить с той же точки отсчета.
Примечание: эта функция нормально работает только в секции PerSecond.
$alignset() - $alignrel(H,V)
Параметр | Определение | Примечание |
---|---|---|
(H)orizontal | Горизонтально. Может принимать значения left, center и right (слева, по центру или справа). |
|
(V)ertical | Вертикально. Может принимать значения top, middle и bottom (сверху, по середине и внизу). | top будет проверяться на перезапись. |
$alignset() | Устанавливает точку отсчета для $alignrel(H,V) . | Может применяться как замена функции $char(10) , работает для всех следующих $alignrel(H,V) . |
Например:
$alignrel(left,middle) //Линия1_слева// $alignrel(center,middle) //Линия1_по_центру// $alignset() $alignrel(right,middle) //Линия2_справа//
$alignabs(X,Y,w,h,H,V)
Параметр | Определение | Примечание |
---|---|---|
X & Y | Координаты позиции границ прямоугольника в котором будет происходить выравнивание | Значения могут быть отрицательными. |
(W)idth & (H)eight | Ширина и высота прямоугольника в котором будет происходить выравнивание текста. | |
H & V | см. таблицу выше |
Примечание: $alignabs(H,V) может быть использована для относительного выравнивания без проверки на перезапись.
$font(NAME,SIZE,OPTIONS,COLOR)
Параметр | Определение | Примечание |
---|---|---|
NAME | Название шрифта. | |
SIZE | Размер шрифта. | |
OPTIONS | Опции. Могут иметь значение bold, italic, underline, strikeout, nocleartype, glow- и shadow | Также, возможно совмещать значения, например, «bolditalicunderlineglow-» даст комбинацию этих эффектов. Значения по-умолчанию для glow — glowexpand-2 и glowblur-2. |
COLOR | Цвет. Цвет шрифта указывается в пространстве R-G-B. | Например, 255-0-0 даст красный цвет. |
bold italic underline strikeout uppercase lowercase nocleartype fixedwidth-x glow-R-G-B
Используйте SYSCOL-x для использования стандартных цветов из вашей темы Windows (msstyle). X — это номер цвета от 0 до ?.
Следующий пример создаст шрифт Arial, размером 10 пикселей, жирный, с синим эффектом glow и системным цевтом номер #15 (фон):
$font(Arial, 10, bold shadow glow-0-0-255,SYSCOL-15)
$puts(font,$font(Calibri,9,bold,100-100-100))
). Восстанавливать значения необходимо после использования функции $alignrel
, но не перед ней.$get
не оказывает никакого воздействия на $calcwidth/$calcheight
. Эти функции используют последнее реальное значение параметров $font
, даже если их задавали функцией $puts
.$alignabs
.Примеры шрифтов и код:
$imageabs(X,Y,imageName,imageOptions)
Параметр | Определение | Примечание |
---|---|---|
X & Y | Абсолютная позиция изображения с отсчетом от верхнего левого угла. | |
imageName | Относительный путь к изображению из папки, где хранится конфигурация плеера. | Если отключена поддержка профилей, то папка конфигурации будет той же, куда установлен плеер. Однако, если включена поддержка профилей, то папка будет расположена в C:\Documents and Settings\ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\foobar2000\ |
imageOptions | Может включать в себя другие параметры, влияющие на представление изображения. | Описание параметров ниже. |
Параметры imageOptions:
Пример:
$imageabs(0,0,%папка_конфигурации_foobar%\картинки\моя_картинка.png,flow alpha-150)
$imageabs2(areaWidth,areaHeight,imageLeft,imageTop,imageWidth,imageHeight,areaLeft,areaTop,imagePath,imageOptions)
Параметр | Определение | Примечание |
---|---|---|
areaWidth & areaHeight | Параметры, управляющие размером изображения. Позволяют только уменьшать изображение. | |
imageLeft & imageTop | Указывают на позицию уменьшенного изображения от левого верхнего угла. | imageLeft — горизонтальная позиция уменьшенного изображения, imageTop — вертикальная позиция не уменьшенного изображения. Если у вас есть изображение в формате JPEG размером 300×300 пикселей, и с помощью функций areaWidth и areaHeight оно уменьшено до размера 150×150 пикселей (imageLeft = 75 and imageTop = 150), то точка в верхнем левом углу финального изображения будет центром оригинального изображения 300×300. |
imageWidth & imageHeight | Обрезание ширины и высоты, соответственно обрезание сжатого изображения. | Значения, которые больше, чем расстояние от обрезанного угла до границ уменьшенного изображения будут игнорироваться (обрезание как таковое будет пропущено). При значениях равных или больших, чем 32768, изображение вовсе не будет показано. |
areaLeft & areaTop | Расстояние, соответственно, влево и вниз, от верхнего левого угла панели до верхнего левого угла финального уменьшенного и обрезанного изображения. | |
imagePath | Абсолютный или относительный путь к папке с изображениями. | Для относительных путей нужно поставить слеш ('/') в начале пути. (например, «/путь\до\изображение.jpg»). Когда будете использовать относительные пути, учтите, что корневая папка — это инсталляционная папка foobar2000. |
imageOptions | Опции изображения. | Описание параметров ниже. |
Параметры imageOptions:
Более просто:
$imageabs2(Размеры сжатия,Положение угла обрезания,Размеры обрезания,Расположение панели,Путь,Опции изображения)
Пример:
$imageabs2(48,48,0,0,48,48,20,20,C:\Program Files\foobar2000 v0.9\icons\$replace(%filename_ext%,%filename%'.',)_48x48.png,alpha-192)
Уменьшить изображение до 24×24 (изначальный размер 48х48) без обрезания:
$imageabs2(**24**,**24**,0,0,**24**,**24**,20,20,/icons\$replace(%filename_ext%,%filename%'.',)_48x48.png,alpha-192)
$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)
X & Y | Позиция прямоугольника относительно верхнего левого угла. | Если эти параметры пропустить или выставить на ноль, то они заменятся минимальными значениями относительно $pad . |
W & H | Определяет ширину и высоту прямоугольника. | Если эти параметры пропустить или выставить на ноль, то они заменятся минимальными значениями относительно $pad . |
brushColor & penColor | Цвета фона и границы в пространстве R-G-B. | Например, 255-0-0 даст красный цвет. Параметры могут быть отключены с помощью -null (например, brushColor-null). Используйте SYSCOL-x для использования стандартных цветов из вашей темы Windows (msstyle). X — это номер цвета от 0 до ?. |
OPTIONS | Опции прямоугольника. | Описание параметров ниже. |
Параметры OPTIONS:
При использовании сложных эффектов, таких как alpha blending или blurring, прямоугольник рисуется только используя цвет границы. Если вы укажите цвет фона, то возьмется цвет границы.
Пример:
$drawrect(,,,,pencolor-0-0-255 brushcolor-null width-2 alpha-100 blur-2)
Следующие функции возвращают размеры (в пикселях) элемента плейлиста или группы, в зависимости используете ли вы эти функции в item display или group display окна настроек Single Column Playlist:
%_height% %_width%
Следующие функции возвращают индекс (номер) элемента 5) в группе и количество элементов в группе:
%_itemindex% %_itemcount%
Подобным же образом, следующие функции возвращают индекс (номер) элемента 6) в плейлисте и количество элементов плейлиста:
%list_index% %list_total%
Следующие функции возвращают ширину и высоту текста:
$calcwidth(//Text1//) $calcheight(//Text1//)
$calcwidth(%artist%) не возвращает не длину //%artist%//, а скорее ширину текста, хранимого в теге artist.
Если курсор в плейлисте стоит на элементе (треке).
%_selected%
Пример:
$if(%_selected%,$drawrect(2,1,$sub(%_width%,4),16,brushcolor-233-243-247 pencolor-203-233-246))
$fileexists(//Путь к файлу//)
Следующий пример ищет folder.* где расположены музыкальные файлы:
$if($fileexists($replace(%path%,%filename_ext%,folder.*), Yes , No )
Нажмите Alt и перетащите мышкой, либо нажмите Alt+вверх/вниз
$get_global(//переменная//)
Синтакс такой же, как и в Columns UI.
Примечание: для отображения глобальных переменных, возможно, потребуется перезапуск плеера.
!noheader!
Пример:
//В секции 'Group by'//
$if(%tracknumber%,%artist%,!noheader!)
растянуть изображение на несколько рядов можно при помощи %tracknumber%
или %list_index%
, чтобы генерировать вертикальное смещение каждый раз при прорисовке изображения на каждом ряду. Код ниже поместите item display.
Пример Tracknumber:
Этот пример использует %tracknumber% для определения расположения путем умножения высоты ряда на tracknumber:
$imageabs(X OFFSET,$add(STARTING Y OFFSET,$mul(-ROW HEIGHT,%tracknumber%)),IMAGE DIRECTORY/IMAGE.png,)
Например, при высоте ряда 26 пикселей и горизонтальной (x) позицией 0 и начальный вертикальным смещением 25:
$imageabs(0,$add(25,$mul(-26,%tracknumber%)),images/test.png,)
Пример List Index:
Другой алгоритм использует %list_index%
. Этот пример рисует левую и правую границу single playlist column. Изображение шире, чем ширина ряда, поэтому нужно пользоваться техникой смещения.
$puts(art.width,30) $puts(art.height,60)
$puts(art.num,$add($div($mul(%list_index%,%_height%),$get(art.height)),1))
$puts(art.offset,-$sub($sub($mul(%list_index%,%_height%),$mul($sub($get(art.num),1),$get(art.height))),%_height%))
$imageabs(0,$get(art.offset),images\column.left.png,)
$imageabs($sub(%_width%,$get(art.width)),$get(art.offset),images\column.right.png,)
Используем компонент Cwbowron's Title formating (foo_cwb_hooks):
$if($strstr(%cwb_activelist%,'TERM'), SORT BY IF MATCH, ELSE SORT BY THIS)
Например,
$if($strstr(%cwb_activelist%,'-s-'), %rating%, %album%)
Этот код группирует альбом для всех плейлистов, если в плейлисте нет '-s-'. Если -s- есть, то элементы сгруппируются по рейтингу. (Strstr сравнивает две строки чтобы проверить наличие -s- в cwb_activeplaylist)
%album%
$if(%_selected%,$drawrect(0,0,0,0,brushcolor-SYSCOL-13 pencolor-null))
$if(%_focused%,$drawrect(0,0,0,0,brushcolor-null pencolor-SYSCOL-6))
$if(%_selected%,$textcolor(SYSCOL-9),$textcolor(SYSCOL-8))
$padding(4,0)
$align(left,top)%list_index% $align(right,top)%title%
$drawrect(0,0,0,0,brushcolor-130-130-255 pencolor-null)
$padding(4,0)
$align(left,top)$font(,,bold,64-0-0)%album% '['%date%']' $align(right,top)$font(,,bold,0-64-0)%composer%
(Values displayed are always those of the first item, without regard to the values of other items in the group.)