Toolbar plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 70
Joined: Thu May 05, 2022 5:38 am

Re: Toolbar plugin

Post by dothen »

ProfessorSeleznyov wrote: Sat Jan 03, 2026 2:35 pm Есть пункты меню, отображающие 3-х строчную панель инструментов. Вкл/выкл.

"Главная" Call("ToolBar::Main", 1, "1(-1),2(-2),3(-2)")
"Редактирование" Call("ToolBar::Main", 1, "1(-2),2(-1),3(-2)")
"Плагины" Call("ToolBar::Main", 1, "1(-2),2(-2),3(-1)")

Возможно ли прикрутить галочку отмеченного пункта?
ToolBarRows.js
Скрипт добавляет галочки и может скрывать/показывать группы кнопок.

Offline
Posts: 10
Joined: Sat Nov 22, 2025 7:24 am

Re: Toolbar plugin

Post by ProfessorSeleznyov »

dothen wrote: Fri Jan 09, 2026 8:03 am ToolBarRows.js
Скрипт добавляет галочки и может скрывать/показывать группы кнопок.
Преогромно благодарен! Отличный скрипт!

Offline
Posts: 10
Joined: Sat Nov 22, 2025 7:24 am

Re: Toolbar plugin

Post by ProfessorSeleznyov »

Команда 4101 "Создать новое окно редактирования" в режиме MDI-PMDI, при включенной опции "Не открывать программу дважды" не активна. Это логично.
Возможно-ли отслеживать зависимость от состояния других команд (скриптов), чтобы настроить видимость целевой команды?

На этом примере - скрыть в меню или панели инструментов пункт "Создать новое окно редактирования", при включенной опции "Не открывать программу дважды".
Может там использовать переменные, указанные в описании ToolBar plugin?

Offline
Posts: 309
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Re: Toolbar plugin

Post by yozhic »

ProfessorSeleznyov wrote: Sat Jan 10, 2026 6:03 pm скрыть в меню или панели инструментов пункт "Создать новое окно редактирования", при включенной опции "Не открывать программу дважды".
Вроде так:

Code: Select all

SET(64, If(`SendMain(1222 /*AKD_GETMAININFO*/, 152 /*MI_SINGLEOPENFILE*/, 0) == 0`))
  "Создать новое окно редактирования" Command(4101)
UNSET(64)
Другие значения для SendMain можно посмотреть в исходниках, в AkelDLL.h.

Offline
Posts: 10
Joined: Sat Nov 22, 2025 7:24 am

Re: Toolbar plugin

Post by ProfessorSeleznyov »

Тут моих знаний не хватает. Нужно сделать неактивным (серым) пункт меню и значок кнопки.
Должно быть что-то типа:

Code: Select all

SET(64, If(`SendMain(1222 /*AKD_GETMAININFO*/, 153 /*MI_SINGLEOPENPROGRAM*/, 0) == 0`, 0x2, 0x0))
	"Новое окно (x64)"Exec('%a\AkelPad64.exe') Icon("%a\AkelFiles\Icons\icons.icl", 245)
UNSET(64)
Но это не делает серым пункт меню и кнопку, при включенном режиме MI_SINGLEOPENPROGRAM
Что я делаю не так?

Offline
Posts: 309
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Re: Toolbar plugin

Post by yozhic »

Code: Select all

SET(128, If(`SendMain(1222 /*AKD_GETMAININFO*/, 153 /*MI_SINGLEOPENPROGRAM*/, 0) == 0`, 0x0, 0x2))
	"Новое окно (x64)" Exec('%a\AkelPad64.exe') Icon("%a\AkelFiles\Icons\icons.icl", 245)
UNSET(128)
Вместо SET(64) надо SET(128).

Синтаксис: "SET(128, If("выражение"[, ЕслиИстина, ЕслиЛожь]))". У нас 0x2 — это серый пункт, а 0х0 — обычный. Если в выражении "== 0", то значит пункт отключен — пишем 0x0, 0x2. А если бы было в выражении "== 1", то написали бы наоборот — 0x2, 0x0.

Offline
Posts: 10
Joined: Sat Nov 22, 2025 7:24 am

Re: Toolbar plugin

Post by ProfessorSeleznyov »

:D Отлично! Работает.
Post Reply