Занялся для себя созданием простых кнопочек для быстрого выполнения желаемых команд (чтоб не лазить по меню постоянно).
За основу взял код со сборки DarkOne Additional Buttons Panel:
- Код: Выделить всё
// ==PREPROCESSOR==
// @name "DarkOne Additional Buttons Panel"
// @version "3.0"
// @author "tedGo"
// @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 = window.MaxWidth = 200;
// ----- CREATE BUTTONS ---------------------------------------------
var imgPath = configPath + "Buttons\\Control\\";
Buttons.a = new Button(63, 5, 57, 14, {normal: imgPath + "AddOnRight.png", hover: imgPath + "AddOnRightMH.png"}, function(){fb.RunContextCommand("Properties");});
Buttons.b = new Button(5, 5, 60, 14, {normal: imgPath + "AddOnLeft.png", hover: imgPath + "AddOnLeftMH.png"}, function(){fb.RunMainMenuCommand("View/ELPlaylist/Refresh");});
Buttons.c = new Button(5, 25, 58, 14, {normal: imgPath + "AddOnLeft.png", hover: imgPath + "AddOnLeftMH.png"}, function(){fb.RunContextCommand("Automatically analyse BPMs");});
Buttons.d = new Button(63, 25, 57, 14, {normal: imgPath + "AddOnRight.png", hover: imgPath + "AddOnRightMH.png"}, function(){fb.RunContextCommand("Dynamic Range Meter");});
Buttons.e = new Button(170, 5, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Tagging/Scripts/[CDM]");});
Buttons.f = new Button(170, 25, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Tagging/Scripts/[CDS]");});
Buttons.g = new Button(270, 5, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Convert/WAV here");});
Buttons.h = new Button(270, 25, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Convert/MP3 here");});
Buttons.i = new Button(370, 5, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Convert/ED FLAC [for BEST]");});
Buttons.j = new Button(370, 25, 60, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunContextCommand("Convert/ED MP3 [for BEST]");});
Buttons.k = new Button(470, 5, 85, 14, {normal: imgPath + "AddOnAlone.png", hover: imgPath + "AddOnAloneMH.png"}, function(){fb.RunMainMenuCommand("Album List");});
// ----- DRAW -------------------------------------------------------
function on_paint(gr) {
buttonsDraw(gr);
gr.GdiDrawText("REFRESH", btn_font, ui_btntxtcol, 5, 6, 60, 10, 33);
gr.GdiDrawText("PROPERTIES", btn_font, ui_btntxtcol, 66, 6, 54, 10, 32);
gr.GdiDrawText("BPM", btn_font, ui_btntxtcol, 25, 26, 54, 10, 32);
gr.GdiDrawText("DRM", btn_font, ui_btntxtcol, 44, 26, 54, 10, 34);
gr.GdiDrawText("...[CDM]", btn_font, ui_btntxtcol, 170, 6, 60, 10, 33);
gr.GdiDrawText("...[CDS]", btn_font, ui_btntxtcol, 170, 26, 60, 10, 33);
gr.GdiDrawText("...►[WAV]", btn_font, ui_btntxtcol, 270, 6, 60, 10, 33);
gr.GdiDrawText("...►[MP3]", btn_font, ui_btntxtcol, 270, 26, 60, 10, 33);
gr.GdiDrawText("ED ►[FLAC]", btn_font, ui_btntxtcol, 370, 6, 60, 10, 33);
gr.GdiDrawText("ED ►[MP3]", btn_font, ui_btntxtcol, 370, 26, 60, 10, 33);
gr.GdiDrawText("ALBUM LIST", btn_font, ui_btntxtcol, 470, 6, 54, 10, 34);
}
Практически всё работает как нужно, но есть проблемы:
1) Не всё удаётся "вынуть" из контекстного меню (RunContextCommand), например, ничего из контекстного меню Legacy Commands (unsorted) - может там какой-то другой код прописан, я не знаю...
Но главная проблема:
2) Выполнение кода (конвертирование, тегирование и т.п. - см. код выше) действует только на текущий (проигрываемый) трек, но никак не на выделение нужного блока. При ручном выделении (равно как и по горячим клавишам) и вызова соответствующих команд из контекстного меню - всё работает как нужно.
Поможете доработать код, чтоб решить хотя бы главную проблему?
P.S. Добавляю через WSH Scripts (Columns UI)