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

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 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 32 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
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Latest post of the previous page:

buniak_a_h, кажутся ли вам разумными мои замечания и предложения по версии 1.4.6?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Tue 05 Nov, 2019 22:41 buniak_a_h, кажутся ли вам разумными мои замечания и предложения по версии 1.4.6?
Извините за молчание. Реализовывал… На самом деле все, кроме (2): эти строки не зависят от языка, это - обозначения, принятые вMacroEx. Если юзер использовал MacroEx, то он знает, что они означают. Если нет - ему без разницы. Хотя, думаю, любой знает эти слова.
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

buniak_a_h wrote: Wed 06 Nov, 2019 00:42 кроме (2): эти строки не зависят от языка
Во-первых, не следует выносить потроха устройства программы в интерфейс пользователя. Для того, чтобы их применять, пользователю совершенно незачем сразу знать, как они внутри обозначаются. Весьма вероятно, что можно придумать обозначения на родном языке, не требующие знания английского. Во-вторых, я же не зря обосновал свою просьбу: для горячих клавиш. Да и вообще любая строковая константа, попадающая в пользовательский интерфейс, должна локализовываться. Что вас останавливает? Вроде ж дело нехитрое.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Wed 06 Nov, 2019 00:46 Что вас останавливает?
Не хотел "затуманивать". Т.е. чтобы те, кто поставил MacroEx, конкретно понимали, что имеется в виду и какие настройки влияют (там, вроде, в частности таймаут настраивается для :Double и время задержки для :Hold).
На самом деле, если я смогу определить, установлен ли MacroEx, то буду срывать это CheckBox-ы если нету. Пока я не вижу там ни одного GUID-а, кроме как в комментарии
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT, насколько я понимаю, Вы в аглицком языке рубите. Я Вам работку припас... :-) Будет время - Там хинты для настроек только на русском...
Вышла версия 1.4.7
  1. При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
  2. Стилистические правки в файлах помощи и языковом
  3. Перекомпонован диалог настройки таким образом, чтоб всё помещалось
  4. В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы. (пока только на русском языке)
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

А что такое вы там под него затачиваете? Не лучше ли просто дать возможность прямого редактирования хоткея, а пользователь уж сообразит какой суффикс добавить.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

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: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

buniak_a_h wrote: Wed 06 Nov, 2019 09:36 DN_DROPDOWN
DN_DROPDOWNOPENED?
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

John Doe wrote: Wed 06 Nov, 2019 10:08 DN_DROPDOWNOPENED?
Спасибо. В описании DI_COMBOBOX такого события нету... :-(
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

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

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

.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

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

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

Post by citRiks »

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 более продвинутая функция как таковая.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

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.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

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: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

Но использование диалога имеет свои преимущества, и я в своё время тоже написал что-то подобное вашей far_Menu (не публиковал).
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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.
Post Reply

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