mf.usermenu

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

mf.usermenu

Postby Shmuel » Thu 28 Feb, 2013 23:55

Вот возникли сомнения: в новой функции mf.usermenu второй параметр ("mode") и связанное с ним создание папки %farprofile%\Menus - не лишнее ли это?

IgorZ
Posts: 417
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Re: mf.usermenu

Postby IgorZ » Fri 01 Mar, 2013 05:15

А для чего вообще может понадобиться такая функциональность? Допустим, в этой папке могут лежать файлы подменю. Но тогда она уже существует. Так что переход - вполне объяснимая функциональность, а вот её создание лично мне неясно. Может, имеет смысл открывать файл, имя которого указано без пути, в %farprofile%\Menus, а если нужно открыть в текущем каталоге, явно указывать ".\<имя файла>"?

P. S. Установил последнюю сборку, посмотрел. Насчёт создания, оказывается, не так понял. В принципе, логично разбивать сложные меню на отдельные файлы и хранить всё хозяйство в спецпапке, и данный шаг после внедрения папки %farprofile%\Macros вполне логичен. Но надо бы, пожалуй, добавить явное указание запуска меню из %farhome%, например, как "~\<имя файла>". Или второй параметр расширить, если он останется. И, возможно, в этом варианте, поменять его местами с первым, все возможные варианты действия функции нагрузить на него, а имя файла сделать опциональным и чисто строкой. Где-то так:


P. P. S.
попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: mf.usermenu

Postby Smitis » Fri 01 Mar, 2013 08:29

IgorZ wrote:- Если в filename опущено расширение файла, то по умолчанию берётся ".ini"

Предлагаю расширение .farmenu. Тогда на файлы можно будет повесить ассоциацию.

- Если mode равен 0 или не задан, равносильно нажатию F2 в панелях.

Если расширять в эту сторону, тогда должны быть
- 0 - аналог F2
- 1 - главное меню
- 2 - локальное меню
Сейчас, что бы однозначно вызвать главное меню приходится делать Keys('F9 C M M'), что не удобно, так как зависит от языка интерфейса.
Разум когда-нибудь победит.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: mf.usermenu

Postby Shmuel » Fri 01 Mar, 2013 09:26

Ещё один момент: теперь пользовательское меню можно вызывать не только из панелей.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: mf.usermenu

Postby Shmuel » Fri 01 Mar, 2013 09:31

IgorZ wrote:попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.

Но это не связано с функцией mf.usermenu, это то же самое, как если вызвать "Edit user menu" из меню Commands.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: mf.usermenu

Postby Smitis » Fri 01 Mar, 2013 09:39

Shmuel wrote:Ещё один момент: теперь пользовательское меню можно вызывать не только из панелей.

О! Из редактора тоже запускается. Теперь можно обработку файлов в меню помещать.
Разум когда-нибудь победит.

IgorZ
Posts: 417
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Re: mf.usermenu

Postby IgorZ » Fri 01 Mar, 2013 09:40

Smitis wrote:
- Если mode равен 0 или не задан, равносильно нажатию F2 в панелях.

Если расширять в эту сторону, тогда должны быть
- 0 - аналог F2
- 1 - главное меню
- 2 - локальное меню
Сейчас, что бы однозначно вызвать главное меню приходится делать Keys('F9 C M M'), что не удобно, так как зависит от языка интерфейса.

Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).
Кстати, без mf.usermenu() можно вызывать глобальное меню независимо от языка так:

Code: Select all

Keys(win.SearchPath(".","FarMenu.ini") and "F2 ShiftF2" or "F2")

Вроде работает.

Shmuel wrote:
IgorZ wrote:попробовал mf.usermenu(true). Выводится сообщение "Выберите тип пользовательского меню для редактирования". Может, тут стоило бы поправить .lng файлы? Меню-то выводится в обычном виде.

Но это не связано с функцией mf.usermenu, это то же самое, как если вызвать "Edit user menu" из меню Commands.

Я в курсе. Но по факту, эта команда из главного меню вызывает не редактор меню, а само меню на исполнение. И, кстати, в русском интерфейсе она называется просто "Меню пользователя", что правильней. Так что моё предложение относится скорее не к функции, и даже не к LuaFar, а к самому FARу.
Last edited by IgorZ on Fri 01 Mar, 2013 09:45, edited 2 times in total.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: mf.usermenu

Postby Smitis » Fri 01 Mar, 2013 09:49

Почему-то не проходит mf.usermenu(true) Keys("Enter")
Enter передаётся в оболочку

П.С.
А, sorry, с этим понятно. Макрос ждёт завершения функции.
Явно не хватает третьего параметра :) строкового - передать нажатие клавиш в меню
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 11026
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Re: mf.usermenu

Postby John Doe » Fri 01 Mar, 2013 10:42

IgorZ wrote:Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).
Напомню что локальное меню ищется не только в текущей папке, но и в родительских.

IgorZ
Posts: 417
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Re: mf.usermenu

Postby IgorZ » Fri 01 Mar, 2013 10:53

John Doe wrote:
IgorZ wrote:Локальное меню в предложенном мной варианте вызывается mf.usermenu(4).
Напомню что локальное меню ищется не только в текущей папке, но и в родительских.

Забыл. Тогда надо исправить mode=2 на локальное меню, а mode 2-4 передвинуть на 3-5. Но это потребует, возможно, бОльших переделок, тогда как остальные пункты уже есть, надо только поправить api.lua.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: mf.usermenu

Postby NightRoman » Fri 01 Mar, 2013 11:04

Shmuel wrote:Ещё один момент: теперь пользовательское меню можно вызывать не только из панелей.

Хорошая новость, давно хотелось. Есть связанный тикет http://bugs.farmanager.com/view.php?id=2032

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: mf.usermenu

Postby Shmuel » Fri 01 Mar, 2013 12:31

Shmuel wrote:Вот возникли сомнения: в новой функции mf.usermenu второй параметр ("mode") и связанное с ним создание папки %farprofile%\Menus - не лишнее ли это?

Хотелось бы узнать больше мнений по этому вопросу.
Smitis wrote:Почему-то не проходит mf.usermenu(true) Keys("Enter")
Enter передаётся в оболочку

Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: mf.usermenu

Postby Smitis » Fri 01 Mar, 2013 12:48

Shmuel wrote:Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?

Открывать меню и возвращать управление макросу? Конечно!
Возвращает:
ничего

Сделать возврат true, если файл меню найден и открыт.
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 11026
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Re: mf.usermenu

Postby John Doe » Fri 01 Mar, 2013 12:56

Smitis wrote:
Shmuel wrote:Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?

Открывать меню и возвращать управление макросу? Конечно!
Почему так категорично?
Могут быть разные сценарии.

User avatar
Skirda
Posts: 3473
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: mf.usermenu

Postby Skirda » Fri 01 Mar, 2013 13:27

Есть предложение в UserMenu добавить "выбор обработчика контента" - кому отдавать содержимое (например, чтобы не юзать префикс плагина в каждой строке, а, если это Lua, то usermenu просто отдаст содержимое кому надо сам, ориентируясь на настроенный ранее обработчик), если нет обработчика - то как и раньше, в cmd.

...хотя, наверное рано я с этим. Сначала нужен DI_MEMO, потом... (и т.д.)
We are the Borg. You will be assimilated.
So Say We All!

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: mf.usermenu

Postby Shmuel » Fri 01 Mar, 2013 15:54

Skirda wrote:Есть предложение в UserMenu добавить "выбор обработчика контента"

Идея интересная, только непонятно, почему её надо увязывать с DI_MEMO.


Return to “Обсуждение макросов”

Who is online

Users browsing this forum: No registered users and 3 guests