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

Здесь обсуждается всё, что касается макросов.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 8 times

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

Post by Xerox »

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

Итак, дамы и господа, я рад представить Вам эту первую публичную, но уже полностью рабочую версию.
Думаю что будут добавлены новые возможности, и устранены некоторые недоделки.
Пока не могу все подробно расписать, но если вкратце:

1.) По умолчанию размер диалога/меню/списка будет = ширина экрана минус отступы в две символьные позиции
(это поменялось в последующих версиях, далее изначально дается в оригинальном размере)
1.1.) Режим отображения "по умолчанию" "сейчас "оригинальный", можно изменить на строчке 60
2.) По клавише Ф5 на диалоге происходит его переключение в другие "стандартные" размеры по циклу, в том числе и в оригинальный размер
2.1.) .. так что если вдруг что вышло криво, то с помощью Ф5 всегда можно вернуться в оригинальную композицию
3.) Кaк бонус еще можно использовать Ctrl(+Alt)+<стрелки> для измения размеров и даже сдвигания по вертикали
4.) Высотой диалога я не манипулирую, только шириной, потому что вроде как незачем

Планирую развивать этот продукт, в теле скрипта написан список планов,
в том числе написать комментариев в скрипте, что зачем там, улучшить с помошью вас, дорогих специалистов.
Конечно же, буду рад услышать Ваши замечания и пожелания, мoи Дорогие Читатели!
Mногое зависит и от вашей широкой поддержки, вместе мы свернем и горы, и Фары!
Спасибо за внимание (кланяется с достоинством)

PS
В продолжение этой темы, послужившей мне вдохновением:
Изменение размеров диалоговых окон

Скрипт здесь:
dialog-resizer.lua.7z
убраны ненужные "ахтунги" в скрипте
(3.77 KiB) Downloaded 28 times
(остается для истории, и/или если кому-то вдруг понравится больше)

Скрипт улучшенная версия:
dialog-resizer.lua.20191212.7z
(3.63 KiB) Downloaded 21 times
(остается для истории, и/или ..)
* Ctrl-Alt-<Arrows> - gives 2D moving around (with remembering the position)
* Alt-<Left|Right> - manual width resizing (remembered also)
* If the user applied the one of the commands above, by this:
created the "custom" layout state, remembered,
and added as an additional state to pre-existing states original/margin/percent/full/(+optional custom)
* Do not rezied automaticall by default, only by triggering F5, and if triggered - remembered per dialog
BTW, the default state can be changed in the body of the script

Скрипт улучшенная исправленная версия:
dialog-ReXiZeR.lua.20191213.7z
(3.36 KiB) Downloaded 12 times
* F5 (sizing switch mode) put back to macro handling, so it will not fall out or interfere with other macros
* Cleaned out dead code, refactoring
* Brandname is changed to ReXiZeR!
* .. so probably by these certain bugs fixed :-)

Script fixed again, bug reported by citRix:
dialog-ReXiZeR.lua.20191213-2100.7z
(3.36 KiB) Downloaded 17 times
* Fixed reported bug, when the changed by user text after resizing discarded (to original text)
* Even more refactoring and dead code cleaning

Скрипт доработанная версия:
dialog-ReXiZeR.lua.20191214-1400.7z
(3.53 KiB) Downloaded 14 times
* Added wish to align dialogs in "full" and "percent" modes, when it originally belongs to the left or right panel
* Added commented out regular expression for macro keys, which suggested by citRix
* Traditionally code cleaning

Скрипт неплохая в общем версия:
viewtopic.php?p=158081#p158081
Mostly by citRix suggestions implemented:
* 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

Скрипт последняя версия:
viewtopic.php?p=158368#p158368
Last edited by Xerox on Fri 03 Jan, 2020 08:52, edited 47 times in total.

User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 8 times

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

Post by Xerox »

Latest post of the previous page:

воть так воть лучше, не?
hexedit_script_5.gif
т.е. в принципе поведение адекватное, и возвращается в исходную позицию с сохранением потребительских свойств
для хексэдитора это может быть полезным видеть ороигинальный текст, сдвигая его диалог туда-сюда.
вот и практическое применение мы нашли совместными усилиями )
Last edited by Xerox on Wed 25 Dec, 2019 09:57, edited 2 times in total.

citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

citRiks wrote:
Mon 23 Dec, 2019 20:03
При уменьшении размеров сабжевым скриптом до 0 меню (гуид 0E0B4A2B-BC1F-44D4-A986-C24E48142955) скрипта Менеджер закладок для папок (BookmarkManager.3.0.3) Фар валится
В Far 3.0.0.5534 x86 падения прекратились, а в 3.0.0.5535 x86 возобновились снова.
Last edited by citRiks on Thu 26 Dec, 2019 19:46, edited 1 time in total.

citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

Упомянутые в предыдущем посте падения Far`а в 5537 продолжились, а в 5538 x86 и x64 их уже нет. Спасибо!

User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 8 times

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

Post by Xerox »


тут вобщем новая версия, очень много пофиксено:
dialog-ReXiZeR.lua.20200101-2130.7z
(4.81 KiB) Downloaded 12 times
Что вылечено:
1.) критичнaя проблемa с обрезанием значения DN_FIXEDEDIT
2.) Проблема с исчезновение,/спрятыванием элементов в случае наползания элементов в оригинальной компоновке,
как в F3 на PlugMenu
3.) Побеждены все проблемы с кастомными элементами, тестировалось на Ревью\Цвета и скрипт Hexedit (см. выше)

Что в ближайших планах:
Pеализовать прислонение диалогов к краям верх/низ/право/лево
Предполагаю для этого задействовать кажется что свободные AltPageUp/AltPageDown/AltHome/AltEnd,
но открыт и для других предложений.
Идею подал HaRT, он у себя подобное уже сделал
Last edited by Xerox on Fri 03 Jan, 2020 09:06, edited 4 times in total.

citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

Xerox wrote:
Thu 02 Jan, 2020 20:46
тут вобщем новая версия, очень много пофиксено:
dialog-ReXiZeR.lua.20200101-2130.7z
Начал смотреть, и первое впечатление очень хорошее.

Но за неимением времени посмотрел пока что не много и вынужден на неопределённое время прерваться, полагаю, до завтра.

Из полученных наблюдений могу отметить следующее в целом позитивное .

User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 8 times

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

Post by Xerox »

citRiks,
по-поводу ваших наблюдений исчезновения полей, моими словами это я сказал так еще в прошлом году:
[qoute]Еще надо иметь ввиду что в процессе мутаций таких текст может "уехать" взад как бы,
но если встать на тексте (поле/элементе) и сделать Home/End то он возвращается[qoute]

техническое обьяснение:
При сжатии ширины текст остается выровнен к правому краю, и поэтому его начало уезжает влево за пределы элемента когде весь текст уже не помещается на всю длину
При расширении текст остается на своем месте, по логике реализации незачем двигаться если все и так хорошо,
- место-то есть!
Поэтому, увы, начало текста и остается за гранью элемента слева, и это "за гранью" равно дельте между длиной текста и длиной элемента, т.е. экстриму сжатия после которого началось расширение.
Т.е. в потенциале, если сжимать до нуля, то вес; теск и уедет влево и не будет виден при расширении
Last edited by Xerox on Fri 03 Jan, 2020 15:03, edited 1 time in total.

citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

Xerox wrote:
Fri 03 Jan, 2020 15:02
по-поводу ваших наблюдений исчезновения полей ...
Да, и умозрительно понятно, и из практики видно, что содержимое полей ввода при манипуляциях диалогами сабжевым макросом временно может исчезать из виду, но при этом не пропадает, и может применяться для употребления.

И диалог "Настройка параметров схем" (гуид 0497F43A-A8B9-4AF1-A3A4-FA568F455707) плагина FarColorer не исключение по конечному результату. Наблюдение над манипуляциями с этим диалогом интересно атефактом временного пропадания из расширенных форм данного диалога поля ввода "Значение параметра" в целом, а не только содержимого этого поля. При возвращении диалога к нативным размерам вид данного поля с его содержимым восстанавливаются.

citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

Xerox,

В поле area скрипта указаны следующие макрообласти:

Code: Select all

area = "Other Dialog MainMenu Menu UserMenu Disks Search ShellAutoCompletion";
и в шести из восьми скрипт работает весьма успешно (порой, блестяще) и полезно. Но в отношении двух макрообластей, вопрос:

Other – режим копирования текста с экрана;

Search – быстрый поиск в панелях;

что предполагается делать сабжевым скриптом в этих макрообластях?


citRiks
Posts: 168
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 26 times
Been thanked: 21 times

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

Post by citRiks »

Shmuel,

Понятно. А жаль. Потому что Xerox, на мой взгляд, специалист весьма продуктивный.

Но прочитать сообщения на форуме сможет любой. А продолжить взаимодействие можно, например, на руборде в теме FAR Manager.

Post Reply

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