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

Здесь обсуждается всё, что касается макросов.
Post Reply
buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 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.8.
  1. При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
  2. Стилистические правки в файлах помощи и языковом
  3. Перекомпонован диалог настройки таким образом, чтоб всё помещалось
  4. В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы.
Версия 1.4.9.
  • Исправлена ошибка, приводившая к "блокировке" скрипта в случае клика по рамке панели вне заголовка (вне «чувствительной зоны»).
    (Блокировка - неработоспособность скрипта до перезагрузки макросов командой macro:load)
Версия 1.4.10.
  • Изменён алгоритм синтаксического разбора строки заголовка для корректной обработки времени, заданного в американском формате (2:10 AM) при клике по правой панели
ClickToTitleDir-1.4.10.7z
(23.92 KiB) Downloaded 11 times

Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.
Last edited by buniak_a_h on Mon 04 May, 2020 12:18, edited 65 times in total.

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

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

Post by John Doe »

Latest post of the previous page:

buniak_a_h wrote:
Tue 08 Oct, 2019 10:02
Это, наверно, не ко мне. Я не в курсе и изучать неохота. Если кто поможет - спасибо.
Для начала можно попробовать https://gist.github.com

Изучать ничего не надо, достаточно вставить текст (и обновлять).
При этом у всех заинтересованных будет возможность наглядно увидеть изменения между версиями (diff).

Каждый gist изнутри представляет собой git-репозиторий, но это необязательно использовать.

Edit
Если смущает именно git, но есть опыт работы с svn, то github это позволяет.
Last edited by John Doe on Tue 08 Oct, 2019 11:27, edited 1 time in total.

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

John Doe wrote:
Tue 08 Oct, 2019 11:25
Если смущает именно git, но есть опыт работы с svn, то github это позволяет.
1. Реальный опыт работы (Вы, наверное, даже не застали) у меня только в CVS
2. Делал я git-репозиторий (и даже пользовался в экспериментальном режиме). Но для github-f, наверно, нужно регистрировать, права получать и т.д. ... Зашёл по Вашей ссылке, но прочитать не смог - там всё по-китайски...
3. Скрипт на самом деле такой простенький, что, по-моему, развиваться ему некуда. Это я к тому, что за исключением локализации то, что опубликовано, близко к окончательной версии. А значит, системы контроля версий не нужны. Если считаете полезным - можно будет просто в рассылку включить в Addon\Macros. И закрыть, наконец, эту тему. После одобрения соавтором HaRT-ом

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 08 Oct, 2019 10:02
В следующей версии (если будет) учту.
buniak_a_h wrote:
Tue 08 Oct, 2019 11:43
близко к окончательной версии
Я не столь оптимистичен — в скрипте нет такой важной фичи, как поддержка UNC-путей, а также путей (как обычных, так и UNC) с префиксами \\?\ и \\?\UNC\ за компанию.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
SUSim
Posts: 1543
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 10 times

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

Post by SUSim »

А как такие пути могут появиться в заголовке панели?
SimSU ··· ·· -- ··· ··-

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

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

Post by HaRT »

SUSim wrote:
Tue 08 Oct, 2019 17:13
А как такие пути могут появиться в заголовке панели?
UNC-пути (\\Host\Share\Path\to\my\dir) — через cd или переходом, например, из стандартного плагина Network, а пути с префиксами \\?\ и \\?\UNC\ — через cd из командной строки. А, ну ещё те и другие переходом к редактируемому файлу (CtrlF10 из редактора), а тот мог быть вызван по ShiftF4.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 08 Oct, 2019 17:09
Я не столь оптимистичен — в скрипте нет такой важной фичи, как поддержка UNC-путей, а также путей (как обычных, так и UNC) с префиксами \\?\ и \\?\UNC\ за компанию.
Ещё не поддерживается плагиновая панель (например, в архиве можно было бы организовать переход вместо SetPath посылкой нескольких CtrlPgDn (для выхода наверх). Ограничил я (чтоб не загружать). Хотя вот стал разбираться с разницей Path и Path0 (что из них в заголовке. Оказалось ни то и ни то), так и желание добить и плагиновые панели появилось.

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Mon 07 Oct, 2019 10:17
у меня локально есть кое-какие небольшие исправления для диалогового режима
Хотелось бы подробнее. Заинтриговали и молчите!

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 08 Oct, 2019 18:25
Хотелось бы подробнее. Заинтриговали и молчите!
Вот как раз сейчас активно объединяю, а также исправляю тексты.
Кстати, раз уж теперь история версий есть в Справке, может, убрать её из кода, чтобы не поддерживать ещё и в третьем месте?
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 08 Oct, 2019 10:02
Вот, всё кажется. В первом сообщении темы. Добавляйте...
Проблемка: невозможно сохранить настройки из-за отсутствия BAX.BaxUtils.DialogItemVal. А в таких условиях я не могу нормально протестировать свои изменения. А непротестированные изменения я, в отличие от некоторых, не выкладываю. ;)
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 08 Oct, 2019 19:46
непротестированные изменения я, в отличие от некоторых, не выкладываю
Извините.

P/S Исправлено первое сообщение
Last edited by buniak_a_h on Tue 08 Oct, 2019 20:43, edited 1 time in total.

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 08 Oct, 2019 18:25
Хотелось бы подробнее.
Версия 1.1.2 от 09.10.2019
1. buniak_a_h: исправлено сохранение настроек.
2. buniak_a_h: история изменений удалена из кода скрипта.
3. Исправлено позиционирование интерактивных элементов диалога (по ПКМ) при постоянно показанном главном меню.
4. В диалоговом режиме исправлен заголовок консольного окна.
5. Исправлено действие настройки «С заголовком».
6. Устранено пустое закрашенное знакоместо справа от кнопки «►» в диалоговом режиме.
7. Исправлены опечатки в идентификаторах LNG-файла и в файле справки, улучшены формулировки.
8. Добавлены горячие клавиши в диалоге настроек.
9. Присвоен UUID и придано Описание макросу на щелчок СКМ (средней кнопкой мыши).
ClickToTitleDir-1.1.2.7z
(11.76 KiB) Downloaded 29 times
Думаю, что этот же файл можно вставить в заглавное сообщение, не перезаливая.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 08 Oct, 2019 22:17
Версия 1.1.2 от 09.10.2019
Спасибо
HaRT wrote:
Tue 08 Oct, 2019 17:24
UNC-пути (\\Host\Share\Path\to\my\dir) — через cd или переходом, например, из стандартного плагина Network
Я убрал возможно лишнее ограничение на not Panel.Plugin, и с минимальными переделками скрипт стал работать как в архиве, так и на сети (если путь такой, как Вы написали). Ну, с некоторыми ограничениями типа клик на имени хоста не приводит к выходу на панель плагина Network с выбором шары; клик на имени файла архива не приводит к выходу из архива. Просто я пока не знаю, как определить для таких плагиновых панелей заголовок. Но, раскинув тем, что у меня на месте моска, я подумал, что лучше ограниченная функциональность, чем отсутствие оной.
С путями с префиксами \\?\ и \\?\UNC\ я не стал разбираться. На самом деле в той статье, ссылку на которую Вы прислали, написано что-то странное. "Длина пути ограничена 260 символов, если не используется префикс \\?\" - как Вы понимаете, это неправда. "Т.к. вы не можете использовать префикс \\?\ с относительными путями, то относительный путь ограничен MAX_PATH (260 байт)" - как Вы понимаете, это - тоже не так. Или я неправильно перевёл? Или статья сильно устарела. Но даже если путь указан с префиксами, функционал скрипта не порушен (кроме выбора диска по клику левее буквы диска).

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 08 Oct, 2019 23:37
На самом деле в той статье, ссылку на которую Вы прислали, написано что-то странное.
Это часть официальной документации WinAPI. Я не хотел бы тут вдаваться в обсуждение того, где оно применимо и в какой степени. Ссылку я привёл только в качестве обоснования правомерности таких путей и желательности их поддержки.

По работе скрипта у меня есть ещё несколько небольших замечаний и предложений, но это уже не сегодня.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 08 Oct, 2019 22:17
3. Исправлено позиционирование интерактивных элементов диалога (по ПКМ) при постоянно показанном главном меню.
У меня, честно говоря, получается, что не исправлено, а испорчено.
Сделал каталог %Temp%\190930\1qqqqqqqqqqqqqqq qqqqqqqqqqqqqqqq qqqqqqqqqqqqq\2eeeeeee eeeeeeeee eeeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww
Нажал ПКМ на заголовке. Получил:

Code: Select all

P wwwwww wwwwww ►eeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww ╗
(на самом деле под "P" "прячется кнопка ◄, но её не видно. Ну и ширина поля значительно меньше, чем заголовок панели. Соответственно конец пути присутствует на экране дважды: в поле ввода и в заголовке панели. В общем, извините...
Ну и вдогонку. Зачем нужен DI_DOUBLEBOX, если (а) он высотой в один символ и (б) закрыт остальными элементами диалога?
Короче, диалог пока не принят.

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

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

Post by HaRT »

buniak_a_h wrote:
Wed 09 Oct, 2019 01:14
У меня, честно говоря, получается, что не исправлено, а испорчено.
Исправление позиционирования было только вертикальное — то, где Y0 заменялся на 0. С тем, что вы описываете, попытаюсь разобраться, но позже. Быстро воспроизвести проблему не смог — ни на узкой панели, ни на широкой, ни с меню, ни без (что и не странно). Напишите, пожалуйста, подробно, как повторить эту ситуацию (притом без ConEmu).
У вас точно нет локальных изменений в скрипте? Не используются ли какие-то функции из ваших локальных модулей вместо тех, что в скрипте? Из изменений, которые могли бы иметь хоть какое-то отношение к наблюдаемому у вас поведению было только то, что я убрал DIF_CENTERGROUP за ненадобностью.
buniak_a_h wrote:
Wed 09 Oct, 2019 01:14
Зачем нужен DI_DOUBLEBOX, если (а) он высотой в один символ и (б) закрыт остальными элементами диалога?
Это заголовок диалога, который выносится Фаром в заголовок консольного окна. В том и состоит единственное назначение этого элемента.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1845
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

HaRT, событие DN_CTLCOLORDLGITEM.
Вы сами пишете, что для DI_BUTTON используется две подтаблицы. Так почему Вы одну оставили, а одну - убрали?
Или я не понял документацию (что, в общем, естественно - там написана полная галиматья: нумерация элементов таблицы начинается с 1, а не с 0), то ли есть какие-то недокументированные возможности. Но пусть уж лучше будет. Так что тоже не принимается пока.
Ещё почему-то пропала проверка Param2.ButtonState при Param2.EventType == F.MOUSE_EVENT - я не понял, почему. И просьба на будущее форматирование только "расширять", но не упрощать, а то мне с плохим зрением трудно разобраться, если в одной строке несколько скобок
Пока перерыв...

Post Reply

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