Use onPluginUpdateToolbarMenu event

This commit is contained in:
Oleg Korshul
2025-04-29 16:15:56 +03:00
parent d5be658cf9
commit 2dbb068348
2 changed files with 41 additions and 4 deletions

View File

@ -40,6 +40,7 @@ async function GetOldCustomFunctions() {
}
window.Asc.plugin.init = async function() {
initWithTranslate();
clearChatState();
let editorVersion = await Asc.Library.GetEditorVersion();
@ -131,13 +132,25 @@ window.Asc.plugin.init = async function() {
}
if (Asc.plugin.info.editorSubType === "pdf") {
window.Asc.plugin.attachEditorEvent("onChangeRestrictions", function(value){
let disabled = (value & 0x80) !== 0;
if (window.buttonOCRPage.disabled !== disabled)
window.buttonOCRPage.disabled = disabled;
Asc.Buttons.updateToolbarMenu(window.buttonMainToolbar.id, window.buttonMainToolbar.name, [window.buttonOCRPage]);
});
let restriction = Asc.plugin.info.restrictions;
if (undefined === restriction)
restriction = 0;
let buttonOCRPage = new Asc.ButtonToolbar(window.buttonMainToolbar);
let buttonOCRPage = new Asc.ButtonToolbar(null);
buttonOCRPage.text = "OCR";
buttonOCRPage.icons = window.getToolBarButtonIcons("settings");
window.buttonOCRPage = buttonOCRPage;
if (0x80 & restriction)
buttonOCRPage.disabled = true;
buttonOCRPage.attachOnClick(async function(data){
let requestEngine = AI.Request.create(AI.ActionType.OCR);
if (!requestEngine)
@ -160,10 +173,10 @@ window.Asc.plugin.init = async function() {
html : Asc.Library.ConvertMdToHTML(result)
}]);
});
}
}
initWithTranslate();
Asc.Buttons.updateToolbarMenu(window.buttonMainToolbar.id, window.buttonMainToolbar.name, [buttonOCRPage]);
}
}
};
window.Asc.plugin.onTranslate = function() {

View File

@ -82,6 +82,26 @@
window.Asc.plugin.executeMethod("AddToolbarMenuItem", [items]);
};
Asc.Buttons.updateToolbarMenu = function(id, name, buttons)
{
let buttonMainToolbar = new Asc.ButtonToolbar(null, id);
buttonMainToolbar.text = name;
let items = {
guid : window.Asc.plugin.guid,
tabs : []
};
buttonMainToolbar.childs = buttons;
for (let i = 0, len = buttons.length; i < len; i++)
buttons[i].parent = buttonMainToolbar;
buttonMainToolbar.toToolbar(items);
if (items.tabs.length > 0)
window.Asc.plugin.executeMethod("UpdateToolbarMenuItem", [items]);
};
var ToolbarButtonType = {
Button : "button",
BigButton : "big-button"
@ -110,6 +130,7 @@
this.lockInViewMode = true;
this.enableToggle = false;
this.disabled = false;
this.removed = false;
this.parent = parent ? parent : null;
this.childs = null;
@ -147,6 +168,9 @@
if (this.disabled)
item.disabled = true;
if (this.removed)
item.removed = true;
if (this.icons)
item.icons = this.icons;