ContextMenu plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Instructor wrote:В Favourites AkelPad'овские переменные не реализованы.
Может быть, стоит добавить? :)
Тем более что код для поддержки этих переменных внутри ContextMenu уже есть.

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

Post by Instructor »

DV
Точно :)

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

Post by Instructor »

Добавлено: поддержка переменной %a в пути избранных файлов.

Changed: support for %a variable in the path of favourite files.


ContextMenu plugin v8.3

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

Post by Infocatcher »

В Win 7 глючит контекстное меню последних файлов. Вроде, только если используются иконки.

Code: Select all

# Системная тема оформления без иконок
# SET(16)
EXPLORER
SEPARATOR
"&Дополнительно"
{
  -"Открыть в &блокноте" Call("Scripts::Main", 1, "openFileIn.js", '"Notepad" "%f"') Icon("%a\AkelFiles\Plugs\icons\notepad.ico")
  -"Открыть в &Notepad++	Ctrl+Shift++" Call("Scripts::Main", 1, "openFileIn.js", '"Notepad++" "%f"') Icon("%a\AkelFiles\Plugs\icons\notepad++.ico")
  #-"Открыть в &PSPad" Call("Scripts::Main", 1, "openFileIn.js", '"PSPad" "%f"')
  #-"Открыть в &EmEditor" Call("Scripts::Main", 1, "openFileIn.js", '"EmEditor" "%f"')
  SEPARATOR
  "Открыть в AkelPad 3.x" Exec('"%a\..\AkelPad-3.x\AkelPad.exe" "%f"') Icon("%a\..\AkelPad-3.x\AkelPad.exe", 0)
  SEPARATOR
  "&Открыть папку в проводнике" Exec("explorer /select, %f") Icon("%a\AkelFiles\Plugs\icons\explorer.ico")
  -"Открыть папку в &Total Commander" Call("Scripts::Main", 1, "openFileIn.js", '"Total Commander" "%f"') Icon("%a\AkelFiles\Plugs\icons\total_commander.ico")
  -"Показать в панели проводника	Ctrl+Alt+E" Call("Explorer::Main", 1, "%f") Icon("%a\AkelFiles\Plugs\Explorer.dll", 0)
  SEPARATOR
  -"Пере&именовать файл…" Call("Scripts::Main", 1, "RenameFile.js", "", 0)
  SEPARATOR
  -"Копировать &имя файла" Call("Scripts::Main", 1, "copyArg.js", `"%f" "[^\\/]*$"`)
  -"Копировать &путь к файлу" Call("Scripts::Main", 1, "copyArg.js", `"%f"`)
  -"Копировать &путь к папке" Call("Scripts::Main", 1, "copyArg.js", `"%d"`)
  SEPARATOR
  -"&Редактировать это меню…" Call("ContextMenu::Main", 1, 5)
}
SEPARATOR
-"Управление последними файлами…" Call("RecentFiles::Manage")


Image

Во-первых, у стандартных пунктов (EXPLORER) неправильный фон при наведении курсора, а во-вторых, названия добавленных пунктов (у них фон правильный, как, кстати, и у любых меню второго уровня) расположены чуть правее.
При втором вызове названия добавленных пунктов иногда исчезают, а при наведении на них курсора AkelPad падает. А иногда названия исчезают не полностью, тогда не падает.

P.S. Давно этим меню не пользовался, даже обновить кое-что забыл. :D

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

Post by VladSh »

Также глючит удаление ярлыков файлов из избранного. Если выделить все файлы (кстати Ctrl+A к сожалению в диалоге не работает), а потом удалить, то несколько файлов остаётся, если перегрузить Акел. то всё нормально - ни одного файла в Избранном.
* перед удалением всех файлов жал кнопку удаления несуществующих (у меня был один несуществующий).

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

Post by Instructor »

Infocatcher wrote:...При втором вызове названия добавленных пунктов иногда исчезают, а при наведении на них курсора AkelPad падает...
Исправлено.
VladSh wrote:Также глючит удаление ярлыков файлов из избранного.
Не воспроизводится.

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

Post by Infocatcher »

Instructor wrote:Исправлено.
А на коррекцию внешнего вида есть надежда? :)

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

Post by Instructor »

Infocatcher wrote:А на коррекцию внешнего вида есть надежда? :)
2 способа:
1. Помещайте пункты меню: MDIDOCUMENTS и EXPLORER в отдельное меню.
2. В начале меню содержащем MDIDOCUMENTS и EXPLORER добавляем SET(16) и в конце меню соответственно UNSET(16).

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

И опять насчёт Favourites. Теперь я вижу, что мне не хватает в нём ещё нескольких возможностей :)
1. добавлять разделитель (separator).
2. открывать файл помощью внешней ассоциированной программы.
Для примера, вот часть моего главного меню:

Code: Select all

"&Избранное" Index(-2)
{
  "Coder-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\Coder-Rus.txt"`)
  "ContextMenu-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\ContextMenu-Rus.txt"`)
  "Hotkeys-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\Hotkeys-Rus.txt"`)
  "QSearch-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\QSearch-Rus.txt"`)
  "Scripts-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\Scripts-Rus.txt"`)
  "ToolBar-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\ToolBar-Rus.txt"`)
  "XBrackets-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\XBrackets-Rus.txt"`)
  SEPARATOR
  "JScript.chm" Exec(`rundll32.exe shell32,ShellExec_RunDLL "%a\JScript.chm"`)
  "WSH.chm" Exec(`rundll32.exe shell32,ShellExec_RunDLL "%a\WSH.chm"`)
}
Было бы логично использовать для этого встроенные возможности FAVOURITES, однако FAVOURITES не поддерживает таких вещей как SEPARATOR и rundll32.exe shell32,ShellExec_RunDLL.

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

Post by Infocatcher »

Instructor wrote:1. Помещайте пункты меню: MDIDOCUMENTS и EXPLORER в отдельное меню.
Не всегда удобно.
Instructor wrote:2. В начале меню содержащем MDIDOCUMENTS и EXPLORER добавляем SET(16) и в конце меню соответственно UNSET(16).
Теряются иконки с одного уровня меню, но уже лучше.
Теперь другая проблема – после открытия контекстного меню последних файлов неправильный фон при наведении курсора оказывается у избранного/закладок (FAVOURITES) и кое-где еще, но уже без особой логики. Исправилось ли это?

P.S. Уж больно хитро выходит.

Code: Select all

# Системная тема оформления без иконок
SET(16)
EXPLORER
SEPARATOR
"&Дополнительно"
{
  UNSET(16)
  -"Открыть в &блокноте" Call("Scripts::Main", 1, "openFileIn.js", '"Notepad" "%f"') Icon("%a\AkelFiles\Plugs\icons\notepad.ico")
  -"Открыть в &Notepad++	Ctrl+Shift++" Call("Scripts::Main", 1, "openFileIn.js", '"Notepad++" "%f"') Icon("%a\AkelFiles\Plugs\icons\notepad++.ico")
  #-"Открыть в &PSPad" Call("Scripts::Main", 1, "openFileIn.js", '"PSPad" "%f"')
  #-"Открыть в &EmEditor" Call("Scripts::Main", 1, "openFileIn.js", '"EmEditor" "%f"')
  SEPARATOR
  "Открыть в AkelPad 3.x" Exec('"%a\..\AkelPad-3.x\AkelPad.exe" "%f"') Icon("%a\..\AkelPad-3.x\AkelPad.exe", 0)
  SEPARATOR
  "&Открыть папку в проводнике" Exec("explorer /select, %f") Icon("%a\AkelFiles\Plugs\icons\explorer.ico")
  -"Открыть папку в &Total Commander" Call("Scripts::Main", 1, "openFileIn.js", '"Total Commander" "%f"') Icon("%a\AkelFiles\Plugs\icons\total_commander.ico")
  -"Показать в панели проводника	Ctrl+Alt+E" Call("Explorer::Main", 1, "%f") Icon("%a\AkelFiles\Plugs\Explorer.dll", 0)
  SEPARATOR
  -"Пере&именовать файл…" Call("Scripts::Main", 1, "RenameFile.js")
  SEPARATOR
  -"Копировать &имя файла"    Call("Scripts::Main", 1, "copyPath.js", `"%f" "<file>.<ext>"`)
  -"Копировать &путь к файлу" Call("Scripts::Main", 1, "copyPath.js", `"%f"`)
  -"Копировать &путь к папке" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<path>"`)
  SEPARATOR
  -"&Редактировать это меню…" Call("ContextMenu::Main", 1, 5)
  SET(16)
}
SEPARATOR
-"Управление последними файлами…" Call("RecentFiles::Manage")

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

Post by Instructor »

Исправлено: совместное использование в одном меню пункта EXPLORER и пунктов со значками.

Fixed: using item EXPLORER and items with icons in one menu.


ContextMenu plugin v8.4

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

Post by Infocatcher »

И снова хитрый фон пункта под курсором в win 7.
После открытия «исправленного меню» из моего предыдущего сообщения ломается отображение фона у RECENTFILES и FAVOURITES в таких меню:

Code: Select all

  "Последние &файлы"
  {
    RECENTFILES
    SEPARATOR
    "Удалить несуществующие" Command(5001)
    -"Удалить все" Call("Scripts::Main", 1, "EvalCmd.js", `'var hMainWnd = AkelPad.GetMainWnd(); if(AkelPad.MessageBox(hMainWnd, "Очистить список последних файлов?", "AkelPad :: " + WScript.ScriptName, 33 /*MB_OKCANCEL|MB_ICONQUESTION*/) == 1 /*IDOK*/) AkelPad.SendMessage(hMainWnd, 1238 /*AKD_RECENTFILES*/, 5 /*RF_CLEAR*/, 0);'`)
    -"Управление…" Call("RecentFiles::Manage")
  }

и

Code: Select all

"&Закладки" Index(-1)
{
  "Добавить &закладку" Favourites(2) Icon(1)
  "&Добавить закладку…" Favourites(1) Icon(0)
  "Уда&лить закладку" Favourites(4) Icon(6)
  "&Управление закладками…" Favourites(3) Icon(8)
  SEPARATOR
  FAVOURITES
}

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

Post by Instructor »

Infocatcher
Instructor wrote:...и в конце меню соответственно UNSET(16).

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

Post by Infocatcher »

Instructor
Тьху ты, упустил.
Теперь осталось только одно неудобство – на одном уровне с MDIDOCUMENTS и EXPLORER не может быть пунктов с иконками.
При этом с FAVOURITES и RECENTFILES таких проблем не возникает. :?

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

Post by VladSh »

Хотелось бы, чтобы "Избранное" было избранным для каждого пользователя компа своим. Плюс возможность экспорта/импорта Избранного.
Post Reply