ProcessEditorEventInfo

Programming Far Manager plugins

ProcessEditorEventInfo

Структура ProcessEditorEventInfo содержит информацию о событии, поступающем в функцию ProcessEditorEventW.
struct ProcessEditorEventInfo
{
  size_t StructSize;
  intptr_t Event;
  void *Param;
  intptr_t EditorID;
};

Элементы

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

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

EE_READ Новый файл загружен в редактор. Плагин может использовать команды функции EditorControl для модификации считанных данных.
Param = NULL.
Функция ProcessEditorEventW должна вернуть 0.
EE_SAVE Отредактированный файл собираются сохранять. Плагин может использовать команды функции EditorControl для модификации данных перед сохранением.
Param указывает на структуру EditorSaveFile.
Функция ProcessEditorEventW должна вернуть 0.
EE_REDRAW Редактор собирается перерисовать экран.
Param указывает на константу EEREDRAW_ALL.
Функция ProcessEditorEventW должна вернуть 0.

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

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

  • EditorControl вызванная из EE_CHANGE вернет FALSE.

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

  • При обработке EE_REDRAW и EE_GOTFOCUS НЕЖЕЛАТЕЛЬНО ИСПОЛЬЗОВАТЬ Info.Message, Info.Menu, Info.DialogRun, Info.ShowHelp. Вызов этих функций приводит к рекурсивному вызову EE_REDRAW и EE_GOTFOCUS соответственно.
Param
Значение указателя зависит от типа события. Смотрите описание событий для уточнения информации.
EditorID
Идентификатор редактора, вызвавшей функцию ProcessEditorEventW.

Замечания

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