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

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

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

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

   

Alexyz21



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

Код:
-- Extend Panel (Shift)?F[56] Dialog
-- v1.2
-- 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 btnOK=17 -- dialog execution button
 
local lng,key,ret
local lang={
  English={re=regex.new("^(Copy|Clone|Rename or move|Rename|Move)"),
    Copy="Copy",Clone="Clone",Move="Move",Rename="Rename",
    MsgHdr="Warning!",MsgTXT="Path or file name don't specified"},
  Russian={re=regex.new("^(Копировать|Клонировать|Переименовать или перенести|Переименовать|Переместить)"),
    Copy="Копировать",Clone="Клонировать",Move="Переместить",Rename="Переименовать",
    MsgHdr="Внимание!",MsgTXT="Путь или имя файла не заданы"}
}
 
local F=far.Flags
 
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 lang[lng].Copy or lang[lng].Clone
  elseif key.F6 then Act=(Slash or panel.GetPanelInfo(nil,1).SelectedItemsNumber>1) and lang[lng].Move or lang[lng].Rename
  elseif key.SF5 then Act=Slash and lang[lng].Copy or lang[lng].Clone
  elseif key.SF6 then Act=Slash and lang[lng].Move or lang[lng].Rename
  end
  hDlg:send(F.DM_SETTEXT,1,(key.F5 or key.F6) and Act or "[Shift] "..Act)
  txt=hDlg:send(F.DM_GETTEXT,2)
  hDlg:send(F.DM_SETTEXT,2,lang[lng].re:gsub(txt,Act))
  hDlg:send(F.DM_SETTEXT,btnOK,(lng=="English" and (key.F6 or key.SF6)) and Act:sub(1,-2).."&e" or "&"..Act)
  return Slash
end
 
Event {
  group="DialogEvent";
  description="Extend Panel (Shift)?F[56] Dialog";
  condition=function(Event,Param)
    if Event==F.DE_DLGPROCINIT then
      local id=Param.hDlg:send(F.DM_GETDIALOGINFO)
      id=id and id.Id or ""
      ret=TGuid[id]
      lng=Far.GetConfig('Language.Main')
      return ret and (lng=='English' or lng=='Russian')
    end
  end;
  action=function(Event,Param)
    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
      Param.hDlg:send(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,Param.hDlg:send(F.DM_GETTEXT,3))
    elseif Param.Msg==F.DN_CLOSE and Param.Param1==btnOK and Param.hDlg:send(F.DM_GETTEXT,3)=="" then  
      far.Message(lang[lng].MsgTXT,lang[lng].MsgHdr,nil,"w")
      Param.hDlg:send(F.DM_SETFOCUS,3)
      return 0
    end
    return false
  end
}

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 14:28 07-09-2019 | Исправлено: Alexyz21, 23:06 07-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