OpenPluginInfo

Структура OpenPluginInfo возвращает в FAR информацию об экземпляре плагина.
struct OpenPluginInfo
{
  int StructSize;
  DWORD Flags;
  const char *HostFile;
  const char *CurDir;
  const char *Format;
  const char *PanelTitle;
  const struct InfoPanelLine *InfoLines;
  int InfoLinesNumber;
  const char * const *DescrFiles;
  int DescrFilesNumber;
  const struct PanelMode *PanelModesArray;
  int PanelModesNumber;
  int StartPanelMode;
  int StartSortMode;
  int StartSortOrder;
  const struct KeyBarTitles *KeyBar;
  const char *ShortcutData;
  long Reserverd;
};

Элементы

StructSize
Это поле должно содержать размер структуры OpenPluginInfo:
Си: Opi.StructSize = sizeof (struct OpenPluginInfo);
Pascal: Opi.StructSize := SizeOf(Info);
Flags
Комбинация следующих значений (перечисление OPENPLUGININFO_FLAGS):
ФлагОписание
OPIF_USEFILTER Использовать фильтр в панели плагина.
OPIF_USESORTGROUPS Использовать группы сортировки в панели плагина.
OPIF_USEHIGHLIGHTING Использовать раскраску файлов в панели плагина.
OPIF_ADDDOTS Добавить элемент, равный двум точкам (..), если он отсутствует, автоматически.
OPIF_RAWSELECTION Выбор папок независимо от настроек FAR'а.
OPIF_REALNAMES Включает использование стандартной обработки файла FAR'ом, если запрошенная операция не поддерживается плагином. Если этот флаг указан, элементы на панели плагина должны быть именами реальных файлов.
OPIF_SHOWNAMESONLY Показывать по умолчанию имена без путей во всех режимах просмотра.
OPIF_SHOWRIGHTALIGNNAMES Показывать по умолчанию имена, выровненные по правому краю во всех режимах просмотра.
OPIF_SHOWPRESERVECASE Показывать имена файлов в оригинальном регистре независимо от настроек FAR'a.
OPIF_FINDFOLDERS Применить команду "Найти файл" также и для папок. Флаг OPIF_FINDFOLDERS начиная с FAR Manager 1.70 beta 4 не актуален.
OPIF_COMPAREFATTIME Преобразовывать временные метки в формат FAT при выполнении команды Compare folders. Установите этот флаг, если файловая система плагина не обеспечивает требуемую для стандартного стравнения времени точность.
OPIF_EXTERNALGET
OPIF_EXTERNALPUT
OPIF_EXTERNALDELETE
OPIF_EXTERNALMKDIR
Флаги могут быть использованы только с OPIF_REALNAMES. Вынуждает использование соответствующих функций FAR, даже если требуемая функция экспортируется плагином.
OPIF_USEATTRHIGHLIGHTING FAR Manager 1.70 build #963 и ниже: использовать раскраску файлов по атрибутам в панели плагина. Все маски раскраски файлов, кроме * или *.* будут проигнорированы.
FAR Manager 1.70 build #964 и выше: использовать раскраску файлов в панели плагина только по атрибутам, а имена объектов в раскраске не используются. Выбор цвета происходит только среди тех групп раскраски файлов, у которых маски исключены из анализа, т.е. опция "[ ] Совпадение с маской (масками)" в настройках раскраски файлов отключена.
HostFile
Имя файла на эмулируемой файловой системе. Если плагин не эмулирует файловую систему, основанную на файле, установите эту переменную в NULL.
CurDir
Текущая директория плагина. Если панельный плагин вернет здесь пустую строку, то при нажатии ENTER на ".." FAR закроет плагин автоматически.
Format
Имя формата плагина. Оно показывается в диалоге копирования файла.
PanelTitle
Заголовок панели плагина.
InfoLines
Адрес массива структур  InfoPanelLine. Каждая структура описывает одну строку в информационной панели. Если вы не нуждаетесь в показе текста, зависимого от плагина в информационной панели, установите InfoLines в NULL.
InfoLinesNumber
Число структур InfoPanelLine.
DescrFiles
Адрес массива указателей на имена файлов описаний. FAR попытается прочитать эти файлы (функцией GetFiles) при показе описаний и обновить их после обработки файлов, если флаг PPIF_PROCESSDESCR в структуре PluginPanelItem был установлен. В зависимости от типа плагина, обработка описаний может занять значительное время. Если Вам это не нужно, установите DescrFiles в NULL.
DescrFilesNumber
Число имен файлов описаний.
PanelModesArray
Адрес массива структур PanelMode. Используя его, вы можете переопределить настройки режимов просмотра. Первая структура описывает режим просмотра номер 0, вторая - 1 и т.д. Если Вам не нужно определение новых режимов просмотра, установите PanelModesArray в NULL.
PanelModesNumber
Число структур PanelMode.
StartPanelMode
Режим просмотра, который будет установлен после создания панели плагина. Он должен быть в формате '0'+<номер режима просмотра>. Например, '1' или 0x31 будут устанавливать Краткий режим просмотра. Если вы не хотите менять режим просмотра панели после запуска плагина, установите StartPanelMode в 0.
StartSortMode
Режим сортировки, который будет установлен после создания панели плагина. Можно указать здесь одно из следующих значений: SM_UNSORTED, SM_NAME, SM_EXT, SM_MTIME, SM_CTIME, SM_ATIME, SM_SIZE, SM_DESCR, SM_OWNER, SM_COMPRESSEDSIZE, SM_NUMLINKS. Если вы не хотите менять режим сортировки после запуска плагина, установите StartSortMode в SM_DEFAULT или 0.
StartSortOrder
Если вы указали StartSortMode, в поле StartSortOrder вы должны задать направление сортировки, 0 или 1 (обратная сортировка).
KeyBar
Адрес структуры KeyBarTitles. Используя его, вы можете переопределить метки функциональных клавиш в строке функциональных клавиш. Если Вам это не нужно, установите KeyBar в NULL.
ShortcutData
Адрес текстовой строки, оканчивающейся нулем, описывающей текущее состояние плагина. Она должна быть не больше значения MAXSIZE_SHORTCUTDATA. Эта строка передается в OpenPlugin, когда плагин активирован командой ссылки на папку. Например, FTP клиент может поместить сюда текущий хост, логин и пароль. Нет необходимости сохранять здесь текущий каталог, потому что он будет восстановлен самим FAR'ом.
Если вы не нуждаетесь в такой дополнительной информации для обработки ссылки на папку, установите данную строку в NULL.
Reserverd
Зарезервировано. Должно быть = 0.

Замечания

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