EditorInfo

Структура EditorInfo используется в функции EditorControl для получения информации о текущем состоянии редактора FAR'а.
struct EditorInfo
{
  int EditorID;
  const char *FileName;
  int WindowSizeX;
  int WindowSizeY;
  int TotalLines;
  int CurLine;
  int CurPos;
  int CurTabPos;
  int TopScreenLine;
  int LeftPos;
  int Overtype;
  int BlockType;
  int BlockStartLine;
  int AnsiMode;
  int TableNum;
  DWORD Options;
  int TabSize;
  int BookMarkCount;
  DWORD CurState;
  DWORD Reserved[6];
};

Элементы

EditorID
Идентификатор экземпляра редактора. Каждый экземпляр редактора имеет уникальный идентификатор, который не повторяется в текущей сессии FAR'а.
FileName
Имя редактируемого файла - полный путь (замечания относительно этого поля читайте для FAR версии ниже 1.65 здесь).
WindowSizeX, WindowSizeY
Ширина и высота окна редактора.
TotalLines
Количество строк в редактируемом тексте.
CurLine
Номер текущей строки.
CurPos
Позиция курсора в текущей строке.
CurTabPos
Экранная позиция курсора в текущей строке. Если строка не содержит символов табуляции, CurTabPos эквивалентна CurPos.
TopScreenLine
Номер строки вверху экрана.
LeftPos
Позиция левой границы окна редактора в редактируемом тексте.
Overtype
0 - режим вставки, 1 - замены.
BlockType
Тип выбранного блока. Одно из следующих значений (перечисление EDITOR_BLOCK_TYPES):
Тип блокаОписание
BTYPE_NONE снять выделение с блока,
BTYPE_STREAM выделить строковой блок
BTYPE_COLUMN выделить вертикальный блок.
BlockStartLine
Номер первой строки блока.
AnsiMode
Состояние текстового режима ANSI. Всегда равно 0, кроме случая, когда не используются таблицы символов и текст в кодировке ANSI.
TableNum
Номер текущей используемой таблицы символов FAR'а или -1, если таковая не используется и текст в кодировке OEM (в этом случае см. AnsiMode). Если это поле не равно -1, вы можете передать его в функции CharTable для получения информации о таблице.
Options
Описывает состояние настроек редактора. Может быть комбинацией следующих флагов (перечисление EDITOR_OPTIONS):
ФлагОписание
EOPT_EXPANDALLTABS Включена опция "Преобразовывать все символы табуляции в пробелы" При открытии документа в редакторе все символы Tab заменить на соответствующее количество пробелов.
Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_EXPANDTABS).
EOPT_EXPANDONLYNEWTABS Включена опция "Преобразовывать новые символы табуляции в пробелы" При редактировании документа введенный символ Tab заменять на соответствующее количество пробелов. Остальные символы Tab не преобразовывать.
Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_EXPANDTABS).
EOPT_PERSISTENTBLOCKS Включена опция "Постоянные блоки"
EOPT_DELREMOVESBLOCKS Включена опция "Del удаляет блоки"
EOPT_AUTOINDENT Включена опция "Автоотступ". Этот параметр можно изменить используя команду ECTL_SETPARAM.
EOPT_AUTODETECTTABLE Включена опция "Автоопределение таблицы символов"
EOPT_CURSORBEYONDEOL Включена опция "Курсор за пределами строки" Этот параметр можно изменить используя команду ECTL_SETPARAM.
EOPT_SAVEFILEPOSITION Включена опция "Сохранять позицию файла" Этот параметр можно изменить используя команду ECTL_SETPARAM.
TabSize
Размер табуляции. Этот параметр можно изменить используя команду ECTL_SETPARAM.
BookMarkCount
Количество закладок в редакторе. Для получения информации о закладках используйте команду ECTL_GETBOOKMARKS.
CurState
Текущее состояние редактируемого текста. Может быть набором из следующих значений (перечисление EDITOR_CURRENTSTATE):
ФлагОписание
ECSTATE_MODIFIED модифицирован
ECSTATE_SAVED сохранен
ECSTATE_LOCKED заблокирован (Ctrl-L)
Reserved
Зарезервировано для будущего использования.

Замечания

Для точного определения текущего набора символов в редакторе можно воспользоваться следующей таблицей:
                    EditorInfo.TableNum        EditorInfo.AnsiMode
DOS                          -1                         0
WIN                          -1                         1
Прочие                  Номер таблицы                   0
Для случая "Прочие" необходимо воспользоваться функцией CharTable, с помощью которой можно узнать имя загруженной таблицы символов.
Смотрите также:
структуры | TEditorInfo