Разбивать длинные имена файлов в панели на несколько строк

Здесь обсуждается всё, что касается макросов.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Разбивать длинные имена файлов в панели на несколько строк

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Thu 29 Jul, 2021 15:01 как заметить, что положение на панели сменилось? Макрос и евент вешать не хочется ну совсем!
А не достаточно ли на каждый ProcessPanelInput корректировать текущий элемент панели?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

HaRT wrote: Thu 29 Jul, 2021 15:43 А не достаточно ли на каждый ProcessPanelInput корректировать текущий элемент панели?
Я вставил OutputDebugInfo в ProcessPanelInput (безусловно). При получении фокуса выводится. При просто клике по файлу - нет. Т.е. по клику ProcessPanelInput вообще не вызывается!
User avatar
John Doe
Бюрократ
Posts: 13848
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by John Doe »

buniak_a_h wrote: Thu 29 Jul, 2021 14:33 но rec передаётся такой, что InputRecordToName(rec) возвращает nil.
Это же не единственный способ анализировать InputRecordToName. Посмотрите что внутри сами
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

John Doe wrote: Thu 29 Jul, 2021 15:54 Посмотрите что внутри сами
Как я уже писал, всё намного хуже. Я пока не проверял, возможно, какой-нить скрипт/плагин перехватывают, но… похоже, ProcessPanelInput вообще не вызывается.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Разбивать длинные имена файлов в панели на несколько строк

Post by HaRT »

buniak_a_h wrote: Thu 29 Jul, 2021 15:53по клику ProcessPanelInput вообще не вызывается!
Если это действительно так (по результатам аккуратной проверки), то и обработчик события повесить не зазорно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

HaRT wrote: Thu 29 Jul, 2021 16:13 Если это действительно так…
Это, видимо, так. MsWheelDown приходит, а просто клик не вызывает ProcessPanelInput :-(. Скрипты удалил все, плагины нет, но мне же некоторые нужны!
HaRT wrote: Thu 29 Jul, 2021 16:13 обработчик события повесить не зазорно
  1. Я надеялся, что может глюком займутся гуры.
  2. Не уверен, что удобство работы в "выставочном" панельном модуле мышкой стоит усилий. К тому же у меня ощущение, что ивенты всё же жрут много ресурсов. Это ж не настоящие перехватчики (работающие в отдельной ветви, особенно - condition), а "симулятор". Т.е. condition будет выполняться при любом мышовом действии; например - при перемещении. Если это так - это может оказаться накладно.
    Если я неправ - извините.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Разбивать длинные имена файлов в панели на несколько строк

Post by HaRT »

buniak_a_h wrote: Thu 29 Jul, 2021 16:48 Скрипты удалил все, плагины нет
[…]
может глюком займутся гуры
Но для строгого выяснения следует проверить всё же только с LuaMacro. Иначе шансов, что гуры заинтересуются, вообще очень мало.
Last edited by HaRT on Thu 29 Jul, 2021 17:06, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

HaRT wrote: Thu 29 Jul, 2021 17:03 Но для строгого выяснения следует проверить всё же только с LuaMacro.
Проверил. Результат тот же. После возврата фокуса окну ФАРа приходит FOCUS_EVENT, после него - MENU_EVENT. Но клик не вызывает ProcessPanelInput от слова совсем.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Разбивать длинные имена файлов в панели на несколько строк

Post by HaRT »

buniak_a_h wrote: Thu 29 Jul, 2021 17:30 После возврата фокуса окну ФАРа приходит FOCUS_EVENT, после него - MENU_EVENT. Но клик не вызывает ProcessPanelInput от слова совсем.
При чём тут возврат фокуса? Если не покидать Фар, но щёлкать левой, правой, средней кнопками мыши по элементу панели, происходит ли этот вызов?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

HaRT wrote: Thu 29 Jul, 2021 18:07 При чём тут возврат фокуса?
Перед экспериментом очищал лог DbgView. Отсюда и возврат фокуса. Как индикатор того, что я правильно составил тест.
HaRT wrote: Thu 29 Jul, 2021 18:07 щёлкать левой, правой, средней кнопками мыши по элементу панели
Левой, правой - не происходит. По настройке ПКМ отмечает элемент. Средней - симулируется Enter от клавиатуры. Не знаю, есть ли такая настройка…
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Разбивать длинные имена файлов в панели на несколько строк

Post by Shmuel »

buniak_a_h wrote: Thu 29 Jul, 2021 18:15 Левой, правой - не происходит.
Можно попробовать добавить обрабочик: Event { group="ConsoleInput"; .... }
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

Shmuel wrote: Thu 29 Jul, 2021 18:46 Можно попробовать добавить обрабочик: Event { group="ConsoleInput"; .... }
А этот обработчик (точнее, его condition) будет вызываться на каждое событие? На движение мышкой, например?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Разбивать длинные имена файлов в панели на несколько строк

Post by Shmuel »

buniak_a_h wrote: Thu 29 Jul, 2021 19:27 А этот обработчик (точнее, его condition) будет вызываться на каждое событие? На движение мышкой, например?
Это легко проверяется, используйте для проверки win.OutputDebugString, например.
Насчёт condition - если в обработчике задана эта функция, то, естественно, она будет вызываться.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

Shmuel wrote: Thu 29 Jul, 2021 19:46 Это легко проверяется, используйте для проверки win.OutputDebugString, например.
Спасибо, буду знать. :wink:
Shmuel wrote: Thu 29 Jul, 2021 19:46 Насчёт condition - если в обработчике задана эта функция, то, естественно, она будет вызываться.
А если не задана - вызываться будет action? Ну, это - не вмер Данила - болячка задавила.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Разбивать длинные имена файлов в панели на несколько строк

Post by Shmuel »

buniak_a_h wrote: Thu 29 Jul, 2021 19:52 А если не задана - вызываться будет action? Ну, это - не вмер Данила - болячка задавила.
А в чём же тогда смысл обработчика, если ни condition, ни action не будут вызываться.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Разбивать длинные имена файлов в панели на несколько строк

Post by buniak_a_h »

Поэтому я и против обработчика событий. Тем более таких - событий мыши.
Речь как раз о том, чтобы клик ЛКМ и ПКМ передавался в export.ProcessPanelInput (точнее, в mod.ProcessPanelInput). Как в диалогах: вызывается DN_CONTROLINPUT без EVENT. А так, как Вы советуете, обработчик будет вызываться во всех областях, панелях, плагинах и т.д. … Во всех диалогах… Или я чего-то не знаю?
В EVENT {…} Нельзя же указать area = …
Last edited by buniak_a_h on Thu 29 Jul, 2021 20:08, edited 1 time in total.
Post Reply

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