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

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 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
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

Latest post of the previous page:

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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 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: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 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: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

Last edited by HaRT on Thu 07 Nov, 2019 12:09, edited 1 time in total.
Reason: Спрятан офтопик
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

buniak_a_h wrote: Thu 07 Nov, 2019 10:21 кстати о LuaCheck
Спасибо что напомнили, но в следующий раз пожалуйста используйте для этого соответствующую тему.
Чтобы не превращать свою в свалку оффтопика.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

buniak_a_h wrote: Thu 07 Nov, 2019 11:26 Я просто подумал, что здесь Вы бываете чаще,
Я читаю весь форум.
Но темы по своим скриптам - внимательнее чем прочие.
А в любых других сообщение имеет все шансы затеряться.
buniak_a_h wrote: Thu 07 Nov, 2019 11:26 а перенести сообщение в Ваших силах...
Это дополнительная работа.
В данном случае я сознательно оставлю всё здесь.
Хотите засорять свою тему - на здоровье.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

buniak_a_h, у меня уже давно есть одна идея по улучшению диалогового режима. Идея нацелена на то, чтобы мыше-ориентрированный пользователь быстрее и проще решил свою навигационную задачу.

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

Тут есть два неоднозначных момента:
1. При использовании ширины, большей ширины заголовка целевой панели, строка пути в диалоге неизбежно сместится от своего положения в заголовке панели. (Особенно ярко это проявится для левой панели.) Это, на мой взгляд, оправданное неудобство, учитывая, что пользователь получает моментальный доступ к вдвое большей части пути (если не ко всему).
2. Если путь не вмещается в ширину окна, то диалог упрётся и влево, и вправо и станет не вполне ясно, какая панель целевая (особенно, если отвлечься, пока диалог активен). Это можно решить, используя другой символ или другой цвет для стрелки в сторону «нецелевой» панели. Я готов предложить варианты.

Как вам такая идея?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Thu 07 Nov, 2019 13:54 Как вам такая идея?
Не могу определить... Может, тупо сделать в настройке флажок (аналогично вложенным папкам) типа floating. Если установлен, то рисовать рамку вниз, и за эту рамку таскать диалог, а там, вроде, есть DN_DRAGGED - если диалог утащили со Y0()-й строки, то распахивать. А к какой панели относится - указывать в заголовке.
Надо смотреть, как это будет… У меня абсолютно не развито то полушарие, которое за образное мышление отвечает, поэтому я, пока не сделаю, оценить не могу.
P/S Впрочем, рамку, видимую вниз, можно рисовать в любом случае
Last edited by buniak_a_h on Thu 07 Nov, 2019 19:40, edited 1 time in total.
Post Reply

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