FarMenuItem

Programming Far Manager plugins

FarMenuItem

Структура FarMenuItem описывает один пункт меню. Массив этих структур передаётся в функцию Menu.
struct FarMenuItem
{
  MENUITEMFLAGS Flags;
  const wchar_t *Text;
  struct FarKey AccelKey;
  intptr_t UserData;
  intptr_t Reserved[2];
};

Элементы

Flags
Комбинация следующих значений (тип MENUITEMFLAGS):
ФлагОписание
MIF_SELECTED Признак активности пункта меню. Только один пункт может быть активным.
MIF_CHECKED Признак отмеченного пункта меню. Перед текстом будет отображаться метка выбора.
MIF_SEPARATOR Пункт меню отображается как разделитель. Разделитель может содержать текст, выровненный по середине.
MIF_DISABLE Пункт меню недоступен.
MIF_GRAYED Если флаг установлен, то пункт меню доступен в навигации, но не доступен для выбора.
MIF_HIDDEN Если флаг установлен, то пункт меню не выводится на экран.
MIF_NONE Нулевой флаг.
Text
Указатель на текст пункта меню.
AccelKey
Код клавиши, структура типа FarKey, для активизации пункта меню (HotKey). Пример работы - в меню Far Manager "Commands" нажатие клавиши Ctrl+O аналогично выбору пункта "Panels On/Off".
UserData
Пользовательские данные, ассоциированные с пунктом меню. Far Manager не использует это поле.
Reserved
Зарезервированные поля, должны быть равны 0.

Замечания

  1. В младшем слове Flags можно указывать код символа, который будет использоваться для отображения метки выбора. В этом случае система самостоятельно выставит флаг MIF_CHECKED для данного пункта меню.
  2. Если младшее слово Flags равно 0 и выставлен флаг MIF_CHECKED, или если младшее слово Flags равно 1, то будет отображаться стандартная метка выбора - символ с кодом 0FBh ()
  3. При использовании флага MIF_SEPARATOR без текста, компонента Text должна быть проинициализирована в 0, например так:
    struct FarMenuItem Item;
    Item.Flags=MIF_SEPARATOR;
    Item.Text=NULL;
Смотрите также: