-- Change Panel ShiftF[56] Dialog -- v1.0 -- FAR3 build >= 5467 TGuid={ [win.Uuid "FCEF11C4-5490-451D-8B4A-62FA03F52759"]:"F5" [win.Uuid "431A2F37-AC01-4ECD-BB6F-8CDE584E5A03"]:"F6" [win.Uuid "502D00DF-EE31-41CF-9028-442D2E352990"]:"SF5" [win.Uuid "89664EF4-BB8C-4932-A8C0-59CAFD937ABA"]:"SF6" } re=regex.new("^(Copy|Clone|Rename or move|Rename|Move)") F=far.Flags local key Proc=(hDlg,txt)-> Slash=txt\find "[\\/]" Act="" if key.F5 Act=(Slash or panel.GetPanelInfo(nil,1).SelectedItemsNumber>1) and "Copy" or "Clone" elseif key.F6 Act=(Slash or panel.GetPanelInfo(nil,1).SelectedItemsNumber>1) and "Move" or "Rename" elseif key.SF5 Act=Slash and "Copy" or "Clone" elseif key.SF6 Act=Slash and "Move" or "Rename" far.SendDlgMessage hDlg,F.DM_SETTEXT,1,(key.F5 or key.F6) and Act or "[Shift] "..Act txt=far.SendDlgMessage hDlg,F.DM_GETTEXT,2 far.SendDlgMessage hDlg,F.DM_SETTEXT,2,re\gsub txt,Act Slash Event group:"DialogEvent" description:"Panel ShiftF[56] Dialog" action:(Event,Param)-> if Event==F.DE_DLGPROCINIT id=far.SendDlgMessage Param.hDlg,F.DM_GETDIALOGINFO id=id and id.Id or "" ret=TGuid[id] if ret key={F5:false,F6:false,SF5:false,SF6:false} key[ret]=true APC,PPP = APanel.Current,PPanel.Path if Param.Msg==F.DN_INITDIALOG far.SendDlgMessage Param.hDlg,F.DM_SETTEXT,3,Proc(Param.hDlg,PPP) and PPP or APC elseif Param.Msg==F.DN_EDITCHANGE and Param.Param1==3 Proc Param.hDlg,far.SendDlgMessage Param.hDlg,F.DM_GETTEXT,3 false |