ProcessEditorEvent

Функция ProcessEditorEvent сообщает плагину о событиях, происходящих в редакторе FAR.
int WINAPI ProcessEditorEvent(
  int Event,
  void *Param
);

Параметры

Event
Тип события.
Может быть одной из следующих величин (перечисление EDITOR_EVENTS):
СобытиеОписание
EE_CLOSE Одно из окон редактора закрывается.
Плагин может использовать это сообщение для освобождения внутренних структур данных. Заметьте, что несколько окон редактора могут работать одновременно.
Параметр Param указывает на переменную, содержащую значение EditorID закрываемого редактора. EditorID может быть получен ранее с использованием ECTL_GETINFO команды EditorControl. Но плагин не должен вызывать EditorControl при обработке этого сообщения потому что редактор уже закрыт.
Функция должна вернуть 0.

Замечание для EE_CLOSE Замечание.

  • Начиная с FAR 1.70 build 1989 в EE_CLOSE допускается использовать только ECTL_GETINFO и ECTL_GETBOOKMARKS.
EE_READ Новый файл загружен в редактор. Плагин может использовать команды функции EditorControl для модификации считанных данных.
Param = NULL.
Функция должна вернуть 0.
EE_SAVE Отредактированный файл собираются сохранять. Плагин может использовать команды функции EditorControl для модификации данных перед сохранением.
Param = NULL.
Функция должна вернуть 0.
EE_REDRAW Редактор собирается перерисовать экран. Плагин может использовать команду ECTL_ADDCOLOR функции EditorControl, чтобы установить цвета для строки.
Param может быть одним из следующих значений:
КонстантаОписание
EEREDRAW_ALL Прорисовывается весь экран
EEREDRAW_LINE Перерисовка только текущей строки
EEREDRAW_CHANGE Перерисовка вызвана изменением текста.

В случае изменения EEREDRAW_CHANGE может быть перерисована как текущая строка, так и весь экран. Поэтому если были изменения раскраски вне текущей строки, настоятельно рекомендуется по окончании раскраски вызвать ECTL_REDRAW. Иначе эти изменения отобразятся только после движения курсора или других вызывающих перерисовку событий. Главное при этом не попасть в рекурсию.
Функция должна вернуть 0.

EE_KILLFOCUS Редактор потерял фокус ввода.
Param указывает на переменную, содержащую значение EditorID редактора, теряющего фокус.
Функция должна вернуть 0.
EE_GOTFOCUS Редактор получил фокус ввода.
Param указывает на переменную, содержащую значение EditorID редактора, получающего фокус.
Функция должна вернуть 0.

Замечание для EE_REDRAW Внимание!

Param
Указатель на данные, зависящие от типа события Event.

Возвращаемое значение

Возвращаемое значение зависит от типа события Event.
Верните 0 для неизвестного типа события.

Замечания

  • EE_READ вызывается только один раз для файла.
  • EE_SAVE вызывается при каждом нажатии F2 или Shift-F2.
  • EE_REDRAW вызывается при любой перерисовке экрана (в частности, при движении курсора)