# FarListItem

Структура `FarListItem` описывает один элемент списка DI_LISTBOX или DI_COMBOBOX.

    struct FarListItem
    {
      LISTITEMFLAGS Flags;
      const wchar_t *Text;
      intptr_t UserData;
      intptr_t Reserved;
    };

### Элементы

Flags
Комбинация следующих значений (тип LISTITEMFLAGS):

Флаг | Описание
--- | ---
LIF_SELECTED | Флаг активности пункта списка. Только один пункт может быть активным.
LIF_CHECKED | Если флаг установлен, то перед текстом пункта отображается символ пометки (например, символ с кодом 0xFB - `√`).
LIF_SEPARATOR | Если флаг установлен, то пункт отображается как разделитель. Разделитель может иметь непустой текст, который будет отображаться поверх разделительной линии.
LIF_DISABLE | Если флаг установлен, то пункт недоступен.
LIF_GRAYED | Если флаг установлен, то пункт доступен в навигации, но не доступен для выбора.
LIF_HIDDEN | Если флаг установлен, то пункт не выводится на экран.
LIF_DELETEUSERDATA | Этот флаг устанавливается в параметре Item сообщения DM_LISTUPDATE, если при обновлении элемента списка необходимо удалить связанные с этим элементом данные.
LIF_NONE | Нулевой флаг.

Text
Текст элемента списка.
UserData
Пользовательские данные. Для хранения в элементе списка более чем `sizeof(intptr_t)` байт используйте FarListItemData.
Reserved
Зарезервировано, должно быть равно `0`.

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

1. В младшем слове `Flags` можно указывать код символа, который будет использоваться для отображения метки выбора. В этом случае система самостоятельно выставит флаг `LIF_CHECKED` для данного пункта меню.
2. Если младшее слово `Flags` равно `0` и выставлен флаг `LIF_CHECKED`, или если младшее слово `Flags` равно `1`, то будет отображаться стандартная метка выбора - символ с кодом 0FBh (`√`)
3. При использовании флага `LIF_SEPARATOR` без текста, компонента `Text` должна быть проинициализирована в `0`, например так:

       struct FarListItem Item;
       Item.Flags=LIF_SEPARATOR;
       Item.Text=NULL;

Смотрите также:
FarList, DM_LISTGETITEM, FarListInsert, FarListUpdate