mf.usermenu

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

Re: mf.usermenu

Post by Shmuel »

Latest post of the previous page:

Skirda wrote:Есть предложение в UserMenu добавить "выбор обработчика контента"
Идея интересная, только непонятно, почему её надо увязывать с DI_MEMO.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

John Doe wrote:
Smitis wrote:
Shmuel wrote:Вопрос ко всем: стоит ли попытаться сделать, чтобы это работало?
Открывать меню и возвращать управление макросу? Конечно!
Почему так категорично?
Могут быть разные сценарии.
Сейчас попробовал вариант с возвращением управления макросу, не дожидаясь закрытия меню, - вроде нормально работает. Может действительно сделать оба варианта, а выбор каким-то флагом?
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Можно Mode сделать набором битовых флагов (т.е. 1,2,4,8,16...).
Хотя может это и не принято в Lua
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

John Doe wrote:Можно Mode сделать набором битовых флагов (т.е. 1,2,4,8,16...).
Хотя может это и не принято в Lua
Это уже проблема попроще, вернее, почти не проблема.
Главное, меня интересует: нужны ли оба варианта? Какие сценарии хороши для какого варианта?
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Shmuel wrote:Это уже проблема попроще, вернее, почти не проблема.
Подумалось, что в Lua есть более гибкое средство - таблицы.
Shmuel wrote:Главное, меня интересует: нужны ли оба варианта? Какие сценарии хороши для какого варианта?
1. Нужно показать пользователю меню и дождаться выбора.
2. Нужно сам выбор осуществить в макросе.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

John Doe wrote:
Shmuel wrote:Главное, меня интересует: нужны ли оба варианта? Какие сценарии хороши для какого варианта?
1. Нужно показать пользователю меню и дождаться выбора.
2. Нужно сам выбор осуществить в макросе.
Если mf.usermenu() - последняя операция в макросе, то второй вариант работает, как первый. Нужен ли первый вариант?
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Вот именно что "если".
Если после закрытия меню макрос должен продолжить работу.

P.S.
Возможностей много, я ещё не думал над конкретным применением функции, поэтому живых примеров нет
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

Ваше мнение понятно: нужны оба варианта. Но я что-то не припоминаю ни одной макрофункции, где была бы возможность такого выбора.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Назовите макрофункции, к которым такая возможность вообще применима.

А вообще есть mmode(3, или как его там
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Как вам такая мысль: что если поведением mf.usermenu будет управлять тот же mmode(3,x)?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

John Doe wrote:Как вам такая мысль: что если поведением mf.usermenu будет управлять тот же mmode(3,x)?
Мне кажется, что управление с помощью параметра функции элегантнее.
User avatar
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

Post by NightRoman »

А не мог бы Фар сам предоставить какую-нибудь комбинацию клавиш для запуска меню повсюду прямо из коробки? Фича очень удобная получается, а многие юзера-не-гики так и не узнают, что она есть, если это только макросом через какую-то функцию делается. (Как, например, F11 есть везде, и все это знают и пользуют).
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: mf.usermenu

Post by Smitis »

NightRoman wrote:А не мог бы Фар сам предоставить какую-нибудь комбинацию клавиш для запуска меню повсюду прямо из коробки? Фича очень удобная получается, а многие юзера-не-гики так и не узнают, что она есть, если это только макросом через какую-то функцию делается. (Как, например, F11 есть везде, и все это знают и пользуют).
Жаль, что F2 в редакторе уже занята.
А вообще, понадобятся разные файлы меню по умолчанию, например, в редакторе врядли нужно меню, открываемое из панелей.
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: mf.usermenu

Post by John Doe »

Shmuel wrote:
John Doe wrote:Как вам такая мысль: что если поведением mf.usermenu будет управлять тот же mmode(3,x)?
Мне кажется, что управление с помощью параметра функции элегантнее.
Управление через mmode мне самому активно не нравится.

Но если функций, [а]синхронностью выполнения которых надо управлять, больше чем одна, то хочется какого-то общего решения.
Например, можно было бы для этого выделить некую сервисную функцию.
Если опираться на имеющиеся средства, то примерно так:

Code: Select all

function asyncCall(f,...)
  local prev=mmode(3,1)
  local r=f(...)
  mmode(3,prev)
  return r
end
Update
С DrawLine работает, что ожидаемо, т.к. это пример из Энциклопедии
Но с mf.usermenu пока не работает...
User avatar
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

Post by NightRoman »

Smitis wrote:А вообще, понадобятся разные файлы меню по умолчанию, например, в редакторе врядли нужно меню, открываемое из панелей.
Сложный вопрос. Полно команд, которые могу отовсюду вызываться. В разных файлах их дублировать - нехорошо. Хуже, чем если в общем меню будут неприменимые к данной области команды (их юзер просто не будет вызывать).

Тут лучше доработать саму систему юзер-меню с учетом новых реалий. А именно, у команд и подменю иметь свойство - области, в которых эти элементы должны показываться

А может даже лучше не скрывать, а показывать серыми - такой вариант лучше с точки зрения редактирования меню на месте. Ибо при скрытых элементах возникают нюансы редактирования - неоднозначность вставки в некоторых случаях, невозможность отредактировать/удалить скрытые элементы и т.п.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: mf.usermenu

Post by Shmuel »

В 3226 mf.usermenu изменилась:
-- параметры поменялись местами
-- появился флаг, управляющий синхронностью/асинхронностью вызова

Описание функции в мануале приведено в соответствие с этими изменениями.
Post Reply

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