FAR Plugins API History
The key moments of FAR Manager Plugins API history are noted here.
FAR 1.75 01.04.2009
+ LIF_HIDDEN, LIF_GRAYED
+ MIF_HIDDEN, MIF_GRAYED
+ COL_MENUGRAYTEXT
+ COL_MENUSELECTEDGRAYTEXT
+ COL_DIALOGCOMBOGRAY
+ COL_DIALOGCOMBOSELECTEDGRAYTEXT
+ COL_DIALOGLISTGRAY
+ COL_DIALOGLISTSELECTEDGRAYTEXT
+ COL_WARNDIALOGCOMBOGRAY
+ COL_WARNDIALOGCOMBOSELECTEDGRAYTEXT
+ COL_WARNDIALOGLISTGRAY
+ COL_WARNDIALOGLISTSELECTEDGRAYTEXT
FAR 1.71 26.11.2008
FAR 1.71 05.11.2008
FAR 1.71 24.09.2008
* FLINK_SYMLINK renamed to FLINK_JUNCTION
+ FLINK_SYMLINKFILE
+ FLINK_SYMLINKDIR
FAR 1.71 11.08.2008
+ COL_COMMANDLINEUSERSCREEN
FAR 1.71 17.06.2008
+ VE_GOTFOCUS, VE_KILLFOCUS
FAR 1.71 15.05.2008
+ FDIS_DELREMOVESBLOCKS
+ FDIS_MOUSECLICKOUTSIDECLOSESDIALOG
FAR 1.71 30.03.2008
+ ECTL_ADDSTACKBOOKMARK
+ ECTL_CLEARSTACKBOOKMARKS
+ ECTL_DELETESTACKBOOKMARK
+ ECTL_GETSTACKBOOKMARKS
+ ECTL_NEXTSTACKBOOKMARK
+ ECTL_PREVSTACKBOOKMARK
FAR 1.71 29.03.2008
FAR 1.71 17.03.2008
+ COL_DIALOGLISTARROWS,
+ COL_DIALOGLISTARROWSDISABLED,
+ COL_DIALOGLISTARROWSSELECTED,
+ COL_DIALOGCOMBOARROWS,
+ COL_DIALOGCOMBOARROWSDISABLED,
+ COL_DIALOGCOMBOARROWSSELECTED,
+ COL_WARNDIALOGLISTARROWS,
+ COL_WARNDIALOGLISTARROWSDISABLED,
+ COL_WARNDIALOGLISTARROWSSELECTED,
+ COL_WARNDIALOGCOMBOARROWS,
+ COL_WARNDIALOGCOMBOARROWSDISABLED,
+ COL_WARNDIALOGCOMBOARROWSSELECTED,
+ COL_MENUARROWS,
+ COL_MENUARROWSDISABLED,
+ COL_MENUARROWSSELECTED,
FAR 1.71 05.01.2008
+ KEY_MSWHEEL_LEFT, KEY_MSWHEEL_RIGHT
FAR 1.71 31.12.2007
FAR 1.71 23.12.2007
+ ProcessDialogEvent
+ FarDialogEvent
+ OpenDlgPluginData
+ PF_DIALOG
+ OPEN_DIALOG
+ DIALOG_EVENTS
FAR 1.71 14.12.2007
FAR 1.71 06.12.2007
+ EE_GOTFOCUS, EE_KILLFOCUS
+ FE_GOTFOCUS, FE_KILLFOCUS
FAR 1.71 04.12.2007
FAR 1.71 06.08.2007
- _FAR_USE_FARFINDDATA
+ _FAR_USE_WIN32_FIND_DATA
FAR 1.71 20.02.2007
FAR 1.71 30.01.2007
FAR 1.71 07.12.2006
+ VIEWER_SETMODEFLAGS_TYPES
FAR 1.71 01.12.2006
* ViewerMode.TypeWrap renamed to ViewerMode.WordWrap
+ VCTL_SETMODE
+ enum VIEWER_SETMODE_TYPES
+ struct ViewerSetMode
FAR 1.70 29.03.2006
! restrictions to keys received by the ProcessKey() function no longer apply.
+ PKF_PREPROCESS
+ ACTL_GETSHORTWINDOWINFO
+ ECF_TAB1
! EOPT_EXPANDTABS -> EOPT_EXPANDALLTABS
+ EOPT_EXPANDONLYNEWTABS, EXPAND_TABS
+ FARINT64
+ ViewerAPI: ViewerInfo, ViewerMode, ViewerSelect, ViewerSetPosition,
ViewerControl, ProcessViewerEvent,
* All enumerations in plugin.hpp are now named.
+ FARMACRO_KEY_EVENT
+ DM_GETSELECTION, DM_SETSELECTION
+ DN_LISTHOTKEY
! Now plugins receive keyboard events through ProcessEditorInput both
when recording and when playing back macros. Previously, keyboard
events were received only when recording macros.
* Removed some of the limitations on the keys sent to plugins through
ProcessEditorInput.
Keys which are not sent to plugins: Ctrl-W, F11, Alt-F9, F12, Ctrl-Tab,
Ctrl-Shift-Tab, Alt-Ins, Ctrl-Alt-Shift.
The following key combinations are sent if:
Alt-F5 - the PrintMan plugin is not installed;
Alt-F11 - the editor is modal;
F6 - switching to the viewer is disabled
+ DN_DRAWDIALOGDONE
+ ACTL_GETPLUGINMAXREADDATA, ACTL_GETWCHARMODE
+ ACTL_GETDIALOGSETTINGS
! FIS_PERSISTENTBLOCKSINEDITCONTROLS -> FDIS_PERSISTENTBLOCKSINEDITCONTROLS
! FIS_HISTORYINDIALOGEDITCONTROLS -> FDIS_HISTORYINDIALOGEDITCONTROLS
! FIS_AUTOCOMPLETEININPUTLINES -> FDIS_AUTOCOMPLETEININPUTLINES
+ FRS_SCANSYMLINK
+ FSS_SCANSYMLINK
! Now GetReparsePointInfo returns an error for remote folders, because
correct information about symbolic link contents can not be obtained in
such case.
- Garbage had been returned in PanelInfo.SelectedItems[0] when no files were
selected and the cursor was positioned on the ".." element.
+ MCMD_POSTMACROSTRING
+ ActlKeyMacro.Param
+ KSFLAGS_NOSENDKEYSTOPLUGINS
+ ESPT_SETWORDDIV, ESPT_GETWORDDIV
+ FMENU_CHANGECONSOLETITLE
! DM_LISTSETMOUSEREACTION (behaviour changed)
+ LMRT_*
+ FCTL_SETNUMERICSORT, FCTL_SETANOTHERNUMERICSORT, PFLAGS_NUMERICSORT
FAR 1.70 beta 5 09.04.2003
+ OPM_QUICKVIEW
+ FCTL_GETPANELSHORTINFO, FCTL_GETANOTHERPANELSHORTINFO
+ FIB_NOAMPERSAND
+ ESPT_LOCKMODE
+ ECTL_TURNOFFMARKINGBLOCK
! CONSOLE_* -> FAR_CONSOLE_*
+ MAXSIZE_SHORTCUTDATA
+ FCTL_CHECKPANELSEXIST
+ LIF_DELETEUSERDATA
+ EF_IMMEDIATERETURN, VF_IMMEDIATERETURN
+ FLINK_DONOTUPDATEPANEL
+ ECTL_DELETEBLOCK
+ FDLG_SMALLDIALOG, FDLG_SMALLDIALOG
+ ACTL_SETARRAYCOLOR, FarSetColors, FARCOLORFLAGS.FCLR_REDRAW
+ FarListColors
MultiArc:
+ ArcInfo.Chapters
+ ArcItemInfo.Chapter
FAR 1.70 beta 4 13.03.2002
+ EJECT_LOAD_MEDIA
+ FDLG_WARNING, FDLG_SMALLDIALOG
+ PFLAGS_*
! PanelInfo.Flags
+ KEY_MSWHEEL_UP, KEY_MSWHEEL_DOWN
+ DM_LIST*
+ VF_ENABLE_F6, VF_DISABLEHISTORY
+ EF_ENABLE_F6, EF_DISABLEHISTORY, EF_DELETEONCLOSE
+ FarList*
+ DIF_LISTWRAPMODE, DIF_LISTAUTOHIGHLIGHT, DIF_LISTNOBOX,
DIF_SEPARATOR2
+ DM_GETCHECK, DM_SETCHECK, DM_SET3STATE, DM_SETITEMPOSITION,
DM_GETITEMPOSITION, DM_GETDROPDOWNOPENED, DM_SETDROPDOWNOPENED,
DM_SETHISTORY, DM_SETMOUSEEVENTNOTIFY
+ DM_LISTSETMOUSEREACTION
+ LINFO_*
+ BSTATE_*
+ ACTL_GETWINDOWCOUNT, ACTL_SETCURRENTWINDOW, ACTL_COMMIT,
ACTL_GETFARHWND, ACTL_POSTKEYSEQUENCE
+ WTYPE_*
+ KeySequenceFlags.KSFLAGS_DISABLEOUTPUT
+ KeySequence
! Unquote
! ExpandEnvironmentStr
+ ECTL_GETBOOKMARKS
+ EditorBookMark
+ DN_LISTCHANGE, DN_MOUSECLICK, DN_DRAGGED, DN_RESIZECONSOLE,
DN_MOUSEEVENT
+ LIFIND_EXACTMATCH
+ FMENU_USEEXT
+ MIF_*
+ FarMenuItemEx
! FarRecursiveSearch
! DI_RADIOBUTTON
+ ESPT_CHARTABLE, ESPT_SAVEFILEPOSITION
! FarCharTable
+ FCTL_GETCMDLINESELECTEDTEXT, FCTL_SETCMDLINESELECTION,
FCTL_GETCMDLINESELECTION
+ PluginPanelItem.CRC32
+ ConvertNameToReal
+ GetReparsePointInfo
! AddEndSlash
FAR 1.70 beta 3 20.04.2001
! In plugin.hpp, the "const" modifier has been added for the
unchangeable parameters of some exported and service functions.
+ DIF_VAREDIT - "breaking of the 512-byte barrier" - works for DI_EDIT
and DI_COMBOBOX controls.
! Changed the FarListItem structure (possibility of working with "long
data").
+ Added flag LIF_PTRDATA - for working with "long data".
! Changed the values of LISTITEMFLAGS (LIF_*) - the values for
LIF_SELECTED, LIF_CHECKED and LIF_SEPARATOR have been shifted to the
lower byte of the upper word, and LIF_DISABLE has been shifted "down".
! Changed field names in the FarDialogItemData structure.
+ It is now possible to handle a double click event through the
DN_MOUSECLICK message (MouseEvent.dwEventFlags==DOUBLE_CLICK).
! Significant revamping of the internal key codes (farkeys.hpp).
+ ACTL_EJECTMEDIA
+ DM_GETTEXTPTR, DM_SETTEXTPTR, DM_SHOWITEM, DM_ADDHISTORY
! Ctrl-Break can now be controlled. Earlier the dialog was closed
unconditionally, regardless of what the callback function
returned on the DM_CLOSE message.
+ DIF_HIDDEN, DIF_MANUALADDHISTORY
+ The DIF_SHOWAMPERSAND flag can be used for DI_SINGLEBOX and
DI_DOUBLEBOX items.
+ ACTL_KEYMACRO:
struct ActlKeyMacro - the interface part for ACTL_KEYMACRO
MCMD_LOADALL - load all macros from the registry into the FAR
memory
MCMD_SAVEALL - save all macros from the registry into the FAR
memory
! Extended the syntax of the Message function
+ FSF.qsortex
+ EF_CREATENEW
! FSF.FarRecursiveSearch - added parameter void *param
+ FAR knows about 4 predefined help topics in HLF files:
Contents - the standard main topic;
Config - the topic invoked by pressing Shift-F1 in the plugins
configuration menu;
Editor - the topic invoked by pressing Shift-F1 in the plugins menu
of the editor;
Viewer - the topic invoked by pressing Shift-F1 in the plugins menu
of the viewer.
+ FHELP_USECONTENTS
* ACTL_GETFARVERSION returns the version number, and not TRUE/FALSE.
* ACTL_WAITKEY waits for any key if NULL or -1 is passed in the parameter
Param.
+ ECTL_SETPARAM - allows to set editor parameters:
- Tab size (ESPT_TABSIZE)
- Expand tabs to spaces (ESPT_EXPANDTABS)
- Auto indent (ESPT_AUTOINDENT)
- Cursor beyond end of line (ESPT_CURSORBEYOUNDEOL)
- The format of the current character code (ESPT_CHARCODEBASE)
FAR 1.70 beta 2 16.12.2000
! Changes in Param2 for messages DM_SETTEXT and DM_GETTEXT.
Now they use pointers to FarDialogItemData structure.
+ 6 new colors are added for DISABLED items (in dialogs and warning
messages). See Headers.c\farcolor.hpp (or Headers.pas\farcolor.pas).
+ DIF_3STATE
! The DIF_EDITEXPAND flag is no longer processed by DI_PSWEDIT and
DI_FIXEDIT controls.
+ ACTL_GETCOLOR, ACTL_GETARRAYCOLOR
! The AddEndSlash function works with both types of slashes and replaces
the existing trailing slash with the type of slashes that was used
more often.
! The version format changed - the constant in plugin.hpp::FARMANAGERVERSION
has the following format:
HIWORD: = NNN - # build
LOWORD: HIBYTE = 1 - version Hi
LOBYTE = 70 - version Lo
FAR 1.70 beta 1 20.11.2000
+ Dialog API 1.0
! New/changed header files:
farcolor.hpp - Color attributes indexes.
farkeys.hpp - FAR manager internal key codes.
+ "Standard functions" - for reducing plugins size -
the FarStandardFunctions structure.
+ GetMinFarVersion().
+ URL-activators and color attributes in HLF-files.
struct PluginStartupInfo:
+ AdvControl
+ InputBox
+ ShowHelp
+ DialogEx
+ SendDlgMessage
+ DefDlgProc
+ PF_FULLCMDLINE
+ FCTL_*SORTMODE, FCTL_*SORTORDER
struct KeyBarTitles:
+ CtrlShiftTitles
+ AltShiftTitles
+ CtrlAltTitles
+ EF_NONMODAL
+ ECTL_SETKEYBAR
+ DI_COMBOBOX, DI_LISTBOX, DI_USERCONTROL
+ DIF_EDITEXPAND, DIF_DROPDOWNLIST, DIF_USELASTHISTORY, DIF_BTNNOCLOSE,
DIF_MASKEDIT, DIF_DISABLE
+ Input fields with fixed length can have an input mask.
+ Structures: FarListItem, FarList.
+ Header files for Pascal/Delphi
FAR 1.64 beta 24.05.2000
+ ECTL_SAVEFILE
+ ECTL_QUIT
+ struct EditorSaveFile
FAR 1.63 b 20.08.1999
+ VF_NONMODAL
+ VF_DELETEONCLOSE
FAR 1.62 23.05.1999
FAR 1.62 b2 10.05.1999
FAR 1.62 b 24.04.1999
The "Colorer" plugin "introduced" highlighting in the editor:
+ EE_REDRAW
+ ECTL_ADDCOLOR
+ ECTL_GETCOLOR
+ struct EditorColor
+ FCTL_SETCMDLINEPOS
+ FE_COMMAND
FAR 1.61 24.02.1999
FAR 1.60 13.10.1998
Rapid progress of the Editor API:
+ FCTL_SETPANELDIR
+ ECTL_*
+ EOPT_*
+ BTYPE_*
+ PF_DISABLEPANELS
+ PF_EDITOR
+ PF_VIEWER
+ OPEN_EDITOR
+ OPEN_VIEWER
+ struct EditorGetString
+ struct EditorSetString
+ struct EditorInfo
+ struct EditorSetPosition
+ struct EditorSelect
+ struct EditorConvertText
+ struct EditorConvertPos
struct PluginStartupInfo:
+ EditorControl
FAR 1.52 26.06.1998
+ FCTL_SETUSERSCREEN
+ FCT_DETECT
+ SM_COMPRESSEDSIZE
+ SM_NUMLINKS
+ FE_BREAK
+ OPM_DESCR
+ struct CharTableSet
struct PanelInfo:
+ ShortNames
+ SortMode
struct PluginStartupInfo:
+ CharTable
+ Text
FAR 1.50 (release version) 09.02.1998
+ PPIF_USERDATA
+ FCTL_SETVIEWMODE
+ FCTL_SETANOTHERVIEWMODE
+ FCTL_INSERTCMDLINE
+ OPIF_USEATTRHIGHLIGHTING
struct PluginPanelItem:
+ UserData
FAR 1.50 beta 03.10.1997
+ DIF_HISTORY
+ FCTL_GETCMDLINE
+ FCTL_SETANOTHERSELECTION
+ FCTL_SETCMDLINE
+ FCTL_SETSELECTION
+ FE_CLOSE
+ FMSG_LEFTALIGN
+ OPEN_COMMANDLINE
+ OPEN_SHORTCUT
+ OPIF_EXTERNALDELETE
+ OPIF_EXTERNALGET
+ OPIF_EXTERNALMKDIR
+ OPIF_EXTERNALPUT
+ OPM_TOPLEVEL
+ PPIF_SELECTED
struct PluginStartupInfo:
+ Viewer
+ Editor
+ CmpName
struct PluginInfo:
+CommandPrefix
struct PanelMode:
+StatusColumnTypes
+StatusColumnWidths
struct KeyBarTitles:
+ShortcutData
MultiArc:
Changed a member of the ArcInfo structure:
- int AuthVer
+ DWORD Flags
Flags added...
enum ARCINFO_FLAGS
{
AF_AVPRESENT=1,
AF_IGNOREERRORS=2
};
FAR 1.40 beta 27.06.1997
First time the FAR Plugins API was mentioned:
"
External DLL modules (plugins) can be used to implement new FAR commands and emulate file systems..."
ER> "As a matter of fact I started thinking about plugins after Lavrentiev
ER> asked me to create a version of FAR with Arvid support. He even invented
ER> (thank you very much) a good name for it - FARvid ;-) I didn't really
ER> want to develop such a version and so I decided to make available, to
ER> whomever was interested, the API that will be sufficient as to add such
ER> capability to FAR without my participation..."
The following items are available in this version:
- Exported functions:
ClosePlugin, Configure, DeleteFiles, ExitFAR, FreeFindData, FreeVirtualFindData,
GetFiles, GetFindData, GetOpenPluginInfo, GetPluginInfo, GetVirtualFindData,
MakeDirectory, OpenFilePlugin, OpenPlugin, ProcessEvent, ProcessHostFile,
ProcessKey, PutFiles, SetDirectory, SetFindList, SetStartupInfo
- Service functions:
Control, Dialog, FreeDirList, GetDirList, GetMsg,
GetPluginDirList, Menu, Message, RestoreScreen, SaveScreen
- Structures
FarDialogItem, FarMenuItem, InfoPanelLine, KeyBarTitles,
OpenPluginInfo, PanelInfo, PanelMode, PanelRedrawInfo, PluginInfo, PluginPanelItem,
PluginStartupInfo
- Language and help files