# FarDialogItem

Структура `FarDialogItem` описывает один элемент диалога. Массив этих структур передаётся в функции DialogInit.

    struct FarDialogItem
    {
      enum FARDIALOGITEMTYPES Type;
      intptr_t X1,Y1,X2,Y2;
      union
      {
        intptr_t Selected;
        struct FarList *ListItems;
        struct FAR_CHAR_INFO *VBuf;
        intptr_t Reserved0;
      }
    #ifndef __cplusplus
      Param
    #endif
      ;
      const wchar_t *History;
      const wchar_t *Mask;
      FARDIALOGITEMFLAGS Flags;
      const wchar_t *Data;
      size_t MaxLength;
      intptr_t UserData;
      intptr_t Reserved[2];
    };

### Элементы

Type
Тип элемента диалога. Может принимать одно значений (перечисление FARDIALOGITEMTYPES) указанных в "Элементы диалога"
X1,Y1,X2,Y2
Координаты, определяющие позицию элемента, относительно диалогового окна (начало отсчёта - левый верхний угол диалогового окна, (`0,0`)). Более подробно о координатах см. описание каждого элемента диалога.
Selected
Определяет состояние элементов DI_CHECKBOX и DI_RADIOBUTTON диалога - включён/выключен.
ListItems
Указатель на структуру FarList, описывающую список для элементов DI_COMBOBOX и DI_LISTBOX.
VBuf
Массив структур FAR_CHAR_INFO, описывающую виртуальный буфер для элемента DI_USERCONTROL.
Reserved0
Размер этого параметра всегда равен размеру объединения `Param`, что позволяет использовать этот параметр для платформенно-независимой инициализации.
History
Адрес текстовой строки, которая будет использоваться как внутреннее название истории редактирования (см. также флаг DIF_HISTORY).
Mask
Адрес текстовой строки, с маской ввода для элемента DI_FIXEDIT или маска, описывающая разделительную линию для элемента DI_TEXT или DI_VTEXT.
Flags
Комбинация значений (тип FARDIALOGITEMFLAGS), перечисленных в разделе "Флаги элементов диалога".
Data
Строка, используемая для инициализации элемента диалога. Подробности использования в описаниях типов элементов диалога.
MaxLength
Устанавливает максимальный размер строки `Data`, без завершающего '\0'. Плагин не сможет работать с данными в строке `Data` за пределами `MaxLength`.
Если `MaxLength = 0`, то такого ограничения нет.
UserData
Значение, связанное с элементом диалога. Данные можно получить с помощью DM_GETITEMDATA.
Reserved
Два поля зарезервированы для будущего использования, должны быть установлены в `0`.

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

Смотрите также:
Флаги элементов диалога, Элементы диалога