FARMACRO_KEY_EVENT.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
реальный пример такой необходимости, пожалуйста.John Doe wrote:Макроклавиши реально отличаются от настоящих: для них не приходят отпускания, есть тонкости с UnicodeChar, и др.
Пока это так, плагину необходима информация FARMACRO_KEY_EVENT.
пусть не обрабатывает, в чём проблема-то?John Doe wrote:Кроме того, возможно какой-то плагин и по замыслу не должен обрабатывать макронажатия (например MacroLib).
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.
В код MacroLib не смотрел, но я для своих целей использую (а точнее игнорирую) именно FARMACRO_KEY_EVENT.
Чем предлагаете заменить?
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
и в чём проблема?John Doe wrote:Например инкрементальный поиск, который включается нажатием, и выключается отпусканием.
Там же нужно различать раскладку.
прежде чем задавать подобные вопросы, неплохо хотя бы бегло ознакомиться с соответствующим разделом энциклопедии.John Doe wrote:Чем предлагаете заменить?
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Давайте пропустим воспитательную часть, и перейдём сразу к тому моменту, где вы мне дураку поведаете как всё это делают профессионалы.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Ну раз профессионалы делиться не хотят, то...
2. При нажатии Alt-символ удобно получать букву прямо из поля UnicodeChar.
А в случае макронажатий значение этого поля уже не будет соответствовать текущей раскладке.
И в упор не понимаю, что же вы имеете ввиду.
1. При получении клавиши Alt плагин начинает инкрементальный поиск. В случае макроклавиши отпускания не последует, а значит следующую последующие нажатия могут быть неверно интерпретированы плагином.
2. При нажатии Alt-символ удобно получать букву прямо из поля UnicodeChar.
А в случае макронажатий значение этого поля уже не будет соответствовать текущей раскладке.
Ознакамливался, и на практике подробно изучал.
И в упор не понимаю, что же вы имеете ввиду.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
1. я не вижу никаких технических проблем, чтобы для макрокнопок приходили и отпускания.
2. и что?
3. MCTL_GETSTATE.
2. и что?
3. MCTL_GETSTATE.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Если для макроклавиш исправить и UnicodeChar, то ничего.
Нерационально на каждое событие дёргать в ответ АПИ.
Притом MCTL_GETSTATE решает не ту задачу: например если на экране меню, вызванное из макроса, то MCTL_GETSTATE будет не 0.
Но далее все нажатия в меню делает пользователь, и их вообще-то надо тоже обрабатывать.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
сабж у нас официально приходит только processeditorinput. какое меню?John Doe wrote:например если на экране меню, вызванное из макроса
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.
Но с ProcessEditorInput абсолютно та же история: например если открыть редактор так
Например, есть макрос
Если
Но с ProcessEditorInput абсолютно та же история: например если открыть редактор так
lua:editor.Editor("c:\\autoexec.bat")
, то в ProcessEditorInput по MCTL_GETSTATE всегда будет приходить MACROSTATE_EXECUTING_COMMON.Есть тут один скользкий момент.
Например, есть макрос
Code: Select all
Macro {
area="Common"; key="CtrlF1";
action=function()
Keys"CtrlF2"
end;
}
Keys"CtrlF1"
будет генерировать отпускания, то в обработчик придёт лишнее нажатие и лишнее отпускание Ctrl
(down down up up), что может поломать логику обработчика.- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
ProcessConsoleInput не является частью стабильного апи и может быть выпилено завтра хоть полностью. или сегодня.John Doe wrote:Я вообще-то ProcessConsoleInput, мы же начали с MacroLib.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
FARMACRO_KEY_EVENT.
есть тема. претензии предъявляйте лично тому, кто нефинальное апи добавил в энциклопедию. здесь это обсуждать не надо.John Doe wrote:Для плагинописателя руководством является Энциклопедия, в которой почему-то об этом ни слова.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
FARMACRO_KEY_EVENT.
Code: Select all
zg 21.03.2015 00:32:43 +0200 - build 4321
1. событие FARMACRO_KEY_EVENT удалено.
Вопрос: планируется ли предоставить какой-то другой способ, или эта информация официально считается лишней?