Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
ВВИДУ ОТСУТСТВИЯ ОБЩЕСТВЕННОГО ИНТЕРЕСА (нет лайков)
ОБНОВЛЯТСЯ В ДАЛьНЕЙШЕМ НЕ БУДЕТ
(текущая/экспериментальная/обновленная версия находится у меня,
но дальнейшей синхронизации скорее всего не будет
если все-же. кому чего нужно, то пишите сюда,
скорее всего отвечу, и скорее всего быстро)
Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!
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.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Xerox,
Спасибо! Имхо, получился даже несколько более удобный lua-эвент, чем ранее публиковавшийся moon-эвент от Alexyz21.
При этом у себя я внёс в сабжевый скрипт следующие косметические изменения:
1. После строки 268:
добавил для исключения из обработки эвентом "Меню выбора макроса" строку 269:
Т.к., во-первых, в текущей реализации эвент неадекватно расширяет данные меню, и при этом не обрабатывает их ключами "F5 CtrlAltRight CtrlAltLeft AltRight AltLeft CtrlAltUp CtrlAltDown", как он это делает с другими диалогами и меню.
2. Клавишу макроса настройки F5 заменил на клавишу F2 (как предложено у Alexyz21), поскольку F5 всё-таки ассоциируется с копированием, а F2 больше подходит для настройки.
3. Добавил в макрос настройки поле priority=60; для избегания конфликтов с другими макросами соответствующих макрообластей.
Спасибо! Имхо, получился даже несколько более удобный lua-эвент, чем ранее публиковавшийся moon-эвент от Alexyz21.
При этом у себя я внёс в сабжевый скрипт следующие косметические изменения:
1. После строки 268:
Code: Select all
if dlg_guid == "7646F761-8954-42CA-9CFC-E3F98A1C54D3" then return false; end
Code: Select all
if dlg_guid == "165AA6E3-C89B-4F82-A0C5-C309243FD21B" then return false; end
2. Клавишу макроса настройки F5 заменил на клавишу F2 (как предложено у Alexyz21), поскольку F5 всё-таки ассоциируется с копированием, а F2 больше подходит для настройки.
3. Добавил в макрос настройки поле priority=60; для избегания конфликтов с другими макросами соответствующих макрообластей.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
citRiks, Модификации разумные, и вами совершенно правильно выбрано место для исключения определенных диалогов по их ГУИД-ам
Да, клавиша Ф5 ассоциируется с копироиванием, а Ф2 не ассоциируется с выбором меню?
Ф5 выбран чтобы соответствовать существующей стилистике, по Ктрл-Ф5 уже искаропки можно передвигать диалоги.
А то что не все окошки реагируют на Ф5 - это просто потому что с них почему-то не приходит эвент Ф5, кажется никакие макросные кнопконажтия не проходят почемут.
Впрочем сейчас у меня идея сейчас, там где не проходит Ф5 через макросы, сделать это через евент.
чтобы поведение было консистентным.
Да, клавиша Ф5 ассоциируется с копироиванием, а Ф2 не ассоциируется с выбором меню?
Ф5 выбран чтобы соответствовать существующей стилистике, по Ктрл-Ф5 уже искаропки можно передвигать диалоги.
А то что не все окошки реагируют на Ф5 - это просто потому что с них почему-то не приходит эвент Ф5, кажется никакие макросные кнопконажтия не проходят почемут.
Впрочем сейчас у меня идея сейчас, там где не проходит Ф5 через макросы, сделать это через евент.
чтобы поведение было консистентным.
Last edited by Xerox on Sun 08 Dec, 2019 19:21, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Макрос на FML от Алексиса впечатляет обьемом, и что круто, там еще кажется пропорциональное расширение реализовано, не?
Я этот его макрос и не видел раньше даже.
А он умеет перестраиваться динамически в зависомости от текущих размеров окна?
И переключаться в режимы?
Если не умеет - то это как раз то что надо было решать и не решено.
Еще грустновато на каждый диалог в отдельности лепить рассчитывать диспозиции элементов, как я понял (у Алексиса),
но это не так критично как отсутствие самоподстраивание в динамике ..
Last edited by Xerox on Sun 08 Dec, 2019 19:37, edited 2 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
А можно ли принтскрин неадекватности?
А реакцию на Ф5 сделаю через евенты (а не макро-реакцию)
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Last edited by citRiks on Sun 08 Dec, 2019 20:44, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
citRiks, ну он в принципе расширили АльтФ7 до правой границы, он не знал что надо делать align а не раширять ..
в принципе можно замутить или припорциональное расширения, или детектить что этот label маленкий и ему логичнее быть прислоненным к стенке чем расширяться до стенки
в принципе можно замутить или припорциональное расширения, или детектить что этот label маленкий и ему логичнее быть прислоненным к стенке чем расширяться до стенки
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
А стоит ли Вам вообще заморачиваться с этим меню?
Во-первых, если пользователю будет надо, то он сделает длинный дескрипшен и меню подстроится под нужную ширину.
Во-вторых, с регулированием размеров этого меню очень хорошо справляется модуль key2Process.lua.
Автор так описывает возможности своего скрипта.
И это не FML, а moon-скрипт. Вы можете сами посмотреть его возможности, скопировав его код в файл с расширением .moon и положив рядом со своим скриптом. moon-скриты подхватываются Фаром также хорошо как и lua.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Может и не стоит, но у меня несколько другой подход, может докажется как ошибочный в конечном итоге:
Я стараюсь "не знать" что за тип окна/диалого передо мной, и просто ресайзить все "диалоговое" что есть
Так как это дает искомую универсальность, плюс динамичность, плюсь консистентность поведения.
И потом уж делать исключения из общего правила, по ГУИДу например.
Поэтому я не зню что это меню, или не меню, просто проверяю возможность поменять размер этого окна
Я тут пофиксил кое-что уже, но ЕЩЕ НЕЗАГРУЗИЛ загрузил
(надо почистить мои матерщину в каментах и дампы разных структур) да хрен с ним.
В новопм дизайне я совсме избавился от маркоса, оставил только евент, и всем это пошло только на пользу
Т.е. сейчас за нажатие Ф5 будет отвечать Евент а не макрос раньше
Потому что макрос собака реагирет не на все диалоговые окна, а евенты приходят все как есть
И в принципе логично все держать в евенте, потому что например, инициация размера окна все равно приходит через евент.
Пусть тогда и ресайз/сдвигание делается по евенту..
Зaгружи не сегодня, а завтра наверное, вспомнил что в евент я еще не перевел управление стрелками
ЕЩЕ НЕ ЗАГРУЗИЛ ЭТОТ АПДЭЙТ уже
Last edited by Xerox on Tue 10 Dec, 2019 21:18, edited 3 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Посмотрел, выглядит тоже прилично
Это правильно что вы его сюда вставили, это последняя версия я так понимаю?
Пусть будет для коллекции
2.) Я и не знал что там есть такая мощная ветка дискуссии, помимо тутошнего форума
Алексиз ручную назадавал наиболее распространные диалоги
но при этом все же это вручную заданное у него и подстраивается под текущие размеры консоли, что хорошо
Но вот например, мне надо часто смотреть в свойствах файла куда он линкуется,
там есть список его (файла) линков, которые в стандартноого размера диалоге обрезаны
А у Алексиза нету такого, с диалогом "свойства файла" он не знаком, кто-то должен написать ему диспозицию
А в этом диалоге 200+ элементов, на всех них надо писать диспозиции, или отлавливать только нужные? ой
А что если диспозиция которая искаропки поменяется, и все нажитое непосильным трудом .. ? ой
Last edited by Xerox on Mon 09 Dec, 2019 12:39, edited 2 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
На текущий момент, да.
Вероятно, лучше всего это можете сделать Вы, запросто зарегистрировавшись на том форуме.кто-то должен написать ему диспозицию
В текущей реализации скрипта после его установки диалоговые окна раскрываются нараспашку.
Это не критично, но не всегда эстетично.
Имхо, было бы целесообразно, чтобы они 1) меняли нативные размеры только после того, как пользователь этого захочет, и 2) установленный пользователем размер окна (м.б. серии окон) запоминался бы.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
да, точно, счас все брошу и буду писать и проверять (а там есть много чего проверять) 200+ элементов диалога. гы.
ну зато забавно и доказывает работоспособмость скрипта по всем окнам искаропки ))
Ну в принципе то да, можно например и сейчас поставить layout_mode = "original" где-то у меня в начале скрипта, это специально вынесено как параметер в начало. (там где сейчас стоит layout_mode="margin")
Тогда все окна будут вначале в "оригинале", но можно по Ф5 будет раздвигать если что
вы имеетее ввиду ту ширину что пользователь стрелками задал?
В принципе, это из той же серии что и predefined режимов, и переключение будет в том чилсе и по нему.
Т.е. original => custom => percent=> margin => full =>original => .. итд
с запоминанием последнего выбранного.
Так?
Пока он у меня custom просто не запоминается, но добавить совсем не трудно, вопрос времени,
А я наверное возьму таймаут, хоть и хочеца и допилить и выпилить хер знает чего уже
Last edited by Xerox on Mon 09 Dec, 2019 17:08, edited 2 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Точнее, в строке 105: local layout_sizing_type = "margin" "margin" заменить на "original". Да, так работает: вначале остаётся "оригинал" и по хоткею циклично меняет размеры. И запоминает установленное таким способом состояние до перезагрузки макросов.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
citRiks,
допилил, загрузил, частично пожелания исполнены,
отпишитесь пожалуйста чего все еще не очень
Кроме вас тестировщики молчаливые, помогайте )
Бесит то, что легко можно допилить до конца, -
* добавить пропорциональность,
* дать побольше ума алгоритму позиционирования,
* запоминать между запусками ФАРа, -
.. но все разумные сроки на эти допиливания (в ущерб работе и личной жизни) уже закончились,
возьму тайм-аут на недельку думаю что ..
а кто без меня воплотит, допилит, отполирует - тот вообще молодец! ))
допилил, загрузил, частично пожелания исполнены,
отпишитесь пожалуйста чего все еще не очень
Кроме вас тестировщики молчаливые, помогайте )
Бесит то, что легко можно допилить до конца, -
* добавить пропорциональность,
* дать побольше ума алгоритму позиционирования,
* запоминать между запусками ФАРа, -
.. но все разумные сроки на эти допиливания (в ущерб работе и личной жизни) уже закончились,
возьму тайм-аут на недельку думаю что ..
а кто без меня воплотит, допилит, отполирует - тот вообще молодец! ))
Last edited by Xerox on Tue 10 Dec, 2019 21:26, edited 2 times in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
dialog-resizer.lua.20191212.7z
Об этом можете совсем не беспокоиться. Здесь у большинства так: если нет времени (по службе или быту завал), то и где же его взять. Не впадать же в "проклятое переутомление", как выразился классик.