ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Макрос навеян этим:
PieApple wrote: Thu 23 Jan, 2014 12:57 Еще хотел бы поделиться идеей, реализованной в Проводнике с Windows 7, Total Commander, что если нажать мышкой на имя папки в адресной строке сверху, то происходит переход вверх на эту папку.
На самом деле получилось прикольно и, возможно, полезно (если Вы любите настольных грызунов).
Суть:
Клик мышой на заголовке панели, содержащей имя папки, вызывает переход (как в проводнике). А если клик приходится на разделитель (бэкслэш), то предоставляется выбор, в какую папку перейти.
Первоначальный макрос сваян «на коленке» за полчасика, потому не судите строго. Если будут отзывы и замечания — попробую «докрутить».

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.
Сведения о версии:
Версия 1.4.12.
  1. Исправлена ошибка процедуры настройки, возникшая из-за изменения интерфейса. Ошибка проявлялась при вызове настройки сликом средней клавиши (колёсиком) на заголовке панели.
  2. Сделана возможность вызова диалога настройки скрипта через меню настроек плагинов.
ClickToTitleDir-1.4.12.7z
(24.95 KiB) Downloaded 27 times

Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.
Last edited by buniak_a_h on Mon 25 Dec, 2023 02:15, edited 69 times in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Latest post of the previous page:

HaRT, событие DN_CTLCOLORDLGITEM.
Вы сами пишете, что для DI_BUTTON используется две подтаблицы. Так почему Вы одну оставили, а одну - убрали?
Или я не понял документацию (что, в общем, естественно - там написана полная галиматья: нумерация элементов таблицы начинается с 1, а не с 0), то ли есть какие-то недокументированные возможности. Но пусть уж лучше будет. Так что тоже не принимается пока.
Ещё почему-то пропала проверка Param2.ButtonState при Param2.EventType == F.MOUSE_EVENT - я не понял, почему. И просьба на будущее форматирование только "расширять", но не упрощать, а то мне с плохим зрением трудно разобраться, если в одной строке несколько скобок
Пока перерыв...
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 02:04 почему Вы одну оставили, а одну - убрали?
Потому что её наличие ни на что не влияло (очевидно, значения по умолчанию работают). В документации действительно с индексами что-то не то.
buniak_a_h wrote: Wed 09 Oct, 2019 02:04 почему-то пропала проверка Param2.ButtonState при Param2.EventType == F.MOUSE_EVENT
А вот это действительно ошибка, вкравшаяся при объединении изменений. Прошу прощения.
И ещё, гляжу, я там вот эту строку потерял: if Param2.EventType == F.KEY_EVENT then hDlg:send("DM_REDRAW") end
buniak_a_h wrote: Wed 09 Oct, 2019 02:04 форматирование только "расширять", но не упрощать, а то мне с плохим зрением трудно разобраться
Хорошо, учту. Кстати, а вы редактируете код на Луа с подсветкой синтаксиса или без? Если без, то и с хорошим зрением многое трудно увидеть.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Wed 09 Oct, 2019 01:52 Напишите, пожалуйста, подробно, как её повторить (притом без ConEmu).
Ещё подробнее???
1. Делаете каталог "%TEMP%\190930\1qqqqqqqqqqqqqqq qqqqqqqqqqqqqqqq qqqqqqqqqqqqq\2eeeeeee eeeeeeeee eeeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww" (у меня TEMP=C:\Temp) и переходите в него (путь, естественно, на панели не помещается)
2. Клик ПКМ на заголовке (в любом месте)
3. Вот (левая панель):
Image
Фар запущен без ConEmu
Параметры консоли: ширина 120, высота 30 (и буфера, и экрана)
Прежняя версия консоли выключена.
Фар запущен в мобильном варианте (
(это я к тому, что мои имеющиеся скрипты и модули не влияют. Собственно, проверено: при удалении скрипта переход перестаёт работать. Сам скрипт (и все аддоны к нему) просто вытащен из Вашего архива.
HaRT wrote: Wed 09 Oct, 2019 02:10 Кстати, а вы редактируете код на Луа с подсветкой синтаксиса или без?
Конечно, с подсветкой. Собственно, подсветка в colorer-е - это меньшее, для чего я его использую. Там и список функций, и поиск функции удобные, и переходя на скобки Без него совсем беда была бы.
Last edited by buniak_a_h on Wed 09 Oct, 2019 02:27, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Wed 09 Oct, 2019 01:52 С тем, что вы описываете, попытаюсь разобраться, но позже.
Это правильно. А перед тем возьмёте то, что я выложу. Может, там все проблему уже будут решены.
Была проблема в частности, что поле DI_EDIT "налезало" на границу панели и даже с левой на правую. Ограничить пришлось.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 02:26 Ещё подробнее???
Просто я проделал ровно эти шаги, и у меня
Но у меня Windows 8.1 (а сборка Фара на скриншоте под спойлером).
buniak_a_h wrote: Wed 09 Oct, 2019 02:26 3. Вот (левая панель):
Image
Картинка, увы, не грузится, Хром говорит: “This site can’t be reachedThe webpage at https://i86.fastpic.ru/big/2019/1009/83 ... db683.jpeg might be temporarily down or it may have moved permanently to a new web address.
ERR_HTTP2_PROTOCOL_ERROR”
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 02:34 Это правильно. А перед тем возьмёте то, что я выложу.
Я же со своей стороны прошу не общаться со мной таким тоном, как профессор с первокурсником. Это не способствует плодотворному сотрудничеству. Надеюсь на понимание.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 02:34 Может, там все проблему уже будут решены.
Может, заодно исправите в диалоговом режиме переход не в ту директорию, если щёлкать левой кнопкой по последнему символу какой-нибудь папки в пути? У меня оно и в версии 1.1.1 так работает. Ну и CtrlDown ничего не делает, хотя, судя по коду, должен бы.
Last edited by HaRT on Wed 09 Oct, 2019 02:59, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Wed 09 Oct, 2019 02:46 рошу не общаться со мной таким тоном, как профессор с первокурсником
Это ответочка на
HaRT wrote: Tue 08 Oct, 2019 19:46 А непротестированные изменения я, в отличие от некоторых, не выкладываю.
;-)
HaRT wrote: Wed 09 Oct, 2019 02:58 CtrlDown ничего не делает, хотя, судя по коду, должен бы.
Делал... Что-то сломалось.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 03:12ответочка
Ладно, квиты.
Но хочу заострить внимание, что проблему с шириной диалога на длинном пути я воспроизвести так и не смог, т.ч., увы, и исправить тоже не смогу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

По поводу диалогового режима: там есть такая переменная w - это некий показатель ширины диалога (плюс-минус константа)
Оказалось, что в Config"System.BoxSymbols" по умолчанию включен пробел. поэтому и слетало. Заменю Far.GetConfig"System.BoxSymbols" на константу...
P/S. Беда с рамкой. Ну ладно, когда всё рисуется псевдографикой. А если работать на TelNet-е, например, и графические символы эмулируются плюсами и минусами? Впрочем, их тоже можно в константу занести. Ограничение будет - имена каталогов не должны содержать символы +-=┌─┐╔═╗╒═╕╓─╖, а рамки панелей - наоборот, должны будут составляться из этих символов. Не думаю, что это будет существенное ограничение.
Last edited by buniak_a_h on Wed 09 Oct, 2019 04:18, edited 2 times in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Wed 09 Oct, 2019 04:07 в Config"System.BoxSymbols" по умолчанию включен пробел. поэтому и слетало
Хорошо, что разобрались. Но версию с исправлением двух своих ошибок (потерянные условие и строка с вызовом DM_REDRAW) я завтра всё равно не выкачу. Может, сами?
И не ускользнуло ли от вашего внимания объяснение о назначении того DI_DOUBLEBOX?
buniak_a_h wrote: Wed 09 Oct, 2019 04:07 Беда с рамкой
А действительно ли нам так надо закладываться на символы рисования рамок? Неужто нельзя узнать требуемую часть строки, исходя из ширины панели и длины пути (пусть даже и повторив часть логики Фара по расположению текста на заголовке панели)?

P.S.
buniak_a_h wrote: Wed 09 Oct, 2019 04:07 в Config"System.BoxSymbols" по умолчанию включен пробел
Удивительно, но это так. Так ведь он там последним символом — можно просто отсекать.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Wed 09 Oct, 2019 04:31
buniak_a_h wrote: Wed 09 Oct, 2019 04:07 в Config"System.BoxSymbols" по умолчанию включен пробел. поэтому и слетало
Хорошо, что разобрались. Но версию с исправлением двух своих ошибок (потерянные условие и строка с вызовом DM_REDRAW) я завтра всё равно не выкачу. Может, сами?
Реакция на CtrlDown как раз пропала из=за пропавшей DM_REDRAW . Возможно, приём идиотский, но просто я не нашёл другого способа, как получить позицию курсора в DI_EDIT-е кроме как заставить движок перерисовать его (ну, можно и весь диалог - он маленький).
HaRT wrote: Wed 09 Oct, 2019 04:31 И не ускользнуло ли от вашего внимания объяснение о назначении того DI_DOUBLEBOX?
Нет. Я вернул DI_DOUBLEBOX. Хотя прием тоже проктологом попахивает. Логичнее было бы в самой far.Dialog параметр иметь.
HaRT wrote: Wed 09 Oct, 2019 04:31
buniak_a_h wrote: Wed 09 Oct, 2019 04:07 Беда с рамкой
А действительно ли нам так надо закладываться на символы рисования рамок? Неужто нельзя узнать требуемую часть строки, исходя из ширины панели и длины пути (пусть даже и повторив часть логики Фара по расположению текста на заголовке панели)?
Наверно, можно. НО! (а) Надо знать логику ФАРа, а методом тыка искать - нет, проще на рамку (б) Путь может быть обрезанным слева...
Вот если б сделали такую добавочку к SaveScreen - это было бы кузяво!
HaRT wrote: Wed 09 Oct, 2019 04:31 P.S.
buniak_a_h wrote: Wed 09 Oct, 2019 04:07 в Config"System.BoxSymbols" по умолчанию включен пробел
Удивительно, но это так. Так ведь он там последним символом — можно просто отсекать.
Не-не-не! Мы не знаем, что юзеру в голову придёт! Заменит он пробел на Chr(160), а вертикальные - на вертикальную черту (что на одной клавише со слэшом) - и всё...
Короче, эту проблему я решил так:
local BoxSymbols=Far.GetConfig"System.BoxSymbols":gsub("[ -я]", '')..'-+=|'
Глюк с кликом на последнем символе имени каталога у меня не повторяется. Возможно, у меня он уже был исправлен...
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT, Вы много где заменили hDlg:send("DM_... " ) на hDlg:send(F.DM_...). Это - из соображений эффективности?
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Версия 1.2.1 - начало работы в плагиновых панелях (кроме смены диска и перехода по списку вложенных папок - пока).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by John Doe »

buniak_a_h wrote: Wed 09 Oct, 2019 05:30 но просто я не нашёл другого способа, как получить позицию курсора в DI_EDIT-е кроме как заставить движок перерисовать его
https://api.farmanager.com/ru/dialogapi ... ition.html
buniak_a_h wrote: Wed 09 Oct, 2019 05:30 читать с экрана консоли
У консоли есть апи.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by John Doe »

buniak_a_h wrote: Wed 09 Oct, 2019 02:04 Или я не понял документацию (что, в общем, естественно - там написана полная галиматья: нумерация элементов таблицы начинается с 1, а не с 0), то ли есть какие-то недокументированные возможности
Вы читаете документацию C API, но используете его посредством LuaFAR.
При этом база большинства индексов меняется с 0 на 1 (должно быть документировано).

Или приведите ссылку на 'некорректную' статью.
Post Reply

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