Скрипты для foo_uie_wsh_panel_mod

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

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

Сообщение #2101 vladj » 13.01.2018, 13:54

duzzy писал(а):но ты просто проигнорировал сообщение...
Как можно ? Я ничего не игнорирую, просто всю винду держать в рам диске, у меня никаких денег не хватит на столько памяти. В принципе винда меня сейчас не колышет особо, она сейчас вообще почти ничего не пишет в апп дата при серфинге в инете или юзании био в фубаре.
Ну и загрузка всей винды в рам по ссылке выше... там довольно устаревшие варианты. Например на моем рабочем как ракета работает флешка от Стрельца, вин 10 на ней с кучей программ занимает 1 Gb оперативы. Единственно не могу пристроить автоустановку драйверов на видео, ставятся в ручную в один клик за несколько сек. Там другая незадача....нет библиотек, вот их-бы подсунуть вместо большинства имеющихся программ что-бы получить не ремонтный образ, а обычный рабочий. Есть мысля связатся с Сергеем, он финансово не очень и предлагает на сайте индивидуальный заказ под хотелки.
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 316
С нами: 7 лет 11 месяцев

Сообщение #2102 vladj » 14.01.2018, 00:36

Стас, спасибо за плейлист менеджер, все прекрасно работает. Для меня осталась еще одна хотелка... в плейлисте ( JS Smooth Playlist) при воспроизведении сборки все отображается как нужно, артист и название трека, но при воспроизведении альбома одного артиста убивает стройный ряд одного и того-же. Тут нужно как-то поправить, имхо конечно, если запустили альбом артиста, не писать артиста перед названием трека, если уж забыли кто исполнитель альбома, то в шапке он показан ведь, ну и панельки инфо есть. Хотя прикинул глядя на сборку, второй скрипт отрабатывает так, как мне нужно (WSH Playlist Viewer" @version "2.1.0 by Br3tt"), при запуске сборки название трека и артист, при запуске альбома только название трека.
Этот скрипт скорей всего от [bduzzy][/b], тоже есть масштабирование шрифтов, прогресс бар в строке проигрываемой, работает перестановка в плейлисте
инет станций, треков....только что-то удаления не вижу выделенной позиции. Блин...делаешь - готовишь для машины, а получается что на рабочем юзать начинаешь почти всегда.
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 316
С нами: 7 лет 11 месяцев

Сообщение #2103 seriousstas » 14.01.2018, 01:58

но при воспроизведении альбома одного артиста убивает стройный ряд одного и того-же
Нужно "подтянуть" titleformat .. Пока это "на потом"
Блин...делаешь - готовишь для машины, а получается что на рабочем юзать начинаешь почти всегда.
Дык аналогично, я уже и на работе пристроил .. Хочу подогнать размеры шрифтов, заголовков , для домашки .

Добавлено спустя 2 часа 5 минут:
AHAPXICT
Enable Windows XP support. Also, support for Vista/7/WINE with IE7/IE8 has
been restored.
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 73
С нами: 2 года 11 месяцев

Сообщение #2104 AHAPXICT » 14.01.2018, 07:01

seriousstas, читал, читал)) Только нечего не проверял, на меня какая-то жуткая лень напала, пару месяцев просто не прикасаюсь ни к скриптам ни к фубару вообще, хотя времени полно. Заглядываю на форум, да по другим закладкам "фубаровским". Даже радио станции переключать облом, тыцну на угад и слушаю в фоновом режиме. Вот сейчас посмотрел, три часа уже играет одна станция)) Вот такой офтоп. Ну и со Старым Новым Годом 2018!
Media Library it's bad - explorer it's good!
AHAPXICT M
Мастер
Аватара
Возраст: 47
Откуда: Киев
Репутация: 119
С нами: 4 года 2 месяца

Сообщение #2105 seriousstas » 16.01.2018, 02:05

kgena_ua Biography & Albums & Similar
У меня в какой-то момент начало просить функцию lang_query , понял , что массив дублирует её название и скорей всего лишний :
var lang_query = new Array("", "ru/");
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 73
С нами: 2 года 11 месяцев

Сообщение #2106 seriousstas » 16.01.2018, 11:38

разобрался))
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 73
С нами: 2 года 11 месяцев

Сообщение #2107 maniac736 » Вчера, 16:13

Уже голову сломал. Может кто-нибудь сможет подсказать как привести в нормальный вид выделенный мною на картинке шрифт в данном скрипте WSH?
Спойлер
// Maxim Terpilovsky's script
// http://terpilovsky.ru
// Playlist Tabs Panel / Updated: 15-02-2013

// ==PREPROCESSOR==
// @feature "dragdrop"
// ==/PREPROCESSOR==

window.MinHeight = window.MaxHeight = 21;

DT_TOP = 0x00000000;
DT_LEFT = 0x00000000;
DT_CENTER = 0x00000001;
DT_RIGHT = 0x00000002;
DT_VCENTER = 0x00000004;
DT_BOTTOM = 0x00000008;
DT_WORDBREAK = 0x00000010;
DT_SINGLELINE = 0x00000020;
DT_EXPANDTABS = 0x00000040;
DT_TABSTOP = 0x00000080;
DT_NOCLIP = 0x00000100;
DT_EXTERNALLEADING = 0x00000200;
DT_CALCRECT = 0x00000400;
DT_NOPREFIX = 0x00000800;
DT_INTERNAL = 0x00001000;
DT_EDITCONTROL = 0x00002000;
DT_PATH_ELLIPSIS = 0x00004000;
DT_END_ELLIPSIS = 0x00008000;
DT_MODIFYSTRING = 0x00010000;
DT_RTLREADING = 0x00020000;
DT_WORD_ELLIPSIS = 0x00040000;
DT_NOFULLWIDTHCHARBREAK = 0x00080000;
DT_HIDEPREFIX = 0x00100000;
DT_PREFIXONLY = 0x00200000;

MF_SEPARATOR = 0x00000800;
MF_ENABLED = 0x00000000;
MF_GRAYED = 0x00000001;
MF_DISABLED = 0x00000002;
MF_UNCHECKED = 0x00000000;
MF_CHECKED = 0x00000008;
MF_STRING = 0x00000000;
MF_POPUP = 0x00000010;
MF_MENUBARBREAK = 0x00000020;
MF_MENUBREAK = 0x00000040;

var blue_1 = RGB(33,35,40);
var blue_1b = RGB(33,35,40);

var blue_5 = RGB(110,135,90);
var blue_5b = RGB(73,111,25);

// Loading images
try { page_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\playlist-full.png" ); }
catch(e) { page_image = false; }

try { page_white = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\playlist-empty.png" ); }
catch(e) { page_white = false; }

try { page_image_add = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\playlist-add.png" ); }
catch(e) { page_image_add = false; }

try { page_white_link = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\playlist-auto.png" ); }
catch(e) { page_white_link = false; }

try { music_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\music.png" ); }
catch(e) { music_image = false; }

try { quit_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\cross.png" ); }
catch(e) { music_image = false; }

try { green_arrow_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\arrow_down_green.png" ); }
catch(e) { green_arrow_image = false; }

try { blue_arrow_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\blue_arrow_image.png" ); }
catch(e) { blue_arrow_image = false; }

try { grey_arrow_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\grey_arrow_image.png" ); }
catch(e) { grey_arrow_image = false; }

try { arrow_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\arrow_down_black.png" ); }
catch(e) { arrow_image = false; }

try { cross_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\cross_black.png" ); }
catch(e) { cross_image = false; }


var tooltip = window.CreateTooltip();
tooltip.SetMaxWidth(200);

var font = gdi.Font("Tahoma", 11, 0);
var font_bold = gdi.Font("Tahoma", 11, 0);

function RGBA(r, g, b, a) {
return ((a << 24) | (r << 16) | (g << 8) | (b));
}

function RGB(r, g, b) {
return (0xff000000 | (r << 16) | (g << 8) | (b));
}

function unique(arr) {
var o = {}, i, l = arr.length, r = [];
for(i=0; i<l;i+=1) o[arr[i]] = arr[i];
for(i in o) r.push(o[i]);
return r;
}

function PlaylistTabs() {

this.GetPlaylists = function() {

var pls = [];

for ( i = 0; i < fb.PlaylistCount; i++ ) {
pls[ pls.length ] = fb.GetPlaylistName(i);
}

this.Playlists = pls;

}

this.AvailableWidth = ww - 62;

this.Update = function() {

this.GetPlaylists();

this.MaxWidth = 250;
this.MinWidth = 135;
this.MaxTabs = Math.floor( (ww - 62) / 135 );

this.PlaylistsDrawnNumber = Math.max( Math.min( this.Playlists.length, this.MaxTabs), 3 );

this.TabWidth = Math.round( Math.min( this.AvailableWidth / this.PlaylistsDrawnNumber, this.MaxWidth) );

this.TabsWidth = this.TabWidth * this.Playlists.length;

}

this.Update();

this.Offset = 0;

this.AdjustOffset = function() {

if ( Tabs.Playlists.length > 0 ) {

if ( !fb.GetPlaylistName( fb.ActivePlaylist ) ) fb.ActivePlaylist = 0;

var new_tab_x = ( fb.ActivePlaylist + 1) * this.TabWidth;
var tab_center_x = new_tab_x - this.TabWidth / 2;
var tab_x1 = new_tab_x - this.TabWidth;
var tab_x2 = new_tab_x;
var view_x1 = this.Offset;
var view_x2 = this.Offset + this.AvailableWidth;

//fb.trace( 'Offset = ' + this.Offset + '\ntab_x1 = ' + tab_x1 + '\ntab_x2 = ' + tab_x2 + '\nview_x2=' + view_x2 + '\ntab_center_x = ' + tab_center_x );

if ( tab_x1 < view_x1 || tab_x2 < view_x1 ) {
this.Offset = tab_x1;
}
else if ( tab_x1 > view_x2 || tab_x2 > view_x2 ) {
this.Offset = view_x1 + tab_x2 - view_x2;
}
else if ( tab_x1 < 0 ) {
this.Offset = 0;
}
else if ( tab_x2 > this.TabsWidth && tab_center_x > this.AvailableWidth ) {
this.Offset = this.TabsWidth - this.AvailableWidth;
}

} else this.Offset = 0;

}

this.DeleteTab = function( tab ) {

var hovertab_cached = tab;

var active_cached = fb.ActivePlaylist;
fb.RemovePlaylist( hovertab_cached - 1 );

this.Update();
this.Offset = ( this.TabsWidth > this.AvailableWidth ) ? ( (this.Offset > this.TabsWidth - this.AvailableWidth ) ? this.TabsWidth - this.AvailableWidth : this.Offset) : 0;

if ( ( hovertab_cached - 1 ) == active_cached ) {

if ( fb.GetPlaylistName( hovertab_cached ) ) {
fb.ActivePlaylist = hovertab_cached;
}
else if ( fb.GetPlaylistName( hovertab_cached - 2 ) ) {
fb.ActivePlaylist = hovertab_cached - 2;
}
}

}

this.CreateTab = function() {

var new_playlist_idx = fb.CreatePlaylist( fb.PlaylistCount, "Плейлист " + ( fb.PlaylistCount + 1 ) );
fb.ActivePlaylist = new_playlist_idx;

this.Update();

var new_tab_x = ( new_playlist_idx + 1 ) * this.TabWidth;
if ( new_tab_x > this.AvailableWidth ) this.Offset = new_tab_x - this.AvailableWidth;

}

this.HiddenOffset = 20;

this.HoverTab = null;
this.HoverTabCached = null;
this.HoverTabCloseButton = 0;

this.Clicked = 0;
this.DragOver = 0;
this.DragTabFrom = 0;
this.DragTabTo = 0;

}

var ww, wh, Tabs, x1, x2;

function on_size() {

wh = window.Height;
ww = window.Width;
Tabs = new PlaylistTabs();
Tabs.AdjustOffset();

}

function on_paint(gr) {

//gr.SetSmoothingMode(3);
gr.SetTextRenderingHint(5);
gr.FillSolidRect( -1, -1, ww+2, wh + 2, RGB(33,35,40));
//gr.DrawLine(0, 21, window.Width, 21, 1, RGB(255, 0, 0));

for ( a in Tabs.Playlists ) {

var x = Math.round( Tabs.HiddenOffset + a * Tabs.TabWidth - Tabs.Offset );
var y_offset = -1;

if ( fb.ActivePlaylist != a && a != fb.PlayingPlaylist ) {

gr.FillSolidRect(x, y_offset, Tabs.TabWidth, wh, Tabs.HoverTab - 1 != a ? blue_1 : blue_1b );

}
if ( fb.PlayingPlaylist == a && fb.ActivePlaylist != fb.PlayingPlaylist ) {

gr.FillSolidRect(x, y_offset, Tabs.TabWidth, wh, Tabs.HoverTab - 1 != a ? blue_5 : blue_5b );

}

if ( fb.ActivePlaylist == a ) gr.DrawLine(x, wh - 1, x + Tabs.TabWidth, wh - 1, 1, RGB(155,155,155));

gr.DrawRect(x, 0 + y_offset, Tabs.TabWidth, wh, 1, RGB(118,119,120));

// Tab bottom line
gr.DrawLine(x, wh - 1, x + Tabs.TabWidth, wh - 1, 1, RGB(118,119,120));
if ( fb.ActivePlaylist == a ) gr.DrawLine(x + 1, wh - 1, x + Tabs.TabWidth, wh - 1, 1, RGB(155,15,155));

// Playlist icon
if ( Tabs.DragOver && a == Tabs.HoverTab - 1 && page_image_add ) {

gr.DrawImage( page_image_add, x + 5, (wh - 16) / 2, 16, 16, 0, 0, 16, 16, 0, 255);

}
else if ( page_image && music_image && page_white_link && page_white ) gr.DrawImage( ( fb.PlayingPlaylist == a ) ? music_image : ( fb.IsAutoPlaylist(a) ? page_white_link : ( fb.PlaylistItemCount(a) > 0 ? page_image : page_white ) ) , x + 5, (wh - 16) / 2, 16, 16, 0, 0, 16, 16, 0, 175); //defolt треугольник

if ( (fb.ActivePlaylist ) == a ) {

if ( Tabs.HoverTabCloseButton == 1 && Tabs.HoverTab - 1 == a ) {

gr.DrawRect(x + Tabs.TabWidth - 20, (wh - 18) / 2, 16, 17, 1, RGB(118,119,120));

}
if ( quit_image ) gr.DrawImage( quit_image, x + Tabs.TabWidth - 16.5, (wh - 8) / 2 - 1, 10, 10, 0, 0, 16, 16, 0, 255); //иконки на плейлистах
var text_sub = 20;

}
else text_sub = 6;

try {

gr.GdiDrawText( Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')', ( fb.ActivePlaylist == a ) ? font_bold : font, ( fb.ActivePlaylist == a || fb.PlayingPlaylist == a ) ? RGB(210,220,200) : RGB(70,70,70), x + 24, 0, Tabs.TabWidth - 26 - text_sub, wh, DT_NOPREFIX | DT_LEFT | DT_VCENTER | DT_CALCRECT | DT_END_ELLIPSIS );
gr.GdiDrawText( Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')', ( fb.ActivePlaylist == a ) ? font_bold : font, ( fb.ActivePlaylist == a || fb.PlayingPlaylist == a ) ? RGB(210,220,200) : RGB(70,70,70), x + 24, -2, Tabs.TabWidth - 26 - text_sub, wh, DT_NOPREFIX | DT_LEFT | DT_VCENTER | DT_CALCRECT | DT_END_ELLIPSIS )
gr.GdiDrawText( Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')', ( fb.ActivePlaylist == a ) ? font_bold : font, ( fb.ActivePlaylist == a || fb.PlayingPlaylist == a ) ? RGB(210,220,200) : RGB(70,70,70), x + 22, 0, Tabs.TabWidth - 26 - text_sub, wh, DT_NOPREFIX | DT_LEFT | DT_VCENTER | DT_CALCRECT | DT_END_ELLIPSIS );
gr.GdiDrawText( Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')', ( fb.ActivePlaylist == a ) ? font_bold : font, ( fb.ActivePlaylist == a || fb.PlayingPlaylist == a ) ? RGB(210,220,200) : RGB(70,70,70), x + 22, -2, Tabs.TabWidth - 26 - text_sub, wh, DT_NOPREFIX | DT_LEFT | DT_VCENTER | DT_CALCRECT | DT_END_ELLIPSIS );;
gr.GdiDrawText( Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')', ( fb.ActivePlaylist == a ) ? font_bold : font, ( fb.ActivePlaylist == a || fb.PlayingPlaylist == a ) ? RGB(151,200,215) : RGB(151,200,215), x + 23, -1, Tabs.TabWidth - 26 - text_sub, wh, DT_NOPREFIX | DT_LEFT | DT_VCENTER | DT_CALCRECT | DT_END_ELLIPSIS );

} catch(e) { fb.trace( e.message ); fb.trace( Tabs.Playlists[a] ); }

if ( Tabs.DragOver && a == Tabs.HoverTab - 1 ) {
//gr.DrawImage( green_arrow_image, x = Tabs.HiddenOffset + a * Tabs.TabWidth - Tabs.Offset + Tabs.TabWidth / 2, 0, 16, 16, 0, 0, 16, 16, 0, 255);
}

}

gr.FillSolidRect( 2, 2, 19, 9, RGB(140,150,120)); //левая кнопка <
gr.FillSolidRect( 2, 10, 19, 9, RGB(70,90,60)); //левая кнопка <
gr.FillSolidRect( ww - 41, 2, 39, 9, RGB(140,150,120)); //правая + и >
gr.FillSolidRect( ww - 41, 10, 39, 9, RGB(70,90,60)); //правая + и >

// BUTTONS

gr.DrawRoundRect( 1, 1, 20, 18, 3, 3, 1, RGB(38,49,20)); //левая кнопка < ободок
if ( arrow_image ) gr.DrawImage( arrow_image, 2, (wh - 10)/2, 14, 10, 0, 0, 16, 16, 90, Tabs.Offset > 0 ? 255 : 55);
gr.FillSolidRect( 0, -1,1, wh + 3, RGB(225,235,211));

gr.DrawRoundRect( ww - 42, 1, 20, 18, 3, 3, 1, RGB(38,49,20)); //правая кнопка + ободок
if ( cross_image ) gr.DrawImage( cross_image, ww - 39, (wh - 16)/2, 16, 16, 0, 0, 16, 16, 0, 255);

gr.DrawRoundRect( ww - 22, 1, 20, 18, 3, 3, 1, RGB(38,49,20)); //правая кнопка > ободок
if ( arrow_image ) gr.DrawImage( arrow_image, ww - 17, (wh - 10)/2 - 1, 14, 10, 0, 0, 16, 16, -90, ( Tabs.Offset + 30 > Tabs.TabsWidth - Tabs.AvailableWidth ) ? 115 : 255);

// Underlining buttons
gr.DrawLine(0, wh - 1, 20, wh - 1, 1, RGB(38,49,20));
gr.DrawLine(ww-42, wh - 1, ww, wh - 1, 1, RGB(38,49,20));
gr.DrawLine(Tabs.HiddenOffset + Tabs.Playlists.length * Tabs.TabWidth - Tabs.Offset, wh - 1, ww - 40, wh - 1, 1, RGB(38,38,20));

// DRAG TAB ICON
if ( Tabs.DragTabFrom && Tabs.DragTabTo && Tabs.DragTabFrom != Tabs.DragTabTo && blue_arrow_image && grey_arrow_image ) {
var с = ( Tabs.DragTabTo > Tabs.DragTabFrom ) ? 0 : 1;
//( Tabs.DragTabFrom != Tabs.DragTabTo ) ? blue_arrow_image : grey_arrow_image
gr.DrawImage( grey_arrow_image, x = Tabs.HiddenOffset + ( Tabs.DragTabTo - с ) * Tabs.TabWidth - Tabs.Offset - 8, -4, 16, 16, 0, 0, 16, 16, 0, 255);
}

}

function trackmouse( x ) {

if ( Tabs.Playlists.length > 0 ) {

var real_x = Tabs.Offset - Tabs.HiddenOffset + x;
var tab_num = Math.ceil( real_x / Tabs.TabWidth );

if ( !fb.GetPlaylistName(tab_num - 1) ) tab_num = null;

if ( tab_num != null ){
var close_x = Tabs.TabWidth - (real_x - ( (tab_num - 1) * Tabs.TabWidth));
var closehover = ( close_x < 22 && close_x > 4 ) ? 1 : 0;
} else {
var closehover = 0;
}

return new Array(tab_num, closehover);

} else return false;

}

function on_mouse_move( x, y) {

var got = trackmouse(x);
x2 = x;

if ( got && ( got[0] != Tabs.HoverTab || Tabs.HoverTabCloseButton != got[1] ) ) {

tooltip.Deactivate();

Tabs.HoverTabCached = Tabs.HoverTab;
Tabs.HoverTab = got[0];
Tabs.HoverTabCloseButton = got[1];

if ( Tabs.DragTabFrom && Tabs.DragTabFrom != Tabs.HoverTab && got[0] ) Tabs.DragTabTo = Tabs.HoverTab;
else if ( Tabs.DragTabFrom && Tabs.DragTabFrom == Tabs.HoverTab ) Tabs.DragTabTo = Tabs.DragTabFrom;

if ( Tabs.HoverTab != null ) {

// Activating Tooltip
var pn = Tabs.Playlists[Tabs.HoverTab - 1];
var pc = fb.PlaylistItemCount( Tabs.HoverTab - 1 );
var text = 'Name: ' + pn + '\nItems: ' + pc;
tooltip.Text = text;

tooltip.Activate();

}
else {

// Deactivating Tooltip
tooltip.Deactivate();

}

window.Repaint();

}
//else if ( Tabs.DragTabFrom == Tabs.HoverTab && !Tabs.DragTabTo && Math.abs(x1 - x2) > 16 ) {

//Tabs.DragTabTo = Tabs.HoverTab;
//window.Repaint();

//}

if ( Tabs.HoverTab != null || x > ww - 42 || x < 20 || Tabs.DragTabFrom ) {

// Changing cursor
window.SetCursor(32649);

}
else {

// Reversing cursor
window.SetCursor(32512);

}

}

function on_mouse_leave() {

Tabs.HoverTab = null;
Tabs.HoverTabCloseButton = 0;

Tabs.DragTabTo = 0;
Tabs.DragTabFrom = 0;

window.SetCursor(32512);
window.Repaint();

tooltip.Deactivate();

}

function on_playlists_changed() {

Tabs.Update();

window.Repaint();

}

function on_playlist_switch() {

Tabs.Update();

if ( !Tabs.Clicked ) Tabs.AdjustOffset();

window.Repaint();

}

function on_mouse_wheel( delta ) {

// Down
if ( delta < 0 && Tabs.Offset < Tabs.TabsWidth - Tabs.AvailableWidth ) {
( Tabs.Offset - delta * 50 > Tabs.TabsWidth - Tabs.AvailableWidth ) ? Tabs.Offset = Tabs.TabsWidth - Tabs.AvailableWidth : Tabs.Offset -= delta * 50;
window.Repaint();
}
// Up
else if ( delta > 0 && Tabs.Offset > 0 ) {
( Tabs.Offset - delta * 50 > 0 ) ? Tabs.Offset -= delta * 50 : Tabs.Offset = 0;
window.Repaint();
}

//fb.trace( Tabs.Offset );
//fb.trace( Tabs.TabsWidth - Tabs.AvailableWidth );
}

function on_mouse_lbtn_up(x, y) {

// End x coordinate
x2 = x;

if ( x > ww - 21 && !Tabs.Clicked ) {

if ( Tabs.TabsWidth > Tabs.AvailableWidth ) ( Tabs.Offset + 60 > Tabs.TabsWidth - Tabs.AvailableWidth ) ? Tabs.Offset = Tabs.TabsWidth - Tabs.AvailableWidth : Tabs.Offset += 60;
fb.trace( Tabs.Offset );
window.Repaint();

}
else if ( x > ww - 42 && x < ww - 21 && !Tabs.Clicked ) {

var _menu = window.CreatePopupMenu();
var i = 1;
var ret;
var metadb = fb.GetNowPlaying() ? fb.GetNowPlaying() : ( fb.GetFocusItem() ? fb.GetFocusItem() : false);

var _firstgroup = window.CreatePopupMenu();
var _secondgroup = window.CreatePopupMenu();

_menu.AppendMenuItem(MF_STRING, i++, "Создать пустой плейлист");

if ( metadb ) {

_menu.AppendMenuSeparator();

// ARTIST
var artist = fb.TitleFormat("[%artist%]").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Артист (" + (artist ? artist : 'Unknown') + ')');
if ( !artist ) _firstgroup.EnableMenuItem( i - 1, 1);

// GENRE
var genre = fb.TitleFormat("[%genre%]").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Жанр (" + (genre ? genre : 'Unknown') + ')');
if ( !genre ) _firstgroup.EnableMenuItem( i - 1, 1);

// STYLE
var style = fb.TitleFormat("[%style%]").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Стиль (" + (style ? style : 'Unknown') + ')');
if ( !style ) _firstgroup.EnableMenuItem( i - 1, 1);

// DATE
var date = fb.TitleFormat("[%date%]").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Дата (" + (date ? date : 'Unknown') + ')');
if ( !date ) _firstgroup.EnableMenuItem( i - 1, 1);

// LABEL
var label = fb.TitleFormat("$if3(%LABEL%,%PUBLISHER%,%DISCOGS_LABEL_LINK%,)").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Название /Label/ (" + (label ? decodeURIComponent( label ) : 'Unknown') + ')');
if ( !label ) _firstgroup.EnableMenuItem( i - 1, 1);

// COUNTRY
var country = fb.TitleFormat("$if3(%COUNTRY%,%DISCOGS_COUNTRY%,)").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Страна (" + (country ? country : 'Unknown') + ')');
if ( !country ) _firstgroup.EnableMenuItem( i - 1, 1);

// FORMAT
var codec = fb.TitleFormat("[$codec()]").EvalWithMetadb( metadb );

_firstgroup.AppendMenuItem(MF_STRING, i++, "Формат (" + (codec ? codec : 'Unknown') + ')');
if ( !codec ) _firstgroup.EnableMenuItem( i - 1, 1);

_menu.AppendMenuItem(MF_STRING | MF_POPUP, _firstgroup.ID, "Создать автоплейлист для...");

}

ret = _menu.TrackPopupMenu(x, y);

if (ret == 1 ) {

Tabs.CreateTab();

}
else if (ret == 2 ) {

var artists = artist.split(', ');

if ( artists.length > 1 ) var query = artists.join('" ИЛИ Артист "');
else var query = artist;

query = 'artist HAS "' + query + '"';

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + artist, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 3) {

var genres = genre.split(', ');

if ( genres.length > 1 ) var query = genres.join('" ИЛИ жанр "');
else var query = genre;

query = 'genre HAS "' + query + '"';

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + genre, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 4 ) {

var styles = style.split(', ');

if ( styles.length > 1 ) var query = styles.join('" ИЛИ %style% HAS "');
else var query = style;

query = '%style% HAS "' + query + '"';

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + style, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 5) {

date = date.replace(/.*(\d{4}).*/g, "$1");
query = 'date HAS ' + date;

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + date, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 6 ) {

label = decodeURIComponent( label );
query = '%LABEL% HAS "' + label + '" OR %PUBLISHER% HAS "' + label + '" OR %DISCOGS_LABEL_LINK% HAS "' + encodeURIComponent( label ) + '"';

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + label, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 7 ) {

query = '%COUNTRY% IS "' + country + '" OR %DISCOGS_COUNTRY% IS "' + country + '"';

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + country, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}
else if (ret == 8 ) {

query = '%codec% IS ' + codec;

fb.CreateAutoPlaylist( fb.PlaylistCount, "Автоплейлист для " + codec, query, "%album artist% $sub(9999,%date%) %album% %discnumber% %tracknumber%");
fb.ActivePlaylist = fb.PlaylistCount - 1;

}

}
else if ( x < 20 && !Tabs.Clicked ) {

( Tabs.Offset - 60 > 0 ) ? Tabs.Offset -= 60 : Tabs.Offset = 0;
window.Repaint();

}
else {

if ( Tabs.HoverTabCloseButton == 1 && Tabs.HoverTab - 1 == fb.ActivePlaylist ) {

Tabs.DeleteTab( Tabs.HoverTab );

}
else if ( Tabs.DragTabFrom && Tabs.DragTabTo && Math.abs(x1 - x2) > 16 ) {

fb.MovePlaylist( Tabs.DragTabFrom - 1, Tabs.DragTabTo - 1);

}
else if ( Tabs.HoverTab != null && Tabs.HoverTab - 1 == fb.ActivePlaylist && !Tabs.DragTabTo ) {

fb.RunMainMenuCommand('Edit/Select all');
Tabs.AdjustOffset();

}
else if ( Tabs.Clicked && !Tabs.DragTabTo ) {

fb.ActivePlaylist = Tabs.HoverTab - 1;

}

// Emptying useless vars
Tabs.DragTabFrom = 0;
Tabs.DragTabTo = 0;

}

Tabs.Clicked = 0;

}

function on_mouse_lbtn_down(x, y) {

if ( x > 20 && x < ww - 40 && Tabs.HoverTab != null ) {

Tabs.Clicked = 1;
Tabs.DragTabFrom = Tabs.HoverTab;
x1 = x;

}

}

function on_mouse_mbtn_down(x, y, mask) {

if ( x > 20 && x < ww - 40 ) {

if ( Tabs.HoverTab != null ) {

Tabs.DeleteTab( Tabs.HoverTab );

}
else {

Tabs.CreateTab();

}

}

}

function on_playback_new_track( metadb ) {

window.Repaint();

}

function on_playback_starting(cmd, is_paused) {

window.Repaint();

}

function on_playlist_items_added(playlist) { window.Repaint(); }

function on_playlist_items_removed(playlist, new_count) { window.Repaint(); }

function on_playback_stop(reason) {

if ( reason == 0 ) {
fb.PlayingPlaylist = 4294967295;
window.Repaint();
}

}

function on_mouse_lbtn_dblclk(x, y, mask) {

if ( x > 20 && x < ww - 40 ) {
if ( Tabs.HoverTab != null ) {

if ( fb.IsAutoPlaylist( Tabs.HoverTab - 1 ) ) fb.ShowAutoPlaylistUI( Tabs.HoverTab - 1 );
else fb.RunMainMenuCommand( 'View/Playlist Manager' );

}
else fb.RunMainMenuCommand( 'View/Playlist Manager' );
}

}

function on_mouse_rbtn_up(x, y, mask) {

var _menu = window.CreatePopupMenu();
var _submenu = window.CreatePopupMenu();
var _newplaylistmenu = window.CreatePopupMenu();
var selected_tracks = plman.GetPlaylistSelectedItems( fb.ActivePlaylist );
var i = 1;
var ret;

// Saving tab ID
Tabs.HoverTabCached = Tabs.HoverTab;

// Creating menu items
_menu.AppendMenuItem(MF_STRING, i++, "Создать пустой плейлист");

_newplaylistmenu.AppendMenuItem(MF_STRING, i++, '... и копировать выделенные треки');
_newplaylistmenu.AppendMenuItem(MF_STRING, i++, '... и переместить выделенные треки');
_newplaylistmenu.AppendTo( _menu, MF_STRING | ( selected_tracks.Count > 0 ? MF_ENABLED : MF_DISABLED ), "Создать новый плейлист...");

if ( selected_tracks.Count > 0 ) {

var artist = [];
function iterate( item ) {

info = item.GetFileInfo();
var artist_current = info.MetaValue( info.MetaFind('artist'), 0);
if ( artist_current ) artist.push( artist_current );

}

function duff(iterations) {
var i = iterations % 8;
var n = 0;
if( i>0 ) {
do {
var item = selected_tracks.Item( n++ );
iterate(item);
}
while(--i);
}
i = parseInt( iterations / 8 );
if( i>0 ) {
do {

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

var item = selected_tracks.Item( n++ );
iterate(item);

}
while(--i);
}
}

duff( selected_tracks.Count );
//fb.trace(artist);
artist = unique(artist);
if ( artist.length > 1 ) artist = 'Various artists';
else {
artist = artist[0];
}

}

if ( Tabs.Playlists.length > 0 ) {

_menu.AppendMenuSeparator();

for ( a in Tabs.Playlists ) {

_submenu.AppendMenuItem(MF_STRING, i++, Tabs.Playlists[a] + ' (' + fb.PlaylistItemCount(a) + ')');

}

if ( fb.ActivePlaylist < i ) {
_submenu.EnableMenuItem( fb.ActivePlaylist + 4, 1, bypos = false);
_submenu.CheckMenuItem( fb.ActivePlaylist + 4, 1, bypos = false);
}

_submenu.AppendTo( _menu, MF_STRING, "Выбрать плейлист");

}

if ( fb.PlaylistItemCount( Tabs.HoverTabCached - 1 ) > 0 ) {
_menu.AppendMenuSeparator();
_menu.AppendMenuItem(MF_STRING, i++, "Очистить “" + fb.GetPlaylistName( Tabs.HoverTabCached - 1 ) + "”" );
if ( fb.IsAutoPlaylist( Tabs.HoverTabCached - 1 ) ) _menu.EnableMenuItem( i-1, 1, bypos = false);
}

if ( Tabs.HoverTab != null ) {
_menu.AppendMenuSeparator();
_menu.AppendMenuItem(MF_STRING, i, "Удалить “" + fb.GetPlaylistName( Tabs.HoverTabCached - 1 ) + "”" );
n = 1;
}

ret = _menu.TrackPopupMenu(x, y);

if (ret == 1 ) {

Tabs.CreateTab();

}
else if ( ret == 2 ) {

var new_playlist = fb.CreatePlaylist(fb.PlaylistCount, artist);
plman.InsertPlaylistItems( new_playlist, 0, selected_tracks, true);
fb.ActivePlaylist = new_playlist;

}
else if ( ret == 3 ) {

var new_playlist = fb.CreatePlaylist(fb.PlaylistCount, artist);
plman.InsertPlaylistItems( new_playlist, 0, selected_tracks, true);
plman.RemovePlaylistSelection( fb.ActivePlaylist );
fb.ActivePlaylist = new_playlist;

}
else if ( ret >= 4 && ret < i-1 ) {

fb.ActivePlaylist = ret - 4;

}
else if ( ret == i-1 ) {

b = [];
for ( p = 0; p < fb.PlaylistItemCount( Tabs.HoverTabCached - 1 ); p++) {
b.push( p );
}

plman.SetPlaylistSelection( Tabs.HoverTabCached - 1, b, true);
plman.RemovePlaylistSelection( Tabs.HoverTabCached - 1 );


}
else if ( ret == i ) {

Tabs.DeleteTab( Tabs.HoverTabCached );

}
return true;

}

function on_drag_over( Drag, x, y, mask) {

Tabs.DragOver = 1;
on_mouse_move(x, y);

}

function on_drag_drop( Drag, x, y, mask) {

on_mouse_move(x, y);

Drag.Parsable = true;
Drag.ToSelect = true;

//fb.trace('Tabs.HoverTab = ' + Tabs.HoverTab);

Drag.Playlist = Tabs.HoverTab - 1;
Drag.ToPlaylist();
fb.ActivePlaylist = Tabs.HoverTab - 1;
Tabs.DragOver = 0;

}

function on_drag_leave() {
Tabs.DragOver = 0;
on_mouse_leave();
}
Вложения
Pl_tab_script.jpg
maniac736 M
Бывалый
Аватара
Возраст: 39
Откуда: Россия Иркутск
Репутация: 1
С нами: 3 месяца 7 дней

Сообщение #2108 vladj » Вчера, 19:45

maniac736 писал(а):Уже голову сломал. Может кто-нибудь сможет подсказать как привести в нормальный вид выделенный мною на картинке шрифт в данном скрипте
Подсказать сможет только тот, у кого эта сборка установлена, в других не проверить т.к. скрипт крашится будет, там папки -картинки нужны по пути s7e_files\\images, ради ответа сборку ставить в ломы.... а что, правой по окну и в Properties разве нет настройки изменения цвета в этом месте ?
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 316
С нами: 7 лет 11 месяцев

Сообщение #2109 maniac736 » Вчера, 20:18

vladj, данный скрипт не крашится. в данном случае мною за основу была взята Сборка foobar2000 RU Индиго от San-dr версии 1.3.1 + Foobar 2000 1.3.17/ Просто я добавил в него CUI + PSS. Все необходимые картинки там есть. Но вопрос к картинкам не касается - речь исключительно о цветовой настройка шрифта средства WSH. Мышью там ничего не настроишь. Я многое менял и настраивал вручную меняя код. Просто WSH для меня пока как большая черная книга и я с цветами ни разу даже вне скриптов с такой проблемой не сталкивался.
maniac736 M
Бывалый
Аватара
Возраст: 39
Откуда: Россия Иркутск
Репутация: 1
С нами: 3 месяца 7 дней

Сообщение #2110 MC Web » Вчера, 22:10

maniac736, если нужен Менеджер плейлистов в виде вкладок, вот еще вариант (настройка цвета в Свойства WSH):

Изображение

WSH Tabbed Playlist Manager_3.3.0_Rus
MC Web
Мастер
Аватара
Репутация: 110
С нами: 4 года 4 месяца

Сообщение #2111 vladj » Вчера, 22:56

Ты зачем напостил в двух темах, смотри в другой, где я ответил....только путаницу вносишь...
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 316
С нами: 7 лет 11 месяцев

Пред.

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