FarListItem

Programming Far Manager plugins

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;
Смотрите также: