mf.usermenu
Re: mf.usermenu
А для чего вообще может понадобиться такая функциональность? Допустим, в этой папке могут лежать файлы подменю. Но тогда она уже существует. Так что переход - вполне объяснимая функциональность, а вот её создание лично мне неясно. Может, имеет смысл открывать файл, имя которого указано без пути, в %farprofile%\Menus, а если нужно открыть в текущем каталоге, явно указывать ".\<имя файла>"?
P. S. Установил последнюю сборку, посмотрел. Насчёт создания, оказывается, не так понял. В принципе, логично разбивать сложные меню на отдельные файлы и хранить всё хозяйство в спецпапке, и данный шаг после внедрения папки %farprofile%\Macros вполне логичен. Но надо бы, пожалуй, добавить явное указание запуска меню из %farhome%, например, как "~\<имя файла>". Или второй параметр расширить, если он останется. И, возможно, в этом варианте, поменять его местами с первым, все возможные варианты действия функции нагрузить на него, а имя файла сделать опциональным и чисто строкой. Где-то так:
P. P. S.
попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.
P. S. Установил последнюю сборку, посмотрел. Насчёт создания, оказывается, не так понял. В принципе, логично разбивать сложные меню на отдельные файлы и хранить всё хозяйство в спецпапке, и данный шаг после внедрения папки %farprofile%\Macros вполне логичен. Но надо бы, пожалуй, добавить явное указание запуска меню из %farhome%, например, как "~\<имя файла>". Или второй параметр расширить, если он останется. И, возможно, в этом варианте, поменять его местами с первым, все возможные варианты действия функции нагрузить на него, а имя файла сделать опциональным и чисто строкой. Где-то так:
P. P. S.
попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: mf.usermenu
Предлагаю расширение .farmenu. Тогда на файлы можно будет повесить ассоциацию.IgorZ wrote:- Если в filename опущено расширение файла, то по умолчанию берётся ".ini"
Если расширять в эту сторону, тогда должны быть- Если mode равен 0 или не задан, равносильно нажатию F2 в панелях.
- 0 - аналог F2
- 1 - главное меню
- 2 - локальное меню
Сейчас, что бы однозначно вызвать главное меню приходится делать Keys('F9 C M M'), что не удобно, так как зависит от языка интерфейса.
Разум когда-нибудь победит.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: mf.usermenu
Но это не связано с функцией mf.usermenu, это то же самое, как если вызвать "Edit user menu" из меню Commands.IgorZ wrote:попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: mf.usermenu
О! Из редактора тоже запускается. Теперь можно обработку файлов в меню помещать.Shmuel wrote:Ещё один момент: теперь пользовательское меню можно вызывать не только из панелей.
Разум когда-нибудь победит.
Re: mf.usermenu
Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).Smitis wrote:Если расширять в эту сторону, тогда должны быть- Если mode равен 0 или не задан, равносильно нажатию F2 в панелях.
- 0 - аналог F2
- 1 - главное меню
- 2 - локальное меню
Сейчас, что бы однозначно вызвать главное меню приходится делать Keys('F9 C M M'), что не удобно, так как зависит от языка интерфейса.
Кстати, без mf.usermenu() можно вызывать глобальное меню независимо от языка так:
Code: Select all
Keys(win.SearchPath(".","FarMenu.ini") and "F2 ShiftF2" or "F2")
Я в курсе. Но по факту, эта команда из главного меню вызывает не редактор меню, а само меню на исполнение. И, кстати, в русском интерфейсе она называется просто "Меню пользователя", что правильней. Так что моё предложение относится скорее не к функции, и даже не к LuaFar, а к самому FARу.Shmuel wrote:Но это не связано с функцией mf.usermenu, это то же самое, как если вызвать "Edit user menu" из меню Commands.IgorZ wrote:попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.
Last edited by IgorZ on Fri 01 Mar, 2013 09:45, edited 2 times in total.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: mf.usermenu
Почему-то не проходит mf.usermenu(true) Keys("Enter")
Enter передаётся в оболочку
П.С.
А, sorry, с этим понятно. Макрос ждёт завершения функции.
Явно не хватает третьего параметра строкового - передать нажатие клавиш в меню
Enter передаётся в оболочку
П.С.
А, sorry, с этим понятно. Макрос ждёт завершения функции.
Явно не хватает третьего параметра строкового - передать нажатие клавиш в меню
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: mf.usermenu
Напомню что локальное меню ищется не только в текущей папке, но и в родительских.IgorZ wrote:Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).
Re: mf.usermenu
Забыл. Тогда надо исправить mode=2 на локальное меню, а mode 2-4 передвинуть на 3-5. Но это потребует, возможно, бОльших переделок, тогда как остальные пункты уже есть, надо только поправить api.lua.John Doe wrote:Напомню что локальное меню ищется не только в текущей папке, но и в родительских.IgorZ wrote:Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: mf.usermenu
Хорошая новость, давно хотелось. Есть связанный тикет http://bugs.farmanager.com/view.php?id=2032Shmuel wrote:Ещё один момент: теперь пользовательское меню можно вызывать не только из панелей.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: mf.usermenu
Хотелось бы узнать больше мнений по этому вопросу.Shmuel wrote:Вот возникли сомнения: в новой функции mf.usermenu второй параметр ("mode") и связанное с ним создание папки %farprofile%\Menus - не лишнее ли это?
Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?Smitis wrote:Почему-то не проходит mf.usermenu(true) Keys("Enter")
Enter передаётся в оболочку
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: mf.usermenu
Открывать меню и возвращать управление макросу? Конечно!Shmuel wrote:Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?
Сделать возврат true, если файл меню найден и открыт.Возвращает:
ничего
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: mf.usermenu
Почему так категорично?Smitis wrote:Открывать меню и возвращать управление макросу? Конечно!Shmuel wrote:Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?
Могут быть разные сценарии.
Re: mf.usermenu
Есть предложение в UserMenu добавить "выбор обработчика контента" - кому отдавать содержимое (например, чтобы не юзать префикс плагина в каждой строке, а, если это Lua, то usermenu просто отдаст содержимое кому надо сам, ориентируясь на настроенный ранее обработчик), если нет обработчика - то как и раньше, в cmd.
...хотя, наверное рано я с этим. Сначала нужен DI_MEMO, потом... (и т.д.)
...хотя, наверное рано я с этим. Сначала нужен DI_MEMO, потом... (и т.д.)
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!