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

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Sun 29 Sep, 2019 07:51

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

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.


Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.

ClickToTitleDir-1.4.7.7z
(22.83 KiB) Downloaded 51 times
Last edited by HaRT on Wed 06 Nov, 2019 20:42, edited 62 times in total.

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

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

Post by HaRT » Tue 05 Nov, 2019 22:41

Latest post of the previous page:

buniak_a_h, кажутся ли вам разумными мои замечания и предложения по версии 1.4.6?
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 00:42

HaRT wrote:
Tue 05 Nov, 2019 22:41
buniak_a_h, кажутся ли вам разумными мои замечания и предложения по версии 1.4.6?
Извините за молчание. Реализовывал… На самом деле все, кроме (2): эти строки не зависят от языка, это - обозначения, принятые вMacroEx. Если юзер использовал MacroEx, то он знает, что они означают. Если нет - ему без разницы. Хотя, думаю, любой знает эти слова.

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

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

Post by HaRT » Wed 06 Nov, 2019 00:46

buniak_a_h wrote:
Wed 06 Nov, 2019 00:42
кроме (2): эти строки не зависят от языка
Во-первых, не следует выносить потроха устройства программы в интерфейс пользователя. Для того, чтобы их применять, пользователю совершенно незачем сразу знать, как они внутри обозначаются. Весьма вероятно, что можно придумать обозначения на родном языке, не требующие знания английского. Во-вторых, я же не зря обосновал свою просьбу: для горячих клавиш. Да и вообще любая строковая константа, попадающая в пользовательский интерфейс, должна локализовываться. Что вас останавливает? Вроде ж дело нехитрое.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 01:14

HaRT wrote:
Wed 06 Nov, 2019 00:46
Что вас останавливает?
Не хотел "затуманивать". Т.е. чтобы те, кто поставил MacroEx, конкретно понимали, что имеется в виду и какие настройки влияют (там, вроде, в частности таймаут настраивается для :Double и время задержки для :Hold).
На самом деле, если я смогу определить, установлен ли MacroEx, то буду срывать это CheckBox-ы если нету. Пока я не вижу там ни одного GUID-а, кроме как в комментарии

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 07:10

HaRT, насколько я понимаю, Вы в аглицком языке рубите. Я Вам работку припас... :-) Будет время - Там хинты для настроек только на русском...
Вышла версия 1.4.7
  1. При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
  2. Стилистические правки в файлах помощи и языковом
  3. Перекомпонован диалог настройки таким образом, чтоб всё помещалось
  4. В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы. (пока только на русском языке)

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

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

Post by John Doe » Wed 06 Nov, 2019 08:39

buniak_a_h wrote:
Wed 06 Nov, 2019 01:14
, если я смогу определить, установлен ли MacroEx
Возможно с помощью regscript (Scripts browser).
Естественно, будет работать только при его наличии.

А что такое вы там под него затачиваете? Не лучше ли просто дать возможность прямого редактирования хоткея, а пользователь уж сообразит какой суффикс добавить.

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 09:36

John Doe wrote:
Wed 06 Nov, 2019 08:39
Возможно с помощью regscript (Scripts browser).
В моём варианте нет оформления (info и пр ...). Поэтому Scripts browser его не видит
John Doe wrote:
Wed 06 Nov, 2019 08:39
А что такое вы там под него затачиваете? Не лучше ли просто дать возможность прямого редактирования хоткея, а пользователь уж сообразит какой суффикс добавить.
Да ничего особенно. Хотел просто пи отсутствии macroEx задисейблить кнопки модификаторов. Не хотелось давать юзеру возможность прямого редактировать имя клавиши.
Точнее так: если бы у ComboBox-а было событие DN_DROPDOWN (на открытие списка), то я на него повесил бы ввод кнопки. И тогда пожалуйста - редактируй. Увы - не нашёл такого. Ещё одну кнопку лениво было. Но, наверно, придётся: сейчас не ввести двухбуквенные комбинации(типа CtrlQ-K). А также не ввести несколько шоткатов. Так что не последний вариант

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

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

Post by John Doe » Wed 06 Nov, 2019 10:08

buniak_a_h wrote:
Wed 06 Nov, 2019 09:36
DN_DROPDOWN
DN_DROPDOWNOPENED?

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 10:36

John Doe wrote:
Wed 06 Nov, 2019 10:08
DN_DROPDOWNOPENED?
Спасибо. В описании DI_COMBOBOX такого события нету... :-(

citRiks
Posts: 88
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 6 times

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

Post by citRiks » Wed 06 Nov, 2019 14:25

Попытался сделать внешним макросом переходы между меню влево цикличными. И почти получилось. Вот если бы помимо активации диалогового режима шорткатом была бы ещё и возможность прямо из панелей также шорткатом сразу же активировать меню, то получилось бы почти совсем гладко. А так приходится после возврата из крайнего левого меню в исходный диалог диалогового режима лишний раз нажимать CtrlDown для повторной активации меню.

Однако для этого используются два макроса. Первый запоминает исходную позицию. А второй после крайнего левого меню обеспечивает возврат к ней.

.

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Wed 06 Nov, 2019 16:23

citRiks, я чой-то в терминологии утоп...
Что такое
citRiks wrote:
Wed 06 Nov, 2019 14:25
переходы между меню влево цикличными
?Т.е. по CtrlLeft выход на уровень вверх, а из корневого - возврат в стартовую позицию?
Guid=все нули - это не уникально, таких много. Просто у Menu.Show нет возможности указать Guid.
Т.е. я полагаю, что второй макрос у Вас будет работать во многих-многих меню, вызванных из корневой панели… Например, системное меню, вызванное по F9 Enter :-)
Стесняюсь спросить… А зачем оно надо? :oops:
P/S. Можно немного переделать мой скрипт так, чтобы при помещении в modules он открывал доступ во "внутренности".

citRiks
Posts: 88
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 6 times

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

Post by citRiks » Wed 06 Nov, 2019 21:41

buniak_a_h wrote:
Wed 06 Nov, 2019 16:23
Т.е. по CtrlLeft выход на уровень вверх, а из корневого - возврат в стартовую позицию?
Именно. Эх, вот если бы ещё и вправо можно было бы крутить меню...
buniak_a_h wrote:
Wed 06 Nov, 2019 16:23
А зачем оно надо?
Удобное обозрение вцелом.
buniak_a_h wrote:
Wed 06 Nov, 2019 16:23
у Menu.Show нет возможности указать Guid
Поэтому я и справшивал:
citRiks wrote:
Wed 30 Oct, 2019 11:44
нельзя ли вместо Menu.Show использовать far.Menu и задать для этого меню уникальный GUID?
Да и, вроде бы, far.Menu более продвинутая функция как таковая.

citRiks
Posts: 88
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 6 times

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

Post by citRiks » Thu 07 Nov, 2019 05:14

buniak_a_h,

Кстати, я спрашивал у shmuz`а: "А нельзя ли сделать так, чтобы меню, формируемое в макросе командой Menu.Show(), имело бы тот же гуид, что и макрос?" и он ответил: "Сделать возможно. Например, в функции far.InputBox, если вместо GUID передать nil, то будет подставлен GUID плагина", а также подтвердил, что "Если в макросе .. только одно [меню], и оно имеет тот же GUID, что и макрос, то нет проблем".

М.б. и в данном случае проконсультироваться у него? Он ведь в Lua-макросах один из крупнейших специалистов.
Last edited by citRiks on Thu 07 Nov, 2019 05:20, edited 1 time in total.

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Thu 07 Nov, 2019 08:43

citRiks wrote:
Thu 07 Nov, 2019 05:14
"Сделать возможно. Например, в функции far.InputBox, если вместо GUID передать nil, то будет подставлен GUID плагина"
lua:Far.InputBox() выдаёт "осмысленный" GUID (увы, не макроса, а плагина LuaFAR-а, что всё ломает: любой макрос возвращает этот GUID)
А вот lua:Menu.Show"111\nbbb\nccc" выдаёт нулевой. Ну, т.е. не реализовано
citRiks wrote:
Wed 06 Nov, 2019 21:41
buniak_a_h wrote:
Wed 06 Nov, 2019 16:23
у Menu.Show нет возможности указать Guid
Поэтому я и справшивал:
citRiks wrote:
Wed 30 Oct, 2019 11:44
нельзя ли вместо Menu.Show использовать far.Menu и задать для этого меню уникальный GUID?
Да и, вроде бы, far.Menu более продвинутая функция как таковая.
Да я уже объяснял: некогда и лениво было. Ну и появился аргумент именно за Menu.show: у far.Menu нет возможности определить наличие и тип рамки, а люди хотят не видеть её (типа как хинт: чем меньше прикрывает, тем лучше). Т.е. это - аргумент за использование моей far_Menu из модуля BaxUtils; просто до сих пор скрипт был "компактный" (все файлы в одной папке, причём безразлично в какой внутри scripts). А использование модуля сразу усложняет установку. И порождает неконтролируемые проблемы.

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

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

Post by John Doe » Thu 07 Nov, 2019 09:22

buniak_a_h wrote:
Thu 07 Nov, 2019 08:43
far.Menu нет возможности определить наличие и тип рамки
Если немного заморочиться, то можно отрегулировать всё что вам нужно перехватив DN_INITDIALOG.
Что-то подобное я делаю в LuaCheck.

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

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

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

Post by John Doe » Thu 07 Nov, 2019 09:25

buniak_a_h wrote:
Thu 07 Nov, 2019 08:43
lua:Far.InputBox() выдаёт "осмысленный" GUID (увы, не макроса, а плагина LuaFAR-а, что всё ломает: любой макрос возвращает этот GUID)
Плагина luamacro.
И это ничего не ломает, учитывая что вы можете задать свой Id.

И этот Id хоть и может совпадать с Id макроса, но в большинстве случаев лучше иметь уникальный гуид для каждой сущности.
Last edited by John Doe on Thu 07 Nov, 2019 09:27, edited 1 time in total.

buniak_a_h
Posts: 1264
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

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

Post by buniak_a_h » Thu 07 Nov, 2019 10:21

Last edited by Guest on Thu 07 Nov, 2019 12:09, edited 1 time in total.
Reason: Спрятан офтопик

Post Reply

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