История FAR plugins API
Здесь отмечены ключевые моменты в истории Plugins API
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
+ PFLAGS_PANELLEFT
+ PFLAGS_PANELRIGHT
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 переименован в ViewerMode.WordWrap
+ VCTL_SETMODE
+ enum VIEWER_SETMODE_TYPES
+ struct ViewerSetMode
FAR 1.70 29.03.2006
! снято ограничение на приходящие в функцию ProcessKey() клавиши.
+ PKF_PREPROCESS
+ ACTL_GETSHORTWINDOWINFO
+ ECF_TAB1
! EOPT_EXPANDTABS -> EOPT_EXPANDALLTABS
+ EOPT_EXPANDONLYNEWTABS, EXPAND_TABS
+ FARINT64
+ ViewerAPI: ViewerInfo, ViewerMode, ViewerSelect, ViewerSetPosition,
ViewerControl, ProcessViewerEvent,
* Все перечисления в plugin.hpp сделаны именованными
+ FARMACRO_KEY_EVENT
+ DM_GETSELECTION, DM_SETSELECTION
+ DN_LISTHOTKEY
! плагин в ProcessEditorInput получает клавиатурные события
как при записи, так и при воспроизведении макропоследовательности.
* Частично снято ограничение на приходящие плагину в ProcessEditorInput клавиши.
Плагину не передаются: Ctrl-W, F11, Alt-F9, F12, Ctrl-Tab,
Ctrl-Shift-Tab, Alt-Ins и Ctrl-Alt-Shift.
Следующие сочетания клавиш передаются при условии, что:
Alt-F5 - плагин PrintMan не установлен;
Alt-F11 - редактор модальный;
F6 - есть запрет на переключение в программу просмотра
(при вызове функции Editor не указан флаг EF_ENABLE_F6).
+ DN_DRAWDIALOGDONE
+ ACTL_GETPLUGINMAXREADDATA, ACTL_GETWCHARMODE
+ ACTL_GETDIALOGSETTINGS
! FIS_PERSISTENTBLOCKSINEDITCONTROLS -> FDIS_PERSISTENTBLOCKSINEDITCONTROLS
! FIS_HISTORYINDIALOGEDITCONTROLS -> FDIS_HISTORYINDIALOGEDITCONTROLS
! FIS_AUTOCOMPLETEININPUTLINES -> FDIS_AUTOCOMPLETEININPUTLINES
+ FRS_SCANSYMLINK
+ FSS_SCANSYMLINK
! Теперь GetReparsePointInfo для сетевых каталогов возвращает ошибку,
т.к. корректную информацию о содержимом символической связи в этом
случае получить невозможно.
- FAR возвращал мусор в PanelInfo.SelectedItems[0] для случая, когда
на панели нет выделенных файлов и курсор стоит на элементе ".."
+ MCMD_POSTMACROSTRING
+ ActlKeyMacro.Param
+ KSFLAGS_NOSENDKEYSTOPLUGINS
+ ESPT_SETWORDDIV, ESPT_GETWORDDIV
+ FMENU_CHANGECONSOLETITLE
! DM_LISTSETMOUSEREACTION (изменено поведение)
+ 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
! В plugin.hpp в некоторых экспортируемых и сервисных функциях для
неизменяемых параметров применен модификатор "const".
+ DIF_VAREDIT - "преодоление барьера в 512 байт" - работает с элементами
DI_EDIT и DI_COMBOBOX
! Изменена структура FarListItem (возможность работы с "длинными данными")
+ LIF_PTRDATA - для работы с "длинными данными".
! Изменены флаги LISTITEMFLAGS (LIF_*) - значения для LIF_SELECTED,
LIF_CHECKED и LIF_SEPARATOR перенесены в младший байт старшего слова,
LIF_DISABLE смещен "вниз".
! Изменены имена полей структуры FarDialogItemData.
+ В сообщении DN_MOUSECLICK теперь можно отловить событие DOUBLE_CLICK.
(MouseEvent.dwEventFlags==DOUBLE_CLICK)
! Основательная переделка внутренних кодов клавиш (farkeys.hpp).
+ ACTL_EJECTMEDIA
+ DM_GETTEXTPTR, DM_SETTEXTPTR, DM_SHOWITEM, DM_ADDHISTORY
! Ctrl-Break управляемый. Раньше диалог закрывался безусловно,
независимо от того, что вернул обработчик диалога на DM_CLOSE.
+ DIF_HIDDEN, DIF_MANUALADDHISTORY
+ DIF_SHOWAMPERSAND доступен для элементов DI_SINGLEBOX и DI_DOUBLEBOX
+ ACTL_KEYMACRO:
struct ActlKeyMacro - интерфейсная часть для ACTL_KEYMACRO
MCMD_LOADALL - все макросы из реестра в память FAR`а
MCMD_SAVEALL - все макросы из памяти FAR`а в реестр
! Расширен синтаксис функции Message.
+ FSF.qsortex
+ EF_CREATENEW
! FSF.FarRecursiveSearch - добавлен параметр void *param
+ FAR "знает" 4 предопределенных темы в HLF-файлах:
Contents - стандартная главная тема;
Config - тема, вызываемая по Shift-F1 из меню настроек плагинов;
Editor - тема, вызываемая по Shift-F1 из меню плагинов в редакторе;
Viewer - тема, вызываемая по Shift-F1 из меню плагинов в программе просмотра.
+ FHELP_USECONTENTS
* ACTL_GETFARVERSION возвращает номер версии, а не TRUE/FALSE.
* ACTL_WAITKEY ждет любую клавишу, если в качестве параметра Param передали
NULL или -1.
+ ECTL_SETPARAM - установка параметров:
- "Размер табуляции" (ESPT_TABSIZE)
- "Пробелы вместо табуляции" (ESPT_EXPANDTABS)
- "Автоотступ" (ESPT_AUTOINDENT)
- "Курсор за пределами строки" (ESPT_CURSORBEYONDEOL)
- Формат показа кода текущего символа (ESPT_CHARCODEBASE)
FAR 1.70 beta 2 16.12.2000
! Изменения в Param2 для сообщений DM_SETTEXT & DM_GETTEXT.
Теперь здесь передается указатель на структуру FarDialogItemData.
+ 6 цветов для DISABLED элементов (в диалогах и предупреждениях)
см. Headers.c\farcolor.hpp (или Headers.pas\farcolor.pas)
+ DIF_3STATE
! Для DI_PSWEDIT и DI_FIXEDIT исключена обработка флага DIF_EDITEXPAND.
+ ACTL_GETCOLOR, ACTL_GETARRAYCOLOR
! FSF.AddEndSlash работает с обоими видами слешей, также происходит
изменение уже существующего конечного слеша на такой, который встречается
чаще.
! Изменен формат версии - константа plugin.hpp::FARMANAGERVERSION имеет
следующий формат:
HIWORD: = NNN - # build
LOWORD: HIBYTE = 1 - version Hi
LOBYTE = 70 - version Lo
FAR 1.70 beta 1 20.11.2000
+ Dialog API 1.0
! Новые/измененные заголовочные файлы:
farcolor.hpp - Индексы цветовых атрибут.
farkeys.hpp - коды внутренних клавиш FAR Manager
+ FarStandardFunctions: "стандартные функции" - для уменьшения размера плагина
+ GetMinFarVersion().
+ URL-активаторы и цветовые атрибуты в HLF-файлах.
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
+ Поля редактирования с фиксированной длиной могут иметь
маску ввода.
+ Структуры: FarListItem, FarList
+ Интерфейс для 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
Плагин "Colorer" "ввел" раскраску в редакторе:
+ EE_REDRAW
+ ECTL_ADDCOLOR
+ ECTL_GETCOLOR
+ struct EditorColor
+ FCTL_SETCMDLINEPOS
+ FE_COMMAND
FAR 1.61 24.02.1999
FAR 1.60 13.10.1998
Бурный прогресс 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:
Изменено поле структуры ArcInfo:
- int AuthVer
+ DWORD Flags
Добавлены флаги...
enum ARCINFO_FLAGS
{
AF_AVPRESENT=1,
AF_IGNOREERRORS=2
};
FAR 1.40 beta 27.06.1997
Первое упоминание о FAR Plugins API:
"
External DLL modules (plugins) can be used to implement new FAR commands and emulate file systems..."
ER> "Вообще о плагинах я задумался после того, как Лаврентьев попросил меня
ER> сделать версию FAR с поддержкой Арвида. Для нее еще Спасибожко хорошее
ER> название придумал - FARvid ;-) Разрабатывать такую версию мне было неохота,
ER> поэтому я решил предоставить желающим API, достаточное для добавления
ER> такой поддержки без моего участия..."
Для данной версии доступны:
- 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