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 = выводимый текст
};
Внимание!
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:
|
| DN_CONTROLINPUT | "кликнули" клавишей мыши |
X2 в Dialog API не используется, но для нормальной работы в будущих версиях Far Manager желательно корректно заполнить
значение этого поля. Укажите то же значение координаты, что и X1.
Y1 и Y2 должны быть обязательно указаны, в противном случае
действие флага не будет иметь действия.
Mask Far Manager ожидает 3 символа
"Верх-Середина-Низ". Недостающие (до 3-х) символы для такой разделительной лини будут содержать пробелы.
Y2 должна быть обязательно указана, в противном случае
действие флага не будет иметь действия.
X2 и Y2, исходя
из размера строки и размера диалога.
DI_TEXT имеется "горячая клавиша" (HotKey) и не выставлен флаг DIF_SHOWAMPERSAND,
то при нажатии в диалоге Alt+Символ клавиатурный фокус ввода перейдёт на следующий элемент, который может иметь фокус ввода