Page 1 of 1
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 09:44
by zg
зачем нужен FARMACRO_KEY_EVENT?
давайте его выкинем.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 10:08
by John Doe
Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 10:34
by zg
John Doe wrote:Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
реальный пример такой необходимости, пожалуйста.
John Doe wrote:Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
пусть не обрабатывает, в чём проблема-то?
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 10:56
by John Doe
zg wrote: реальный пример такой необходимости, пожалуйста.
Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.
zg wrote: пусть не обрабатывает, в чём проблема-то?
В код MacroLib не смотрел, но я для своих целей использую (а точнее игнорирую) именно FARMACRO_KEY_EVENT.
Чем предлагаете заменить?
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 11:16
by zg
John Doe wrote:Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.
и в чём проблема?
John Doe wrote:Чем предлагаете заменить?
прежде чем задавать подобные вопросы, неплохо хотя бы бегло ознакомиться с соответствующим разделом энциклопедии.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 11:22
by John Doe
Давайте пропустим воспитательную часть, и перейдём сразу к тому моменту, где вы мне дураку поведаете как всё это делают профессионалы.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 15:35
by John Doe
Ну раз профессионалы делиться не хотят, то...
zg wrote: и в чём проблема?
1. При получении клавиши Alt плагин начинает инкрементальный поиск. В случае макроклавиши отпускания не последует, а значит следующую последующие нажатия могут быть неверно интерпретированы плагином.
2. При нажатии Alt-символ удобно получать букву прямо из поля UnicodeChar.
А в случае макронажатий значение этого поля уже не будет соответствовать текущей раскладке.
zg wrote: прежде чем задавать подобные вопросы, неплохо хотя бы бегло ознакомиться с соответствующим разделом энциклопедии.
Ознакамливался, и на практике подробно изучал.
И в упор не понимаю, что же вы имеете ввиду.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 15:57
by zg
1. я не вижу никаких технических проблем, чтобы для макрокнопок приходили и отпускания.
2. и что?
3. MCTL_GETSTATE.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 16:03
by John Doe
Если для макроклавиш исправить и UnicodeChar, то ничего.
Нерационально на каждое событие дёргать в ответ АПИ.
Притом MCTL_GETSTATE решает не ту задачу: например если на экране меню, вызванное из макроса, то MCTL_GETSTATE будет не 0.
Но далее все нажатия в меню делает пользователь, и их вообще-то надо тоже обрабатывать.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 16:08
by zg
John Doe wrote:например если на экране меню, вызванное из макроса
сабж у нас официально приходит только processeditorinput. какое меню?
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 17:45
by John Doe
Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.
Но с ProcessEditorInput абсолютно та же история: например если открыть редактор так
lua:editor.Editor("c:\\autoexec.bat")
, то в ProcessEditorInput по MCTL_GETSTATE всегда будет приходить MACROSTATE_EXECUTING_COMMON.
zg wrote: 1. я не вижу никаких технических проблем, чтобы для макрокнопок приходили и отпускания.
Есть тут один скользкий момент.
Например, есть макрос
Code: Select all
Macro {
area="Common"; key="CtrlF1";
action=function()
Keys"CtrlF2"
end;
}
Если
Keys"CtrlF1"
будет генерировать отпускания, то в обработчик придёт лишнее нажатие и лишнее отпускание
Ctrl
(down down up up), что может поломать логику обработчика.
FARMACRO_KEY_EVENT.
Posted: Fri 20 Mar, 2015 19:05
by zg
John Doe wrote:Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.
ProcessConsoleInput не является частью стабильного апи и может быть выпилено завтра хоть полностью. или сегодня.
FARMACRO_KEY_EVENT.
Posted: Sat 21 Mar, 2015 15:20
by John Doe
zg wrote:не является частью стабильного апи
Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.
FARMACRO_KEY_EVENT.
Posted: Sat 21 Mar, 2015 15:57
by zg
John Doe wrote:Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.
есть
тема. претензии предъявляйте лично тому, кто нефинальное апи добавил в энциклопедию. здесь это обсуждать не надо.
FARMACRO_KEY_EVENT.
Posted: Mon 23 Mar, 2015 11:11
by John Doe
Code: Select all
zg 21.03.2015 00:32:43 +0200 - build 4321
1. событие FARMACRO_KEY_EVENT удалено.
Получается в ProcessConsoleInput и ProcessEditorInput сейчас
нет надёжного способа определить, что событие представляет собой макронажатие.
Вопрос: планируется ли предоставить какой-то другой способ, или эта информация официально считается лишней?