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

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

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

Post by buniak_a_h »

Latest post of the previous page:

HaRT wrote: Tue 29 Oct, 2019 21:11 в диалоговом режиме СКМ срабатывает в пределах диалога с первого раза (правильно), а во всём остальном окне — со второго.
Это ж Вы делали… Видимо, кроме Param1 надо проверять координаты мышки
citRiks
Posts: 805
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 255 times
Been thanked: 46 times

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

Post by citRiks »

citRiks wrote: Fri 25 Oct, 2019 18:32 было бы удобно, чтобы по CtrlRight и CtrlLeft можно было бы переходить между вызванными выпадающими меню без необходимости выхода из них
buniak_a_h wrote: Fri 25 Oct, 2019 19:02Этакое "динамическое" дерево? Думал над этим. Но потом появились плагиновые панели, а в них я не знаю способа составить список вложенных папок без закрытия МЕНЮ и реального перехода на выбранную папку. Кроме того, для показа списка я использовал самый простой из доступных способов - Menu.Show. Так как на первый вариант ушли минуты, я думал просто поэкспериментировать. А эта функция не поддерживает BreakKey-ев. Короче, много возни...
Составил себе 2 примитивных работоспособных ,
но хотелось бы, чтобы они не пересекались с другими меню. Поэтому нельзя ли вместо Menu.Show использовать far.Menu и задать для этого меню уникальный GUID?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

buniak_a_h wrote: Mon 28 Oct, 2019 19:52 Иногда с пустой строкой far.MacroAdd возвращал false и, соответственно, макрос не добавлялся. return мне показался хорошим выходом.
В распоследних сборках можно и return убрать:
полный список изменений wrote:shmuel 28.10.2019 20:59:35 +0200 - build 5499

1. Поскольку в документации данный случай не оговорен, MacroAddMacro::SequenceText может быть
пустой строкой. Пустая строка - это валидный скрипт.
Но если поддерживать «стабильную» сборку, то, увы, нельзя.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

HaRT, спасибо, разъяснили. Просто у меня несколько ФАР-ов стоит, после того, как я получил сообщение об ошибке в стабильной версии, я проверяю на ней. Возможно, «иногда» как раз и объясняется этим. А то я уж думал, что у меня ку-ку поехало…
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Wed 30 Oct, 2019 11:44
citRiks wrote: Fri 25 Oct, 2019 18:32 было бы удобно, чтобы по CtrlRight и CtrlLeft можно было бы переходить между вызванными выпадающими меню без необходимости выхода из них
Составил себе 2 примитивных работоспособных ,
но хотелось бы, чтобы они не пересекались с другими меню. Поэтому нельзя ли вместо Menu.Show использовать far.Menu и задать для этого меню уникальный GUID?
На самом деле я думал, что "без закрытия МЕНЮ" означает меню не закрывать. Т.е. открывать новое на новом месте на экране (со смещением по отношению к предыдущему), не закрывая предыдущее. Оба Ваши макроса предыдущее закрывают; в этом случае если в CtrlLeft ещё есть какой-то смысл (заменяет 2 кнопки: Home и Enter), то в CtrlRight вообще смысла не вижу. Чем это хуже Enter?
В принципе, можно сделать такой макрос, который не будет зависеть от настройки "Зацикливать меню". Пример такого макроса имеется прямо в главном скрипте (реакция на CtrlH)
Сделаю в следующую версию.
Last edited by buniak_a_h on Wed 30 Oct, 2019 15:00, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

Касательно меню: если оно вызвано из диалогового режима с клавиатуры (CtrlDown), то несколько сбивает с толку, что появляется оно по-прежнему на «долготе» мышки, которая зачастую где-то сбоку. Поэтому пожелание: при вызове меню с клавиатуры позиционировать его не по мышке, а по каретке.
Фар есть инструмент, а не нянька. © 2009 DrKnS
citRiks
Posts: 805
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 255 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h,
HaRT,

А по мне, так предпочтительнее было бы, чтобы меню, независимо от того, вызвано ли оно мышкой или с клавиатуры, позиционировалось бы для левой панели по правому её краю (с "накатом" на пассивную правую панель). А для правой панели, наоборот, по левому краю (так же с "накатом" на пассивную панель). Так удобно было бы видно одновременно и меню, и содержимое активной панели.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

citRiks wrote: Wed 30 Oct, 2019 19:24 было бы видно одновременно и меню, и содержимое активной панели
Когда меню что-то перекрывает, его всегда можно ненадолго спрятать, удерживая Ctrl+Alt+Shift (если это не отключено через System.CASRule в far:config).
Фар есть инструмент, а не нянька. © 2009 DrKnS
citRiks
Posts: 805
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 255 times
Been thanked: 46 times

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

Post by citRiks »

HaRT wrote: Wed 30 Oct, 2019 19:31его можно ненадолго спрятать
Да, но ведь это уже будут дополнительные действия.
Которых желательно было бы делать поменьше.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

citRiks, HaRT,
Если вы не против, я бы заменил Menu.Show на свой диалог, имитирующий (и расширяющий возможности) обычного меню. Т.к. это диалог, то его можно было бы просто перетаскивать мышкой. Хотя я пока не понял закономерности: некоторые диалоги перетаскиваются, а некоторые - нет. Возможно, дело во флагах FDLG_SMALLDIALOG и FDLG_NODRAWSHADOW. Если знаете - напишите, пож, чтоб мне время сэкономить. НО! Тогда уж придётся поставлять и модуль (уж очень функция большая, неохота в этот скрипт включать). Ну, правда, тогда и из этого скрипта можно будет убрать многое.
Но это - так, в перспективе.
HaRT wrote: Wed 30 Oct, 2019 18:10 если оно вызвано из диалогового режима с клавиатуры (CtrlDown), то несколько сбивает с толку, что появляется оно по-прежнему на «долготе» мышки
В этом даже оказалось удобство: например, Вам надо перейти в папку, содержащую файл. Либо папка содержит мало файлов, либо файл по сортировке-фильтрации виден на панели. Входите в диалоговый режим, отводите мышку в сторону и ищете свою папку с файлом :-) Панель не заслоняется.
P/S. Пример заменителя можно посмотреть здесь
Last edited by buniak_a_h on Wed 30 Oct, 2019 19:58, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

HaRT wrote: Thu 10 Oct, 2019 18:42 Мне не удалось найти, где этот символ используется в рисовании рамок (я заменил его на «бубны» (♦), но нигде в интерфейсе этого значка не встретил).
Хоть и несколько запоздало, но последний из списка символов псевдографики нашёлся
Фар есть инструмент, а не нянька. © 2009 DrKnS
citRiks
Posts: 805
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 255 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Wed 30 Oct, 2019 19:56 я бы заменил Menu.Show на свой диалог, имитирующий (и расширяющий возможности) обычного меню
Если в результате этого со скриптом работать станет ещё удобнее, то возражений просто не может быть. Пользователю внутненняя кухня по большому счёту не важна.
buniak_a_h wrote: Wed 30 Oct, 2019 19:56 некоторые диалоги перетаскиваются, а некоторые - нет
По особенности перемещения результирующего диалога макроса Find & Go я отметил в его теме.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Wed 30 Oct, 2019 19:24 buniak_a_h,
HaRT,

А по мне, так предпочтительнее было бы, чтобы меню, независимо от того, вызвано ли оно мышкой или с клавиатуры, позиционировалось бы для левой панели по правому её краю (с "накатом" на пассивную правую панель). А для правой панели, наоборот, по левому краю (так же с "накатом" на пассивную панель). Так удобно было бы видно одновременно и меню, и содержимое активной панели.
Поставьте в настройках галочку в [x] Draw margins ([x] Рисовать поля) - и перетаскивайте список мышкой куда хотите. Правда, новое место, боюсь, не запомнится...
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Wed 30 Oct, 2019 21:38 Пользователю внутненняя кухня по большому счёту не важна.
Просто установка усложняется. Надо в разные каталоги разные файлы копировать / распаковывать и не перепутать. Впору скрипт установки поставлять.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

buniak_a_h wrote: Wed 30 Oct, 2019 23:38 Впору скрипт установки поставлять.
Делать хороший — довольно трудоёмко, а плохой не надо.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2035
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Опубликовал версию 1.4.2.
1. Реализована навигация по списку папок при помощи клавиш Ctrl← и Ctrl→ на каталог выше и внутрь текущего каталога). Переходы допустимы независимо от настройки [ ] «Зацикливать» выбор подкаталога.
2. Экспериментально! Реализована настройка цветов для «диалогового» режима. Кому не надо - не пользуйтесь, просто ставил эксперименты.
Post Reply

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