FARMACRO_KEY_EVENT.

Разработка Far.
User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 09:44

зачем нужен FARMACRO_KEY_EVENT?
давайте его выкинем.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 10:08

Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.

Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 10:34

John Doe wrote:Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
реальный пример такой необходимости, пожалуйста.
John Doe wrote:Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
пусть не обрабатывает, в чём проблема-то?

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 10:56

zg wrote:Source of the post реальный пример такой необходимости, пожалуйста.
Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.

zg wrote:Source of the post пусть не обрабатывает, в чём проблема-то?
В код MacroLib не смотрел, но я для своих целей использую (а точнее игнорирую) именно FARMACRO_KEY_EVENT.
Чем предлагаете заменить?

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 11:16

John Doe wrote:Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.
и в чём проблема?
John Doe wrote:Чем предлагаете заменить?
прежде чем задавать подобные вопросы, неплохо хотя бы бегло ознакомиться с соответствующим разделом энциклопедии.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 11:22

Давайте пропустим воспитательную часть, и перейдём сразу к тому моменту, где вы мне дураку поведаете как всё это делают профессионалы.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 15:35

Ну раз профессионалы делиться не хотят, то...
zg wrote:Source of the post и в чём проблема?
1. При получении клавиши Alt плагин начинает инкрементальный поиск. В случае макроклавиши отпускания не последует, а значит следующую последующие нажатия могут быть неверно интерпретированы плагином.
2. При нажатии Alt-символ удобно получать букву прямо из поля UnicodeChar.
А в случае макронажатий значение этого поля уже не будет соответствовать текущей раскладке.

zg wrote:Source of the post прежде чем задавать подобные вопросы, неплохо хотя бы бегло ознакомиться с соответствующим разделом энциклопедии.
Ознакамливался, и на практике подробно изучал.
И в упор не понимаю, что же вы имеете ввиду.

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 15:57

1. я не вижу никаких технических проблем, чтобы для макрокнопок приходили и отпускания.
2. и что?
3. MCTL_GETSTATE.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 16:03

zg wrote:Source of the post 2. и что?
Если для макроклавиш исправить и UnicodeChar, то ничего.
zg wrote:Source of the post MCTL_GETSTATE
Нерационально на каждое событие дёргать в ответ АПИ.
Притом MCTL_GETSTATE решает не ту задачу: например если на экране меню, вызванное из макроса, то MCTL_GETSTATE будет не 0.
Но далее все нажатия в меню делает пользователь, и их вообще-то надо тоже обрабатывать.

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 16:08

John Doe wrote:например если на экране меню, вызванное из макроса
сабж у нас официально приходит только processeditorinput. какое меню?

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

FARMACRO_KEY_EVENT.

Postby John Doe » Fri 20 Mar, 2015 17:45

Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.

Но с ProcessEditorInput абсолютно та же история: например если открыть редактор так lua:editor.Editor("c:\\autoexec.bat"), то в ProcessEditorInput по MCTL_GETSTATE всегда будет приходить MACROSTATE_EXECUTING_COMMON.

zg wrote:Source of the post 1. я не вижу никаких технических проблем, чтобы для макрокнопок приходили и отпускания.
Есть тут один скользкий момент.
Например, есть макрос

Code: Select all

Macro {
  area="Common"; key="CtrlF1";
  action=function()
    Keys"CtrlF2"
  end;
}

Если Keys"CtrlF1" будет генерировать отпускания, то в обработчик придёт лишнее нажатие и лишнее отпускание Ctrl (down down up up), что может поломать логику обработчика.

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Fri 20 Mar, 2015 19:05

John Doe wrote:Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.
ProcessConsoleInput не является частью стабильного апи и может быть выпилено завтра хоть полностью. или сегодня.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Sat 21 Mar, 2015 15:20

zg wrote:Source of the postне является частью стабильного апи
Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.

User avatar
zg
zero-gravity
Posts: 5203
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

FARMACRO_KEY_EVENT.

Postby zg » Sat 21 Mar, 2015 15:57

John Doe wrote:Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.
есть тема. претензии предъявляйте лично тому, кто нефинальное апи добавил в энциклопедию. здесь это обсуждать не надо.

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

FARMACRO_KEY_EVENT.

Postby John Doe » Mon 23 Mar, 2015 11:11

Code: Select all

zg 21.03.2015 00:32:43 +0200 - build 4321

1. событие FARMACRO_KEY_EVENT удалено.
Получается в ProcessConsoleInput и ProcessEditorInput сейчас Source of the postнет надёжного способа определить, что событие представляет собой макронажатие.
Вопрос: планируется ли предоставить какой-то другой способ, или эта информация официально считается лишней?


Return to “Development”

Who is online

Users browsing this forum: No registered users and 1 guest