Теперь каждый плагин может создавать свои колонки, отображаются они все раздельно, если нужно запихнуть несколько колонок в одну - пишется плагин
В настройках режимов панели колонки задаются в формате [имя]модификаторы
API теперь выглядит так:
Code: Select all
enum PLUGIN_COLUMN_TYPES
{
PCT_STRING,
PCT_INT64,
PCT_UINT64,
PCT_FILETIME,
PCT_DOUBLE,
};
struct PluginColumnInfo
{
int StructSize;
int Id;
int Type;
const wchar_t *UniqueName;
const wchar_t *Name;
const wchar_t *Title;
const wchar_t *SortChar;
const wchar_t *SortCharRev;
DWORD Flags;
};
struct PluginInfo
{
...
int PluginColumnNumber;
PluginColumnInfo *PluginColumns;
};
int WINAPI _export GetPluginColumnDataW(int ColumnId, const wchar_t *FilePath, void *CustomData, DWORD_PTR *UserData);
void WINAPI _export FreePluginColumnDataW(int ColumnId, void *CustomData, DWORD_PTR UserData);
StructSize - размер структуры
Id - идентификатор колонки внутри этого плагина, потом будет передаваться в GetPluginColumnDataW и FreePluginColumnDataW
Type - тип колонки, возможные значения: PCT_STRING, PCT_INT64, PCT_UINT64, PCT_FILETIME, PCT_DOUBLE
UniqueName - уникальное между плагинами название колонки, только латинские буквы, цифры и знак подчеркивания.
Name - название колонки, выводится в меню по Ctrl-F12
Title - заголовок колонки
SortChar - символ, выводящийся для индикации, что идёт сортировка по данной колонке
SortCharRev - то же, что и SortChar, но для обратной сортировки
Flags - пока не используется, должен быть установлен в 0
GetCustomDataW и FreeCustomDataW я переименовал в GetPluginColumnDataW и FreePluginColumnDataW чтобы не возникало путаницы с PluginPanelItem.CustomColumnData
новые параметры тут
ColumnId - идентификатор запрашиваемой/освобождаемой колонки
UserData - внутренние данные плагинана, могут понадобится когда будет реализована сортировка через CompareW
http://filesurf.ru/199817/far.zip.html