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

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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 28 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: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Fri 25 Oct, 2019 15:00 не знаете ли Вы способ временно запретить вызов макроса (по key-ю)? В Info есть поле disabled - оно как-то влияет? Это был бы самый правильный путь...
Увы, не знаю. Закиньте вопрос в «Macros & Scripts — Нужна помощь» — там больше шансов на содержательный ответ.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

добавит пустой макрос с максимальным приоритетом?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Fri 25 Oct, 2019 14:35 Ладно, буду разбираться...
Заодно не могли бы вы удалить комментарий со словами «не пересчитать позицию мыши в позицию в редакторе» как не соответствующий действительности (см. DlgEditSetCaretFromMouse)?
Фар есть инструмент, а не нянька. © 2009 DrKnS
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,
HaRT

Когда в именах папок попадаются точки, то перемещения в поле ввода на следующий / предыдущий каталог по CtrlRight и CtrlLeft излишне производятся в т.ч. и по этим точкам. При том, что перемещения кликами мышки по кнопкам ► и ◄ происходят нормально, т.е. без учёта точек в именах папок.

Ещё было бы удобно, чтобы по CtrlRight и CtrlLeft можно было бы переходить между вызванными выпадающими меню без необходимости выхода из них.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

citRiks wrote: Fri 25 Oct, 2019 18:32 перемещения в поле ввода на следующий / предыдущий каталог по CtrlRight и CtrlLeft излишне производятся в т.ч. и по этим точкам. При том, что перемещения кликами мышки по кнопкам ► и ◄ происходят нормально
buniak_a_h, у меня есть кое-какие соображения, как сделать эти перемещения более удобными и интуитивными, но не хочется сейчас вас ими отвлекать. Это я к тому, что предлагаю эту логику не менять до дальнейшего обсуждения. (Обсудить смогу на следующей неделе.)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Fri 25 Oct, 2019 18:32 buniak_a_h,
HaRT

Когда в именах папок попадаются точки, то перемещения в поле ввода на следующий / предыдущий каталог по CtrlRight и CtrlLeft излишне производятся в т.ч. и по этим точкам. При том, что перемещения кликами мышки по кнопкам ► и ◄ происходят нормально, т.е. без учёта точек в именах папок.
Ну, на самом деле не только по точкам... По пробелам тоже. Это - стандартная функция перемещения внутри редактора. Можно, наверно, и переопределить. Но хотелось бы рекомендации:
я столкнулся с ситуацией, когда много вложенных папок с очень короткими именами. В результате путь был такой: F:\1\2\3\4\5\6\7\8\9\A\B\C\DПеремещаться кнопками было ну очень неудобно! Может, перемещать сразу на ширину поля редактирования (или, например, на 3/4 ширины) и в получившемся искать слэш? Просто "диалоговый" режим полезен только при длинных путях (когда начало не помещается в заголовок панели и усекается). А тогда "шагание" по слэшам не всегда удобно...
citRiks wrote: Fri 25 Oct, 2019 18:32
Ещё было бы удобно, чтобы по CtrlRight и CtrlLeft можно было бы переходить между вызванными выпадающими меню без необходимости выхода из них.
Этакое "динамическое" дерево? Думал над этим. Но потом появились плагиновые панели, а в них я не знаю способа составить список вложенных папок без закрытия МЕНЮ и реального перехода на выбранную папку. Кроме того,
Last edited by buniak_a_h on Fri 25 Oct, 2019 19:02, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

zg wrote: Fri 25 Oct, 2019 15:08 добавит пустой макрос с максимальным приоритетом?
:-) Попробовал я. Результат ожидаемый:
заблокированный макрос не вызывается - это хорошо. key перехватывается блокирующим (пустым) макросом и до обработчика всё равно не доходит - это плохо…
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Fri 25 Oct, 2019 19:02 Может, перемещать сразу на ширину поля редактирования (или, например, на 3/4 ширины) и в получившемся искать слэш? Просто "диалоговый" режим полезен только при длинных путях (когда начало не помещается в заголовок панели и усекается). А тогда "шагание" по слэшам не всегда удобно...
Вот подобный круг идей я и предлагаю обсудить (после исправления багов). Если коротко, на мой взгляд, будет удобнее, чтобы боковые кнопки осуществляли прокрутку текста, а не движение каретки в нём.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

buniak_a_h wrote: Fri 25 Oct, 2019 19:17key перехватывается блокирующим (пустым) макросом и до обработчика всё равно не доходит - это плохо…
добавьте в обработчик вызов того, что вам нужно.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Fri 25 Oct, 2019 19:20 на мой взгляд, будет удобнее, чтобы боковые кнопки осуществляли прокрутку текста, а не движение каретки в нём.
Согласен. Просто некогда было изучать тему "как это делается".
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Fri 25 Oct, 2019 21:33 Согласен. Просто некогда было изучать тему "как это делается".
Я изучил и использовал в ф-ии DlgEditSetCaretFromMouse. Вам понадобится DM_GETEDITPOSITION, DM_SETEDITPOSITION и EditorSetPosition.LeftPos.
Но лично я очень надеюсь на исправление отрапортованных ошибок до каких-то более серьёзных переделок в скрипте.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

HaRT, я в полном недоумении...
Я подобрал такую ширину панели (и, соответственно, диалога) при которой пустое место между DI_EDIT-ом и DI_BUTTON то есть, то нету.
Порядок действий:
1. Встаю в начало (клавишей Home), отмечаю всё содержимое поля Shift+End (это - для удобства, чтоб была видна граница поля), получаю такой снимок:

2. Делаю, казалось бы, тоже самое, но наоборот: встаю в конец (End, отмечаю всё поле Shift+Home, получаю такой снимок:

Такое впечатление, что при скроллировании последний символ вылезает за пределы DI_EDIT
Last edited by buniak_a_h on Sat 26 Oct, 2019 00:02, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Fri 25 Oct, 2019 23:42 Такое впечатление, что при скроллировании последний символ вылезает за пределы DI_EDIT-а
Скорее наоборот, при выделении от начала к концу первый символ уезжает за левую границу поля ввода. И всё потому, что в Фаре каретка всегда остаётся видимой — посредством соответствующей прокрутки текста. Пока не вижу никакого противоречия.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Fri 25 Oct, 2019 23:49Скорее наоборот
Я там в описании в заголовке второго спойлера ошибся (скопипастил с первого). Исправил. Хотя технологию описал верно.
Итак.
При отметке от начала к концу ничего никуда не вылезает, всё нормально. Т.е. при прокрутке текста влево первый символ не уезжает за левую границу (за левую ничего никогда не уезжает). А вот при отметке от конца к началу последний видимый символ выводится правее поля ввода!
HaRT wrote: Fri 25 Oct, 2019 23:49 не вижу никакого противоречия
Ну не знаю... По мне так если поле ограничено и его содержимое печатается за границей, это - противоречие.
Last edited by buniak_a_h on Sat 26 Oct, 2019 00:10, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Опубликована версия 1.3.5 . Подробности тут
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

zg wrote: Fri 25 Oct, 2019 15:08 добавит пустой макрос с максимальным приоритетом?
zg wrote: Fri 25 Oct, 2019 20:05 добавьте в обработчик вызов того, что вам нужно.
Методом научного тыка я нашёл, как это сделать. НО! Не могли бы Вы подсказать, где искать описание CallBack-функции? У меня получилось, что при наличии CallBack-функции код, записанный в SequenceText, игнорируется (точнее, проверяется синтаксис. Пустую строку не принимает…). В CallBack-функцию передаются какие-то 2 параметра - не нашёл я описания. Короче, кроме описания синтаксиса вызова я ничего не нашёл. Где почитать?
Post Reply

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