Page 7 of 18

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

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

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

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


Этот "мануал/ридми" старый и не отражает всего функционала.
вопросы, пожелания - писать, опять же, см. начало текста

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

Posted: Fri 20 Dec, 2019 17:43
by HaRT

Latest post of the previous page:

citRiks wrote: Fri 20 Dec, 2019 17:26 затем впопыхах или просто необдуманно прешёл к другим оперециям
Мне кажется, ориентироваться на такой сценарий неоправданно. В гораздо большей доле случаев пользователю будет как раз удобно, чтобы тщательно выверенные и руками выставленные размеры сохранялись и без явной команды. Если работать с компьютером впопыхах и необдуманно, то размеры диалогов — это меньшая из проблем.

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

Posted: Sat 21 Dec, 2019 18:24
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 51 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

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

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

В некоторых случаях продолжают иметь место невосстановимые (до перезагрузки макросов) искажения содержания полей ввода, производимые в результате уменьшения размеров диалогового окна. Например, если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается. И это не единственный подобный случай.
Да и, в принципе: увеличение размеров диалоговых окон полезно не только их лучшим восприятием в целом, но и, прежде всего, удобством работы с увеличенными полями ввода. А в чём практическая полезность уменьшения параметров диалоговых окон от их нативных размеров?
В связи с этим полагаю, что был бы весьма полезным если и не абсолютный отказ от уменьшения размеров окон, то, хотя бы ввод опциональной настройки, запрещающей/разрешающей уменьшение параметров диалоговых окон меньше нативных размеров.

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

Posted: Sat 21 Dec, 2019 22:38
by Xerox
citRiks, ПОЧИНЕНО, ВРОДЕ ВСЕ?

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

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

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

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

A то что некоторые умудряются уронить ФАР заданием минусовой ширины,
то это оставим уже на следующий год :)

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

Posted: Sun 22 Dec, 2019 07:41
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.

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

Posted: Sun 22 Dec, 2019 07:52
by citRiks
Xerox wrote: Sat 21 Dec, 2019 22:56 так это не содержание поля, а размер поля, а с содержанием ничего плохого неслучается вродь..
Выше я излагал ситуацию так:
если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается
Уточнюсь: то число, которое оказывается в данном поле ввода, после манипуляций с уменьшением размера ширины диалога (и, главное – данного поля) не восстанавливается. Т.е. если сделали вместо "10000" "100", то это так и остаётся до перезагрузки макросов. .

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

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


а, если загнать общую ширину диалога в меньшую чем размер этого поля, - этот сценарий я не проверял,
да, кажется в этом случае да будет оставаться усеченное значение "100"
это надо предусмотреть, думаю что надо сделать через следующее несложное правило:
"размер поля не может уменьшаться менее длины существующего значения в нем"

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

Posted: Sun 22 Dec, 2019 08:01
by citRiks
Насчёт артефакта с меню "Кодовые страницы".

Находящееся в режиме Ctrl+H (т.е. со скрытым разделом Прочие) подменю "Кодовые страницы" Главного меню при применении текущей редакции (dialog-ReXiZeR.lua.20191219-2330.7z) скрипта прыгает к верхней части экрана и продолжает находится прилепленным там, разворачиваясь и сворачиваясь под действием скрипта, до очередного вызова меню сызнова. .

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

Posted: Sun 22 Dec, 2019 08:08
by Xerox
citRiks, Ок, это легко чинится, починим в следующем году
просто в добавок к resize диалога надо соблюсти чтобы его центр по вертикали оставался в прежнем месте

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

Posted: Sun 22 Dec, 2019 08:10
by citRiks
Поле ввода буквы или цифры в качестве горячей клавиши в диалоге "Назначение горячей клавиши" команды "Параметры плагинов" при увеличении размеров данного диалога сабжевым скриптом текущей версии (dialog-ReXiZeR.lua.20191219-2330.7z) удваивается по размеру. И возвращается в норму при возвращении к нативному размеру диалога. .

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

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

Принципиально, с учётом особенностей, сабжевый скрипт вполне может быть использован уже и в текущем виде. Спасибо Вам за него!

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

Posted: Sun 22 Dec, 2019 09:52
by citRiks
Xerox,
C 2019.12.19 в макрообласти действия макроса скрипта добавлена Search. Однако ни в рабочем Фаре, ни в рубордовской сборке и ни в сегодняшней ночной сборке с чистым профилем мне не удалось активировать скрипт в окне Быстрого поска. Возможно это от того, что оно не детектится ни как диалоговое, ни как менюшное?

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

Posted: Sun 22 Dec, 2019 14:50
by citRiks
Xerox wrote: Sun 22 Dec, 2019 08:00 сделать через следующее несложное правило: РАЗМЕР ПОЛЯ НЕ МОЖЕТ УМЕНЬШАТЬСЯ МЕНЕЕ ДЛИНЫ СУЩЕСТВУЮЩЕГО ЗНАЧЕНИЯ В НЕМ
Необходимость реализации данного Вашего вывода ярко подтверждается следующим примером с окном диалога "Информация о плагине" (вызывается через F11 > плагин > F3). Гуид диалога: A39D546A-9A8F-441D-9627-920DED96BDF6. Стоит только чуть-чуть уменьшить размер данного диалогового окна и пропадает вся информация в нём до перезагрузки макросов. .

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

Posted: Sun 22 Dec, 2019 17:22
by buniak_a_h
Xerox wrote: Sun 22 Dec, 2019 08:00 "размер поля не может уменьшаться менее длины существующего значения в нем"
Это как это ??? Поле ввода - Вы хотите запретить горизонтальный скролл ??? А если нет, то зачем это ограничение?
Например, поле ввода пути. Ширина ФАРа - 120; MaxPath = 255 (хотя на самом деле - намного больше!). Если следовать Вашему правилу, то ввести длинный путь будет вообще невозможно !!!

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

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