3 // #include "plugin.hpp"
\r
5 const int kInfoPanelLineSize = 80;
\r
7 // #define __FAR_PLUGIN_H
\r
10 typedef struct _CHAR_INFO {
\r
16 } CHAR_INFO, *PCHAR_INFO;
\r
19 #ifndef __FAR_PLUGIN_H
\r
20 #define __FAR_PLUGIN_H
\r
23 #if defined(__BORLANDC__) && (__BORLANDC <= 0x520)
\r
25 #elif defined(__GNUC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1100))
\r
28 #pragma pack(push,1)
\r
40 DWORD dwFileAttributes;
\r
41 FILETIME ftCreationTime;
\r
42 FILETIME ftLastAccessTime;
\r
43 FILETIME ftLastWriteTime;
\r
44 DWORD nFileSizeHigh;
\r
48 char cFileName[ MAX_PATH ];
\r
49 char cAlternateFileName[ 14 ];
\r
52 struct PluginPanelItem
\r
54 FarFindData FindData;
\r
58 DWORD NumberOfLinks;
\r
61 char **CustomColumnData;
\r
62 int CustomColumnNumber;
\r
65 DWORD_PTR Reserved[2];
\r
68 #define PPIF_PROCESSDESCR 0x80000000
\r
69 #define PPIF_SELECTED 0x40000000
\r
70 #define PPIF_USERDATA 0x20000000
\r
73 FMENU_SHOWAMPERSAND=1,
\r
75 FMENU_AUTOHIGHLIGHT=4,
\r
76 FMENU_REVERSEAUTOHIGHLIGHT=8
\r
80 typedef int (WINAPI *FARAPIMENU)(
\r
81 INT_PTR PluginNumber,
\r
91 struct FarMenuItem *Item,
\r
95 typedef int (WINAPI *FARAPIDIALOG)(
\r
96 INT_PTR PluginNumber,
\r
102 struct FarDialogItem *Item,
\r
109 FMSG_KEEPBACKGROUND=4,
\r
114 typedef int (WINAPI *FARAPIMESSAGE)(
\r
115 INT_PTR PluginNumber,
\r
116 unsigned int Flags,
\r
123 typedef char* (WINAPI *FARAPIGETMSG)(
\r
124 INT_PTR PluginNumber,
\r
129 enum DialogItemTypes {
\r
142 enum FarDialogItemFlags {
\r
143 DIF_COLORMASK = 0xff,
\r
144 DIF_SETCOLOR = 0x100,
\r
145 DIF_BOXCOLOR = 0x200,
\r
147 DIF_LEFTTEXT = 0x800,
\r
148 DIF_MOVESELECT = 0x1000,
\r
149 DIF_SHOWAMPERSAND = 0x2000,
\r
150 DIF_CENTERGROUP = 0x4000,
\r
151 DIF_NOBRACKETS = 0x8000,
\r
152 DIF_SEPARATOR = 0x10000,
\r
153 DIF_EDITOR = 0x20000,
\r
154 DIF_HISTORY = 0x40000
\r
157 struct FarDialogItem
\r
165 const char *History;
\r
167 struct FarList *ListItems;
\r
171 unsigned int Flags;
\r
186 enum {FCTL_CLOSEPLUGIN,FCTL_GETPANELINFO,FCTL_GETANOTHERPANELINFO,
\r
187 FCTL_UPDATEPANEL,FCTL_UPDATEANOTHERPANEL,
\r
188 FCTL_REDRAWPANEL,FCTL_REDRAWANOTHERPANEL,
\r
189 FCTL_SETANOTHERPANELDIR,FCTL_GETCMDLINE,FCTL_SETCMDLINE,
\r
190 FCTL_SETSELECTION,FCTL_SETANOTHERSELECTION,
\r
191 FCTL_SETVIEWMODE,FCTL_SETANOTHERVIEWMODE,FCTL_INSERTCMDLINE,
\r
192 FCTL_SETUSERSCREEN,FCTL_SETPANELDIR,FCTL_SETCMDLINEPOS,
\r
196 enum {PTYPE_FILEPANEL,PTYPE_TREEPANEL,PTYPE_QVIEWPANEL,PTYPE_INFOPANEL};
\r
203 struct PluginPanelItem *PanelItems;
\r
205 struct PluginPanelItem *SelectedItems;
\r
206 int SelectedItemsNumber;
\r
212 char ColumnTypes[80];
\r
213 char ColumnWidths[80];
\r
222 struct PanelRedrawInfo
\r
229 typedef int (WINAPI *FARAPICONTROL)(
\r
235 typedef HANDLE (WINAPI *FARAPISAVESCREEN)(int X1,int Y1,int X2,int Y2);
\r
237 typedef void (WINAPI *FARAPIRESTORESCREEN)(HANDLE hScreen);
\r
239 typedef int (WINAPI *FARAPIGETDIRLIST)(
\r
241 struct PluginPanelItem **pPanelItem,
\r
245 typedef int (WINAPI *FARAPIGETPLUGINDIRLIST)(
\r
246 INT_PTR PluginNumber,
\r
249 struct PluginPanelItem **pPanelItem,
\r
253 typedef void (WINAPI *FARAPIFREEDIRLIST)(struct PluginPanelItem *PanelItem);
\r
255 enum VIEWER_FLAGS {
\r
256 VF_NONMODAL=1,VF_DELETEONCLOSE=2
\r
259 typedef int (WINAPI *FARAPIVIEWER)(
\r
269 typedef int (WINAPI *FARAPIEDITOR)(
\r
281 typedef int (WINAPI *FARAPICMPNAME)(
\r
288 #define FCT_DETECT 0x40000000
\r
290 struct CharTableSet
\r
292 char DecodeTable[256];
\r
293 char EncodeTable[256];
\r
294 char UpperTable[256];
\r
295 char LowerTable[256];
\r
296 char TableName[128];
\r
299 typedef int (WINAPI *FARAPICHARTABLE)(
\r
305 typedef void (WINAPI *FARAPITEXT)(
\r
313 typedef int (WINAPI *FARAPIEDITORCONTROL)(
\r
318 struct PluginStartupInfo
\r
321 char ModuleName[NM];
\r
322 INT_PTR ModuleNumber;
\r
325 FARAPIDIALOG Dialog;
\r
326 FARAPIMESSAGE Message;
\r
327 FARAPIGETMSG GetMsg;
\r
328 FARAPICONTROL Control;
\r
329 FARAPISAVESCREEN SaveScreen;
\r
330 FARAPIRESTORESCREEN RestoreScreen;
\r
331 FARAPIGETDIRLIST GetDirList;
\r
332 FARAPIGETPLUGINDIRLIST GetPluginDirList;
\r
333 FARAPIFREEDIRLIST FreeDirList;
\r
334 FARAPIVIEWER Viewer;
\r
335 FARAPIEDITOR Editor;
\r
336 FARAPICMPNAME CmpName;
\r
337 FARAPICHARTABLE CharTable;
\r
339 FARAPIEDITORCONTROL EditorControl;
\r
343 enum PLUGIN_FLAGS {
\r
344 PF_PRELOAD = 0x0001,
\r
345 PF_DISABLEPANELS = 0x0002,
\r
346 PF_EDITOR = 0x0004,
\r
355 char **DiskMenuStrings;
\r
356 int *DiskMenuNumbers;
\r
357 int DiskMenuStringsNumber;
\r
358 char **PluginMenuStrings;
\r
359 int PluginMenuStringsNumber;
\r
360 char **PluginConfigStrings;
\r
361 int PluginConfigStringsNumber;
\r
362 char *CommandPrefix;
\r
365 struct InfoPanelLine
\r
367 char Text[kInfoPanelLineSize];
\r
368 char Data[kInfoPanelLineSize];
\r
376 char *ColumnWidths;
\r
377 char **ColumnTitles;
\r
379 int DetailedStatus;
\r
380 int AlignExtensions;
\r
381 int CaseConversion;
\r
382 char *StatusColumnTypes;
\r
383 char *StatusColumnWidths;
\r
388 enum OPENPLUGININFO_FLAGS {
\r
389 OPIF_USEFILTER = 0x0001,
\r
390 OPIF_USESORTGROUPS = 0x0002,
\r
391 OPIF_USEHIGHLIGHTING = 0x0004,
\r
392 OPIF_ADDDOTS = 0x0008,
\r
393 OPIF_RAWSELECTION = 0x0010,
\r
394 OPIF_REALNAMES = 0x0020,
\r
395 OPIF_SHOWNAMESONLY = 0x0040,
\r
396 OPIF_SHOWRIGHTALIGNNAMES = 0x0080,
\r
397 OPIF_SHOWPRESERVECASE = 0x0100,
\r
398 OPIF_FINDFOLDERS = 0x0200,
\r
399 OPIF_COMPAREFATTIME = 0x0400,
\r
400 OPIF_EXTERNALGET = 0x0800,
\r
401 OPIF_EXTERNALPUT = 0x1000,
\r
402 OPIF_EXTERNALDELETE = 0x2000,
\r
403 OPIF_EXTERNALMKDIR = 0x4000,
\r
404 OPIF_USEATTRHIGHLIGHTING = 0x8000
\r
408 enum OPENPLUGININFO_SORTMODES {
\r
409 SM_DEFAULT,SM_UNSORTED,SM_NAME,SM_EXT,SM_MTIME,SM_CTIME,
\r
410 SM_ATIME,SM_SIZE,SM_DESCR,SM_OWNER,SM_COMPRESSEDSIZE,SM_NUMLINKS
\r
414 struct KeyBarTitles
\r
417 char *CtrlTitles[12];
\r
418 char *AltTitles[12];
\r
419 char *ShiftTitles[12];
\r
423 struct OpenPluginInfo
\r
431 struct InfoPanelLine *InfoLines;
\r
432 int InfoLinesNumber;
\r
434 int DescrFilesNumber;
\r
435 struct PanelMode *PanelModesArray;
\r
436 int PanelModesNumber;
\r
437 int StartPanelMode;
\r
439 int StartSortOrder;
\r
440 struct KeyBarTitles *KeyBar;
\r
441 char *ShortcutData;
\r
454 enum {PKF_CONTROL=1,PKF_ALT=2,PKF_SHIFT=4};
\r
465 enum OPERATION_MODES {
\r
475 #if defined(__BORLANDC__) && (__BORLANDC <= 0x520)
\r
477 #elif defined(__GNUC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1100))
\r
487 void WINAPI _export ClosePluginW(HANDLE hPlugin);
\r
488 int WINAPI _export CompareW(HANDLE hPlugin,const struct PluginPanelItem *Item1,const struct PluginPanelItem *Item2,unsigned int Mode);
\r
489 int WINAPI _export ConfigureW(int ItemNumber);
\r
490 int WINAPI _export DeleteFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int OpMode);
\r
491 void WINAPI _export ExitFARW(void);
\r
492 void WINAPI _export FreeFindDataW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber);
\r
493 void WINAPI _export FreeVirtualFindDataW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber);
\r
494 int WINAPI _export GetFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t **DestPath,int OpMode);
\r
495 int WINAPI _export GetFindDataW(HANDLE hPlugin,struct PluginPanelItem **pPanelItem,int *pItemsNumber,int OpMode);
\r
496 int WINAPI _export GetMinFarVersionW(void);
\r
497 void WINAPI _export GetOpenPluginInfoW(HANDLE hPlugin,struct OpenPluginInfo *Info);
\r
498 void WINAPI _export GetPluginInfoW(struct PluginInfo *Info);
\r
499 int WINAPI _export GetVirtualFindDataW(HANDLE hPlugin,struct PluginPanelItem **pPanelItem,int *pItemsNumber,const wchar_t *Path);
\r
500 int WINAPI _export MakeDirectoryW(HANDLE hPlugin,const wchar_t **Name,int OpMode);
\r
501 HANDLE WINAPI _export OpenFilePluginW(const wchar_t *Name,const unsigned char *Data,int DataSize,int OpMode);
\r
502 HANDLE WINAPI _export OpenPluginW(int OpenFrom,INT_PTR Item);
\r
503 int WINAPI _export ProcessDialogEventW(int Event,void *Param);
\r
504 int WINAPI _export ProcessEditorEventW(int Event,void *Param);
\r
505 int WINAPI _export ProcessEditorInputW(const INPUT_RECORD *Rec);
\r
506 int WINAPI _export ProcessEventW(HANDLE hPlugin,int Event,void *Param);
\r
507 int WINAPI _export ProcessHostFileW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int OpMode);
\r
508 int WINAPI _export ProcessKeyW(HANDLE hPlugin,int Key,unsigned int ControlState);
\r
509 int WINAPI _export ProcessSynchroEventW(int Event,void *Param);
\r
510 int WINAPI _export ProcessViewerEventW(int Event,void *Param);
\r
511 int WINAPI _export PutFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t *SrcPath,int OpMode);
\r
512 int WINAPI _export SetDirectoryW(HANDLE hPlugin,const wchar_t *Dir,int OpMode);
\r
513 int WINAPI _export SetFindListW(HANDLE hPlugin,const struct PluginPanelItem *PanelItem,int ItemsNumber);
\r
514 void WINAPI _export SetStartupInfoW(const struct PluginStartupInfo *Info);
\r