Ôàéëîâûé è àğõèâíûé ìåíåäæåğ FAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ×òî íîâîãî â Plugin API ïîñëåäíåé âåğñèè ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [!] Âàæíîå çàìå÷àíèå [+] Íîâîââåäåíèå [-] Èñïğàâëåíà îøèáêà [*] Èçìåíåíèÿ --------------------------------------------------------------------------- FAR 1.70 (build 2087) (29.03.2006) --------------------------------------------------------------------------- Ğåäàêòîğ ~~~~~~~~ [*] Òåïåğü ïëàãèí â ProcessEditorInput ïîëó÷àåò êëàâèàòóğíûå ñîáûòèÿ êàê ïğè çàïèñè, òàê è ïğè âîñïğîèçâåäåíèè ìàêğîïîñëåäîâàòåëüíîñòè. Ğàíåå êëàâèàòóğíûå ñîáûòèÿ ïğèõîäèëè òîëüêî âî âğåìÿ çàïèñè. [+] Êîíñòàíòà FARMACRO_KEY_EVENT îïğåäåëÿåò òèï âõîäíîãî ñîîáùåíèÿ ñòğóêòóğû INPUT_RECORD, êîòîğîå ïåğåäàåòñÿ â ProcessEditorInput âî âğåìÿ èñïîëíåíèÿ ìàêğîêîìàíäû. İëåìåíò Event ñîäåğæèò ñòğóêòóğó KEY_EVENT_RECORD ñ èíôîğìàöèåé î ñîîáùåíèè ñ êëàâèàòóğû. [*] ×àñòè÷íî ñíÿòî îãğàíè÷åíèå íà ïğèõîäÿùèå ïëàãèíó â 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). [+] Êîìàíäà ESPT_SETWORDDIV - ïîçâîëÿåò èçìåíèòü ñòğîêó ñèìâîëîâ-ğàçäåëèòåëåé ñëîâ äëÿ òåêóùåé êîïèè ğåäàêòîğà. [+] Êîìàíäà ESPT_GETWORDDIV - ïîçâîëÿåò ïîëó÷èòü ñòğîêó ñèìâîëîâ-ğàçäåëèòåëåé ñëîâ äëÿ òåêóùåé êîïèè ğåäàêòîğà. [-] Ïğè âûçîâå êîìàíäû ECTL_SAVEFILE FAR íå çàïîìèíàë íîâîå èìÿ ôàéëà. [-] Ïğè ñîõğàíåíèè ôàéëà â ğåäàêòîğå, âûçâàííîãî èç ïëàãèíà ïîğòèëñÿ ïîëüçîâàòåëüñêèé çàãîëîâîê, ïåğåäàííûé â ïàğàìåòğå Title ôóíêöèè Editor. [!] Íîâûé ôëàã ECF_TAB1. Íà÷èíàÿ ñ build 1957 FAR ğàñêğàøèâàåò ñèìâîë òàáóëÿöèè íà âñş äëèíó, íà êîòîğóş ğàñøèğÿåòñÿ òàáóëÿöèÿ. Åñëè íåîáõîäèìî, ÷òîáû ñèìâîë òàáóëÿöèè äëÿ öâåòîâîé îáëàñòè çàíèìàë 1 çíàêîìåñòî, òî äëÿ ıëåìåíòà EditorColor.Color, â äîïîëíåíèè ê öâåòó, íåîáõîäèìî âûñòàâèòü ôëàã ECF_TAB1. [!] ECTL_GETBOOKMARKS è ECTL_GETINFO ìîæíî âûçûâàòü â EE_CLOSE. [-] Íåêîğğåêòíîå çíà÷åíèå EditorInfo.BlockStartLine. Íàïğèìåğ, åñòü äâå íåïóñòûå ñòğîêè ñ íîìåğàìè N è N+1. Êóğñîğ ñòîèò ïîñğåäèíå ñòğîêè N+1. Âûäåëåíèÿ íåò. Âûïîëíÿåì Shift-Left äî òåõ ïîğ, ïîêà êóğñîğ íå îêàæåòñÿ ïîñğåäèíå ñòğîêè N.  ıòîò ìîìåíò EditorInfo.BlockStartLine ğàâíî N+1, à íå N, êàê îæèäàëîñü. Äèàëîãè ~~~~~~~ [-] Äëÿ ïóñòîãî DI_LISTBOX ñîîáùåíèå DM_LISTSETTITLES íå âûâîäèëî çàãîëîâêè ñïèñêà. [-] Äóáëèğîâàíèå êóğñîğîâ ïîñëå óäàëåíèÿ ïóíêòîâ èç ñïèñêà DI_LISTBOX â ñëó÷àå, åñëè êóğñîğ ñòîèò íå íà óäàëÿåìîì ıëåìåíòå. [+] Ñîîáùåíèÿ DM_GETSELECTION è DM_SETSELECTION, ïîçâîëÿşùèå óïğàâëÿòü âûäåëåíèåì áëîêîâ â ñòğîêàõ ğåäàêòèğîâàíèÿ äèàëîãà. [-] Íåêîğğåêòíîå öåíòğèğîâàíèå ıëåìåíòîâ DI_RADIOBUTTON è DI_CHECKBOX ñ âûñòàâëåííûì ôëàãîì DIF_CENTERGROUP. [+] Ñîáûòèå DN_DRAWDIALOGDONE - ïğèõîäèò ïî îêîí÷àíèè îòğèñîâêè äèàëîãà. [-] Ïğè îòñóòñòâèè â äèàëîãå ôîêóñíûõ ıëåìåíòîâ êóğñîğ íå ãàñèëñÿ. [-] Åñëè çàãîëîâîê äèàëîãà íà÷èíàåòñÿ ñ ÷èñëà, òî ıòî ÷èñëî îòğåçàåòñÿ â çàãîëîâêå îêíà Ôàğà. [-] Ñìåíà ôîêóñà (íàæàòèå êëàâèøè Tab èëè Shift-Tab) â äèàëîãå ñ åäèíñòâåííûì ıëåìåíòîì ïğèâîäèëà ê çàâèñàíèş FAR. [+] Ïîëå FarDialogItem.Data äëÿ DI_LISTBOX èñïîëüçóåòñÿ êàê âåğõíèé çàãîëîâîê ñïèñêà (åñëè íå âûñòàâëåí ôëàã DIF_LISTNOBOX). [+] Åñëè â äèàëîãå íåò ğàìîê (DI_SINGLEBOX, DI_DOUBLEBOX) è ıëåìåíò DI_LISTBOX ïåğâûé ıëåìåíò, òî â êà÷åñòâå çàãîëîâêà êîíñîëè áåğåòñÿ ñòğîêà çàãîëîâêà ñïèñêà (DI_LISTBOX). [*] Ñîîáùåíèå DM_LISTSETMOUSEREACTION òåïåğü ïîçâîëÿåò áîëåå ãèáêî óïğàâëÿòü ñëåæåíèåì ñïèñêà çà ïåğåäâèæåíèåì êóğñîğà ìûøè (ïåğåìåùåíèå êóğñîğà â ñïèñêå). Ñ ïîìîùüş ıòîãî ñîîáùåíèÿ ìîæíî çàäàâàòü îäíî èç òğåõ ñîñòîÿíèé: 1. ñïèñîê áóäåò ğåàãèğîâàòü íà äâèæåíèå ìûøè òîëüêî åñëè ıëåìåíò â ôîêóñå 2. ñïèñîê áóäåò âñåãäà ğåàãèğîâàòü íà äâèæåíèå ìûøè 3. ñïèñîê íå áóäåò ğåàãèğîâàòü íà äâèæåíèå ìûøè [+] Ñîîáùåíèå DN_LISTHOTKEY. Ñîîáùàåò îáğàáîò÷èêó äèàëîãà, ÷òî ïîëüçîâàòåëü äëÿ ñìåíû ïóíêòà â ñïèñêå (DI_LISTBOX) âîñïîëüçîâàëñÿ ãîğÿ÷èìè êëàâèøàìè. [-] Ïğè äâèæåíèè ìûøüş ïî ëèñòó ñîîáùåíèå DN_LISTCHANGE ïîñûëàëîñü äàæå, åñëè ıëåìåíò ñïèñêà íå ìåíÿëñÿ. ò.å. åñëè äâèãàòü ìûøüş â ïğåäåëàõ îäíîãî ıëåìåíòà, áóäóò ïîñûëàòüñÿ ìíîãî DN_LISTCHANGE ñ íîìåğîì ıòîãî ıëåìåíòà. [!] Äîáàâëåíî îãğàíè÷åíèå, êîãäà øèğèíà è âûñîòà ıëåìåíòà äèàëîãà íå ìîæåò ïğåâûøàòü øèğèíó è âûñîòó äèàëîãà. [-] Èñïîëüçîâàíèå ñîîáùåíèÿ DM_SETCURSORPOS äëÿ ñòğîê ââîäà â ïğîöåññå îáğàáîòêè ñîáûòèÿ DN_INITDIALOG ïğèâîäèëî òîìó, ÷òî ñòğîêà ââîäà ğèñîâàëàñü äî îòğèñîâêè ñàìîãî äèàëîãà. [-] Ñîáûòèå DN_EDITCHANGE äëÿ êîìáèíèğîâàííîãî ñïèñêà ïğèõîäèëî ñ íåâåğíûì ID ıëåìåíòà. [-] Íåïğàâèëüíî îòğèñîâûâàëñÿ ıëåìåíò DI_TEXT. Åñëè âûâåñòè ñòğîêó, à ïîòîì â îáğàáîò÷èêå äèàëîãà âûâåñòè ñòğîêó ìåíüøåãî ğàçìåğà, òî íà ıêğàíå îñòàâàëàñü êîíöîâêà ïğåäûäóùåãî òåêñòà. Ïğî÷åå ~~~~~~ [-] Äëÿ íåñêîëüêî èäóùèõ ïîäğÿä âûçîâîâ ACTL_POSTKEYSEQUENCE ñğàáàòûâàë òîëüêî ïåğâûé. [-] Èñïğàâëåíà îøèáêà â FSF.TruncStr, ïğèâîäÿùàÿ ê ïîğ÷å ïàìÿòè çà ïğåäåëàìè áóôåğà. [+] Íîâûé ôëàã FRS_SCANSYMLINK äëÿ ôóíêöèè FarRecursiveSearch - ïğè îáõîäå äåğåâà êàòàëîãîâ òàêæå çàõîäèòü â ñèìâîëè÷åñêèå ñâÿçè. [+] Êîìàíäà ACTL_GETPLUGINMAXREADDATA. Âîçâğàùàåò ìàêñèìàëüíûé ğàçìåğ äàííûõ, êîòîğûé FAR ìîæåò ñ÷èòûâàòü èç ôàéëà ïåğåä ïåğåäà÷åé óïğàâëåíèÿ ïëàãèíó â ôóíêöèş OpenFilePlugin. [+] Êîìàíäà ACTL_GETWCHARMODE. Ôóíêöèÿ âîçâğàùàåò TRUE, åñëè FAR ğàáîòàåò ñ êîíñîëüş â Unicode-ğåæèìå è FALSE, åñëè â 8-áèòíîì ğåæèìå. [!] Òåïåğü GetReparsePointInfo äëÿ ñåòåâûõ êàòàëîãîâ âîçâğàùàåò îøèáêó, ò.ê. êîğğåêòíóş èíôîğìàöèş î ñîäåğæèìîì ñèìâîëè÷åñêîé ñâÿçè â ıòîì ñëó÷àå ïîëó÷èòü íåâîçìîæíî. [*] Ò.ê. íåêîòîğûå íàñòğîéêè ïåğåíåñåíû â äèàëîã "Íàñòğîéêà äèàëîãîâ", òî äîáàâëåíà êîìàíäà ACTL_GETDIALOGSETTINGS è, ñîîòâåòñòâåííî, èçìåíåíû çíà÷åíèÿ è íàçâàíèÿ ñëåäóşùèõ êîíñòàíò: FIS_PERSISTENTBLOCKSINEDITCONTROLS -> FDIS_PERSISTENTBLOCKSINEDITCONTROLS FIS_HISTORYINDIALOGEDITCONTROLS -> FDIS_HISTORYINDIALOGEDITCONTROLS FIS_AUTOCOMPLETEININPUTLINES -> FDIS_AUTOCOMPLETEININPUTLINES [-] FAR âîçâğàùàë ìóñîğ â PanelInfo.SelectedItems[0] äëÿ ñëó÷àÿ, êîãäà íà ïàíåëè íåò âûäåëåííûõ ôàéëîâ è êóğñîğ ñòîèò íà ıëåìåíòå ".." [*] Âñå ïåğå÷èñëåíèÿ â plugin.hpp ñäåëàíû èìåíîâàííûìè [+] Íîâàÿ êîìàíäà MCMD_POSTMACROSTRING - ïåğåäàòü â FAR ìàêğîñ â òåêñòîâîì âèäå (â òîì âèäå, êàê èõ õğàíèò FAR Manager â ğååñòğå) [*] Óòî÷íåíèå ñòğóêòóğû ActlKeyMacro: äîáàâëåí ÷ëåí Param.PlainText - óêàçàòåëü íà ñòğîêó, ñîäåğæàùóş ìàêğîïîñëåäîâàòåëüíîñòü. [+] Íîâûé ôëàã KSFLAGS_NOSENDKEYSTOPLUGINS - íå ïåğåäàâàòü êëàâèøè ğåäàêòîğíûì ïëàãèíàì (ïëàãèíàì, ıêñïîğòèğóşùèì ôóíêöèş ProcessEditorInput) [-] Ïğåîáğàçîâàíèå 'Key = FarNameToKey ("AltCtrlÁóêâà") -> FarKeyToName (Key)' ğàáîòàëî íåêîğğåêòíî (âîçâğàùàåòñÿ Alt00000, âìåñòî AltCtrlÁóêâà) [-] FSF.FarRecursiveSearch, íå ìîæåò íàéòè ôàéë åñëè â êà÷åñòâå ìàñêè çàäàíî åãî êîğîòêîå èìÿ. [-]  .lng ôàéëå íåëüçÿ áûëî ñòàâèòü ïğîáåëû ïîñëå èäåíòèôèêàòîğà ".Language", íàïğèìåğ ".Language = foo". [+] Íîâûé ôëàã FMENU_CHANGECONSOLETITLE äëÿ ôóíêöèè Menu. Åñëè óêàçàí, òî FAR èçìåíèò çàãîëîâîê êîíñîëè â çíà÷åíèå, óêàçàííîå â ïàğàìåòğå Title (åñëè Title íå ïóñò). [+] Ëîãè÷åñêîå äîïîëíåíèå ê ÷èñëîâîé ñîğòèğîâêå: êîìàíäû FCTL_SETNUMERICSORT è FCTL_SETANOTHERNUMERICSORT ôëàã PFLAGS_NUMERICSORT (âêëş÷åí NumericSort íà ïàíåëè) ê PanelInfo.Flags [-] Ïàäåíèå FAR, åñëè â ôóíêöèè FSF.PointToName() ïàğàìåòğ Path == NULL [+] Êîìàíäà ACTL_GETSHORTWINDOWINFO - áåçîïàñíûé äëÿ èñïîëüçîâàíèÿ â ïîòîêàõ àíàëîã êîìàíäû ACTL_GETWINDOWINFO. [-] FCTL_GET[ANOTHER]PANELSHORTINFO íàğóøàëè ïğèíöèï "íåïğèêîñíîâåííîñòè" è óíè÷òîæàëè äàííûå, ïîëó÷åííûå ïğåäûäóùèì âûçîâîì FCTL_GET[ANOTHER]PANELINFO [*] Òåïåğü FE_CLOSE ïğèõîäèò íà ïàíåëü òîëüêî â ñëó÷àå, åñëè âûçîâ ôóíêöèè OpenPlugin íîâîãî ïëàãèíà âåğíóë hPlugin != INVALID_HANDLE_VALUE. Åñëè ïğåäûäóùàÿ ïàíåëü ñîîáùèò, ÷òî åå çàêğûòü íåëüçÿ - ïàíåëü íîâîãî ïëàãèíà áóäåò çàêğûòà âûçîâîì ClosePlugin. [-] Ïàäåíèå FAR ïğè èñïîëüçîâàíèè FMENU_CHANGECONSOLETITLE. Ïğîãğàììà ïğîñìîòğà ~~~~~~~~~~~~~~~~~~~ [!] Îòêğûòî îïèñàíèå API ïğîãğàììû ïğîñìîòğà. --------------------------------------------------------------------------- FAR 1.70 beta 5 (build 1634) (08.04.2003) --------------------------------------------------------------------------- Îáùåå ~~~~~ [!] Âòîğîé ïàğàìåòğ ó ıêñïîğòèğóåìîé ôóíêöèè SetFindList òåïåğü îáúÿâëåí êàê const. [!] Èçìåíèëîñü îïèñàíèå ñòğóêòóğû OpenPluginInfo - íåêîòîğûå ÷ëåíû ñòàëè const [!] Âî âğåìÿ âûçîâà ExitFAR ïëàãèíó íåäîñòóïíû ñëåäóşùèå ñåğâèñíûå ôóíêöèè: InputBox, Menu, Dialog[Ex], GetMsg, Message, Control, SaveScreen, RestoreScreen, GetDirList, Viewer, Editor, CharTable, Text, EditorControl, GetPluginDirList, ShowHelp, AdvControl (÷àñòè÷íî).  AdvControl äîñòóïíû òîëüêî ñëåäóşùèå êîìàíäû: ACTL_GETFARVERSION, ACTL_GETSYSWORDDIV, ACTL_GETCOLOR, ACTL_GETARRAYCOLOR, ACTL_GETFARHWND, ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS, ACTL_GETCONFIRMATIONS, ACTL_GETDESCSETTINGS. [!] Çàïğåùåíî ñîçäàíèå íåìîäàëüíîãî ğåäàêòîğà èëè ïğîãğàììû ïğîñìîòğà èç ìîäàëüíîãî. [!] Çàïğåùåíî ïåğåêëş÷åíèå èç ìîäàëüíîãî â äğóãîå îêíî. [!] Óâåëè÷åí ğàçìåğ öâåòîâîé ïà...
FreeKwL