Spider Monkey Panel v1.6.1 [13.01.2022]

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

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

Сообщение #1 foobar2000.ru » 02.10.2018, 00:10

Allows to create full-fledged CUI/DUI panels using JavaScript.
Страница плагина: http://foobar2000.org/components/view/foo_spider_monkey_panel
foobar2000.ru
Автор темы, Робот
Репутация: 9
С нами: 12 лет 5 месяцев


Сообщение #61 Aliado_71 » 14.02.2020, 17:17

TheQwertiest, проверил на SMP v1.2.2 работает корректно. (первый скрин) на SMP v1.2.3 не корректно (второй скрин)
Вложения
2020-01.jpg
2020-02.jpg
Aliado_71
Аватара
Откуда: Украина
Репутация: 200
С нами: 9 лет 8 месяцев

Сообщение #62 TheQwertiest » 14.02.2020, 17:18

Aliado_71, значит бага в SMP, будем смотреть.
TheQwertiest
Репутация: 4
С нами: 6 лет 7 месяцев

Сообщение #63 LUR » 14.02.2020, 17:39

TheQwertiest, кстати там marc2k3 удалил свои репозитории, теперь сетап для сборки из-за проекта smp_2003 не работает. Решил тут на досуге все-таки поковырять SMP для своего сплиттера. Я то зависимость убрал, но может стоит подправить...
LUR M
Модератор
Аватара
Откуда: Минск
Репутация: 390
С нами: 11 лет 11 месяцев

Сообщение #64 TheQwertiest » 14.02.2020, 22:39

LUR, благо marc2k3 залил этот репозиторий в полном виде на HA (включая даже дополнительные правки, которые не успели войти в релиз SMP), поэтому ничего не потеряно окончательно.

Решил тут на досуге все-таки поковырять SMP
Удачи =) Обращайтесь, если будут вопросы.
TheQwertiest
Репутация: 4
С нами: 6 лет 7 месяцев

Сообщение #65 TheQwertiest » 18.02.2020, 15:51

Aliado_71, исправлено в Nightly сборке.
LUR, исправлено в ветке master.
TheQwertiest
Репутация: 4
С нами: 6 лет 7 месяцев

Сообщение #66 SergPuh.68 » 12.03.2020, 10:59

Привет,можно ли где нибудь найти скрипт для отображения системного времени в сборке для Spider Monkey Panel v1.2.3 такого плана:
2020-03-12_084857.png
2020-03-12_084857.png (71.33 КБ) Просмотров: 2734

Или для PSS было бы ещё лучше(функцию)Может у кого нибудь есть решение,может кто нибудь сможет переделать скрипт
Спойлер
// ==PREPROCESSOR==
// @name "Timer & Alarm clock"
// @author "kgena_ua"
// ==/PREPROCESSOR==

function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }
var font = gdi.Font("Segoe UI",15,1);
var font2 = gdi.Font("Segoe UI",15,1);
var ww, wh;

DT_LEFT = 0x00000000;
DT_RIGHT = 0x00000002;
DT_CENTER = 0x00000001;
DT_VCENTER = 0x00000004;
DT_SINGLELINE = 0x00000020;
DT_WORD_ELLIPSIS = 0x00040000;

MF_ENABLED = 0x00000000;
MF_GRAYED = 0x00000001;
MF_CHECKED = 0x00000008;
MF_SEPARATOR = 0x00000800;
MF_MENUBREAK = 0x00000040;

var bgcolor = RGB(0,0,0);

var on_mouse = false;

var play_color = RGB(221,221,221);
var stop_color = RGB(221,221,221);

var m_off_color = RGB(221,221,221);
var m_on_color = RGB(221,221,221);

var current_color;

var playback = window.GetProperty("playback", "play");
var type_of_clock = window.GetProperty("type_of_clock", "alarm");

var set_timer = 0;
var set_h = "";
var set_m = "";
var set_s = "";

var timer_started = false;
var stop_timer = false;

var current_date;
var current_txt = "";
var text_show = true;
var text_anim = false;

var volume_txt = "";
var volume_state;
var volume_ch = false;

var img_path = fb.ProfilePath + "\\maybe\\textures\\timer\\";

var clock_timer = window.SetInterval(on_timer, 1000);

function on_paint(gr){
!window.IsTransparent && gr.FillSolidRect(0, 0, ww, wh, bgcolor);

if (timer_started || volume_ch) {
current_color = playback == "play" ? play_color : stop_color;
} else {
current_color = on_mouse ? m_on_color : m_off_color;
}

if (text_show) {
gr.GdiDrawText(current_txt, font, current_color, 0, 0, ww, wh, DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS );
}

if (timer_started || volume_ch) {
var img = gdi.Image(img_path + type_of_clock + "_" + playback + ".png");

var txt_width = gr.CalcTextWidth(sec2time(current_date), font);
var h_img = 16 - 2;
var y_img = wh / 2 - h_img / 2;
var x_img = ww / 2 - txt_width / 2 - 25;

img && gr.DrawImage( img, x_img, y_img, 16, 16, 0, 0, 16, 16, 0, 255);
}
}

function sec2time(sec) {
var h, m, s;
h = Math.floor(sec / 3600);
m = Math.floor((sec - h * 3600) / 60);
s = sec - h * 3600 - m * 60;
if ( h < 10 ) h = "0" + h;
if ( m < 10 ) m = "0" + m;
if ( s < 10 ) s = "0" + s;
return h + " : " + m + " : " + s;
}

function on_mouse_rbtn_up (x, y){
var _menu = window.CreatePopupMenu();
var _group_1 = window.CreatePopupMenu();
var _group_2 = window.CreatePopupMenu();
var _group_3 = window.CreatePopupMenu();

_menu.AppendMenuItem(MF_ENABLED, 10, timer_started ? "stop timer" : sec2time(set_timer));

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
MF_STATE = timer_started ? MF_GRAYED : MF_ENABLED;

_group_1.AppendTo(_menu, MF_STATE, "hours :");
for (var i = 20; i <= 29; i++) {
_group_1.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 20);
}

_group_2.AppendTo(_menu, MF_STATE, "minutes :");
for (var i = 30; i <= 39; i++) {
_group_2.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 30);
}

_group_3.AppendTo(_menu, MF_STATE, "seconds :");
for (var i = 40; i <= 49; i++) {
_group_3.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 40);
}

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
MF_STATE3 = !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE3, 60, playback);
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);

MF_STATE4 = type_of_clock == "timer" && !timer_started ? MF_CHECKED : !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE4, 70, "timer");
MF_STATE5 = type_of_clock == "alarm" && !timer_started ? MF_CHECKED : !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE5, 80, "alarm clock");

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
_menu.AppendMenuItem(MF_ENABLED, 200, "Properties");
_menu.AppendMenuItem(MF_ENABLED, 210, "Configure...");

ret = _menu.TrackPopupMenu(x + 20, y - 50);

switch (ret) {
case 10:
if (!timer_started){
set_timer = type_of_clock == "timer" && set_timer == 0 ? 86400 : set_timer;
timer_started = true;
} else {
set_timer = 0;
set_h = "";
set_m = "";
set_s = "";
timer_started = false;
}
break;
}

if (ret >= 20 && ret <= 49){
if (ret >= 20 && ret <= 29){
set_h = set_h.toString(10).length >= 2 ? "" : set_h;
set_h = set_h.toString(10) + (ret - 20).toString(10);
set_h = parseInt(set_h, 10)
set_h = set_h >= 24 ? 23 : set_h;
}

if (ret >= 30 && ret <= 39){
set_m = set_m.toString(10).length >= 2 ? "" : set_m;
set_m = set_m.toString(10) + (ret - 30).toString(10);
set_m = parseInt(set_m, 10)
//set_m = set_m >= 60 ? 59 : set_m;
}

if (ret >= 40 && ret <= 49){
set_s = set_s.toString(10).length >= 2 ? "" : set_s;
set_s = set_s.toString(10) + (ret - 40).toString(10);
set_s = parseInt(set_s, 10)
//set_s = set_s >= 60 ? 59 : set_s;
}

set_timer =set_h * 3600 + set_m * 60 + set_s;

if (set_timer >= 86400){
set_timer = 86400;
set_h = "";
set_m = "";
set_s = "";
}
on_mouse_rbtn_up(x, y);
}

switch (ret) {
case 60:
playback = playback == "play" ? "stop" : "play";
window.SetProperty("playback", playback);
on_mouse_rbtn_up(x, y);
break;
case 70:
type_of_clock = "timer";
window.SetProperty("type_of_clock", type_of_clock);
on_mouse_rbtn_up(x, y);
break;
case 80:
type_of_clock = "alarm";
window.SetProperty("type_of_clock", type_of_clock);
on_mouse_rbtn_up(x, y);
break;
case 200:
window.ShowProperties();
break;
case 210:
window.ShowConfigure();
break;
}
_menu.Dispose();
_group_1.Dispose();
_group_2.Dispose();
_group_3.Dispose();

if (!timer_started) {
set_timer = 0;
set_h = "";
set_m = "";
set_s = "";
}
return true;
}

function on_mouse_move(x, y) {
on_mouse = true;
window.SetCursor(32649);
window.Repaint();
}

function on_mouse_leave() {
on_mouse = false;
window.SetCursor(32512);
window.Repaint();
}

function on_size(){
ww = window.Width;
wh = window.Height;
}

function text_blinking() {
ms = 0;
var blinking_timer = window.SetInterval(function() {
ms = ms + 1;

if (ms >= 7) {text_show = false};
if (ms >= 10) {
text_show = true;
ms = 0;
}

if (!timer_started) {
text_show = true;
text_anim = false;
window.ClearInterval(blinking_timer);
}
window.Repaint();
}, 100 )
}

function Vol(v) {
var volume_timer = window.SetInterval(function(){
volume_ch = true;
if (v == "on") {
fb.Volume++;
if (fb.Volume >= volume_state ) {
window.ClearInterval(volume_timer);
volume_ch = false;
}
}
if (v == "off") {
fb.Volume--;
if (fb.Volume <= -100 ) {
fb.Stop();
fb.Volume = volume_state;
window.ClearInterval(volume_timer);
volume_ch = false;
}
}
}, 50);
}

function on_timer(id) {
d = new Date();
current_date = (d.getHours() * 3600) + (d.getMinutes() * 60) + d.getSeconds();

current_txt = !volume_ch ? sec2time(current_date) : volume_txt;

if (timer_started) {
if (type_of_clock == "timer") {
set_timer = set_timer - 1;
}

current_txt = !volume_ch ? sec2time(set_timer) : volume_txt;

var event_1 = type_of_clock == "timer" ? set_timer <= 10 : Math.abs(set_timer - current_date) <= 10;

if (event_1 && !text_anim) {
text_anim = true;
text_blinking();
}

var event_2 = type_of_clock == "timer" ? set_timer <= 0 : Math.abs(set_timer - current_date) <= 0;

if (event_2) {
if (playback == "play" && !fb.IsPlaying) {
volume_state = fb.Volume;
fb.Volume = -100;
fb.Play();
volume_txt = "PLAY";
Vol("on");
}
if (playback == "stop" && fb.IsPlaying) {
volume_state = fb.Volume;
volume_txt = "STOP";
Vol("off");
}
set_timer = 0;
timer_started = false;
set_h = "";
set_m = "";
set_s = "";
}
}
window.Repaint();
}
для Spider Monkey Panel v1.2.3
Аналоговые часики тоже хорошо.
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 143
С нами: 5 лет 10 месяцев

Сообщение #67 TheQwertiest » 12.03.2020, 13:52

SergPuh.68:Может у кого нибудь есть решение,может кто нибудь сможет переделать скрипт
https://theqwertiest.github.io/foo_spider_monkey_ ... es/jsp_to_smp_migration_guide/
TheQwertiest
Репутация: 4
С нами: 6 лет 7 месяцев

Сообщение #68 SergPuh.68 » 13.03.2020, 11:56

Скрипт "Timer & Alarm clock" author "kgena_ua"
Спойлер
// ==PREPROCESSOR==
// @name "Timer & Alarm clock"
// @author "kgena_ua"
// ==/PREPROCESSOR==

function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }
var font = gdi.Font("Calibri",18,1);
var font2 = gdi.Font("Calibri",18,1);
var ww, wh;

DT_LEFT = 0x00000000;
DT_RIGHT = 0x00000002;
DT_CENTER = 0x00000001;
DT_VCENTER = 0x00000004;
DT_SINGLELINE = 0x00000020;
DT_WORD_ELLIPSIS = 0x00040000;

MF_ENABLED = 0x00000000;
MF_GRAYED = 0x00000001;
MF_CHECKED = 0x00000008;
MF_SEPARATOR = 0x00000800;
MF_MENUBREAK = 0x00000040;

var bgcolor = RGB(32,32,32);

var on_mouse = false;

var play_color = RGB(128,255,128);
var stop_color = RGB(255,175,89);

var m_off_color = RGB(215,215,215);
var m_on_color = RGB(215,215,215);

var current_color;

var playback = window.GetProperty("playback", "play");
var type_of_clock = window.GetProperty("type_of_clock", "alarm");

var set_timer = 0;
var set_h = "";
var set_m = "";
var set_s = "";

var timer_started = false;
var stop_timer = false;

var current_date;
var current_txt = "";
var text_show = true;
var text_anim = false;

var volume_txt = "";
var volume_state;
var volume_ch = false;

var img_path = fb.ProfilePath + "\\maybe\\textures\\timer\\";

var clock_timer = window.SetInterval(on_timer, 1000);

function on_paint(gr){
!window.IsTransparent && gr.FillSolidRect(0, 0, ww, wh, bgcolor);

if (timer_started || volume_ch) {
current_color = playback == "play" ? play_color : stop_color;
} else {
current_color = on_mouse ? m_on_color : m_off_color;
}

if (text_show) {
gr.GdiDrawText(current_txt, font, current_color, 0, 0, ww, wh, DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS );
}

if (timer_started || volume_ch) {
var img = gdi.Image(img_path + type_of_clock + "_" + playback + ".png");

var txt_width = gr.CalcTextWidth(sec2time(current_date), font);
var h_img = 16 - 2;
var y_img = wh / 2 - h_img / 2;
var x_img = ww / 2 - txt_width / 2 - 25;

img && gr.DrawImage( img, x_img, y_img, 16, 16, 0, 0, 16, 16, 0, 255);
}
}

function sec2time(sec) {
var h, m, s;
h = Math.floor(sec / 3600);
m = Math.floor((sec - h * 3600) / 60);
s = sec - h * 3600 - m * 60;
if ( h < 10 ) h = "0" + h;
if ( m < 10 ) m = "0" + m;
if ( s < 10 ) s = "0" + s;
return h + " : " + m + " : " + s;
}

function on_mouse_rbtn_up (x, y){
var _menu = window.CreatePopupMenu();
var _group_1 = window.CreatePopupMenu();
var _group_2 = window.CreatePopupMenu();
var _group_3 = window.CreatePopupMenu();

_menu.AppendMenuItem(MF_ENABLED, 10, timer_started ? "stop timer" : sec2time(set_timer));

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
MF_STATE = timer_started ? MF_GRAYED : MF_ENABLED;

_group_1.AppendTo(_menu, MF_STATE, "hours :");
for (var i = 20; i <= 29; i++) {
_group_1.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 20);
}

_group_2.AppendTo(_menu, MF_STATE, "minutes :");
for (var i = 30; i <= 39; i++) {
_group_2.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 30);
}

_group_3.AppendTo(_menu, MF_STATE, "seconds :");
for (var i = 40; i <= 49; i++) {
_group_3.AppendMenuItem(MF_ENABLED | MF_MENUBREAK, i, i - 40);
}

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
MF_STATE3 = !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE3, 60, playback);
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);

MF_STATE4 = type_of_clock == "timer" && !timer_started ? MF_CHECKED : !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE4, 70, "timer");
MF_STATE5 = type_of_clock == "alarm" && !timer_started ? MF_CHECKED : !timer_started ? MF_ENABLED : MF_GRAYED;
_menu.AppendMenuItem(MF_STATE5, 80, "alarm clock");

_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
_menu.AppendMenuItem(MF_ENABLED, 200, "Properties");
_menu.AppendMenuItem(MF_ENABLED, 210, "Configure...");

ret = _menu.TrackPopupMenu(x + 20, y - 50);

switch (ret) {
case 10:
if (!timer_started){
set_timer = type_of_clock == "timer" && set_timer == 0 ? 86400 : set_timer;
timer_started = true;
} else {
set_timer = 0;
set_h = "";
set_m = "";
set_s = "";
timer_started = false;
}
break;
}

if (ret >= 20 && ret <= 49){
if (ret >= 20 && ret <= 29){
set_h = set_h.toString(10).length >= 2 ? "" : set_h;
set_h = set_h.toString(10) + (ret - 20).toString(10);
set_h = parseInt(set_h, 10)
set_h = set_h >= 24 ? 23 : set_h;
}

if (ret >= 30 && ret <= 39){
set_m = set_m.toString(10).length >= 2 ? "" : set_m;
set_m = set_m.toString(10) + (ret - 30).toString(10);
set_m = parseInt(set_m, 10)
//set_m = set_m >= 60 ? 59 : set_m;
}

if (ret >= 40 && ret <= 49){
set_s = set_s.toString(10).length >= 2 ? "" : set_s;
set_s = set_s.toString(10) + (ret - 40).toString(10);
set_s = parseInt(set_s, 10)
//set_s = set_s >= 60 ? 59 : set_s;
}

set_timer =set_h * 3600 + set_m * 60 + set_s;

if (set_timer >= 86400){
set_timer = 86400;
set_h = "";
set_m = "";
set_s = "";
}
on_mouse_rbtn_up(x, y);
}

switch (ret) {
case 60:
playback = playback == "play" ? "stop" : "play";
window.SetProperty("playback", playback);
on_mouse_rbtn_up(x, y);
break;
case 70:
type_of_clock = "timer";
window.SetProperty("type_of_clock", type_of_clock);
on_mouse_rbtn_up(x, y);
break;
case 80:
type_of_clock = "alarm";
window.SetProperty("type_of_clock", type_of_clock);
on_mouse_rbtn_up(x, y);
break;
case 200:
window.ShowProperties();
break;
case 210:
window.ShowConfigure();
break;
}
if (!timer_started) {
set_timer = 0;
set_h = "";
set_m = "";
set_s = "";
}
return true;
}

function on_mouse_move(x, y) {
on_mouse = true;
window.SetCursor(32649);
window.Repaint();
}

function on_mouse_leave() {
on_mouse = false;
window.SetCursor(32512);
window.Repaint();
}

function on_size(){
ww = window.Width;
wh = window.Height;
}

function text_blinking() {
ms = 0;
var blinking_timer = window.SetInterval(function() {
ms = ms + 1;

if (ms >= 7) {text_show = false};
if (ms >= 10) {
text_show = true;
ms = 0;
}

if (!timer_started) {
text_show = true;
text_anim = false;
window.ClearInterval(blinking_timer);
}
window.Repaint();
}, 100 )
}

function Vol(v) {
var volume_timer = window.SetInterval(function(){
volume_ch = true;
if (v == "on") {
fb.Volume++;
if (fb.Volume >= volume_state ) {
window.ClearInterval(volume_timer);
volume_ch = false;
}
}
if (v == "off") {
fb.Volume--;
if (fb.Volume <= -100 ) {
fb.Stop();
fb.Volume = volume_state;
window.ClearInterval(volume_timer);
volume_ch = false;
}
}
}, 50);
}

function on_timer(id) {
d = new Date();
current_date = (d.getHours() * 3600) + (d.getMinutes() * 60) + d.getSeconds();

current_txt = !volume_ch ? sec2time(current_date) : volume_txt;

if (timer_started) {
if (type_of_clock == "timer") {
set_timer = set_timer - 1;
}

current_txt = !volume_ch ? sec2time(set_timer) : volume_txt;

var event_1 = type_of_clock == "timer" ? set_timer <= 10 : Math.abs(set_timer - current_date) <= 10;

if (event_1 && !text_anim) {
text_anim = true;
text_blinking();
}

var event_2 = type_of_clock == "timer" ? set_timer <= 0 : Math.abs(set_timer - current_date) <= 0;

if (event_2) {
if (playback == "play" && !fb.IsPlaying) {
volume_state = fb.Volume;
fb.Volume = -100;
fb.Play();
volume_txt = "PLAY";
Vol("on");
}
if (playback == "stop" && fb.IsPlaying) {
volume_state = fb.Volume;
volume_txt = "STOP";
Vol("off");
}
set_timer = 0;
timer_started = false;
set_h = "";
set_m = "";
set_s = "";
}
}
window.Repaint();
}
Отображает системное время.Так же можно настроить включение и отключение воспроизведение по таймеру или в определённое время.
Полностью настраиваемая цветовая схема и шрифты.
Не знаю как у меня получилось но он теперь работает и на Spider Monkey Panel v1.2.3 :biggrin:
2020-03-13_095855.png
2020-03-13_095855.png (2.82 КБ) Просмотров: 2671
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 143
С нами: 5 лет 10 месяцев

Сообщение #69 VlaKor » 23.04.2020, 22:09

Здравствуйте!
Помогите разобраться пожалуйста.
Есть простой пример скрипта:
Спойлер
// @name "VlaKor Text NowPlaying"
include(`${fb.ComponentPath}docs\\Flags.js`);
include(`${fb.ComponentPath}docs\\Helpers.js`);

const font = gdi.Font('Segoe UI', 14, 0);
const title = fb.TitleFormat('%title%');
const nazvanie = fb.TitleFormat('Название');
const ispolnitel = fb.TitleFormat('Исполнитель');
const artist = fb.TitleFormat('[%artist%]');
const album = fb.TitleFormat('%album%[ (%DISCSUBTITLE%)][ © %date% / %ORIGINALYEAR%]');
const albom = fb.TitleFormat('Альбом');
let handle = fb.GetNowPlaying();



function on_playback_new_track() {
handle = fb.GetNowPlaying();
window.Repaint();
}






function on_paint(gr) {
if (handle) {
gr.GdiDrawText(title.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, -20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(nazvanie.EvalWithMetadb(handle), font, RGB(0, 102, 204), 55, -20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(ispolnitel.EvalWithMetadb(handle), font, RGB(0, 102, 204), 35, 0, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(artist.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, 0, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(albom.EvalWithMetadb(handle), font, RGB(0, 102, 204), 68, 20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(album.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, 20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);

}
}

На данный момент скрипт выводит информацию о проигрываемом треке, поле остановки воспроизведения ничего не выводится.
Что необходимо добавить, что бы после остановки воспроизведения отображалась информация под курсором?

Добавить мозги - не предлагать ))
VlaKor
Репутация: 9
С нами: 7 лет 2 месяца

Сообщение #70 foobar2000.ru » 11.07.2020, 00:10

Вышла новая версия плагина: Spider Monkey Panel v1.3.0 [10.07.2020]
foobar2000.ru
Автор темы, Робот
Репутация: 9
С нами: 12 лет 5 месяцев

Сообщение #71 foobar2000.ru » 19.07.2020, 00:10

Вышла новая версия плагина: Spider Monkey Panel v1.3.1 [18.07.2020]
foobar2000.ru
Автор темы, Робот
Репутация: 9
С нами: 12 лет 5 месяцев

Сообщение #72 NikosColev » 07.08.2020, 17:59

Так задумано, что в Volbar with GdiDrawText.js по ЛКМ устанавливается 100% громкость?
Изображение
В JScript Panel по ЛКМ уровень выставляется корректно, - там где кликнул.
NikosColev
Аватара
Откуда: net
Репутация: 1
С нами: 18 лет 5 месяцев

Сообщение #73 VlaKor » 07.08.2020, 22:16

NikosColev:Так задумано, что в Volbar with GdiDrawText.js по ЛКМ устанавливается 100% громкость?
Попробуй, исправил.
Вложения

[Расширение js было запрещено, вложение больше недоступно.]

VlaKor
Репутация: 9
С нами: 7 лет 2 месяца

Сообщение #74 NikosColev » 07.08.2020, 22:35

VlaKor:Попробуй, исправил.
Да, теперь работает ожидаемо. Спасибо.

Добавлено спустя 7 часов 56 минут:
Подскажите, плз, а можно ли как-то отключить выделение содержимого папки в плейлисте (jsplaylist-mod в частности) при её открытии по двойному клику:
Спойлер
Изображение
Мне более чем достаточно выделения содержимого развернутой папки одиночным кликом:
Спойлер
Изображение
NikosColev
Аватара
Откуда: net
Репутация: 1
С нами: 18 лет 5 месяцев

Сообщение #75 NikosColev » 08.08.2020, 06:42

Подскажите, плз, а можно ли как-то отключить выделение содержимого папки в плейлисте (jsplaylist-mod в частности) при её открытии по двойному клику:
Спойлер
Изображение
Мне более чем достаточно выделения содержимого развернутой папки одиночным кликом:
Спойлер
Изображение

UPD: По недосмотру склеил сообщение с предыдущим без возможности его редактирования, поэтому продублирую последний вопрос для рассылки оповещения, сорри.
NikosColev
Аватара
Откуда: net
Репутация: 1
С нами: 18 лет 5 месяцев

Сообщение #76 NikosColev » 08.08.2020, 07:48

Так же было бы очень приятно увидеть прокрутку плейлиста при разворачивании в нем последней папки:
Спойлер
Изображение
Возможно такое?
NikosColev
Аватара
Откуда: net
Репутация: 1
С нами: 18 лет 5 месяцев

Сообщение #77 SergPuh.68 » 14.08.2020, 11:14

При выполнении команды: File->Open... происходит crash скрипта "JS Smooth Playlist Manager" Spider Monkey Panel v1.3.1 [18.07.2020]
2020-08-14_100750.jpg


Добавлено спустя 6 часов 19 минут:
Происходит crash скрипта при таких настройках,что то связано с фоновым изображением или размытостью :nervious:
2020-08-14_162656.jpg
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 143
С нами: 5 лет 10 месяцев

Сообщение #78 VlaKor » 14.08.2020, 18:42

SergPuh.68:При выполнении команды: File->Open... происходит crash скрипта "JS Smooth Playlist Manager" Spider Monkey Panel v1.3.1 [18.07.2020]
Что то делали с файлом (JScommon.js)?
VlaKor
Репутация: 9
С нами: 7 лет 2 месяца

Сообщение #79 SergPuh.68 » 14.08.2020, 18:53

VlaKor, нет ничего не делал.Краш происходит если поставить Playing Album Cover.Если Default тогда всё нормально.
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 143
С нами: 5 лет 10 месяцев

Сообщение #80 VlaKor » 15.08.2020, 00:34

SergPuh.68:нет ничего не делал.Краш происходит если поставить Playing Album Cover.Если Default тогда всё нормально.
Ошибка именно в этом файле, судя по скрину. Попробовал у себя, точно такие же настройки, всё функционирует нормально.
Ошибка вылетает при воспроизведении или когда воспроизведение остановлено?
VlaKor
Репутация: 9
С нами: 7 лет 2 месяца

Пред.След.

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