JSplitter v2.1.7.1 / v1.5.10.2 [26.09.2018]

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

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

Сообщение #1 LUR » 21.03.2018, 06:06

Плагин представляет собой панель, совмещающую функциональность сплиттера (контейнера для панелей других плагинов) и хоста скриптов JavaScript.

Особенности функционала:

1. Панели добавляются в сплиттер в произвольном порядке, где с ними можно работать как с обычными окнами Windows, а именно: перемещать, изменять их размер, сворачивать, разворачивать, закрывать. Т.е. при работе с плагином foobar2000 превращается в приложение с MDI интерфейсом (Multi Document Interface). Для точного позиционирования панелей предусмотрено отображение координат и их редактирование "на лету" в заголовке окна панели (полезно при дизайне интерфейса сборки). Также имеется возможность настраивать цвета и шрифт заголовка окон панелей.

1.PNG


2. Поддерживается управление размещением панелей в сплиттере через стандартный "размещатель" Columns UI.
3. В основе хоста скриптов лежат JScript Panel / WSH Panel Mod, соответственно имеет все возможности данных панелей + дополнительные расширения API, касающиеся сплиттера.
4. Поддерживается управление панелями в сплиттере из скриптов. Возможно программно перемещать, скрывать, изменять размер панелей.
5. Имеется специальное API для быстрого создания кнопок в корне панели.

Итог: по своей задумке функционала повторяет Mega Panel Splitter, но с приятными дополнениями в виде ручного управления перемещением панелей и простого API для создания кнопок. Ну а еще может кому-то просто понравится использовать foobar2000 в виде MDI приложения, кто знает.

Дисклеймер: Функциональность сплиттера работает ТОЛЬКО в COLUMNS UI. В DUI данный плагин превращается в обычный JScript Panel / WSH Panel Mod.

СКАЧАТЬ JSplitter v2.1.7.1 (Версия, основанная на JScript Panel v2.1.7.1)
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ
ЗЕРКАЛО
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ

СКАЧАТЬ JSplitter v1.5.10.2 (Версия, основанная на WSH Panel Mod v1.5.10)
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ
ЗЕРКАЛО
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ

Краткое руководство
Для добавления панелей в сплиттер можно воспользоваться 2-мя способами:

1. С помощью контекстного меню панели плагина:

2.PNG
2.PNG (7.04 КБ) Просмотров: 12479


2. С помощью стандартного размещателя Columns UI:

4.PNG


3. С помощью списка панелей, вызываемого из окна конфигурации скрипта. Список панелей можно также использовать для добавления, удаления, переупорядочивания панелей, а также изменения их положения и размеров вручную (двойной щелчок по соответствующему полю):

Снимок.PNG


Все добавляемые панели можно вручную перемещать, изменять их размер, сворачивать, разворачивать, закрывать. У каждого окна в заголовке имеется меню для настройки некоторых опций:

3.PNG


ВНИМАНИЕ! Порядок размещения панелей в сплиттере зависит от глубины их визуального расположения. Самое верхнее окно будет последним в списке. Если вы активируете мышкой какую-либо панель, она переместится в конец списка. Учитываете это при использовании функции GetPanelByIndex (см. ниже).

Show caption - включает/отключает отображение обрамления (бордюра) окна панели
Locked - заблокировать панель. С установленной галочкой окно не реагирует на попытки переместить/изменить/закрыть окно.
Show coords - отобразить координаты. В заголовке окна будут отображены координаты окна, которые будут обновляться по мере перемещения/изменения размера окна.
Support pseudo transparency - некоторым окнам необходима поддержка "прозрачности". С включенной опцией плагин будет заменять фон окна панели на содержимое корневого окна плагина. Т.е. например все, что нарисовано в скрипте с помощью on_paint(gr) будет скопировано в окно.

В режиме отображения координат можно вводить необходимые координаты вручную кликнув по нужной координате или изменить название панели:

7.PNG


Настройки внешнего вида окон панелей расположены здесь:

8.png


Show tools menu for panels' caption - включает/отключает меню для заголовка окон панелей.
Move panels with middle button - позволяет перемещать панели при помощи средней кнопки мыши. Полезно когда бордюр окна скрыт (меню Show caption).
Align panels to edges of each other when dragging - выравнивать панели по краям друг друга при перетаскивании окошек. Полезно при построении интерфейса сборки, где панели должны быть расположены плотно друг к другу.
Show scrollbars for out-of-view panels - экспериментальная функция показа полос прокрутки, если панели выходят из зоны видимости. Прокручиваются только панели, содержимое отрисованного окна не меняется и не скроллится.
Hide panels on close - скрывать окна вместо их закрытия. Полезно для временного скрытия панели с помощью кнопки закрытия окна. Вернуть обратно окна можно в размещателе Columns UI сняв галочку Hidden с панели:

6.PNG



Программный интерфейс
Так как API WSH Panel Mod 1.5.10 не менялся, то он доступен как обычно. Документация к плагину прилагается. Плюс к этому доступны следующие дополнения для объекта window:

window.GetPanel(caption) - получить объект для доступа к панели по тексту заголовка. Будет возвращена первая панель, совпавшая по тексту с аргументом. Текст панели указывается в заголовке. По умолчанию он имеет значение имени плагина панели, но его можно изменить как напрямую в заголовке окна (Show coords -> Click in caption text), так и в размещателе Columns UI (Use custom title)
window.GetPanelByIndex(index) - получить объект для доступа к панели по индексу. Вообще порядок изначально тот, в котором добавляются панели, но так же порядок можно увидеть в размещателе Columns UI, там же его и изменить.
window.CreateButton(x, y, images, hover_images) - создать кнопку в сплиттере. Кнопка будет создана в корне окна и будет размещена по координатам (x, y). Также функции передаются изображения для задания внешнего вида кнопки. Собственно от количества изображений images, переданных функции, будет зависеть количество состояний, которые может принимать кнопка. hover_images - изображения кнопки, отображающиеся при наведении курсора мыши. Функция достаточно гибкая для создания различного вида кнопок, например:
var path = fb.FoobarPath + "themes\\lur\\black\\bio.png";
var hpath = fb.FoobarPath + "themes\\lur\\black\\bio_on.png";
var a = window.CreateButton(0, 0, path, hpath); - создает обычную кнопку с картинкой bio.png, которая меняется на bio_on.png при наведении курсора мыши
var b = window.CreateButton(0, 0, [path, hpath], null); - создает чекбокс-кнопку. Обычное состояние - bio.png, нажатое (галочка установлена) - bio_on.png. Обратите внимание, что изображения для наведения курсора отсутствуют. Обычно чекбоксам они и не нужны, но можно их установить при желании.
var c = window.CreateButton(0, 0, [path1, path2, path3], [path1_on, path2_on, path3_on]); - можно создать кнопку с тремя (и более) состояниями. Они будут циклически переключаться при нажатии. Текущее состояние кнопки можно будет получить с помощью свойства кнопки State (см. ниже).
Также можно создать группу радио-кнопок (взаимоисключающих) с помощью следующей функции:
window.RadioButtons(buttons) - создает группу радио-кнопок. Принимает в качестве аргумента массив кнопок. Каждая кнопка должна иметь не менее двух состояний, иначе функция свалится. Пример:
var a = window.CreateButton(0, 0, [path, hpath], null);
var b = window.CreateButton(30, 0, [path, hpath], null);
window.RadioButtons([a, b]);
Теперь при нажатии на одну кнопку (состояние 1), другая будет "отключаться" (переходить в состояние 0) и наоборот.
window.GetButton(id) - получить кнопку по значению ее идентификатора (Button.ID)
window.RemoveButton(button) - удаляет кнопку
window.HandOnButtons - переключает курсор мыши для всех кнопок либо на руку, либо на стрелку. Данное свойство также действует на все создаваемые впоследствии кнопки. У каждой кнопки можно это свойство менять индивидуально (см. ниже).
Введены вспомогательные методы для управления главным окном плеера.
window.FoobarWindowX - возвращает и устанавливает положение главного окна foobar2000 по оси X.
window.FoobarWindowY - возвращает и устанавливает положение главного окна foobar2000 по оси Y.
window.FoobarWindowWidth - возвращает и устанавливает ширину главного окна foobar2000.
window.FoobarWindowHeight - возвращает и устанавливает высоту главного окна foobar2000.

Объекты, получаемые при помощи функций, указанных выше, имеют следующие свойства и методы:

ПАНЕЛИ (GetPanel, GetPanelByIndex)
Свойства:
(readonly) String Name;
(read, write) String Text;
(read, write) boolean Hidden;
(read, write) boolean Locked;
(read, write) boolean ShowCaption;
(read, write) boolean SupportPseudoTransparency;
(read, write) int X;
(read, write) int Y;
(read, write) int Width;
(read, write) int Height;
(read, write) boolean TopMost;
(read, write) boolean EraseBackground;
Методы:
void Show(show = true);
void Move(x, y, width, height, repaintParent = false);

КНОПКИ (CreateButton, GetButton)
Свойства:
(readonly) ushort ID;
(read, write) int X;
(read, write) int Y;
(read, write) int Width;
(read, write) int Height;
(read, write) boolean Hidden;
(read, write) boolean HandOnHover;
(writeonly) Function Click;
(read, write) uint State;
Методы:
void Show(show = true);
void Move(x, y);
void Resize(width, height);

Назначение свойств и методов объектов довольно прозрачно. При назначении ширины или высоты кнопки в ноль, ширина и высота автоматически высчитываются (как и просто при создании кнопки) из максимальной ширины и высоты изображений. Отдельного упоминания заслуживает обработка нажатий кнопок. Она осуществляется 2-мя
путями:

1. При помощи задания свойства Click объекта кнопки:
var a = window.CreateButton(0, 0, [path, hpath], null);
a.Click = function() { do_something(); }

2. При помощи специального callback'a, который вызывается при нажатии ВСЕХ кнопок, созданных с помощью window.CreateButton:
function on_button_click(id) - принимает идентификатор кнопки, который можно получить через свойство кнопки ID.
switch(id) {
case a.ID:
do_something();
break;
}


ПРИМЕЧАНИЕ: В отличие от панелей, существующих вне зависимости от скрипта, кнопки создаются только программно с помощью скрипта и всегда уничтожаются при выгрузке скрипта.


Пример конфигурации
Распаковать в папку с чистым портативным фубаром.
СКАЧАТЬ / ЗЕРКАЛО

Пример от zeremy

История версий
Версия 2.1.7.1 [26.09.2018]
● JScript Panel 2.1.7.1
● Введены вспомогательные методы для управления главным окном плеера.
window.FoobarWindowX - возвращает и устанавливает положение главного окна foobar2000 по оси X.
window.FoobarWindowY - возвращает и устанавливает положение главного окна foobar2000 по оси Y.
window.FoobarWindowWidth - возвращает и устанавливает ширину главного окна foobar2000.
window.FoobarWindowHeight - возвращает и устанавливает высоту главного окна foobar2000.

Версия 2.1.6.3 / 1.5.10.2 [25.08.2018]
● Улучшена производительность прорисовки панелей: устранено мерцание за счет отключения прорисовки фона панели операционной системой.
● API: добавлено свойство EraseBackground для панелей, указывающее позволять ли операционной системе отрисовывать фон панели. Предназначено для панелей, которые не могут отобразить свой фон самостоятельно. По умолчанию свойство равно false для всех панелей кроме следующих панелей Columns UI: Buttons, Filter Search, Menu, Seekbar, Volume.

Версия 2.1.6.2 [10.08.2018]
● Исправлена работоспособность конфигурации JSplitter в Columns UI Layout (кнопка Configure)
● Мелкие улучшения Panel list
● Убран раздел статистики JScript Panel из свойств трека

Версия 2.1.6.1 [03.08.2018]
● Порядок размещения панелей в сплиттере теперь привязан к глубине их расположения. Самое верхнее окно - последнее в списке.
● Добавлено свойство TopMost для объекта панели. Установка в true переносит панель на самый верх.
● Теперь изображения на кнопках масштабируются при изменении размера кнопок.
● Исправлено падение обработчика Click для кнопок
● Создано окно управления списком панелей для просмотра их размеров и редактирования всех данных на месте. Доступ: правая кнопка мыши на сплиттере -> Изменить скрипт... -> Панели.

Версия 2.1.6.0 [30.07.2018]
● Версия, основанная на JScrpt Panel 2.1.6

Версия 1.5.10.1 [24.05.2018]
● Слегка уменьшено мерцание при перерисовке панелей

Версия 2.1.4.1 [18.05.2018]
● Исправлена ошибка "Load Scintilla failed."

Версия 2.1.4 [17.05.2018]
● Версия, основанная на JScrpt Panel 2.1.4

Версия 1.0.4 [28.03.2018]
● Исправлено: в Windows XP свойства fb.FoobarPath, fb.ProfilePath возвращали пустую строку.
● Изменение API: теперь window.GetPanel принимает в качестве аргумента текст заголовка панели, window.GetPanelByIndex - индекс панели

Версия 1.0.3 [22.03.2018]
● Исправление ошибок функционала выравнивания панелей

Версия 1.0.2 [22.03.2018]
● Исправление ошибок функционала выравнивания панелей

Версия 1.0.1 [21.03.2018]
● Добавлено выравнивание/прилипание панелей по краям друг друга, а также к границам окна самого плагина при перетаскивании (есть опция в настройках)

Версия 1.0 [20.03.2018]
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет


Сообщение #121 megane68 » 16.07.2018, 16:38

LUR, ага, а я смотрел в настройках layout.
А как на счёт изменения размера при убранном заголовке?

Добавлено спустя 25 минут 9 секунд:
И ещё, при присвоении пользовательского названия панели в layout, желательно, чтобы она и в layout переименовывалась. А то начинается путаница, где какая панель.
megane68 M
Мастер
Репутация: -22
С нами: 9 лет 10 месяцев

Сообщение #122 LUR » 17.07.2018, 02:27

megane68 писал(а):И ещё, при присвоении пользовательского названия панели в layout, желательно, чтобы она и в layout переименовывалась. А то начинается путаница, где какая панель.
Это невозможно, к сожалению. За это отвечает Columns UI. Впрочем всегда так было для всех сплиттеров.
megane68 писал(а):ага, а я смотрел в настройках layout.
Еще раз замечу, что страница настроек Layout не моя и принадлежит Columns UI, я просто попытался максимально в нее вписаться, соблюдая их API

Добавлено спустя 46 секунд:
megane68 писал(а):А как на счёт изменения размера при убранном заголовке?
Хз, подумаю над этим.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #123 megane68 » 17.07.2018, 07:16

LUR писал(а):Это невозможно, к сожалению. За это отвечает Columns UI. Впрочем всегда так было для всех сплиттеров.
Не знаю как в других сплиттерах, а в PSS это реализовано.
Спойлер
Изображение
LUR писал(а):Хз, подумаю над этим.
Ок!
megane68 M
Мастер
Репутация: -22
С нами: 9 лет 10 месяцев

Сообщение #124 LUR » 17.07.2018, 09:50

megane68 писал(а):Не знаю как в других сплиттерах, а в PSS это реализовано.
Нет. В PSS «это» НЕ реализовано. В Layout там тоже самое, я это имел в виду. А то, что там реализовано своё отдельное окно для настройки свойств панелей, это уже другой вопрос.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #125 megane68 » 17.07.2018, 18:57

LUR писал(а):то, что там реализовано своё отдельное окно для настройки свойств панелей, это уже другой вопрос.
Ну да в общем. Там хотя бы можно посмотреть. где какая панель, и не лазить по скриптам для ориентира.
megane68 M
Мастер
Репутация: -22
С нами: 9 лет 10 месяцев

Сообщение #126 seriousstas » 17.07.2018, 22:29

megane68 писал(а):не лазить по скриптам для ориентира
У MPS (это похожий на обсуждаемый сплиттер) есть кнопочка Splitter, где все наглядно:
Вложения
Снимок экрана (90).png
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 97
С нами: 3 года 10 месяцев

Сообщение #127 LUR » 18.07.2018, 01:08

seriousstas, знаю) не дошли руки как видите
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #128 LUR » 30.07.2018, 05:58

Версия 2.1.6.0 [30.07.2018]
● Версия, основанная на JScrpt Panel 2.1.6

К сожалению на реализацию просьб не было времени, свободное время отдал русификации свежего фубара. Так что пока обновляю только JScrpt Panel.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #129 LUR » 03.08.2018, 04:39

Версия 2.1.6.1 [03.08.2018]

● Порядок размещения панелей в сплиттере теперь привязан к глубине их расположения. Самое верхнее окно - последнее в списке.
● Добавлено свойство TopMost для объекта панели. Установка в true переносит панель на самый верх.
● Теперь изображения на кнопках масштабируются при изменении размера кнопок.
● Исправлено падение обработчика Click для кнопок
● Создано окно управления списком панелей для просмотра их размеров и редактирования всех данных на месте. Доступ: правая кнопка мыши на сплиттере -> Изменить скрипт... -> Панели.

Добавлено спустя 7 минут 27 секунд:
Тестируем, предлагаем что не так.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #130 LUR » 03.08.2018, 20:18

megane68 писал(а):А как на счёт изменения размера при убранном заголовке?
LUR писал(а):LUR писал(а):
Хз, подумаю над этим.
Ок!
Впрочем такая функциональность можно сказать есть. Если изменить толщину рамки и заголовка в единицу, то будет как раз нужная функциональность. В любом случае нужна рамка для отслеживания мыши.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #131 macarych » 07.08.2018, 10:10

Дима, привет, сейчас будет нубский вопрос от меня.
В PSS мы имеем базовый сплиттер куда складываем нужные компоненты и сплиттеры в виде отдельных панелей, сиречь подключаемых библиотек . Посмотрел пример, посмотрел твою сборку и увидел внешне похожую конструкцию: базовый ява-сплиттер куда помещаем компоненты и другие ява-сплиттеры. Почему компоненты которые являются по сути строками кода на JavaScript не добавляются блоками кода в код базового сплиттера?
А если так можно делать, добавлять код кодом, то предполагаю тогда надо решать вопрос отлавливания мышиным курсором, секторов определяемых различными блоками кода, а?
macarych M
Гуру
Аватара
Репутация: 329
С нами: 9 лет 11 месяцев

Сообщение #132 LUR » 07.08.2018, 11:11

macarych, все верно. Сделано просто для удобства, модульности так сказать, да и потом проще панельку, выполняющую какие-то базовые функции, перенести куда-нибудь в другое место или вообще в другую сборку. А ещё, представь себе панель, где каждую секунду по таймеру отрисовывается инфа и вызывается window.Repaint(). Оно всю панель перерисовывает, а зачем мне эти качели для всего интерфейса, правильно?)

Добавлено спустя 7 минут 59 секунд:
В моей сборке именно для этого и присутствуют три отдельных панели в базовом, потому что в них у каждого свои таймеры по отрисовке.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #133 macarych » 07.08.2018, 11:28

Согласен. И тогда, чтоб мне понять стоит-ли мне менять привычную схему сборки на такую как у тебя (с учетом что знаний у меня по яваскрипт - первый класс, вторая четверть и я потрачу много времени) поясни в чем плюсы?
macarych M
Гуру
Аватара
Репутация: 329
С нами: 9 лет 11 месяцев

Сообщение #134 LUR » 07.08.2018, 11:48

macarych, для тебя наверное ни в чем, если не хочешь учить JS. Я просто всей душой ненавижу в PSS три вещи:
1. Невозможность визуально проектировать интерфейс: переносить панели руками и сразу видеть результат.
2. Программировать что-либо на Петином языке с кучей скобок, где вместо a+b надо писать $sum($get(a),$get(b)), это просто пипец.
3. Неотключаемые контекстные меню PSS, которые позволяют каждому нубу убить в один клик интерфейс и не знать что с эти делать. Или даже мне по неосторожности закрыть какую-нибудь панель и потерять ее настройки, ну и т.д.

Добавлено спустя 17 минут 24 секунды:
А так просто JS является все-таки полноценным языком программирования, у которого в панели есть доступ к различным API плеера, что делает такие панельки очень гибкими, можно навертеть всякого. Пример: мой регулятор громкости. Казалось бы мелочь, но в таком виде никак по другому не реализуемая.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #135 macarych » 07.08.2018, 12:12

Спасибо за развернутый ответ, все прояснилось )
macarych M
Гуру
Аватара
Репутация: 329
С нами: 9 лет 11 месяцев

Сообщение #136 seriousstas » 07.08.2018, 14:08

LUR
4.RefreshPSS через плей/паузу :insane:
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 97
С нами: 3 года 10 месяцев

Сообщение #137 vladj » 07.08.2018, 17:02

LUR писал(а): контекстные меню PSS, которые позволяют каждому нубу убить в один клик интерфейс и не знать что с этим делать.
А так просто JS является все-таки полноценным языком программирования, у которого в панели есть доступ к различным API плеера, что делает такие панельки очень гибкими, можно навертеть всякого.
Нубы (и я к ним отношусь) вынуждены ехать на сборке не умея ничего изменить, всё только как автор для себя задумал. Для раздач большому кол-ву народа это может и пользительно, ну а если кому-то что-то чуток не понравилось, засада. Вам со Стасом может и интересней всё на новоявленных скриптах делать, а мне печалька...и видео смотрел и бамбук курил...видать не в затяжку, ибо не доходит :smile: Старожилам на PSS проще, имхо, да и никто не отменял восстановление из дефолтного .fcl интерфейса если что-то напортачат.
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 358
С нами: 8 лет 10 месяцев

Сообщение #138 LUR » 07.08.2018, 17:15

vladj, позиция твоя ясна. На PSS проще обычному юзеру разметку делать, в поля вбил нужные зависимости и все. JS более привычен для знакомых с программированием людей. Для меня он в разы удобнее и гибче, чем PSS.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Сообщение #139 vladj » 07.08.2018, 17:40

LUR писал(а): JS более привычен для знакомых с программированием людей. Для меня он в разы удобнее и гибче, чем PSS.
Конечно не моё дело, но думаю справедливо было-бы оставлять в шапке темы по твоей сборке ссылку на одну из предыдущих, построенных по старинке.
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 358
С нами: 8 лет 10 месяцев

Сообщение #140 LUR » 07.08.2018, 17:46

vladj писал(а):но думаю справедливо было-бы оставлять в шапке темы по твоей сборке ссылку на одну из предыдущих
Я так не думаю. За время существовании темы по моей сборке была только одна несколько раз повторяющаяся просьба по изменению интерфейса: изменение ширины боковой панели. Я ее реализовал в последней версии, так что никуда лезть не нужно, берешь и перетягиваешь как хочешь. Остальные, не связанные с изменением интерфейса функции сборки остались на месте. И я почти уверен, что просьб не увеличится от того, что я перенес ее реализацию на JS.

Добавлено спустя 1 минуту 51 секунду:
Да и проще человеку переделать скрипт и кинуть, чтобы он заменил, чем скринить настройки PSS, куда залезть что поменять. Вот например как вчера с масштабированием сборки у человека был вопрос. Поменял скрипт, вывел одну переменную и все: она за все отвечает.
LUR M
Автор темы, Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 229
С нами: 6 лет

Пред.След.

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

Кто сейчас на форуме (по активности за 10 минут)

Сейчас этот раздел просматривают: 1 гость