PluginInfo

Programming Far Manager plugins

PluginInfo

Структура PluginInfo используется для возвращения Far Manager'у информации о плагине в функции GetPluginInfoW.
struct PluginInfo
{
  size_t StructSize;
  PLUGIN_FLAGS Flags;
  struct PluginMenuItem DiskMenu;
  struct PluginMenuItem PluginMenu;
  struct PluginMenuItem PluginConfig;
  const wchar_t *CommandPrefix;
};

Элементы

StructSize
Это поле должно содержать размер структуры PluginInfo. Перед использованием структуры плагин должен заполнить поле.
Flags
Комбинация следующих значений (тип PLUGIN_FLAGS).
ФлагОписание
PF_PRELOAD Отменить кеширование параметров плагина и заставить Far Manager всегда загружать плагин в память при старте. Должно быть указано, если необходимо изменять строки в меню "Диск", "Команды внешних модулей" или "Конфигурация модулей" динамически. Этот флаг уменьшает эффективность использования памяти.
PF_DISABLEPANELS Не показывать плагин в меню "Команды внешних модулей", вызываемом из панелей.
PF_EDITOR Показывать плагин в меню "Команды внешних модулей", вызываемом из редактора Far Manager.
PF_VIEWER Показывать плагин в меню "Команды внешних модулей", вызываемом из вьюера Far Manager.
PF_DIALOG Показывать плагин в меню "Команды внешних модулей", вызываемом из диалога Far Manager.
PF_FULLCMDLINE Заставляет Far Manager передавать плагину всю командную строку вместе с префиксом CommandPrefix. Обязательно использовать этот флаг, если плагин умеет обрабатывать несколько префиксов CommandPrefix.
PF_NONE Нулевой флаг.
DiskMenu
Если плагин добавляет строки в меню "Диск", это поле должно быть равным заполненной структуре PluginMenuItem.
PluginMenu
Если плагин добавляет строки в меню "Команды внешних модулей", это поле должно быть равным заполненной структуре PluginMenuItem.
PluginConfig
Если плагин добавляет строки в меню "Конфигурация модулей", это поле должно быть равным заполненной структуре PluginMenuItem.
CommandPrefix
Плагин может указать в этом поле строку префиксов командной строки, которые будут использоваться для перехвата команд Far Manager. Например, если плагин передал здесь адрес строки ftp и пользователь ввёл в командной строке что-то, начинающееся с ftp:, то функция OpenW будет вызвана с параметром OPEN_COMMANDLINE.
Если предполагается, что плагин будет обрабатывать несколько командных префиксов, то необходимо указать префиксы, разделённые двоеточием. Например, плагин если обрабатывает префиксы edit:, goto: и view:, то строка должна быть такой:
CommandPrefix=L"edit:view:goto";
Если вы не хотите добавлять команды к Far Manager'у, установите этот параметр в NULL.

Замечания

  1. Все передаваемые в этой структуре данные должны быть правильными после возвращения из GetPluginInfoW, таким образом вы не должны использовать автоматически создаваемые переменные. Используйте статические или глобальные переменные.
  2. Структура, передаваемая функции GetPluginInfoW, уже заполнена 0.
Смотрите также: