Изменение размеров диалоговых окон

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Latest post of the previous page:

В «мой форк» добавлены диалоги раз-/выделения, подтверждения перезаписи при копировании/перемещении.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

В «мой форк» добавлены некоторые диалоги плагинов AltHistory, Anamorphosis, TmpPanel, а также диалоги редактирования ссылки на папку и подтверждения перезаписи файла «только для чтения» при копировании/перемещении.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

HaRT wrote: Fri 11 Nov, 2022 15:33«мой форк»
А зачем именно на мунспике? Можно ж его компильнуть в луа... Хотя бы подсветка синтаксиса будет.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Sun 13 Nov, 2022 10:31 зачем именно на мунспике?
Это вопрос к изначальному автору, но лишний — человек написал, как ему удобнее, и спасибо ему за это.
Pasha_ZZZ wrote: Sun 13 Nov, 2022 10:31 Хотя бы подсветка синтаксиса будет.
Ставите плагин Airbrush и при редактировании файла *.moon отключаете Colorer (у меня это назначено на AltC-T посредством плагина MacroEx и API самого Колорера теперь делается автоматически) — и будет вам раскраса синтаксиса.
Last edited by HaRT on Sun 13 Nov, 2022 16:04, edited 1 time in total.
Reason: Актуализирован способ отключения Колорера
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Изменение размеров диалоговых окон

Post by Shmuel »

HaRT wrote: Sun 13 Nov, 2022 12:10 и при редактировании файла *.moon отключаете Colorer
А разве нельзя настроить Colorer, чтобы игнорировал файлы *.moon ? Тогда и отключать его не придётся.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Shmuel wrote: Sun 13 Nov, 2022 12:32 А разве нельзя настроить Colorer, чтобы игнорировал файлы *.moon ? Тогда и отключать его не придётся.
Про Колорер предлагаю продолжить там.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

HaRT wrote: Sun 13 Nov, 2022 12:10Это вопрос к изначальному автору, но лишний — человек написал, как ему удобнее, и спасибо ему за это.
Это-то понятно, я имел в виду нечто такое:
  1. local DX = 4
  2.  
  3. local G = far.Guids
  4.  
  5. local U = win.Uuid
  6.  
  7. local F = far.Flags
  8.  
  9. local transform = {
  10.  
  11.   [U(G.CopyFilesId)]={1 ,3},
  12.  
  13.   [U(G.CopyCurrentOnlyFileId)]={1 ,3},
  14.  
  15.   [U(G.MoveFilesId)]={1 ,3},
  16.  
  17.   [U(G.MoveCurrentOnlyFileId)]={1 ,3},
  18.  
  19.   [U(G.MakeFolderId)]={1 ,3 ,6 ,8},
  20.  
  21.   [U(G.HardSymLinkId)]={1 ,3 ,11},
  22.  
  23.   [U(G.FileOpenCreateId)]={1 ,3},
  24.  
  25.   [U(G.FindFileId)]={1 ,3 ,6 ,7 ,9 ,15.1 ,16.1 ,17.1 ,18.1 ,20.1 ,22.2 ,23.1},
  26.  
  27.   [U(G.EditorSearchId)]={1 ,2.3 ,3.3 ,5 ,7 ,12.1 ,13.1},
  28.  
  29.   [U(G.EditorReplaceId)]={1 ,2.3 ,3.3 ,5 ,7 ,12.1 ,13.1},
  30.  
  31.   [U(G.FileSaveAsId)]={1 ,3 ,6},
  32.  
  33.   [U(G.PluginInformationId)]={1 ,3 ,5 ,7 ,9 ,11 ,13 ,15 ,17},
  34.  
  35.   [U(G.FileAttrDlgId)]={1 ,3 ,4 ,6 ,37},
  36.  
  37.   [U(G.DescribeFileId)]={1 ,3 ,6},
  38.  
  39.   [U(G.ApplyCommandId)]={1 ,3 ,6},
  40.  
  41.   [U(G.EditUserMenuId)]={1 ,5 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17},
  42.  
  43.   [U(G.FileAssocModifyId)]={1 ,3 ,5 ,8 ,10 ,12 ,14 ,16 ,18},
  44.  
  45.   [U(G.EditMaskGroupId)]={1 ,5},
  46.  
  47.   [U(G.CopyOverwriteId)]={1 ,3},
  48.  
  49.   [U(G.SelectDialogId)]={1 ,2},
  50.  
  51.   [U(G.UnSelectDialogId)]={1 ,2},
  52.  
  53.   [U('08A1229B-AD54-451B-8B53-6D5FD35BCFAA')]={1 ,15 ,19 ,27 ,31},
  54.  
  55.   [U('CD57D7FA-552C-4E31-8FA8-73D9704F0666')]={1 ,10 ,23},
  56.  
  57.   [U('97877FD0-78E6-4169-B4FB-D76746249F4D')]={1 ,3},
  58.  
  59.   [U('761F3B4C-FC45-4A9D-A383-3F75D505A43B')]={1 ,2 ,3 ,4},
  60.  
  61.   [U('0DCE48E5-B205-44A0-B8BF-96B28E2FD3B3')]={1 ,9 ,20 ,22 ,33 ,35 ,37},
  62.  
  63.   [U('87C92249-430D-4334-AC33-05E7423286E9')]={1 ,5 ,7 ,9},
  64.  
  65.   [U('0497F43A-A8B9-4AF1-A3A4-FA568F455707')]={1 ,7},
  66.  
  67.   [U('3D1031EA-B67A-451C-9FC6-081320D3A139')]={1 ,7},
  68.  
  69.   [U('42E4AEB1-A230-44F4-B33C-F195BB654931')]={1 ,3 ,5 ,7 ,9},
  70.  
  71.   [U('E506EA8F-484F-7261-FEED-9B10267753E9')]={1.0 ,4.0 ,6.0 ,7.3 ,26.3},
  72.  
  73.   [U('9736CFC1-9F3A-D4F9-02A4-566717182E8B')]={1.0 ,4.0 ,6.0 ,8.0 ,9.3 ,10.3 ,37.3},
  74.  
  75.   [U('3D95792C-E25C-1CE1-EC09-DC409184EC7A')]={1.0 ,4.0 ,6.0 ,7.3 ,24.0 ,35.3},
  76.  
  77.   [U('AA3CA1C7-062A-67A8-3A73-80B5E9394046')]={1.0 ,5.0},
  78.  
  79.   [U('0AE75CCC-5872-74A7-3561-BBA1991C0395')]={1.0 ,4.0 ,6.0 ,8.0 ,28.3},
  80.  
  81.   [U('622AAD65-B7CA-7670-6622-A267028B1A06')]={1.0 ,5.0 ,7.0 ,16.3},
  82.  
  83.   [U('FF1E3A24-0B7A-0149-EFA2-1ED2309F8410')]={1.0 ,3.0 ,4.3 ,14.3 ,18.3},
  84.  
  85.   [U('411BF77E-5743-D87A-A8E7-0EFDF0C71D79')]={1.0 ,3.0 ,5.0 ,6.3 ,7.3 ,25.3},
  86.  
  87.   [U('3A6225FC-AD65-75B1-2643-5158B78D6BC4')]={1.0 ,3.0 ,4.3 ,14.3},
  88.  
  89.   [U('6938029A-B71F-09EE-D09D-9982EE2B40BC')]={1.0 ,3.0 ,4.3 ,15.3},
  90.  
  91.   [U('DCDDDA35-A319-1B82-8410-36C04A1390B0')]={1.0 ,3.0 ,5.0 ,10.3},
  92.  
  93.   [U('2C4EFD54-A419-47E5-99B6-C9FD2D386AEC')]={1 ,3 ,5}
  94.  
  95. }
  96.  
  97.  
  98.  
  99. return Event({
  100.  
  101.   group = 'DialogEvent',
  102.  
  103.   description = 'always ignore',
  104.  
  105.   action = function(event, param)
  106.  
  107.     if event == F.DE_DLGPROCINIT and param.Msg == F.DN_INITDIALOG then
  108.  
  109.       local id = far.SendDlgMessage(param.hDlg, F.DM_GETDIALOGINFO)
  110.  
  111.       if id and transform[id.Id] then
  112.  
  113.         local rr = far.AdvControl('ACTL_GETFARRECT')
  114.  
  115.         local cx = rr.Right - rr.Left + 1
  116.  
  117.         local dl, dt, dr, db
  118.  
  119.         do
  120.  
  121.           local _obj_0 = far.SendDlgMessage(param.hDlg, F.DM_GETDLGRECT)
  122.  
  123.           dl, dt, dr, db = _obj_0.Left, _obj_0.Top, _obj_0.Right, _obj_0.Bottom
  124.  
  125.         end
  126.  
  127.         local diff = (cx - DX) - (dr - dl + 1)
  128.  
  129.         if diff > 0 then
  130.  
  131.           far.SendDlgMessage(param.hDlg, F.DM_RESIZEDIALOG, 0, {
  132.  
  133.             X = cx - DX,
  134.  
  135.             Y = db - dt + 1
  136.  
  137.           })
  138.  
  139.           far.SendDlgMessage(param.hDlg, F.DM_MOVEDIALOG, 1, {
  140.  
  141.             X = DX / 2,
  142.  
  143.             Y = dt
  144.  
  145.           })
  146.  
  147.           local _list_0 = transform[id.Id]
  148.  
  149.           for _index_0 = 1, #_list_0 do
  150.  
  151.             local ii = _list_0[_index_0]
  152.  
  153.             local index, opt = math.modf(ii)
  154.  
  155.             local item = far.GetDlgItem(param.hDlg, index)
  156.  
  157.             if item then
  158.  
  159.               opt = math.floor(opt * 10 + 0.5)
  160.  
  161.               local _exp_0 = opt
  162.  
  163.               if 0 == _exp_0 then
  164.  
  165.                 item[4] = item[4] + diff
  166.  
  167.               elseif 1 == _exp_0 then
  168.  
  169.                 item[2] = item[2] + (diff / 2)
  170.  
  171.               elseif 2 == _exp_0 then
  172.  
  173.                 item[4] = item[4] + (diff / 2)
  174.  
  175.               elseif 3 == _exp_0 then
  176.  
  177.                 item[2] = item[2] + diff
  178.  
  179.               end
  180.  
  181.               far.SetDlgItem(param.hDlg, index, item)
  182.  
  183.             end
  184.  
  185.           end
  186.  
  187.         end
  188.  
  189.       end
  190.  
  191.     end
  192.  
  193.     return false
  194.  
  195.   end
  196.  
  197. })
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Sun 13 Nov, 2022 15:54 я имел в виду нечто такое:
Да, это тоже изначально понятно. Но я считаю это контрпродуктивным.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

HaRT wrote: Fri 11 Nov, 2022 15:33В «мой форк» добавлены некоторые диалоги
Может в сам скрипт добавить в заголовочный коммент дату? А то х его з, от какого числа текущий используемый, приходится искать, есть ли последние новшества в нем...
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Mon 21 Nov, 2022 05:43 приходится искать, есть ли последние новшества в нем
Сравнить дату модификации локального с датой публикации форумного (в названии спойлера) недостаточно?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

HaRT wrote: Fri 11 Nov, 2022 15:33«мой форк»
Внизу диалога поиска все куда-то съехало... Изначально соврал, это из-за нестрогого поиска, его отделили от регистра в 6061:
╔═══════════════════════════════════════════════ Поиск файла ════════════════════════════════════════════════╗ ║ Одна или несколько масок файлов: ║ ║ *.* ↓║ ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────╢ ║ Содержащих текст: ║ ║ ↓║ ║ Используя кодовую страницу: ║ ║ Автоматическое определение ↓║ ╟───────────────────────────────────┬────────────────────────────────────────────────────────────────────────╢ ║ [ ] Учитывать регистр │ [ ] Искать в архивах ║ ║ [ ] Только целые слова │ [x] Искать папки ║ ║ [ ] Нестрогий поиск │ [x] Искать в символических ссылках ║ ║ [ ] Искать 16-ричный код │ [ ] Искать в альтернативных потоках ║ ║ [ ] Не содержащи│ ║ ╟───────────────────────────────────┴────────────────────────────────────────────────────────────────────────╢ ║ Выберите обла ║ ║ С текущей папк↓ [ ] Использовать фильтр ║ ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────╢ ║ { Искать } [ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ] ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Last edited by Pasha_ZZZ on Tue 13 Dec, 2022 12:35, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Tue 13 Dec, 2022 12:04 это из-за нестрогого поиска, его отделили от регистра в 6061
Ничего удивительного: в диалог вставили новый контрол, номера последующих поехали, а скрипт-то по номерам раскидывает.
Я пока на эту версию Фара не перешёл, но попробую исправить «по приборам».
Замените строку
[win.Uuid far.Guids.FindFileId ]: {1,3,6,7,9,15.1,16.1,17.1,18.1,20.1,22.2,23.1}
на
[win.Uuid far.Guids.FindFileId ]: {1,3,6,7,9,16.1,17.1,18.1,19.1,21.1,23.2,24.1}
и перегрузите скрипты.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Tue 13 Dec, 2022 12:04 Внизу диалога поиска все куда-то съехало...
Думаю, ещё диалоги поиска и замены в редакторе должны были пострадать. Если приложите аналогичные снимки экрана для них, постараюсь оперативно выкатить патч.
Просто я на сборку 6061+ пока не переходил, опасаясь, что при разделении что-то ещё поломали.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

HaRT wrote: Tue 13 Dec, 2022 13:20 постараюсь оперативно выкатить патч.
Поиск не пострадал, в замене надо просто добавить в конец 14.1
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Изменение размеров диалоговых окон

Post by Pasha_ZZZ »

Может для этих диалогов добавить условия, узнав версию Фар? Тогда бы универсально работало. На Луа что-то типа

Code: Select all

if ({ far.AdvControl("ACTL_GETFARMANAGERVERSION", true) })[4] < 6061 then........
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Изменение размеров диалоговых окон

Post by HaRT »

Pasha_ZZZ wrote: Tue 13 Dec, 2022 13:45 Может для этих диалогов добавить условия, узнав версию Фар? Тогда бы универсально работало. На Луа что-то типа

Code: Select all

if ({ far.AdvControl("ACTL_GETFARMANAGERVERSION", true) })[4] < 6061 then........
Ваши мысли сходятся с моими, я как раз только что нарыл этот способ узнать номер сборки и разбирался, как он работает.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение макросов”