# DI_VTEXT

Элемент диалога `DI_VTEXT` описывает статическую вертикальную текстовую строку.

    struct FarDialogItem
    {
      enum FARDIALOGITEMTYPES Type = DI_VTEXT
      intptr_t X1                  = X
      intptr_t Y1                  = Y1
      intptr_t X2                  = X (равен значению X1)
      intptr_t Y2                  = Y2
      const wchar_t *Mask          = Mask
      FARDIALOGITEMFLAGS Flags     = Flags
      const wchar_t *Data          = выводимый текст
    };

Внимание!

- Приведено схематичное изображение структуры; полное описание структуры см. здесь.

### Mask

Поле используется только с флагом DIF_SEPARATORUSER, может быть `NULL`, или указывать на строку, содержащую набор из трех символов, описывающих формируемую разделительную линию.

### Флаги

Для элемента `DI_VTEXT` имеют значения следующие флаги:

Флаг | Описание
--- | ---
DIF_BOXCOLOR | текст будет иметь цвет рамок (COL_DIALOGBOX или COL_WARNDIALOGBOX)
DIF_CENTERGROUP | центрирование двух текстовых строк с одинаковой горизонтальной позицией (параметр `Y1` игнорируется)
DIF_SEPARATOR | вертикальный разделитель диалога (одинарная линия); координата `Y1` не используется для случая, когда `Data` пустая строка; если `Data` не пустая строка, то она также будет отрисована (для вывода строки будет использована координата `Y1`);
DIF_SEPARATOR2 | вертикальный разделитель диалога (двойная линия); координата `Y1` не используется для случая, когда `Data` пустая строка; если `Data` не пустая строка, то она также будет отрисована (для вывода строки будет использована координата `Y1`);
DIF_SEPARATORUSER | вертикальный разделитель диалога (формат линии указан в `Mask`); должны быть указаны обе координаты `Y1` и `Y2`
DIF_SHOWAMPERSAND | показывать в текстовой строке амперсанд не используя его для определения горячей клавиши
DIF_CENTERTEXT | выравнивать текст по центру (учитываются координаты `Y1` и `Y2`)
DIF_RIGHTTEXT | выравнивать текст по нижнему краю относительно координат `Y1` и `Y2`

### События

Событие | Описание
--- | ---
DN_DRAWDLGITEM | начало отрисовки текстовой строки
DN_CTLCOLORDLGITEM | запрос цветовых атрибутов для отрисовки; `Param2`:
    Colors[0] - текст
                    (COL_WARNDIALOGTEXT или COL_DIALOGTEXT
                 при выставленном флаге DIF_BOXCOLOR:
                     COL_WARNDIALOGBOX или COL_DIALOGBOX)
    Colors[1] - выделенный текст (highlighting text)
                    (COL_WARNDIALOGHIGHLIGHTTEXT или COL_DIALOGHIGHLIGHTTEXT)
    Colors[2] - 0 (не используется)
    Colors[3] - 0 (не используется)
DN_CONTROLINPUT | "кликнули" клавишей мыши

### Замечания

- Хотя координата `X2` в Dialog API не используется, но для нормальной работы в будущих версиях Far Manager желательно корректно заполнить значение этого поля. Укажите то же значение координаты, что и `X1`.
- Если указан флаг DIF_SEPARATORUSER, то координаты `Y1` и `Y2` должны быть обязательно указаны, в противном случае действие флага не будет иметь действия.
- Если указан флаг DIF_SEPARATORUSER, то в поле `Mask` Far Manager ожидает 3 символа "Верх-Середина-Низ". Недостающие (до 3-х) символы для такой разделительной лини будут содержать пробелы.
- Если указан флаг DIF_CENTERTEXT, то координата `Y2` должна быть обязательно указана, в противном случае действие флага не будет иметь действия.
- Если не указан флаг DIF_CENTERTEXT, то Far Manager самостоятельно перерасчитает координаты `X2` и `Y2`, исходя из размера строки и размера диалога.
- Если в тексте элемента `DI_TEXT` имеется "горячая клавиша" (HotKey) и не выставлен флаг DIF_SHOWAMPERSAND, то при нажатии в диалоге `Alt`+`Символ` клавиатурный фокус ввода перейдёт на следующий элемент, который может иметь фокус ввода
Смотрите также:
DI_TEXT, FarDialogItem