EditorSelect

Структура EditorSelect используется в функции EditorControl для выделения или снятия выделения с текста в редакторе FAR'а.
struct EditorSelect
{
  int BlockType;
  int BlockStartLine;
  int BlockStartPos;
  int BlockWidth;
  int BlockHeight;
};

Элементы

BlockType
Одно из следующих значений (перечисление EDITOR_BLOCK_TYPES):
Тип блокаОписание
BTYPE_NONE снять выделение с блока,
BTYPE_STREAM выделить строковой блок
BTYPE_COLUMN выделить вертикальный блок.
Если BlockType равен BTYPE_NONE, другие поля этой структуры не важны.
BlockStartLine
Первая строка блока. Можно установить это поле в -1 - началом блока будет текущая строка.
BlockStartPos
Начальная позиция блока. Если BlockStartPos = -1, то выделение блока снимается.
BlockWidth
Ширина блока. Может быть отрицательной величиной.
BlockHeight
Высота блока. Должна быть >= 1

Замечания

Программно строковый блок от (X1,Y1) до (X2,Y2) можно выделить так:
es.BlockType=BTYPE_STREAM;
es.BlockStartLine=min(Y2,Y1);
es.BlockStartPos=(Y1 < Y2?X1:X2);

// небольшая коррекция, если позиции равны
if(X1 == X2)
  es.BlockStartPos+=(Y1 < Y2?1:-1);

es.BlockHeight=max(Y1,Y2)-min(Y1,Y2)+1;

if(Y1 < Y2)
  es.BlockWidth=X2-X1+1;
else
  es.BlockWidth=X1-X2+1;

if(X1 == X2)
{
  if(Y1 < Y2)
    es.BlockStartPos--;
  else
    es.BlockStartPos++;
}

Info.EditorControl(ECTL_SELECT,(void*)&es);
Смотрите также:
структуры | TEditorSelect