Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
ВВИДУ ОТСУТСТВИЯ ОБЩЕСТВЕННОГО ИНТЕРЕСА (нет лайков)
ОБНОВЛЯТСЯ В ДАЛьНЕЙШЕМ НЕ БУДЕТ
(текущая/экспериментальная/обновленная версия находится у меня,
но дальнейшей синхронизации скорее всего не будет
если все-же. кому чего нужно, то пишите сюда,
скорее всего отвечу, и скорее всего быстро)
Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!
https://github.com/dr-dba/far-lua-dialogs-control
Этот "мануал/ридми" старый и не отражает всего функционала.
вопросы, пожелания - писать, опять же, см. начало текста
ОБНОВЛЯТСЯ В ДАЛьНЕЙШЕМ НЕ БУДЕТ
(текущая/экспериментальная/обновленная версия находится у меня,
но дальнейшей синхронизации скорее всего не будет
если все-же. кому чего нужно, то пишите сюда,
скорее всего отвечу, и скорее всего быстро)
Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!
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.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Latest post of the previous page:
Мне кажется, ориентироваться на такой сценарий неоправданно. В гораздо большей доле случаев пользователю будет как раз удобно, чтобы тщательно выверенные и руками выставленные размеры сохранялись и без явной команды. Если работать с компьютером впопыхах и необдуманно, то размеры диалогов — это меньшая из проблем.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
на данный момент так, в заголовок чего-то уже не добавляется (лимит количества attachments?), кладу здесь
-----
* 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
проверял на этом, а также на остальных, но эти два были какие-то особо проблематичные:
тем не менее, должно быть генерно (универсально) на всех
-----
* 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 36 times
-
- dialog-ReXiZeR.lua.20191219-2000.7z
- улучшено (на тему рамки диалога),
HAS bugs - HE брать - (4.27 KiB) Downloaded 39 times
-
- dialog-ReXiZeR.lua.20191219-1930.7z
- here small bug again, не брать
- (4.27 KiB) Downloaded 35 times
-
- dialog-ReXiZeR.lua.20191219.7z
- small bug, не брать
- (4.24 KiB) Downloaded 34 times
Last edited by Xerox on Sat 21 Dec, 2019 22:45, edited 15 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Спасибо! Множество артефактов ушло. Но кое-что продолжает оставаться по-прежнему. В частности, ошибка с диалогом "Цвет" и крупный артефакт с меню "Кодовые страницы".
В некоторых случаях продолжают иметь место невосстановимые (до перезагрузки макросов) искажения содержания полей ввода, производимые в результате уменьшения размеров диалогового окна. Например, если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается. И это не единственный подобный случай.
Да и, в принципе: увеличение размеров диалоговых окон полезно не только их лучшим восприятием в целом, но и, прежде всего, удобством работы с увеличенными полями ввода. А в чём практическая полезность уменьшения параметров диалоговых окон от их нативных размеров?
В связи с этим полагаю, что был бы весьма полезным если и не абсолютный отказ от уменьшения размеров окон, то, хотя бы ввод опциональной настройки, запрещающей/разрешающей уменьшение параметров диалоговых окон меньше нативных размеров.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
так это не содержание поля, а размер поля, а с содержанием ничего плохого неслучается вродь..
добавлю ограничение на не мнее 50% от оригинала, но это потом, в следующем году наверное уже, а то заманался уже с этим ..
на данный момент главное что:
* элементы друг на друга не наезжают
* адекватно максимизируются (растягиваются)
* возвращаются обратно по Ф5 (или у кого там Ф2)
* Сужаются если справа уменьшается пространство по мере "кастомизации"
Это вроде все выполняется (?)
A то что некоторые умудряются уронить ФАР заданием минусовой ширины,
то это оставим уже на следующий год
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Да, в основном, всё. В т.ч. критичная ошибка с диалогом "Цвет" ушла.
Да, вроде бы всё это выполняется.
С заданием минусовой ширины проявляются экзотические артефакты. А падения уже исправил zg:
На текущий момент наблюдаются три малюсеньких нюанса. Но поскольку количество иллюстраций, помещаемое в одном посте ограничено, об этих нюансах я напишу в последующих постах.
И попутно два мелких предложения по оформлению самого скрипта:
В строке 364 не заполнено поле дескрипшн. У себя эту строку я указываю так:
Code: Select all
Event { description="Изменение размеров диалогов и других модальных окон по F2 (Xerox)";
В строке 435 в закомментированном виде помещён регексп:
Code: Select all
-- key = "/(.Ctrl)?(.Alt(Right|Left|Up|Down))|(F2)/";
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Выше я излагал ситуацию так:
Уточнюсь: то число, которое оказывается в данном поле ввода, после манипуляций с уменьшением размера ширины диалога (и, главное – данного поля) не восстанавливается. Т.е. если сделали вместо "10000" "100", то это так и остаётся до перезагрузки макросов. .если уменьшать размеры диалогового окна "Программа просмотра" ("Главное меню > Параметры > Настройки программы просмотра") так, чтобы в его поле ввода "Максимальная ширина строки" указанное там число (по умолчанию это "10000") помещалось бы уже не полностью, а, пусть "100", то и после возврата параметров окна хоткеем (F5) к нормальным и большим размерам, в этом поле продолжает оставаться "100", а не "10000", т.е. содержание этого поля не восстанавливается
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
3виняюсь что не понял, согласен что это не хорошо
Но в последней версии такого не должно быть,
я проверил, проверьте тоже пожалуйста
а, если загнать общую ширину диалога в меньшую чем размер этого поля, - этот сценарий я не проверял,
да, кажется в этом случае да будет оставаться усеченное значение "100"
это надо предусмотреть, думаю что надо сделать через следующее несложное правило:
"размер поля не может уменьшаться менее длины существующего значения в нем"
Last edited by Xerox on Sun 22 Dec, 2019 08:10, edited 3 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Насчёт артефакта с меню "Кодовые страницы".
Находящееся в режиме Ctrl+H (т.е. со скрытым разделом Прочие) подменю "Кодовые страницы" Главного меню при применении текущей редакции (dialog-ReXiZeR.lua.20191219-2330.7z) скрипта прыгает к верхней части экрана и продолжает находится прилепленным там, разворачиваясь и сворачиваясь под действием скрипта, до очередного вызова меню сызнова. .
Находящееся в режиме Ctrl+H (т.е. со скрытым разделом Прочие) подменю "Кодовые страницы" Главного меню при применении текущей редакции (dialog-ReXiZeR.lua.20191219-2330.7z) скрипта прыгает к верхней части экрана и продолжает находится прилепленным там, разворачиваясь и сворачиваясь под действием скрипта, до очередного вызова меню сызнова. .
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
citRiks, Ок, это легко чинится, починим в следующем году
просто в добавок к resize диалога надо соблюсти чтобы его центр по вертикали оставался в прежнем месте
просто в добавок к resize диалога надо соблюсти чтобы его центр по вертикали оставался в прежнем месте
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Поле ввода буквы или цифры в качестве горячей клавиши в диалоге "Назначение горячей клавиши" команды "Параметры плагинов" при увеличении размеров данного диалога сабжевым скриптом текущей версии (dialog-ReXiZeR.lua.20191219-2330.7z) удваивается по размеру. И возвращается в норму при возвращении к нативному размеру диалога. .
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Разумеется, что спешить не следует. Просто пока есть свободное время я и изложил. Собственно в копилку.
Принципиально, с учётом особенностей, сабжевый скрипт вполне может быть использован уже и в текущем виде. Спасибо Вам за него!
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Xerox,
C 2019.12.19 в макрообласти действия макроса скрипта добавлена Search. Однако ни в рабочем Фаре, ни в рубордовской сборке и ни в сегодняшней ночной сборке с чистым профилем мне не удалось активировать скрипт в окне Быстрого поска. Возможно это от того, что оно не детектится ни как диалоговое, ни как менюшное?
C 2019.12.19 в макрообласти действия макроса скрипта добавлена Search. Однако ни в рабочем Фаре, ни в рубордовской сборке и ни в сегодняшней ночной сборке с чистым профилем мне не удалось активировать скрипт в окне Быстрого поска. Возможно это от того, что оно не детектится ни как диалоговое, ни как менюшное?
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Необходимость реализации данного Вашего вывода ярко подтверждается следующим примером с окном диалога "Информация о плагине" (вызывается через F11 > плагин > F3). Гуид диалога: A39D546A-9A8F-441D-9627-920DED96BDF6. Стоит только чуть-чуть уменьшить размер данного диалогового окна и пропадает вся информация в нём до перезагрузки макросов. .
- buniak_a_h
- Posts: 4267
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Это как это ??? Поле ввода - Вы хотите запретить горизонтальный скролл ??? А если нет, то зачем это ограничение?
Например, поле ввода пути. Ширина ФАРа - 120; MaxPath = 255 (хотя на самом деле - намного больше!). Если следовать Вашему правилу, то ввести длинный путь будет вообще невозможно !!!
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
да, оно не вызывает срабатывания в эвенте
а если нет евента, значит у нас нет dialog handle
в макросе получается срабатывание (т.е/ видно что мы на этом окошке поиска)
Ho его не видно тоже как диалог, т.е. без handle тоже там.
если нет handle, то ничего на уровне элементов диалога не сделать..