Editor

Функция Editor позволяет открыть внутренний редактор FAR Manager.
int WINAPI Editor(
  const char *FileName,
  const char *Title,
  int X1,
  int Y1,
  int X2,
  int Y2,
  DWORD Flags,
  int StartLine,
  int StartChar
);

Параметры

FileName
Файл для редактирования. Если не указан флаг EF_CREATENEW, то FileName должен содержать имя существующего файла.
Title
Текстовая строка, которая будет показана вверху окна редактора. Если этот параметр равен NULL, то используется имя файла.
X1, Y1, X2, Y2
Координаты окна редактора. Если координата X2 или Y2 равна -1, то она будет замещена соответственно шириной или высотой экрана. Если координата X1 или Y1 меньше нуля, то считается, что она равна нулю.
Flags
Флаги редактора. Может быть комбинацией следующих значений (перечисление EDITOR_FLAGS):
ФлагОписание
EF_NONMODAL Создать немодальное окно редактора. Если этот флаг присутствует, пользователь сможет переключаться между редактором и другими окнами FAR Manager.

Плагин получит управление только после закрытия или ухода из открытого редактора (например, пользователь нажал Ctrl-Tab). Если вам нужно, чтобы плагин получал управление сразу же после открытия редактора, то используйте флаг EF_IMMEDIATERETURN.

EF_IMMEDIATERETURN Позволяет плагину получать управление сразу же после открытия редактора. Открываемый редактор становится активным. Выставлять этот флаг имеет смысл только в паре с флагом EF_NONMODAL.
EF_DELETEONCLOSE Поручает FAR'у удалить редактируемый файл после закрытия редактора. Если в директории, содержащей редактируемый файл, нет других файлов, она также будет удалена. Если требуется удаление только файла, то используйте EF_DELETEONLYFILEONCLOSE.
Файл не удаляется:
  1. если было произведено переключение по F6 и если существуют другие открытые вьюеры/редакторы с этим же файлом.
  2. если файл был сохранен из редактора.
EF_DELETEONLYFILEONCLOSE Аналог EF_DELETEONCLOSE, но удаляется только файл. Этот флаг имеет более низкий приоритет при обработке, чем EF_DELETEONCLOSE.
EF_CREATENEW Создать новый файл на диске. Вызов редактора с этим флагом аналогичен вызову редактора по Shift+F4 в панелях.
EF_ENABLE_F6 Разрешает переключение по F6 из редактора во вьюер.
EF_DISABLEHISTORY Запретить добавление имени файла в историю редактирования (Alt-F11). По умолчанию имя в историю добавляется.
StartLine
Начальная строка, в которую помещаем курсор. Нумерация строк начинается с 0.
StartChar
Позиция курсора в строке. Нумерация позиции начинается с 1.

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

Эта функция возвращает следующие значения (перечисление EDITOR_EXITCODE):
Возвращаемое значениеОписание
EEC_OPEN_ERROR Ошибка открытия файла. Ошибка возникает в случаях, если:
  • FAR не смог выделить достаточно памяти при создании редактора (как объекта);
  • в качестве параметра FileName передали пустую строку;
  • в качестве параметра FileName было передано имя каталога;
  • редактируемый файл имеет RO-атрибут и пользователь в диалоге подтверждения открытия такого файла отказался от дальнейшего редактирования.
EEC_MODIFIED Успешное завершение. Файл был изменен. Функция Editor также возвращает этот код возврата при использовании флага EF_NONMODAL.
EEC_NOT_MODIFIED Успешное завершение. Файл не был изменен.
EEC_LOADING_INTERRUPTED Загрузка файла прервана пользователем.

Замечания

Если StartLine и StartChar равны -1, то при открытии редактора будет восстановлена предварительно сохраненная позиция в файле (если это включено в настройках).
Смотрите также:
Viewer