Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)

Модерирует : gyra, Maz

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
-- Change Panel ShiftF[56] Dialog
-- v1.0
-- FAR3 build >= 5467
 
local 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"
}
 
local re=regex.new("^(Copy|Clone|Rename or move|Rename|Move)")
 
local F=far.Flags
 
local key
local Proc=function(hDlg,txt)
  local Slash=txt:find("[\\/]")
  local Act=""
  if key.F5 then Act=(Slash or panel.GetPanelInfo(nil,1).SelectedItemsNumber>1) and "Copy" or "Clone"
  elseif key.F6 then Act=(Slash or panel.GetPanelInfo(nil,1).SelectedItemsNumber>1) and "Move" or "Rename"
  elseif key.SF5 then Act=Slash and "Copy" or "Clone"
  elseif key.SF6 then Act=Slash and "Move" or "Rename"
  end
  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))
  return Slash
end
 
Event {
  group="DialogEvent";
  description="Panel ShiftF[56] Dialog";
  action=function(Event,Param)
    if Event==F.DE_DLGPROCINIT then
      local id=far.SendDlgMessage(Param.hDlg,F.DM_GETDIALOGINFO)
      id=id and id.Id or ""
      local ret=TGuid[id]
      if ret then
        key={F5=false,F6=false,SF5=false,SF6=false}
        key[ret]=true
        local APC,PPP = APanel.Current,PPanel.Path
        if Param.Msg==F.DN_INITDIALOG then
          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 then
          Proc(Param.hDlg,far.SendDlgMessage(Param.hDlg,F.DM_GETTEXT,3))
        end
      end
    end
    return false
  end
}

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 23:21 06-09-2019 | Исправлено: Alexyz21, 23:24 06-09-2019
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru