Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли

Post by citRiks »

ВВИДУ ОТСУТСТВИЯ ОБЩЕСТВЕННОГО ИНТЕРЕСА (нет лайков)
ОБНОВЛЯТСЯ В ДАЛьНЕЙШЕМ НЕ БУДЕТ
(текущая/экспериментальная/обновленная версия находится у меня,
но дальнейшей синхронизации скорее всего не будет
если все-же. кому чего нужно, то пишите сюда,
скорее всего отвечу, и скорее всего быстро)

Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!

https://github.com/dr-dba/far-lua-dialogs-control


Этот "мануал/ридми" старый и не отражает всего функционала.
вопросы, пожелания - писать, опять же, см. начало текста
Last edited by citRiks on Fri 27 Aug, 2021 11:25, edited 50 times in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by HaRT »

Latest post of the previous page:

citRiks wrote: Fri 20 Dec, 2019 17:26 затем впопыхах или просто необдуманно прешёл к другим оперециям
Мне кажется, ориентироваться на такой сценарий неоправданно. В гораздо большей доле случаев пользователю будет как раз удобно, чтобы тщательно выверенные и руками выставленные размеры сохранялись и без явной команды. Если работать с компьютером впопыхах и необдуманно, то размеры диалогов — это меньшая из проблем.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

на данный момент так, в заголовок чего-то уже не добавляется (лимит количества attachments?), кладу здесь
dialog-ReXiZeR.lua.20191219-2330.7z
FIXED, ACTUAL
added adjustment to dialog height,
when it changed while opened,
as in CodePages menu dialog
(4.35 KiB) Downloaded 47 times
проверял на этом, а также на остальных, но эти два были какие-то особо проблематичные:
citRiks wrote: Tue 17 Dec, 2019 14:11 LuaMacro (Macro Browser) – искажается содержание поля ввода (гуид диалога 6C72E763-62EF-47C9-A37A-94CEC63853AE) ,
NetBox – Настройки передачи данных – искажается содержание поля ввода (гуид диалога 42E4AEB1-A230-44F4-B33C-F195BB654931),
тем не менее, должно быть генерно (универсально) на всех
-----
* Fixed MainMenu handling
* Fixed complex dialog layouts with unadjacent elements
* Added ignoring custom dialog controls (DI_USERCONTROL=255), as in Review plugin color dialogs
* Added adjustment to dialog height in some cases, as in CodePages dialog menu
Attachments
dialog-ReXiZeR.lua.20191219-2300.7z
Added DI_USERCONTROL ignoring
(it was crashing when trying to resize)
не брать
(4.3 KiB) Downloaded 34 times
dialog-ReXiZeR.lua.20191219-2000.7z
улучшено (на тему рамки диалога),
HAS bugs - HE брать
(4.27 KiB) Downloaded 37 times
dialog-ReXiZeR.lua.20191219-1930.7z
here small bug again, не брать
(4.27 KiB) Downloaded 34 times
dialog-ReXiZeR.lua.20191219.7z
small bug, не брать
(4.24 KiB) Downloaded 33 times
Last edited by Xerox on Sat 21 Dec, 2019 22:45, edited 15 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox wrote: Sat 21 Dec, 2019 18:24 dialog-ReXiZeR.lua.20191219-2000.7z
Спасибо! Множество артефактов ушло. Но кое-что продолжает оставаться по-прежнему. В частности, ошибка с диалогом "Цвет" и крупный артефакт с меню "Кодовые страницы".

В некоторых случаях продолжают иметь место невосстановимые (до перезагрузки макросов) искажения содержания полей ввода, производимые в результате уменьшения размеров диалогового окна. Например, если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается. И это не единственный подобный случай.
Да и, в принципе: увеличение размеров диалоговых окон полезно не только их лучшим восприятием в целом, но и, прежде всего, удобством работы с увеличенными полями ввода. А в чём практическая полезность уменьшения параметров диалоговых окон от их нативных размеров?
В связи с этим полагаю, что был бы весьма полезным если и не абсолютный отказ от уменьшения размеров окон, то, хотя бы ввод опциональной настройки, запрещающей/разрешающей уменьшение параметров диалоговых окон меньше нативных размеров.
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

citRiks, ПОЧИНЕНО, ВРОДЕ ВСЕ?
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

citRiks wrote: Sat 21 Dec, 2019 21:18 содержание этого поля не восстанавливается
так это не содержание поля, а размер поля, а с содержанием ничего плохого неслучается вродь..
citRiks wrote: Sat 21 Dec, 2019 21:18 полагаю, что был бы весьма полезным если и не абсолютный отказ от уменьшения размеров окон, то, хотя бы ввод опциональной настройки, запрещающей/разрешающей уменьшение параметров диалоговых окон меньше нативных размеров
добавлю ограничение на не мнее 50% от оригинала, но это потом, в следующем году наверное уже, а то заманался уже с этим ..

на данный момент главное что:
* элементы друг на друга не наезжают
* адекватно максимизируются (растягиваются)
* возвращаются обратно по Ф5 (или у кого там Ф2)
* Сужаются если справа уменьшается пространство по мере "кастомизации"

Это вроде все выполняется (?)

A то что некоторые умудряются уронить ФАР заданием минусовой ширины,
то это оставим уже на следующий год :)
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox wrote: Sat 21 Dec, 2019 18:24 dialog-ReXiZeR.lua.20191219-2330.7z
Xerox wrote: Sat 21 Dec, 2019 22:38 ПОЧИНЕНО, ВРОДЕ ВСЕ?
Да, в основном, всё. В т.ч. критичная ошибка с диалогом "Цвет" ушла.
Xerox wrote: Sat 21 Dec, 2019 22:56 на данный момент главное что:
* элементы друг на друга не наезжают
* адекватно максимизируются (растягиваются)
* возвращаются обратно по Ф5 (или у кого там Ф2)
* Сужаются если справа уменьшается пространство по мере "кастомизации"
Да, вроде бы всё это выполняется.
Xerox wrote: Sat 21 Dec, 2019 22:56 A то что некоторые умудряются уронить ФАР заданием минусовой ширины,
то это оставим уже на следующий год
С заданием минусовой ширины проявляются экзотические артефакты. А падения уже исправил zg:
zg wrote: Fri 20 Dec, 2019 04:23 zg » Пт 20 дек, 2019 06:23
падения, которые мне удалось воспроизвести, исправлены в 5530
На текущий момент наблюдаются три малюсеньких нюанса. Но поскольку количество иллюстраций, помещаемое в одном посте ограничено, об этих нюансах я напишу в последующих постах.

И попутно два мелких предложения по оформлению самого скрипта:

В строке 364 не заполнено поле дескрипшн. У себя эту строку я указываю так:

Code: Select all

Event { description="Изменение размеров диалогов и других модальных окон по F2 (Xerox)";
В Вашем случае, разумеется, будет не F2, а F5.

В строке 435 в закомментированном виде помещён регексп:

Code: Select all

-- key = "/(.Ctrl)?(.Alt(Right|Left|Up|Down))|(F2)/";
В Вашем случае, очевидно, тоже надо бы вместо F2 указывать F5.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox wrote: Sat 21 Dec, 2019 22:56 так это не содержание поля, а размер поля, а с содержанием ничего плохого неслучается вродь..
Выше я излагал ситуацию так:
если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается
Уточнюсь: то число, которое оказывается в данном поле ввода, после манипуляций с уменьшением размера ширины диалога (и, главное – данного поля) не восстанавливается. Т.е. если сделали вместо "10000" "100", то это так и остаётся до перезагрузки макросов. .
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

citRiks wrote: Sun 22 Dec, 2019 07:52если сделали вместо "10000" "100", то это так и остаётся до перезагрузки макросов
3виняюсь что не понял, согласен что это не хорошо
Но в последней версии такого не должно быть,
я проверил, проверьте тоже пожалуйста


а, если загнать общую ширину диалога в меньшую чем размер этого поля, - этот сценарий я не проверял,
да, кажется в этом случае да будет оставаться усеченное значение "100"
это надо предусмотреть, думаю что надо сделать через следующее несложное правило:
"размер поля не может уменьшаться менее длины существующего значения в нем"
Last edited by Xerox on Sun 22 Dec, 2019 08:10, edited 3 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Насчёт артефакта с меню "Кодовые страницы".

Находящееся в режиме Ctrl+H (т.е. со скрытым разделом Прочие) подменю "Кодовые страницы" Главного меню при применении текущей редакции (dialog-ReXiZeR.lua.20191219-2330.7z) скрипта прыгает к верхней части экрана и продолжает находится прилепленным там, разворачиваясь и сворачиваясь под действием скрипта, до очередного вызова меню сызнова. .
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

citRiks, Ок, это легко чинится, починим в следующем году
просто в добавок к resize диалога надо соблюсти чтобы его центр по вертикали оставался в прежнем месте
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Поле ввода буквы или цифры в качестве горячей клавиши в диалоге "Назначение горячей клавиши" команды "Параметры плагинов" при увеличении размеров данного диалога сабжевым скриптом текущей версии (dialog-ReXiZeR.lua.20191219-2330.7z) удваивается по размеру. И возвращается в норму при возвращении к нативному размеру диалога. .
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox wrote: Sun 22 Dec, 2019 08:08 Ок, это легко чинится, починим в следующем году
Разумеется, что спешить не следует. Просто пока есть свободное время я и изложил. Собственно в копилку.

Принципиально, с учётом особенностей, сабжевый скрипт вполне может быть использован уже и в текущем виде. Спасибо Вам за него!
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox,
C 2019.12.19 в макрообласти действия макроса скрипта добавлена Search. Однако ни в рабочем Фаре, ни в рубордовской сборке и ни в сегодняшней ночной сборке с чистым профилем мне не удалось активировать скрипт в окне Быстрого поска. Возможно это от того, что оно не детектится ни как диалоговое, ни как менюшное?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by citRiks »

Xerox wrote: Sun 22 Dec, 2019 08:00 сделать через следующее несложное правило: РАЗМЕР ПОЛЯ НЕ МОЖЕТ УМЕНЬШАТЬСЯ МЕНЕЕ ДЛИНЫ СУЩЕСТВУЮЩЕГО ЗНАЧЕНИЯ В НЕМ
Необходимость реализации данного Вашего вывода ярко подтверждается следующим примером с окном диалога "Информация о плагине" (вызывается через F11 > плагин > F3). Гуид диалога: A39D546A-9A8F-441D-9627-920DED96BDF6. Стоит только чуть-чуть уменьшить размер данного диалогового окна и пропадает вся информация в нём до перезагрузки макросов. .
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by buniak_a_h »

Xerox wrote: Sun 22 Dec, 2019 08:00 "размер поля не может уменьшаться менее длины существующего значения в нем"
Это как это ??? Поле ввода - Вы хотите запретить горизонтальный скролл ??? А если нет, то зачем это ограничение?
Например, поле ввода пути. Ширина ФАРа - 120; MaxPath = 255 (хотя на самом деле - намного больше!). Если следовать Вашему правилу, то ввести длинный путь будет вообще невозможно !!!
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Post by Xerox »

citRiks wrote: Sun 22 Dec, 2019 09:52 Возможно это от того, что оно не детектится ни как диалоговое, ни как менюшное?
да, оно не вызывает срабатывания в эвенте
а если нет евента, значит у нас нет dialog handle
в макросе получается срабатывание (т.е/ видно что мы на этом окошке поиска)
Ho его не видно тоже как диалог, т.е. без handle тоже там.
если нет handle, то ничего на уровне элементов диалога не сделать..
Post Reply

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