ContextMenu plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor
А вот такое использование SET(16) планировалось?
CLEAR

SET(16)
"&Файл" Index(-1)
{

Далее ВСЁ Главное меню

"&О программе..." Command(4351)
}
UNSET(16)
Дело в том, что при наличии:
1. "Пункт меню" Menu("CONTEXTMENUPOINT")...
подменю не создается;
2. INCLUDE("CONTEXTMENUPOINT")
значки из этого меню все равно загружаются.

Соответственно и поведение разделителей разное, зависит от их нахождения: в Главном меню или в INCLUDE.
ContextMenu-Rus wrote:Необходимо SET(16) располагать до первого пункта меню, а UNSET(16) сразу после последнего.
для меня не совсем понятно.
Пожалуйста, приведите, в ответе :wink: , правильный пример использования SET(16). Спасибо.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Kley
SET(16) можно сказать добавлен только для MDIDOCUMENTS, т.к. наличие SET(16) отключает всю обработку ContextMenu плагином, кроме реакции на нажатие.

Текст немного дополнен:
ContextMenu-Rus.txt wrote: SET(16)
создать пункты меню без обработки плагином (отключает: иконки, метод Menu(), cпециальный пункт INCLUDE).
Необходимо SET(16) располагать до первого пункта меню, а UNSET(16) сразу после последнего.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor
Подскажите пожалуйста, есть ли возможность отметить нажатый пункт меню:

Code: Select all

-"Пробелы и Табуляции" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"1,2,4,5,6"`)
как-то по аналогии с нажатой кнопкой тулбара, например, точечкой или галкой..?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh

Code: Select all

SET(128, If(`Call("SpecialChar::Settings", 2, "1,2,4,5,6", 0, 0, &nResult, 0)`, 0x1, 0x0))
   "Пробелы и Табуляции" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"1,2,4,5,6"`)
UNSET(128)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Добавлено: проверка на количество параметров.

Added: check for parameters count.


ContextMenu plugin v16.7

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor
Спасибо!
А как изменить условие, чтобы при отключении

Code: Select all

+Call("SpecialChar::Main")
галки с пунктов меню снимались?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh

Code: Select all

SET(128, If(`AkelPad.IsPluginRunning("SpecialChar::Main") && Call("SpecialChar::Settings", 2, "1,2,4,5,6", 0, 0, &nResult, 0)`, 0x1, 0x0))
   "Пробелы и Табуляции" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"1,2,4,5,6"`)
UNSET(128)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: убрано мелькание окна редактирования диалога при изменении размеров диалога.

Changed: removed flickering of the edit window in dialog when changing dialog size.


ContextMenu plugin v16.8

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor
Интересный микс из JS и синтаксиса вызова команд меню)
Работает, спасибо!

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Исправлено: передача отрицательного значения во внешнем вызове.

Fixed: passing negative value in external call.


ContextMenu plugin v16.9

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor
Если в меню записать строку (или подобную ей) с ошибкой:
SET(128, If(`Call("Scripts::Main", 4, "EvalCmd.js", 'If (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`, 0x0, 0x2))
получим пару сообщений:

Code: Select all

---------------------------
Scripts плагин
---------------------------
Скрипт:	C:\...\EvalCmd.js
Строка:	86
Символ:	5
Ошибка:	Предполагается наличие ';'
Код:	800A03EC
Источник:	Ошибка компиляции Microsoft JScript

Code: Select all

---------------------------
ContextMenu плагин
---------------------------
If: SET(128) изменил фокус окна.
Появляется пустой диалог Главного меню и AkelPad вылетает.
Нельзя ли это исправить? Или, как вариант, спасает try {eval(pArgLine);} catch (Err) {} в EvalCmd.js.
Спасибо.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Kley
Исправлено. Будет доступно после релиза 4.9.5.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Исправлено: падение после сообщения "If: SET(128) изменил фокус окна.".

Fixed: crash after message "If: SET(128) changed window focus.".


ContextMenu plugin v17.0

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Исправлено: загрузка иконок из библиотек на Windows Server 2003.

Fixed: icons loading from libraries on Windows Server 2003.


ContextMenu plugin v17.1

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor
Выбрал эту тему, но замечание т. ж. касается и "ToolBar" плагина.
Открыл диалог настроек, свернул его... Через некоторое время щелкнул в меню (Ctrl + клик) и ни чего.
Думал, что что-то сломалось. Ну, забыл я, что диалог уже открыт :).
Нельзя ли это исправить? Т. е. восстанавливать окно диалога на экране.
ContextMenu v17.2, ToolBar v12.3
Post Reply