ContextMenu plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Drugmix
ContextMenu-Rus.txt wrote:- Левый клик мыши на не специальных пунктах меню с удерживанием клавиши Ctrl открывает диалог настроек с отмеченным кодом пункта.
В данном случае к специальным можно отнести и пункты открывающие подменю.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

(отсюда)
Instructor wrote:
Infocatcher wrote:В общем, хотелось бы починить.
Было здесь. Пункты меню MDIDOCUMENTS и EXPLORER создаются не плагином, поэтому он не контролирует работу по ним (в том числе и отрисовку), а только реагирует на выбор пункта.
Пожалуй, у меня все-таки хотелка. :D
Сделать свою реализацию MDIDOCUMENTS (какой-нибудь MDIDOCUMENTSEXT), с нормальным внешним видом и выводом иконок файлов. :roll:

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Подскажите как прописать команду в меню без подменю в 1-й уровень?

Code: Select all

"&Справка" Index(-1)
{
....
}
-"★" Call("Scripts::Main", 1, "CreateFile.vbs", `"1" "" "" "txt"`) 
Место в меню полно - хотелось его заполнить для ежедневных команд, в котором имена будут 1,2 символа.

Если такого нет, можно ли такое реализовать.

---------- Добавлено ------------------
Есть один неудобный момент.
1. Вложенные меню находятся на Toolbar'e
2. Toolbar открыт внизу

Если просто меню:

Code: Select all

-"Контекстное меню ''Шрифт текста''" Call("ContextMenu::Show", 1,  "-4", "-4", -1, "MENUBBCODETEXTFONT") Icon("%a\AkelPadImage.dll",429) 
То открывается вложенное меню отлично - а именно выше кнопки

Если же используется такой вид:

Code: Select all

"Различные вставки в документ TCH" Insert("?$$?", 1) Menu("MENUFILETCH") Icon("%a\AkelPadImage.dll",1325)
То выпадающее меню наползает на кнопку нижним пунктом под курсор, что часто приводит к ложному вызову нижней команды меню (если чуть дольше придержишь клавишу мыши)

Можно ли подправить, чтобы метод Menu() в нижнем баре открывался как в Call("ContextMenu::Show"...) - выше кнопки

-------------------------------
Ещё. Если кнопка
Call("ContextMenu::Show", 1, "-4", "-4", -1...
стоит на 2-м уровне нижнего бара, то тоже наползание...

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

Post by Instructor »

Andrey_A_A wrote:То выпадающее меню наползает на кнопку нижним пунктом под курсор...
Учтено. Будет доступно после релиза 4.9.1.

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

Post by Instructor »

Изменено: теперь, "-" не обязателен перед названием пункта, если вызывается плагин с параметрами.
Добавлено: метод SET(64) - условие для обработки последующих строк.
Добавлено: метод SET(128) - условное установление статуса для пунктов меню.
Добавлено: необязательный аргумент *MENUHEIGHT для внешнего вызова с кодом 1 - указатель на память, которая получает высоту меню (ContextMenu::Show).
Исправлено: исчезновение пунктов подменю на x64.
Исправлено: ошибка при выполнении внешнего вызова с кодом 2, когда плагин не загружен (ContextMenu::Show).

Changed: now, "-" not necessary before item name, if calling a plugin with parameters.
Added: method SET(64) - condition to parse following lines.
Added: method SET(128) - conditional status set for the menu items.
Added: optional argument *MENUHEIGHT for external call with code 1 - pointer to a buffer, that receives menu height (ContextMenu::Show).
Fixed: submenu items disappearing on x64.
Fixed: crash when execute external call with code 2 when plugin is not loaded (ContextMenu::Show).


ContextMenu plugin v15.1

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

Post by Instructor »

Изменено: меню по умолчанию.

Changed: default menu.


ContextMenu plugin v15.2

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

Post by Instructor »

Добавлено: возможность вызова метода Scripts плагина напрямую из If().
Добавлено: возможность использовать /*комментарий*/ в параметрах методов.

Added: possibility to call Scripts plugin method directly from If().
Added: possibility to use /*comment*/ in method parameters.


ContextMenu plugin v15.3

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

Post by Instructor »

Исправлено: возможное падение при наличии синтаксических ошибок в разных типах меню.

Fixed: possible crash if syntax errors in different menu types.


ContextMenu plugin v15.4

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Не пойму, что не так: есть

Code: Select all

"&Справка" Index(-1)
{
 SET(32, "%a\AkelFiles\Docs\Scripts-Rus.txt")
  "Описание плагинов"
  {
   SET(32, "%a\AkelFiles\Docs\Coder-Rus.txt")
    "Coder-Rus.txt" OpenFile("%a\AkelFiles\Docs\Coder-Rus.txt")
   UNSET(32)
   SET(32, "%a\AkelFiles\Docs\SaveFile-Rus.txt")
    "SaveFile-Rus.txt" OpenFile("%a\AkelFiles\Docs\SaveFile-Rus.txt")
   UNSET(32)
   SET(32, "%a\AkelFiles\Docs\Scripts-Rus.txt")
    "Scripts-Rus.txt" OpenFile("%a\AkelFiles\Docs\Scripts-Rus.txt")
   UNSET(32)
  }
 UNSET(32)
 SET(32, "%a\AkelFiles\Docs\AkelHelp-Rus.htm")
  "&Руководство" Command(4352)
  SEPARATOR1
 UNSET(32)
 SET(32, "%a\Set\!about_coder_files_rus.coder")
  "Параметры Coder-файлов" OpenFile("%a\Set\!about_coder_files_rus.coder")
 UNSET(32)
 SET(32, "%a\Set\color.coder")
  "color.coder (цвета)" OpenFile("%a\Set\color.coder")
 UNSET(32)
 SEPARATOR1
 SET(32, "%a\AkelFiles\AkelUpdater.exe")
  "Проверить обновления..." Command(4353) Icon("%a\AkelFiles\AkelUpdater.exe", 0)
  "Скачать обновления в папку..." Exec(`%a\AkelFiles\AkelUpdater /SAVEDIR="%TEMP%\_Update" /DLONLY`) Icon("%a\AkelFiles\AkelUpdater.exe", 0)
  SEPARATOR1
 UNSET(32)
 SEPARATOR1
 "О программе" Command(4351)
}
(подсократил немного - есть доки от всех плагов, включая неустановленные), убираю файл Scripts-Rus.txt из каталога и плаг выдаёт ошибку Нет открывающей скобки, выделяя крайнюю закрывающую фигурную кнопку.
Last edited by Skif_off on Sat Mar 07, 2015 11:53 am, edited 1 time in total.

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

Post by Instructor »

Skif_off
У меня пишет: "Нет открывающего SET()."
SET(32, "%a\AkelFiles\Docs\Coder-Rus.txt")
"Coder-Rus.txt" OpenFile("%a\AkelFiles\Docs\Coder-Rus.txt")
UNSET(32)
UNSET(32)

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Это я так подсократил :) Там перечислены все плаги и не хотел делать простыню, сейчас исправлю, попробуйте без удвоения UNSET(32).

Добавлено:
Вообще, как-то многовато SET(32)-UNSET(32), больше, чем в остальном меню - выпилю, пожалуй (лишние проверки и время), всё равно надо все меню переделывать. Но понять бы хотелось :)

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

Post by Instructor »

Skif_off wrote:Не пойму, что не так: есть меню...
Откоррретированное меню ошибок не выдаёт.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Закрываю AkelPad, переношу Scripts-Rus.txt из Docs в другую папку, запускаю AkelPad - и вот оно. Убрал ненужную вторую проверку существования Scripts-Rus.txt, всё равно.
Отправил в ЛС.

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

Post by Instructor »

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

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Спасибо, а что это было: подобное использование не предполагалось или баг?
Post Reply