Latest post of the previous page:
А какие "непонятки", с тем чтобы убрать const у INPUT_RECORD *Rec в структуре и разрешить ее модифицировать?ProcessConsoleInput
Re: ProcessConsoleInputW
Есть предложение в структуру добавить:
1. Макрооблость и тип текущего окна. Смысл - плагину можеет быть нужно обрабатывать только нажатия клавиш только в панелях (или только в диалогах). Их конечно можно получить дернув апи, но зачем лишние вызовы, если и так все заранее известно. Почему два параметра - заранее не ясно, что там получится со списком автодополнения...
2. HANDLE hPanel. Если активны панели. Иначе - NULL, например. Плагину может быть нужно обрабатывать только свою панель.
1. Макрооблость и тип текущего окна. Смысл - плагину можеет быть нужно обрабатывать только нажатия клавиш только в панелях (или только в диалогах). Их конечно можно получить дернув апи, но зачем лишние вызовы, если и так все заранее известно. Почему два параметра - заранее не ясно, что там получится со списком автодополнения...
2. HANDLE hPanel. Если активны панели. Иначе - NULL, например. Плагину может быть нужно обрабатывать только свою панель.
Re: ProcessConsoleInputW
А на счет того откуда вызывать... GetInputRecord кажется подходящим местом, если эту функцию поправить. Сейчас там много кода заточено на то, что ReadInput вернет в точности то же, что вернул PeekInput
Re: ProcessConsoleInputW
WINDOWINFO_TYPE?Maximus5 wrote:1. Макрооблость и тип текущего окна.
ок.Maximus5 wrote:2. HANDLE hPanel.
...видимо после обработки основного кода GetInputRecord. не?Maximus5 wrote:GetInputRecord кажется подходящим местом, если эту функцию поправить.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
-
- Posts: 1326
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Re: ProcessConsoleInputW
А как же ж тогда вот это:Skirda wrote:...видимо после обработки основного кода GetInputRecord. не?
1 - плагин польностью обработал событие (бегать по плагинам не надо, Фар тоже событие не обрабатывает)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Re: ProcessConsoleInputW
Тогда нет возможности понять, что активно, например, автодополнение, или QSearch. Я и предлагаю, помимо WINDOWINFO_TYPE добавить FARMACROAREA.WINDOWINFO_TYPE?
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: ProcessConsoleInputW
как бы логичнее допилить WINDOWINFO_TYPE, нет?Maximus5 wrote:Тогда нет возможности понять, что активно, например, автодополнение, или QSearch. Я и предлагаю, помимо WINDOWINFO_TYPE добавить FARMACROAREA.
-
- Posts: 1326
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Re: ProcessConsoleInputW
MCMD_GETAREA - это затычка (если использовать для получения активного окна), т.к. ни у кого не дошли руки сделать WINDOWINFO
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Re: ProcessConsoleInputW
Это все же разные вещи. Типа, активное окно (F12 0) - панели, но макрообласть может быть очень разная.
Как втиснуть две разные сущности одновременно в WINDOWINFO_TYPE я слабо представляю.
Разве что WINDOWINFO_TYPE не трогать, а структуру с информацией об окне добавить отсутствующее. Вот только смысл?
Как втиснуть две разные сущности одновременно в WINDOWINFO_TYPE я слабо представляю.
Разве что WINDOWINFO_TYPE не трогать, а структуру с информацией об окне добавить отсутствующее. Вот только смысл?
Re: ProcessConsoleInputW
MCMD_GETAREA не затычка, это совершенно из другой области.Yegor wrote:MCMD_GETAREA - это затычка (если использовать для получения активного окна), т.к. ни у кого не дошли руки сделать WINDOWINFO
Ты путаешь макросы и плагины.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
Re: ProcessConsoleInputW
А вот здесь уже и не знаю...Yegor wrote:А как же ж тогда вот это:1 - плагин польностью обработал событие (бегать по плагинам не надо, Фар тоже событие не обрабатывает)
Дело в том, что GetInputRecord кроме консольных событий смотрит еще в пару мест - внутренняя очередь + очередь макросов.
Обе эти сущности плагин не сдались, т.к. к плагинам (и консоли) не имеют никакого отношения.
Кроме того, GetInputRecord в основном не делает никаких боевых действий, он просто события консоли берет, превращает в нечто и уже потом готовое варево отдает внутренним компонентам.
Так что здесь можно делать о такой схеме:
1. GetInputRecord
2. плагины
3. после плагинов либо отдаем ФАРу KEY_NONE либо то самое нечто.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
-
- Posts: 1326
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Re: ProcessConsoleInputW
Валентин, ты неправильно меня понял, я имею в виду что использовать MCMD_GETAREA, там где нужно теоретически использовать WINDOWINFO - не логично. Например, в Screen Gadgets, я использую MCMD_GETAREA, потому что информации из WINDOWINFO недостаточно.Skirda wrote:MCMD_GETAREA не затычка, это совершенно из другой области.Yegor wrote:MCMD_GETAREA - это затычка (если использовать для получения активного окна), т.к. ни у кого не дошли руки сделать WINDOWINFO
Ты путаешь макросы и плагины.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Re: ProcessConsoleInputW
Хочется странного ) Звать функцию ProcessConsoleInputW не только перед обработкой "кнопки" фаром, но и после того, как фар выполнил свои действия. Например, в PROCESSCONSOLEINPUT_FLAGS добавить флаг PCIF_POSTPROCESS.
Зачем это надо: синхронизация каталогов, двигаем курсор по одной панели, плагин отслеживает текущий элемент на активной панели и пытается выделить одноименный на пассивной панели.
Можно, конечно, постоянно звать Synchro для проверки, но зачем? Было бы красивее выполнять обработку сразу после того, как фар обработал кнопку Down (например).
Зачем это надо: синхронизация каталогов, двигаем курсор по одной панели, плагин отслеживает текущий элемент на активной панели и пытается выделить одноименный на пассивной панели.
Можно, конечно, постоянно звать Synchro для проверки, но зачем? Было бы красивее выполнять обработку сразу после того, как фар обработал кнопку Down (например).