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

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

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

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

   

Alexyz21



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

Код:
-- See https://forum.farmanager.com/viewtopic.php?p=148024#p148024
-- Based on https://forum.farmanager.com/viewtopic.php?p=146816#p146816
DX=4
transform=
  [win.Uuid"fcef11c4-5490-451d-8b4a-62fa03f52759"]: {1,3,11} --copy
  [win.Uuid"431a2f37-ac01-4ecd-bb6f-8cde584e5a03"]: {1,3,11} --move
  [win.Uuid"fad00dbe-3fff-4095-9232-e1cc70c67737"]: {1,3,6,8} --mkdir
  [win.Uuid"5eb266f4-980d-46af-b3d2-2c50e64bca81"]: {1,3,11} --link
  [win.Uuid"1d07cee2-8f4f-480a-be93-069b4ff59a2b"]: {1,3,6} --new
  [win.Uuid"8c9ead29-910f-4b24-a669-edafba6ed964"]: {1,3,6,7,9,15.1,16.1,17.1,18.1,20.1,22.2,23.1} --findfile
  [win.Uuid"5d3cba90-f32d-433c-b016-9bb4af96facc"]: {1,2.3,3.3,5,7,12.1,13.1} --editsearch
  [win.Uuid"8bccdffd-3b34-49f8-87cd-f4d885b75873"]: {1,2.3,3.3,5,7,12.1,13.1} --editreplace
  [win.Uuid"9162f965-78b8-4476-98ac-d699e5b6afe7"]: {1,3,6} --saveas
  [win.Uuid"D8AF7A38-8357-44A5-A44B-A595CF707549"]: {1,3,6} -- Describe file
  [win.Uuid"044EF83E-8146-41B2-97F0-404C2F4C7B69"]: {1,3,6} -- Apply command
  [win.Uuid'502D00DF-EE31-41CF-9028-442D2E352990']: {1,3,11} -- Copy current
  [win.Uuid'89664EF4-BB8C-4932-A8C0-59CAFD937ABA']: {1,3,11} -- Move current
  -- RESearch
  [win.Uuid"E506EA8F-484F-7261-FEED-9B10267753E9"]: {1.0,4.0,6.0,7.3,26.3}          -- Shell/Search
  [win.Uuid"9736CFC1-9F3A-D4F9-02A4-566717182E8B"]: {1.0,4.0,6.0,8.0,9.3,10.3,37.3} -- Shell/Replace
  [win.Uuid"3D95792C-E25C-1CE1-EC09-DC409184EC7A"]: {1.0,4.0,6.0,7.3,24.0,35.3}     -- Shell/Grep
  [win.Uuid"AA3CA1C7-062A-67A8-3A73-80B5E9394046"]: {1.0,5.0} -- Shell/SelectFiles,UnselectFiles,FlipSelection
  [win.Uuid"0AE75CCC-5872-74A7-3561-BBA1991C0395"]: {1.0,4.0,6.0,8.0,28.3}          -- Shell/RenameFiles
  [win.Uuid"622AAD65-B7CA-7670-6622-A267028B1A06"]: {1.0,5.0,7.0,16.3}              -- Shell/RenameSelectedFiles
  [win.Uuid"FF1E3A24-0B7A-0149-EFA2-1ED2309F8410"]: {1.0,3.0,4.3,14.3,18.3}  -- Viewer,Editor/Search (hack: [Presets] is 14 in V, 18 in E)
  [win.Uuid"411BF77E-5743-D87A-A8E7-0EFDF0C71D79"]: {1.0,3.0,5.0,6.3,7.3,25.3}      -- Editor/Replace
  [win.Uuid"3A6225FC-AD65-75B1-2643-5158B78D6BC4"]: {1.0,3.0,4.3,14.3}              -- Editor/Filter
  [win.Uuid"6938029A-B71F-09EE-D09D-9982EE2B40BC"]: {1.0,3.0,4.3,15.3}              -- Editor/Repeat
  [win.Uuid"DCDDDA35-A319-1B82-8410-36C04A1390B0"]: {1.0,3.0,5.0,10.3}              -- Editor/Transliterate
  -- LFSearch/Shell
  [win.Uuid"3CD8A0BB-8583-4769-BBBC-5B6667D13EF9"]: {1.0,3.0,5.0,6.3} -- Shell/Find
  [win.Uuid"F7118D4A-FBC3-482E-A462-0167DF7CC346"]: {1.0,3.0,5.0,7.0,8.3,9.3,10.4,31.2,32.1,33.5} -- Shell/Replace
  [win.Uuid"74D7F486-487D-40D0-9B25-B2BB06171D86"]: {1.0,3.0,5.0,7.0,8.3,9.3} -- Shell/Grep
  [win.Uuid"AF8D7072-FF17-4407-9AF4-7323273BA899"]: {1.0,3.0,11.0,13.0,14.4,16.4,20.2,21.1,22.5,25.0,27.0} -- Shell/Rename
  -- LFSearch/Editor
  [win.Uuid"0B81C198-3E20-4339-A762-FFCBBC0C549C"]: {1.0,3.0,4.3,14.4,15.4,"16.10.17",25.0,27.2,28.1,29.5} -- Editor/Find
  [win.Uuid"FE62AEB9-E0A1-4ED3-8614-D146356F86FF"]: {1.0,3.0,5.0,6.3,7.3,8.4,10.4,"14.9.-2.6","15.6.-2","17.10.11",21.4,22.4,"23.10.24",32.0,34.2,35.1,36.5} -- Editor/Replace
  [win.Uuid"87ED8B17-E2B2-47D0-896D-E2956F396F1A"]: {1.0,3.0,5.0,6.4,19.2,20.1,21.5} -- Editor/Multi-Line Replace
 
F=far.Flags
ConsoleSize=->
  rr=far.AdvControl"ACTL_GETFARRECT"
  rr.Right-rr.Left+1
Event
  group:"DialogEvent"
  description:"always ignore"
  action:(event,param)->
    if event==F.DE_DLGPROCINIT and param.Msg==F.DN_INITDIALOG
      id=far.SendDlgMessage param.hDlg,F.DM_GETDIALOGINFO
      if id and transform[id.Id]
        cx=ConsoleSize!
        {Left:dl,Top:dt,Right:dr,Bottom:db}=far.SendDlgMessage param.hDlg,F.DM_GETDLGRECT
        ex,ax = dr-dl+1,cx-DX
        coeff=transform[id.Id][1] -- 1st value scale coefficient 0..1
        diff=(ax-ex)*coeff
        far.SendDlgMessage param.hDlg,F.DM_RESIZEDIALOG,0,{X:diff+ex,Y:db-dt+1}
        far.SendDlgMessage param.hDlg,F.DM_MOVEDIALOG,1,{X:(ax-diff-ex+DX)/2,Y:dt}
        for ii in *transform[id.Id]
          local idx,opt,ref
          if "number"==type(ii)
            continue if ii<1
            idx,opt = math.modf ii
            opt=math.floor opt*10+0.5
          else
            idx,opt,ref = ii\match "^(%d%d-)%.(%d%d-)%.(.+)$"
            idx=tonumber idx
            opt=tonumber opt
          item=far.GetDlgItem param.hDlg,idx
          if item  -- prevent error message for out-of-range index (see "hack" above)
            switch opt
              when 0  -- Stretch full
                item[4]+=diff
              when 1  -- Move half  
                item[2]+=diff/2
              when 2  -- Stretch half
                item[4]+=diff/2
              when 3  -- Move full
                item[2]+=diff
              when 4  -- Move left
                t=far.SendDlgMessage param.hDlg,F.DM_GETDLGITEM,1
                item[2]=t[2]+2
              when 5  -- Move half & Stretch full
                item[2]+=diff/2
                item[4]+=diff
              when 6  -- Move relative by X
                item[2]+=tonumber ref\match "[%-%+]?%d+"
              when 7  -- Move relative by Y
                item[3]+=tonumber ref\match "[%-%+]?%d+"
              when 8  -- Move relative by X & Y
                x,y = ref\match "([%-%+]?%d%d-)%.([%-%+]?%d+)"
                item[2]+=tonumber x
                item[3]+=tonumber y
              when 9  -- Move & Size relative by X1 & X2
                x1,x2 = ref\match "([%-%+]?%d%d-)%.([%-%+]?%d+)"
                item[2]+=tonumber x1
                item[4]+=tonumber x2
              when 10  -- Align to ref.X
                t=far.SendDlgMessage param.hDlg,F.DM_GETDLGITEM,tonumber ref
                item[2]=t[2]
              when 11  -- Align to ref.Y
                t=far.SendDlgMessage param.hDlg,F.DM_GETDLGITEM,tonumber ref
                item[3]=t[3]
              when 12  -- Move & Stretch: (colons quantity).(colon number)
                q,n = ref\match "(%d)%.(%d)"
                w=diff/tonumber q
                n=tonumber n
                item[2]+=w*(n-1)
                item[4]+=w*n
              when 13  -- Free Move & Stretch
                x1,x2,y1,y2 = ref\match "([%-%+]?%d%d-)%.([%-%+]?%d%d-)%.([%-%+]?%d%d-)%.([%-%+]?%d+)"
                item[2]+=tonumber x1
                item[3]+=tonumber y1
                item[4]+=tonumber x2
                item[5]+=tonumber y2
              when 14  -- Set text
                item[10]=ref
            far.SetDlgItem param.hDlg,idx,item
    false

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 20:51 08-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