Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
Динамическое/заданное изменение размеров/ сдвиг любых диалогов, меню, списков в зависимости от размера консоли
ВВИДУ ОТСУТСТВИЯ ОБЩЕСТВЕННОГО ИНТЕРЕСА (нет лайков)
ОБНОВЛЯТСЯ В ДАЛьНЕЙШЕМ НЕ БУДЕТ
(текущая/экспериментальная/обновленная версия находится у меня,
но дальнейшей синхронизации скорее всего не будет
если все-же. кому чего нужно, то пишите сюда,
скорее всего отвечу, и скорее всего быстро)
Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!
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.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Latest post of the previous page:
Last edited by LAT on Wed 29 Apr, 2020 18:29, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
LAT, skipik,
Ну вот, при XeRoX'e такого не было
и что теперь будем делать без него?
Может надо дождаться стабильного билда?
Или уже сейчас кричать "усе пропало шеф"?
Думаю что работа с УТФ8 порушена как следует.
Я больше получаю ошибку что-то вроде "ошибка диагностики в процедуре диагностики",
но .. сейчас кажется уже не повторяются ошибки, не могу даже скопипастить
Ну вот, при XeRoX'e такого не было
и что теперь будем делать без него?
Может надо дождаться стабильного билда?
Или уже сейчас кричать "усе пропало шеф"?
Думаю что работа с УТФ8 порушена как следует.
Я больше получаю ошибку что-то вроде "ошибка диагностики в процедуре диагностики",
но .. сейчас кажется уже не повторяются ошибки, не могу даже скопипастить
Last edited by citRiks on Thu 30 Apr, 2020 04:27, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
ваш багрепорт все равно помог однако, тут вот какая штука:
раньше win.Uuid():len() возвращал то что надо - длина говорит строки 15 букав.
Ну потому что GUID, какой бы он ни был, это все таки строка.
binary data у нас в Lua нет однако, есть UserData, но это не в эту дырку суется.
А теперь win.Uuid():len() возвращает черти че, можете проверить.
И кто ответит, как с этим жить, это баг или фича теперь?
раньше win.Uuid():len() возвращал то что надо - длина говорит строки 15 букав.
Ну потому что GUID, какой бы он ни был, это все таки строка.
binary data у нас в Lua нет однако, есть UserData, но это не в эту дырку суется.
А теперь win.Uuid():len() возвращает черти че, можете проверить.
И кто ответит, как с этим жить, это баг или фича теперь?
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Однако, предварительный фикс кажется что состоит в этом:
Но вопрос остается, сейчас "строковый механизьм" (или как это называется?)
творит по-моему фигню, конвертирует в УТФ8 по умолчанию что ли?
lua:=utf8.len(win.Uuid()) однако тоже не помогает
Code: Select all
function fnc_norm_guid(the_guid)
if not the_guid then return end
local the_type = type(the_guid)
if the_type == "number" or the_type == "userdata" then return end
if type(the_guid) == "string" and the_guid:len() == nil or
the_guid:len() <= 16 -- can be less than 16
then the_guid = win.Uuid(the_guid)
end
if the_guid == GUID_ZERO or not the_guid
then return
else return the_guid:upper()
end
end
творит по-моему фигню, конвертирует в УТФ8 по умолчанию что ли?
lua:=utf8.len(win.Uuid()) однако тоже не помогает
- buniak_a_h
- Posts: 4267
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Замените
win.Uuid():len()
на string.len(win.Uuid())
- и будет Вам Щястие Велиое.Подсказка от jd в другом месте, но причина, думаю, та же, и лекарство то же.
Last edited by buniak_a_h on Thu 30 Apr, 2020 04:50, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
прилагается пофиксенная версия имени А. Буняк
Вроде все работает так
Вроде все работает так
- Attachments
-
- Dialog_ReXiZeR.v1-2-2.@Xer0X.Lua.7z
- (8.37 KiB) Downloaded 128 times
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
John Doe,
этот скрипт должен читать все элементы по ряду причин.
и надо облегчить это чтение, избавив от ненужных списков.
в новой (еще не опубликованной, только у меня) версии кстати @Xer0X сделал запоминание последнего выбранного элемента во всех менюхах.
вот это очень удобно я вам скажу.
в потенциале Говорит несложно приделать еще запоминание значений полей,
т.е. это будет как бы автозаполнение.
Говорит сделать то можно, но вроде как не нужно.
и еще запоминание alignment-а
правда все это (alignment) очень на будущее, так как сейчас в ФАРе нет always-on-top,
а значит потребность аранжировать окошки не очень возникает, хотя возникает все же.
в новой (еще не опубликованной, только у меня) версии кстати @Xer0X сделал запоминание последнего выбранного элемента во всех менюхах.
вот это очень удобно я вам скажу.
в потенциале, говорит, несложно приделать еще запоминание значений полей,
т.е. это будет как бы автозаполнение.
Говорит сделать то можно, но вроде как не нужно.
и еще запоминание alignment-а
правда все это (alignment) очень на будущее, так как сейчас в ФАРе нет always-on-top,
а значит потребность аранжировать окошки не очень возникает, хотя возникает все же.
в этом скрипте напрасно крадется 100 милисекунд у юзера и несколько мегабайтов у компа на каждом открытии историиНе показан практический сценарий, когда производительности DM_GETDLGITEM недостаточно
Если же реальный сценарий обнаружится - надо будет разобраться где именно узкое место.
Не исключено, что проблема только в производительности Lua.
этот скрипт должен читать все элементы по ряду причин.
и надо облегчить это чтение, избавив от ненужных списков.
в новой (еще не опубликованной, только у меня) версии кстати @Xer0X сделал запоминание последнего выбранного элемента во всех менюхах.
вот это очень удобно я вам скажу.
в потенциале Говорит несложно приделать еще запоминание значений полей,
т.е. это будет как бы автозаполнение.
Говорит сделать то можно, но вроде как не нужно.
и еще запоминание alignment-а
правда все это (alignment) очень на будущее, так как сейчас в ФАРе нет always-on-top,
а значит потребность аранжировать окошки не очень возникает, хотя возникает все же.
в новой (еще не опубликованной, только у меня) версии кстати @Xer0X сделал запоминание последнего выбранного элемента во всех менюхах.
вот это очень удобно я вам скажу.
в потенциале, говорит, несложно приделать еще запоминание значений полей,
т.е. это будет как бы автозаполнение.
Говорит сделать то можно, но вроде как не нужно.
и еще запоминание alignment-а
правда все это (alignment) очень на будущее, так как сейчас в ФАРе нет always-on-top,
а значит потребность аранжировать окошки не очень возникает, хотя возникает все же.
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Вы имеете ввиду, что этому скрипту нужно знать только актуальные размеры листбокса? Он не пытается их изменить под самый широкий элемент списка?
https://t.me/FarManager — Telegram чат
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
актуальные размеры надо знать, конечно
Под самый широкий размер элемента списка не надо адаптировать,
потому что "display size" и "capacity size" слава Богу что не одно и то же в ФАРе
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
можно было бы наверное обойтисть "DM_GET(+SET)ITEMPOSITION", но засада в том что тогда не будет текста (значения) элемента, который тоже нужен (нужен например для запоминания)
можно все добывать по отдельности, наверное, но это менее неэффективно чем получить все "одиночные" (не списковые) значения сразу
можно все добывать по отдельности, наверное, но это менее неэффективно чем получить все "одиночные" (не списковые) значения сразу
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Я прошу прощения, всю тему не читал, последние страницы просмотрел и не очень понял... хотелось бы прояснить немного. (Как я понял, автора забанили, это печально)
У меня давно скачанный скрипт версии: 1.1.1 (судя по INFO BLOCK). Решил проверил обновления сейчас - из шапки ссылка на гитхаб нерабочая (как понял из комментариев здесь, автор и оттуда ушёл).
В сообщении на этой странице есть некая "пофиксенная версия имения А. Буняк" - это и есть последняя версия? (кстати, с ней FAR при запуске выдаёт ошибку типа не найден "CRC32-@XeR0X"...)
Или где можно скачать последнюю?
Попутно вопрос, есть плагин "Визуальное переименование файлов" (VisRen) и там клавиша F5 дефолтно используется для раздвижения по горизонтали+вертикале своего окна, однако данный скрипт перебивает сие действие на себя и расширяет только по горизонтали (ибо макрос на F5 зашит). Можно ли сделать исключение для данного плагина данному скрипту? И как?
У меня давно скачанный скрипт версии: 1.1.1 (судя по INFO BLOCK). Решил проверил обновления сейчас - из шапки ссылка на гитхаб нерабочая (как понял из комментариев здесь, автор и оттуда ушёл).
В сообщении на этой странице есть некая "пофиксенная версия имения А. Буняк" - это и есть последняя версия? (кстати, с ней FAR при запуске выдаёт ошибку типа не найден "CRC32-@XeR0X"...)
Или где можно скачать последнюю?
Попутно вопрос, есть плагин "Визуальное переименование файлов" (VisRen) и там клавиша F5 дефолтно используется для раздвижения по горизонтали+вертикале своего окна, однако данный скрипт перебивает сие действие на себя и расширяет только по горизонтали (ибо макрос на F5 зашит). Можно ли сделать исключение для данного плагина данному скрипту? И как?
Last edited by RoxMarty on Mon 18 Jan, 2021 20:59, edited 1 time in total.
Win 10 x64 / FAR 3 x64
- buniak_a_h
- Posts: 4267
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Укажите в condition дополнительное условие
Dlg.Id ~= "AD50A5CA-1E33-4E24-9A51-97A481D41F56"
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
Как именно?buniak_a_h wrote: ↑Mon 18 Jan, 2021 22:15Укажите в condition дополнительное условиеDlg.Id ~= "AD50A5CA-1E33-4E24-9A51-97A481D41F56"
Вижу в коде две строки с condition
Code: Select all
condition = function(evt, fde) return true; end;
Code: Select all
condition = function()
╔═══════════════════════════════════════ LuaMacro ══════════
...ile\Macros\scripts\Dialog_ReXiZeR.XeR0X_FixForVisRen.Lua:494: '=' expected near '~=
Win 10 x64 / FAR 3 x64
- buniak_a_h
- Posts: 4267
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
1. Запустить у себя я не смог, т.к. не нашёл модуля CRC32-@XeR0X.lua. В архиве его нет, а по всей теме искать недосуг. Поэтому дальнейшие изыскания носят теоретический характер.
2. Нашёл один макрос, "повешенный" на
F5
. Это тот, что начинается в строке 780. Если я прав (а проверить - легко: вставьте в функцию action строчку far.Show('Оно!')
), то вставить можо в строку 787 (там, где return). должно быть примерно так:return <то_что_я_писал> and (<старое_значение>)
Last edited by buniak_a_h on Tue 19 Jan, 2021 11:10, edited 1 time in total.
Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг
да, это и есть последняя.
CRC32 можно найти из предыдущих аттачментов идя по обсуждению назад в обратном временном порядке