Скрипты для foo_uie_wsh_panel_mod

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #1021 MC Web » 24.05.2016, 14:40

seriousstas, пока поставил 1500 мс. Погоняю, дальше посмотрим. Спасибо.

Добавлено спустя 5 часов 1 минуту:
При 1500 мс иногда подтормаживало, выставил сразу 3500 - пока нормально.
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #1022 seriousstas » 25.05.2016, 00:15

MC Web:seriousstas, пока поставил 1500 мс. Погоняю, дальше посмотрим. Спасибо.
При 1500 мс иногда подтормаживало, выставил сразу 3500 - пока нормально.
3500 это то (мин.) время при котором нормально работала смена размеров "на лету" в скрипте Марка .
У меня вот была ещё другая проблема . Мод (био) содержал лишний репаинт , как в этой функции ,
так и в других, убрал и того , что на видео - уже нет ..
Бегущая строка (также от kgena_ua) оказалась лучшим отладчиком, сейчас есть небольшое малозаметное подтормаживание
только при выводе картинки - один раз . Надеюсь как-нибудь kgena_ua ещё её модернизирует , что-б так не зависила от других таймеров ..
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 9 месяцев

Сообщение #1023 vladj » 25.05.2016, 00:38

У кого-то есть скрипт часов типа скрипта от Hunter-а , без стрелок, дата , день недели, время ?
Скрипт Hunter-а не работает на современных wsh панелях. Ругается на строчку
var clock_timer = window.CreateTimerInterval(1000);
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 9 месяцев

Сообщение #1024 seriousstas » 25.05.2016, 04:50

Современная это JS ? пробовал из этого набора :
/viewtopic.php?p=56233#p56233
под WSH 1.6.0 - без проблем
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 9 месяцев

Сообщение #1025 vladj » 25.05.2016, 11:28

seriousstas:под WSH 1.6.0 - без проблем
Да, никаких проблем. Спасибо за подсказку. С моим зрением время на сикбаре не вижу, а тут поупражнявшись
минут 20 со скриптом сделал так, как нужно для себя. Стрелочник чуток приподнял и под ним пристроил часики.
И мои спасибки естественно Геннадию UA за модифицированный скрипт. Пока так, потом подстрою если что не влезет.
Вложения
Clock.jpg
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 9 месяцев

Сообщение #1026 MC Web » 25.05.2016, 15:06

seriousstas:Бегущая строка (также от kgena_ua) оказалась лучшим отладчиком, сейчас есть небольшое малозаметное подтормаживание только при выводе картинки - один раз .
Смотря какое значение скорости прокрутки Speed Scroll выставлено. При меньшем значении (большей скорости) все "задержки" при работе в других скриптах становятся более заметны. В частности поэтому и отказался от JSPlaylist, как не подбирал, все равно было заметно.
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #1027 seriousstas » 25.05.2016, 23:26

JSPlaylist
duzzy делал много изменений - попробуй его версию ..
К примеру - отрисовка миниатюр начинается после отпускания ЛКМ .
В авто - он не заменим . Да и нет ничего лучше на сегодня по функционалу . Тут большая задумка http://br3tt.deviantart.com/art/JS-Smooth-Playlist-571375892 , но без сортировки папками ..
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 9 месяцев

Сообщение #1028 MC Web » 26.05.2016, 00:09

seriousstas, в ходе проб и ошибок пришел к выводу:
лучше использовать "нормально" работающие компоненты, а если уж какого то функционала или компонента не хватает, тогда скрипты для foo_uie_wsh_panel_mod.
Сейчас вроде добился совместной работы всех панелей в сборке, без всяких фокусов и тормозов. Меня все устраивает.
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #1029 megane68 » 26.05.2016, 02:12

MC Web, никогда не любил wsh panel. Одни глюки от её скриптов и тормоза.
Другое дело js panel. Могла бы стать прекрасной заменой, но её только для Columns UI сделали. И почему-то сделали очень неудобной в плане функционала, взяв как шаблон ту же wsh panel.
megane68 M
Репутация: -18
С нами: 15 лет 9 месяцев

Сообщение #1030 MC Web » 26.05.2016, 16:03

megane68, только ма-а-аленькая поправка, если речь идет о JScript Panel.
Дело в том, что компонент JScript Panel основан на WSH Panel Mod с изменениями из последних версий, т.е. взяли WSH Panel Mod, добавили несколько новых функции и переименовали. Всё.
Цель создания данного компонента, JScript Panel, заключалась в том, чтобы сохранить работоспособность старых скриптов, которые будут работать на WSH Panel Mod и новых скриптов, которые соответственно будут работать на JScript Panel.
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #1031 megane68 » 26.05.2016, 19:29

MC Web, то-то я думаю, нафига они такой убогий функционал передрали с wsh panel?
Совместимость это конечно хорошо, только вот некоторые вещи лучше не совмещать, если делать по нормальному.
Надо бы создать тему по JS Panel.
megane68 M
Репутация: -18
С нами: 15 лет 9 месяцев

Сообщение #1032 seriousstas » 27.05.2016, 00:04

никогда не любил wsh panel. Одни глюки от её скриптов и тормоза
MC Web, то-то я думаю, нафига они такой убогий функционал передрали с wsh panel?
автор marc2003
Вносил изменения - затем просто решил переименовать .
Отличия от WSH по большей части касаются работы с библиотекой . megane68 Чего не хватает по-функционалу ?
Марк - общительный парень - можно ему собрать предложения :smoke:
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 9 месяцев

Сообщение #1033 megane68 » 27.05.2016, 01:58

seriousstas:Отличия от WSH по большей части касаются работы с библиотекой .
Да это понятно.
seriousstas:Чего не хватает по-функционалу ?
Чисто для лохов, не хватает удобного графического интерфейса настроек, куда бы перемещались все настраиваемые параметры.
Жаль, что для дефолтного интерфейса не подходит как wsh panel.
Я не программист, но в некоторых случаях наверное слишком многого хотят от wsh и поэтому некоторые скрипты только добавляют тормоза.
Кстати, я что- то не понял как после в окно редактирования JS Panel попасть?
megane68 M
Репутация: -18
С нами: 15 лет 9 месяцев

Сообщение #1034 vladj » 27.05.2016, 12:00

megane68:Одни глюки от её скриптов и тормоза
Глюков и тормозов никогда не наблюдал. Скрипты от Марка не любил когда на ХР ехал,
частенько просто не запускались. Сейчас на 8.1 вспоминаю это как дурной сон. Скрипты типа WSH рулят :smile:
seriousstas:можно ему собрать предложения
Нереально...настолько хотелки у всех нас разные. Твоя крайняя сборка заняла у меня место основной
как в машине, так и дома. Не нужные в машине (для меня) скрипты и вещи типа плейлистов, лого инет станций и т.д.
просто не запускаю (инета в машине нет), лежат и есть - пить не просят. Зато дома только ей и слушаю инет радио.
Пока меня напрягает только одно, мега панель сплиттер, где я даже ни одной кнопочки не могу убрать или заменить
её функционал на нужный мне, например кнопку отвечающую за shuffle ибо рандомно и ещё как-то не слушаю вообще.
Или например панель спектрометра...всегда считал, что она растянутая по вертикали на всё окно ущербно смотрится,
а уменьшить по высоте и там-же под ней пристроить панельку с часами (как на скрине выше, где совместил со стрелочным)
никак способ не найду. На PSS панелях всё было намного проще. В любом случае спасибо ещё раз за сборку, пользуюсь с удовольствием
даже не смотря на то, что мало что изменить могу. На изучение настройки мега панель сплиттера прошу не отсылать, мозги уже не те и
пусть это выглядит наглым, но элементарно не хочется оставшееся в жизни время терять на это.
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 9 месяцев

Сообщение #1035 duzzy » 27.05.2016, 12:33

megane68, По JS Panel, все прекрасно работает как в DUI так и в CUI можно почитать в Требования и установка, по изменениям можно почитать CHANGELOG...
Марк делал компонент для себя и своих нужд, но в итоге решил им поделится, в редактор и настройки панели можно попасть точно так же как и в WSH Panel(правая кнопка мыши...Configure, Properties).
но в некоторых случаях наверное слишком многого хотят от wsh

Это очень правильная мысль, Java Script она такая Java)))... чем больше панель тем медленней она работает и больше ест ресурсы.

По тормозам, насколько я понимаю нужно просто правильно организовывать работу таймеров(не делать их глобальными) и все будет нормально работать и как можно меньше использовать window.Repaint()(полная перерисовка окна) используя вместо него window.RepaintRect(x, y, w, h)(перерисовка указанной зоны окна), в качестве примера можно привести скрипты Бретта, некоторые из его творений гигантского размера, но прекрасно работают даже на слабеньких нетбуках.
Скрипты хороши тем что их можно настроить под себя, компоненты не дают такой полноты и многообразия при изменении, к тому же некоторые компоненты работают намного медленней чем скрипты... например для сравнения JSSB vs Facets.
Я уже приличное время использую скрипты разных авторов у себя в сборках как дома так и в авто, и желания использовать компоненты нет и едва ли оно появится.

Еще из собственного опыта могу добавить что большую роль играет ОС и железо, к примеру на ХР произоводительность скриптов в разы лучше чем на современных ОС 7, 8, 8.1, 10... легко проверить на слабом компе, но к сожалению не весь функционал работает в ХР с новыми модификациями WSH Panel, минимальные требования для JS Panel вин 7... последняя версия WSH Panel от Марка работающая на ХР 1.5.10. А 7-ка это что то среднее между новыми ОС и ХР наилучший вариант для не совсем нового железа.

Вот немного ссылок на свежие скрипты JS...

Библиотека от WilB

Библиотека от thanhdat1710

Набор от Бретта... плейлист... менеджер... библиотека...

Мод скрипта плейлиста Бретта(JSPlaylist) от Марка для JS Panel...
duzzy
Репутация: 25
С нами: 9 лет 4 месяца

Сообщение #1036 MC Web » 27.05.2016, 13:15

duzzy:Скрипты хороши тем что их можно настроить под себя, компоненты не дают такой полноты и многообразия при изменении
Если есть определенные знания в программировании и время, тогда да. Большинству пользователей это не совсем подходит.
duzzy:Я уже приличное время использую скрипты разных авторов у себя в сборках как дома так и в авто, и желания использовать компоненты нет и едва ли оно появится.
Тут вопрос спорный. Я для себя сделал другой вывод - минимизация скриптов. В большинстве случаев более стабильная работа и лучшая совместимость на разных ПК.

Не хочу никого переубеждать. каждый делает выводы исходя из своего опыта.
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #1037 duzzy » 27.05.2016, 14:37

MC Web,
Большинству пользователей это не совсем подходит.
Согласен многие и не особо хотят лезть в код и заморачиваться...(хотят скачать запустить и чтоб все сразу заработало :smile:)
С другой стороны я не совсем понимаю таких людей, часто с ними сталкивался, хочет использовать конструктор но не хочет понять как он устроен и как его использовать и настраивать для себя... и тут возникает вопрос зачем его тогда использовать если не хочешь напрягать мозг... Можно же попросить чтоб помогли, объяснили и немного рассказали дали примеры, но нет начинаются громкие высказывания мол это у вас г...но, не работает, настроить не возможно, постоянно ошибки и т.д и т.п.
И иногда думаешь а нужно ли вообще что то выкладывать из того что переделывал... ведь понять и оценить способно не так много людей... ковыряться(менять что то) в чужом коде это почти сравнимо с чтением книги на языке котором ты не владеешь...

В сборках(в темах) дома и в авто-сборке использую скромный набор, плейлист от Бретта(переделанный под мои потребности), библиотеку от WilB(так же переделка), графическую библиотеку от thanhdat1710(так же переделана) и пару визуализаций(Милк-дроп и Спектрум), все это живет в Мега-сплиттере в котором располагается управление(плей/пауза, след.,пред.,трек, порядок проигрывания, и вызов нужных панелей). Замена панелей/скриптов без проблемная не нужно даже в код лезть(зашел в настройки сплиттера передвинул панель на нужное место и все)...
Это для себя естественно, ну а если для целей распространения сборки, то да согласен и ты прав, наверно лучше использовать более совместимые вещи, будет меньше вопросов от пользователей не особо владеющих навыками редактирования/изменения скриптов.
duzzy
Репутация: 25
С нами: 9 лет 4 месяца

Сообщение #1038 megane68 » 27.05.2016, 15:08

duzzy:в редактор и настройки панели можно попасть точно так же как и в WSH Panel(правая кнопка мыши...Configure, Properties).
После добавления скрипта Library True, Configure нет в меню. Приходится через настройки Layout заходить.
megane68 M
Репутация: -18
С нами: 15 лет 9 месяцев

Сообщение #1039 vladj » 27.05.2016, 15:25

duzzy:но не хочет понять как он устроен и как его использовать и настраивать для себя...
Хочет понять это одно, может понять это другое, есть тупенькие (как я например) и что значит зачем использовать ?
Нравится потому что скрипт в работе, а лишнее забодаешся удалять из него...одно зацеплено за другое :smile:
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 9 месяцев

Сообщение #1040 megane68 » 27.05.2016, 15:25

MC Web:Тут вопрос спорный. Я для себя сделал другой вывод - минимизация скриптов. В большинстве случаев более стабильная работа и лучшая совместимость на разных ПК.

Не хочу никого переубеждать. каждый делает выводы исходя из своего опыта.

У меня давнишняя мечта, собрать свою сборку на DUI. Ессно при знани VBS, JS и т. д., я бы сделал всё давно на WSH.
Но к сожалению я не программист, а все скрипты, которые я перепробовал для плейлистов и. т. д., все ужасно глючные или же скрипт элементарно не вписывается в концепцию сборки.
А под CUI лучше использовать готовые компоненты. Они как правило стабильно работают.
В общем до сих пор ничего нормального из этого не получилось.

P.S. Вот сейчас например обновил WSH до версии 1.5.10 и одна панелька где находится меню плеера, отвалилась.

Добавлено спустя 9 минут 50 секунд:
Вот кто-нибудь может переписать скрипт, чтобы на WSH 1.5.10 при выборе MENU панель не уходила в креш? Если что, сборка в подписи.
Код: Выделить всё
// ==PREPROCESSOR==
// @name "DarkOne Menubar Panel"
// @version "3.0"
// @author "tedGo, based on a sample by T.P Wang"
// @import "%fb2k_path%themes\DarkOne\Others\WSH Scripts\DO Global Script.js"
// @import "%fb2k_path%themes\DarkOne\Others\WSH Scripts\DO Global Button Script.js"
// ==/PREPROCESSOR==

window.MinWidth = 140;

// ----- CREATE BUTTONS --------------------------------------------
var imgPath = configPath + "Buttons\\Others\\";
var p_arr = new Array("Default", "Repeat (Playlist)", "Repeat (Track)", "Random", "Shuffle (tracks)", "Shuffle (albums)", "Shuffle (folders)");
var g_img = gdi.Image(configPath + "Images\\Separator1.png");
var sac_on = {normal: imgPath + "SACon.png", hover: imgPath + "SACMH.png"};
var sac_off = {normal: imgPath + "SACoff.png", hover: imgPath + "SACMH.png"};
var top_on = {normal: imgPath + "TOPOn.png", hover: imgPath + "TOPOnH.png"};
var top_off = {normal: imgPath + "TOPOff.png", hover: imgPath + "TOPOnH.png"};

function createPBOButton() {
   return new Button(112, 8, 18, 9, {normal: configPath + "Buttons\\Playback Order\\" + p_arr[fb.PlaybackOrder] + ".png"}, getPBOMenu, "Playback Order: " + p_arr[fb.PlaybackOrder]);
}

function createSACButton() {
   return new Button(87, 7, 18, 18, fb.StopAfterCurrent ? sac_on : sac_off, function () {fb.RunMainMenuCommand("Playback/Stop After Current");}, fb.StopAfterCurrent ? "Reset stop-after-current" : "Stop-after-current");
}

function createTOPButton() {
   return new Button(ww - 95, 5, 22, 22, fb.AlwaysOnTop ? top_on : top_off , function () {fb.RunMainMenuCommand("Always On Top");}, fb.AlwaysOnTop ? "Reset always-on-top" : "Always-On-Top");
}


Buttons.MEN = new Button(12, 7, 28, 10, {normal: imgPath + "Menu.png", hover: imgPath + "MenuMH.png"}, getMainMenu);
Buttons.NPL = new Button(64, 7, 18, 18, {normal: imgPath + "NowPlaying.png", hover: imgPath + "NowPlayingMH.png"}, function () {fb.RunMainMenuCommand("Activate now playing");}, "Activate Now Playing");
Buttons.SAC = createSACButton();
Buttons.TOP = createTOPButton();
Buttons.PBO = createPBOButton();
Buttons.EXT = new Button(ww - 25, 3, 22, 22, {normal: imgPath + "ExitA.png", hover: imgPath + "ExitB.png"}, function(){fb.RunMainMenuCommand("Exit");}, "Exit");
Buttons.MAX = new Button(ww - 50, 6, 22, 22, {normal: imgPath + "BC.png", hover: imgPath + "BCMH.png"}, function(){fb.RunMainMenuCommand("Maximize/Restore");}, "Maximize/Restore");
Buttons.MIN = new Button(ww - 75, 6, 22, 22, {normal: imgPath + "MinimizeA.png", hover: imgPath + "MinimizeB.png"}, function(){fb.RunMainMenuCommand("Hide");}, "Minimize");
Buttons.DSP = new Button(140, 8, 22, 22, {normal: imgPath + "Equalizer.png", hover: imgPath + "Equalizer 1.png"}, function(){fb.RunMainMenuCommand("DSP settings/Preferences");}, "DSP settings/Default");

// ----- CREATE MENUS ----------------------------------------------
function getMainMenu(x, y) {
   x = Buttons.MEN.left;
   y = Buttons.MEN.top;

   var a = window.CreatePopupMenu();
   var b = fb.CreateContextMenuManager();

   b.InitNowPlaying();

   var c1 = window.CreatePopupMenu();
   var c2 = window.CreatePopupMenu();
   var c3 = window.CreatePopupMenu();
   var c4 = window.CreatePopupMenu();
   var c5 = window.CreatePopupMenu();
   var c6 = window.CreatePopupMenu();
   var c7 = window.CreatePopupMenu();

   var d1 = fb.CreateMainMenuManager();
   var d2 = fb.CreateMainMenuManager();
   var d3 = fb.CreateMainMenuManager();
   var d4 = fb.CreateMainMenuManager();
   var d5 = fb.CreateMainMenuManager();
   var d6 = fb.CreateMainMenuManager();

   a.AppendMenuItem(16, c1.ID, "File");
   a.AppendMenuItem(16, c2.ID, "Edit");
   a.AppendMenuItem(16, c3.ID, "View");
   a.AppendMenuItem(16, c4.ID, "Playback");
   a.AppendMenuItem(16, c5.ID, "Library");
   a.AppendMenuItem(16, c6.ID, "Help");
   fb.IsPlaying && a.AppendMenuItem(16, c7.ID, "Now Playing");

   d1.Init("file");
   d2.Init("edit");
   d3.Init("View");
   d4.Init("playback");
   d5.Init("library");
   d6.Init("help");

   d1.BuildMenu(c1, 1, 200);
   d2.BuildMenu(c2, 201, 200);
   d3.BuildMenu(c3, 401, 200);
   d4.BuildMenu(c4, 601, 300);
   d5.BuildMenu(c5, 901, 300);
   d6.BuildMenu(c6, 1201, 100);

   b.InitNowPlaying();
   b.BuildMenu(c7, 1301, -1);
   ret = 0;

   ret = a.TrackPopupMenu(x, y);

   switch (true) {
   case(ret >= 1 && ret < 201):
      d1.ExecuteByID(ret - 1);
      break;

   case (ret >= 201 && ret < 401):
      d2.ExecuteByID(ret - 201);
      break;

   case (ret >= 401 && ret < 601):
      d3.ExecuteByID(ret - 401);
      break;

   case (ret >= 601 && ret < 901):
      d4.ExecuteByID(ret - 601);
      break;

   case (ret >= 901 && ret < 1201):
      d5.ExecuteByID(ret - 901);
      break;

   case (ret >= 1201 && ret < 1301):
      d6.ExecuteByID(ret - 1201);
      break;

   case (ret >= 1301):
      b.ExecuteByID(ret - 1301);
      break;
   }

   a.Dispose();
   b.Dispose();
   d1.Dispose();
   d2.Dispose();
   d3.Dispose();
   d4.Dispose();
   d5.Dispose();
   d6.Dispose();
}

function getPBOMenu(x, y) {
   x = Buttons.PBO.left;
   y = Buttons.PBO.top;

   var a = window.CreatePopupMenu();
   var idx;

   for (var i = 0; i < p_arr.length; i++) {
      a.AppendMenuItem(0, 1 + i, p_arr[i]);
   }
   a.CheckMenuRadioItem(1, 7, fb.PlayBackOrder + 1);

   idx = a.TrackPopupMenu(x, y);
   if (idx >= 1 && idx <= 7) fb.PlaybackOrder = idx - 1;

   a.Dispose();
}

// ----- DRAW ------------------------------------------------------
function on_paint(gr) {
   if (!window.IsTransparent) {
      gr.FillSolidRect(0, 0, ww, wh, ui_backcol);
      gr.FillGradRect(0, 0, ww, 24, 90, RGBA(76, 121, 153, 88), RGBA(76, 121, 153, 48), 0.5);
   }

   g_img && gr.DrawImage(g_img, 58, 0, 3, wh, 0, 0, g_img.Width, g_img.Height);
   buttonsDraw(gr);
}

// ----- EVENTS ----------------------------------------------------
function on_size() {
   ww = window.Width;
   wh = window.Height;

   Buttons.MEN.changePos(13, 7, 45, 22);
   Buttons.NPL.changePos(64, 6, 18, 18);
   Buttons.SAC.changePos(87, 7, 18, 18);
   Buttons.PBO.changePos(112, 8, 18, 9);
    Buttons.EXT.changePos(ww - 25, 3, 22, 22);
    Buttons.MAX.changePos(ww - 50, 6, 22, 22);
    Buttons.MIN.changePos(ww - 75, 5, 22, 22);
    Buttons.TOP.changePos(ww - 95, 5, 22, 22);   
    Buttons.DSP.changePos(140, 8, 22, 22);
}   

function on_playback_order_changed(new_order) {
   Buttons.PBO = createPBOButton();
   Buttons.PBO.repaint();
}

function on_playback_dsp_changed(new_order) {
   Buttons.DSP = createDSPButton();
   Buttons.DSP.repaint();
}

function on_playlist_stop_after_current_changed(state) {
   Buttons.SAC = createSACButton();
   Buttons.SAC.repaint();
}

function on_playlist_always_on_top_changed(state) {
   Buttons.TOP = createTOPButton();
   Buttons.TOP.repaint();
}
megane68 M
Репутация: -18
С нами: 15 лет 9 месяцев

Пред.След.

Вернуться в Секреты foobar2000