DI_RADIOBUTTON описывает селекторную кнопку (Radio Button).
Также он называется кнопкой с зависимой фиксацией. Похож на CheckBox, за исключением того, что, если у первого из несколько идущих подряд подобных элементов
установлен флаг DIF_GROUP, то они являются взаимоисключающими: если одна кнопка включена, другие обязательно выключены.
struct FarDialogItem
{
enum FARDIALOGITEMTYPES Type = DI_RADIOBUTTON
intptr_t X1 = X
intptr_t Y1 = Y
intptr_t X2 = 0
intptr_t Y2 = Y (равен значению Y1)
intptr_t Selected = Selected
FARDIALOGITEMFLAGS Flags = Flags
const wchar_t *Data = надпись кнопки
};
Внимание!
DI_RADIOBUTTON имеют значения следующие флаги:
| Флаг | Описание |
|---|---|
| DIF_DEFAULTBUTTON | флаг, означающий, что данный элемент диалога является "элементом по умолчанию" |
| DIF_FOCUS | определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент |
| DIF_GROUP | группировка последовательно объявленных селекторных кнопок (укажите этот флаг для первого элемента в группе) |
| DIF_MOVESELECT | изменить выбор внутри группы при изменении фокуса ввода; также элемент будет отображаться без ограничительных круглых скобок (пример - диалог выбора цвета в Far Manager - Options|Colors) |
| DIF_CENTERGROUP | центрирование идущих подряд переключателей с одинаковой вертикальной позицией (параметр X игнорируется) |
| DIF_DISABLE | элемент является недоступным |
| DIF_NOFOCUS | управляющий элемент не получает клавиатурный фокус ввода |
| DIF_SHOWAMPERSAND | показывать в заголовке рамки амперсанд не используя его для определения горячей клавиши |
| Событие | Описание |
|---|---|
| DN_DRAWDLGITEM | начало отрисовки текстовой строки |
| DN_CTLCOLORDLGITEM | запрос цветовых атрибутов для отрисовки; Param2:
|
| DN_HOTKEY | горячая клавиша (Alt+Символ) |
| DN_BTNCLICK | нажата кнопка |
| DN_CONTROLINPUT | нажали клавиатурную клавишу или кликнули клавишей мыши |
| DN_KILLFOCUS | элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS) |
| DN_GOTFOCUS | элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS) |
X2 и Y2 в Dialog API не используется, но для нормальной работы в будущих версиях Far Manager желательно корректно заполнить значения этих полей.