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

Здесь обсуждается всё, что касается макросов.
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
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

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

Post by zg »

Latest post of the previous page:

Xerox wrote:
Mon 23 Dec, 2019 09:57
Хотя с другой стороны, это нелогично (хоть и не критично) что геометрические размеры ФихедЕдита должны быть теми же что и размер значения ФикседЕдита.
какой смысл вы вкладываете в слово «нелогично»? вот описание: Элемент диалога DI_FIXEDIT описывает поле ввода фиксированного размера. То же, что и DI_EDIT, но без возможности прокрутки текста. всё в соответствии с ним.
John Doe wrote:
Mon 23 Dec, 2019 10:44
Смысл в том чтобы уберечь от случайных ошибок.
давайте тогда циклы запретим, ffi, тоже ж можно ошибок наделать, не?

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

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

Post by John Doe »

zg wrote:
Mon 23 Dec, 2019 12:05
давайте тогда циклы запретим, ffi, тоже ж можно ошибок наделать, не?
Я не предлагал ограничения функциональности.

User avatar
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

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

Post by zg »

John Doe wrote:
Mon 23 Dec, 2019 12:31
Я не предлагал ограничения функциональности.
а что вы предлагаете?

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

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

Post by Xerox »

Я тут где-то у кого-то видел скрипт для просмотра элемтов диалога типа
Там если стоишь на диалоге, и вызываешь; макрос, то тебе показывается в другом диалоге все элементы того диалога,
как програмные обьекты, если я правильно помню
Никто не помнит/знает где такой макорс лежит?

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

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

Post by John Doe »

zg wrote:
Mon 23 Dec, 2019 12:35
John Doe wrote:
Mon 23 Dec, 2019 12:31
Я не предлагал ограничения функциональности.
а что вы предлагаете?
Считать некорерректной попытку изменения размера поля, которая привела бы к потере данных.

В том гипотетическом случае, когда изменить данные было задумано следующим действием, достаточно будет либо правильно расположить действия, либо (в ещё более гипотетическом) предварительно обнулить значение.

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Xerox wrote:
Mon 23 Dec, 2019 13:04
Я тут где-то у кого-то видел скрипт для просмотра элемтов диалога

User avatar
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

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

Post by zg »

John Doe wrote:
Mon 23 Dec, 2019 13:08
Считать некорерректной попытку изменения размера поля, которая привела бы к потере данных.
какая от этого польза?

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

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

Post by Xerox »

zg wrote:
Mon 23 Dec, 2019 12:05
какой смысл вы вкладываете в слово «нелогично»? вот описание:
Элемент диалога DI_FIXEDIT описывает поле ввода фиксированного размера.
То же, что и DI_EDIT, но без возможности прокрутки текста. всё в соответствии с ним
ну тогда логично, но контринтуитивно ) а "интуитивно" - это то что понимается без чтения мануалов )

User avatar
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

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

Post by zg »

Xerox wrote:
Mon 23 Dec, 2019 13:16
ну тогда логично, но контринтуитивно ) а "интуитивно" - это то что понимается без чтения мануалов )
скажите пожалуйста, а зачем тогда вы воровали в том числе и моё время в этой теме?

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Xerox wrote:
Mon 23 Dec, 2019 13:04
Я тут где-то у кого-то видел скрипт для просмотра элементов диалога
В нашей личной переписке этот скрипт я Вам уже высылал. Сам часто пользуюсь. Для простоты результат вывожу по far.Show; если сделать нормальный диалог (добавить кнопку
[ Export ]), то можно прямо в lua-файл записать вполне работающий скрипт.
Обнаруженные "странности": для DI_BUTTON вызов DM_GETDLGITEM исходный текст кнопки (напр. Ok превращается в [ Ok ]). Больше на глюк ФАРа похоже…

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

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

Post by Xerox »

zg wrote:
Mon 23 Dec, 2019 13:25
Xerox wrote:
Mon 23 Dec, 2019 13:16
ну тогда логично, но контринтуитивно ) а "интуитивно" - это то что понимается без чтения мануалов )
скажите пожалуйста, а зачем тогда вы воровали в том числе и моё время в этой теме?
1.) я не специально
2.) читать мануалы в разумных пределах это хорошо
3.) Не делат как в пункте 3.) это плохо
4.) не понял смысла вопроса (?)

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

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

Post by Xerox »

buniak_a_h,
Last edited by Xerox on Mon 23 Dec, 2019 14:08, edited 8 times in total.

User avatar
HaRT
Moderator
Posts: 9238
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 93 times
Been thanked: 197 times

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

Post by HaRT »

 ! Message from: HaRT
Xerox, citRiks, как я и предупреждал, ваши сообщения, содержавшие обсуждения средств создания GIF-анимации, я удалил. Но никто не мешает вам обсуждать это в более подходящем разделе форума.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Xerox wrote:
Mon 23 Dec, 2019 13:40
спасибо, я там не понял только что за:
key="CtrlAltF1-F1";
У меня стоит изумительный скрипт, позволяющий вешать макросы на две кнопки, на двойное нажатие или на длительное нажатие (первые два - для случая кнопок с модификаторами Ctrl? Alt и/или Shift). Это - MacroEx от JD. Единственно, я там убрал какой-то контроль, из-за которого стало невозможно вызывать макросы, повешенные на клавишу, являющуюся "первой частью" сложносочинённой комбинации. Например, CtrlK-B и CtrlK-K - пометка начала и конца блока; в исходном скрипте просто CtrlK (удаление от курсора до конца строки) перестал работать.
Указанное сочетание означает CtrlAltF1:Double (двойное CtrlAltF1) с той разницей, что (а) нет ограничения на "быстрое" нажатие и (б) появляется подсказка. Если у Вас такой макрос отсутствует - очень рекомендую !!! Считаю, что его надо в поставку включить - сильно расширяет возможности макросистемы.

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

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

Post by John Doe »

zg wrote:
Mon 23 Dec, 2019 13:14
какая от этого польза?
Польза того же рода, что не позволяет переменной типа uint принять значение -1.

citRiks
Posts: 174
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 28 times
Been thanked: 21 times

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

Post by citRiks »

При уменьшении размеров сабжевым скриптом до 0 меню (гуид 0E0B4A2B-BC1F-44D4-A986-C24E48142955) скрипта Менеджер закладок для папок (BookmarkManager.3.0.3) Фар валится.

Post Reply

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