На самом деле получилось прикольно и, возможно, полезно (если Вы любите настольных грызунов).
Суть:
Клик мышой на заголовке панели, содержащей имя папки, вызывает переход (как в проводнике). А если клик приходится на разделитель (бэкслэш), то предоставляется выбор, в какую папку перейти.
Первоначальный макрос сваян «на коленке» за полчасика, потому не судите строго. Если будут отзывы и замечания — попробую «докрутить».
Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.
Сведения о версии:
Версия 1.4.12.
- Исправлена ошибка процедуры настройки, возникшая из-за изменения интерфейса. Ошибка проявлялась при вызове настройки сликом средней клавиши (колёсиком) на заголовке панели.
- Сделана возможность вызова диалога настройки скрипта через меню настроек плагинов.
- ClickToTitleDir-1.4.12.7z
- (24.95 KiB) Downloaded 32 times
Версия 1.0.3:
Версия 1.1.2
Версия 1.2.1
Версия 1.2.2
Версия 1.2.3
Версия 1.2.4
Версия 1.2.5
Версия 1.2.6
Версия 1.2.7
Версия 1.2.8 (HaRT)
Версия 1.2.9
Версия 1.2.10
Версия 1.2.11
Версия 1.3.0
Исправлены ошибки, перечисленные HaRTом здесь, здесь и здесь:
Версия 1.3.1
Версия 1.3.2
Версия 1.3.3
Версия 1.3.4 (HaRT)
Версия 1.3.5
Версия 1.3.6
Версия 1.4.0
Версия 1.4.1
Версия 1.4.2
Версия 1.4.3
Версия 1.4.4
Версия 1.4.5
Версия 1.4.6
Версия 1.4.7
Версия 1.4.8.
Версия 1.4.9.
Версия 1.4.10.
Версия 1.4.11.
- Клик непосредственно после имени текужей папки выводит список вложенных папок для выбора.
- Клик ВНЕ заголовка (на рамке) вызывает верхнее МЕНЮ (как без макроса).
- При переходе на папку указатель позиционируется на папке, идущей в исходной адресной строке после целевой папки.
- Клик на букве диска теперь вызывает переход в корневую папку диска с позиционирование на первой папке старого пути.
- Реализован автоматический учёт настройки Interface.ShowMenuBar (
[ ] Always show the menu bar
). - Клик ПРАВОЙ кнопкой вызывает простейший диалог (точнее, на месте заголовка панели создаётся поле ввода. Клик по имени папки вызывает переход).
- Устранено засорение системного буфера обмена (актуально при использовании мультибуферов).
- Исправлено правописание в истории версий; улучшена декомпозиция кода.
- Скорректировано поведение при клике на двоеточие после буквы диска и на первый (после двоеточия) слэш. Клик на двоеточие, также как клик на букву диска, вызывает диалог выбора диска; клик на первый слэш, также как на любой другой, вызывает меню выбора подкаталогов. Единственное отличие — в меню включён сам корневой каталог.
- Внесены изменения, касающиеся только «диалогового» режима (уточнение для клика по букве диска).
- Добавлена опция menuFlags (например, 1 — выводить меню без рамки).
- Исправлена ошибка позиционирования.
- Ещё поправлена документация, унифицированы отступы, устранена длинная строка (ибо LuaCheck); подсокращён код.
* учтено замечание (на примереC:\Windows
):- на
C
— выбор диска; - на
C
— переход в корень - на
:
— тоже переход в корень; - на
\
— меню папок в корне.
- на
- Устранён перехват скрытия/показа панелей щелчком мыши в левом верхнем знакоместе окна.
- Уточнена работа опции menuFlags (игнорируются «служебные» биты 3 и 4).
- Исправлено «проваливание» в главное меню при отмене меню директорий при щелчке по первому обратному слэшу.
- Присвоены UUIDы макросу на щелчок ПКМ (правой кнопкой мыши) и открываемому им диалогу.
- Экспериментально: по щелчку ЛКМ на счётчике редакторов/просмотрщиков открывается меню окон, а по ПКМ — задач.
- Устранён ставший ненужным код, подправлены документация и комментарии.
Исправлено последнее расхождение «диалогового» варианта и быстрого, описанное пользователем Yegor в viewtopic.php?p=155544#p155544: [в «диалоговом» режиме] «щелчок ЛКМ на букве диска открывает окно выбора диска, а не переводит в корень, как а обычном режиме.»
- Реализована настройка скрипта.
Code: Select all
╔═══════════ Настройка скрипта ClickToTitleDir ════════════╗ ║ Тип рамки ║ ║ ( ) без рамки (•) одинарная ( ) двойная ║ ║ [ ] Рисовать поля [x] С заголовком ║ ║ [ ] Автоматически назначить "горячие" клавиши ║ ║ [x] "Зацикливать" выбор подкаталога ║ ╟──────────────────────────────────────────────────────────╢ ║ { Ok } [ Cancel ] [ Default ] ║ ╚══════════════════════════════════════════════════════════╝
- Справка в формате hlf.
- Локализация: п. 2 и 3 сделаны только для русского языка.
- Для удобства в файл скрипта включены некоторые мои утилиты, обычно находящиеся в модулях. Просто есть сомнения в их общественной полезности.
Версия 1.1.2
- Подробности здесь.
Версия 1.2.1
- Исправлены некоторые ошибки. В частности, восстановлен вывод списка вложенных папок по
Ctrl+Down
, ограничена ширина диалогового окна шириной панели; - Исправлена ошибка, вследствие которой при настройке символов псевдографики по умолчанию неправильно обрабатывались имена папок, содержащие пробел.
- Добавлена возможность работы скрипта в плагиновых панелях (за исключением смены диска и выбора вложенной папки из списка).
Версия 1.2.2
- Доделана работа в плагиновой панели.
- Слегка гармонизирован диалог настроек.
Версия 1.2.3
- Исправлена ошибка диалогового режима, проявлявшаяся при клике на последний символ имени каталога.
- Переделана организация работы в диалоговом режиме. В результате стало возможным зациклить выбор вложенных папок из МЕНЮ.
- В непосредственном режиме для плагиновой панели реализована возможность как перехода в корневую папку (по клику на имени хост-файла), так и выхода из архива (по клику по префиксу).
- В диалоговом режиме для плагиновой панели в элемент (редактор) пути добавляется префикс плагина и имя хост-файла (если есть). В результате реализован как переход в корневую папку, так и выход из архива по клику по имени хост-файла и по префиксу соответственно.
Версия 1.2.4
- Основная задача — работоспособность в версии ФАРа ранее 3.0.5460 . Пришлось «симулировать» синтаксические разборы функциями match и т.п., т.к. до 3459 они не работали с не-ASCII строками. Возможны проблемы с каталогами, имена которых содержат символы псевдографики и т.п. — не проверял.
Версия 1.2.5
- Непосредственный режим: исправлена ошибка , в результате которой скрипт не выходил из архива по клику на префиксе плагина, если в заголовке панели отсутствует имя хост-файла или текущая папка архива была корневой.
- Непосредственный режим: добавлена возможность немедленного выхода из архива при клике непосредственно перед заголовком панели.
Версия 1.2.6
- Теперь при клике на последнем директории заголовка при наличии вложенных в текущий подкаталогов выводится список вложенных папок (иначе смысла в выборе текущего каталога смысла не было). Т.е. для перехода во внутренний каталог теперь не обязательно прицеливаться в пробел, следующий за текущим.
- Для вызова списка вложенных каталогов теперь не обязательно точно попадать в слэш-разделитель; можно кликнуть левой кнопкой мыши, удерживая
Alt
.
Версия 1.2.7
- Для вызова списка вложенных папок в непосредственном режиме теперь можно использовать прокрутку колёсика мыши вниз на имени папки.
- Переделан скрипт, чтобы он мог работать на версиях ФАР-а ранее 3459.
Версия 1.2.8 (HaRT)
- В диалоговом режиме добавлен вызов Справки по
F1
, а Настройки — поAlt+Shift+F9
илиСКМ
. - Исправлена диагностика файла Справки (например, когда интерфейс Eng, а Справка — Rus).
- Дополнена и исправлена Справка, унифицировано форматирование.
- Упрощены логические условия в коде, улучшены идентификаторы.
- (BAX) Исправлена ошибка, существенно осложнявшая доступ к главному меню.
Версия 1.2.9
- Добавлена настройка
[x] Показывать скрытые каталоги
— включать ли в выпадающий список вложенных папок директории с атрибутом “hidden” («скрытый»). Атрибут «системный» не учитывается.
Версия 1.2.10
- Настройка
[?] Показывать скрытые каталоги
стала трёхпозиционной:[ ]
— не показывать;
[x]
— показывать;
[?]
— учитывать настройку FAR-а и установленные фильтры.
- Режим фильтрации папок при выборе вложенного каталога из не-плагиновой панели теперь можно переключить прямо из списка по клавише
Ctrl+H
. - Исправлена ошибка, проявлявшаяся при выборе из списка папок элемента
..
из корневой папки архива. - Исправлена ошибка, из-за которой по вращению колёсика и по клику ЛКМ с
Alt
в плагиновой панели в некоторых случаях не вызывалось выпадающее меню вложенных папок.
Версия 1.2.11
- Исправлена ошибка, проявлявшаяся при многократном перемещении «вперёд» и «назад» по вложенным папкам внутри архива.
Версия 1.3.0
Исправлены ошибки, перечисленные HaRTом здесь, здесь и здесь:
- При состоянии настройки
[?] Показывать скрытые каталоги
при щелчке на разделителе выводятся подпапки текущей директории, а не той, чей разделитель щёлкнули. - Исправлена ошибка, в результате которой при выключенной настройке
«Зацикливать» выбор подкаталога
происходил немедленный выход из меню без выбора целевого каталога. - Переделана процедура формирования списка вложенных папок (рефакторинг).
Версия 1.3.1
- Восстановлено позиционирование в списке вложенных папок при первом вызове меню, утерянное в версии 1.3.0.
- Изменён текст кнопки Cancel, добавлены «горячие клавиши».
- При составлении списка вложенных папок с диска (не по панели) добавлена сортировка.
- Рефакторинг…
Версия 1.3.2
- Доработан выбор языкового файла, когда для Справки используется другой язык (например, когда интерфейс Eng, а Справка — Rus).
- Добавлена локализация для английского языка.
- При открытии диалога настроек фокус устанавливается не на первый попавшийся элемент, а на кнопку Отменить.
- Редакторские правки в файле Справки.
- Исправлена пара предупреждений в коде.
Версия 1.3.3
- Исправлена ошибка, проявлявшаяся в том, что в некоторых плагиновых панелях (в частности, в MultiArc) не работал переход на каталог (не работает функция
panel.SetPanelDirectory
). - Исправлена ошибка, в результате которой при клике с клавишей
Alt
и при вращении колёсика мыши над буквой диска вместо списка подкаталогов корневого каталога происходил переход в корневой каталог или вызывался диалог выбора диска. Также убран вызов верхнего меню ФАРа при вращении колёсика над верхней стороной рамки панели. - Начальный фокус в диалоге настроек перенесён на активную радио-кнопку группы Тип рамки.
Версия 1.3.4 (HaRT)
- Реализовано открытие меню выбора вложенного каталога по кручению колёсика в диалоговом режиме.
- Исправлено вертикальное положение меню выбора вложенного каталога при постоянно показанном главном меню Farа.
- Дополнена/исправлена Справка.
- Сделаны мелкие улучшения в коде.
Версия 1.3.5
- Исправлена проверка версии ФАР-а .
- Исправлена ошибка, из-за которой клик с
Alt
ом на букве диска или двоеточии, а также вращение колёсика мыши над ними вызывали переход в корень вместо вызова списка вложенных папок. - Изменён порядок анализа в диалоговом режиме: теперь клик по букве диска или двоеточию в случае, если на панели и так открыт корневой каталог, приводит к вызову списка вложенных папок.
- В очередной раз переделана (упрощена) логика формирования диалога при клике ПКМ на заголовке панели.
- В диалоговом режиме нажатие на кнопки
◄
и►
теперь приводит не к смещению каретки по полю редактора, а к прокрутке содержимого поля. - Нажатия клавиш
Ctrl+←
иCtrl+→
теперь приравнены к нажатиям кнопок◄
и►
, таким образом перемещение этими клавишами будет не по словам, а по разделительным слэшам.
Версия 1.3.6
- Приняты меры для предотвращения перехвата события вращения колёсика мыши другими скриптами в соответствии с рекомендациями
zg. Подробности тут и тут. - Начальное положение элемента редактирования в диалоговом режиме «подогнано» к расположению заголовка панели таким образом, чтобы после переключения в диалоговый режим местоположение курсора и видимый текст в редакторе не сдвигались.
Версия 1.4.0
- Изменено чтение строки с заголовками панелей: теперь используется не встроенное копирование текста окна (Screen Grabber), а API консоли Windows.
- Контроль горизонтальной координаты перенесён в
condition
и несколько изменён: теперь макрос реагирует на клик ЛКМ и ПКМ только по самому заголовку и соседнему с ним знакоместу (слева и справа) и по счётчику открытых редакторов/просмотрщиков в левой верхней части экрана, а на клик СКМ (колёсиком) — в любом месте строки. - Изменена логика прокрутки текста в диалоговом режиме: сначала текст прокручивается на ширину поля, затем в видимой части происходит переход на первый / последний слэш в зависимости от направления прокрутки. При этом если реальной прокрутки не было, то происходит переход на следующий слэш.
- Исправлена процедура определения «целевой» панели для случаев, если одна из панелей широкая.
Версия 1.4.1
- Сделана обработка ситуации, когда панель, на которую пришёлся щелчок мыши, пассивная, а режим показа панели — полноэкранный. В этом случае часть панели «заслоняется» активной панелью, и для корректной обработки приходится переключать панели. Внешне это заметно в диалоговом режиме.
Версия 1.4.2
- Реализована навигация по списку папок при помощи клавиш
Ctrl+←
иCtrl+→
(на каталог выше и внутрь текущего каталога). Переходы допустимы независимо от настройки[ ] «Зацикливать» выбор подкаталога
. - Экспериментально: реализована настройка цветов для «диалогового» режима.
Причина: если целевая панель пассивная и режим её показа полноэкранный, то часть заголовка «прикрыта» активной панелью; в результате диалог выбора папки визуально сливается с заголовком активной панели (кому не надо — не пользуйтесь, просто ставил эксперименты).
Версия 1.4.3
- Исправлена мелкая ошибка, возникавшая в диалоговом режиме, если из него вызвать диалог настроек и затем выполнить переход или вызвать список вложенных папок.
- Исправлена ошибка, в результате которой настройки цветов актуализировались немедленно и действовали до перезагрузки макросов даже после отмены.
Версия 1.4.4
- Исправлена ошибка, в результате которой после некоторых действий (вызов списка окон / процессов, клик по слэшу) нарушалась работоспособность скрипта.
Версия 1.4.5
- Сделана локализация настройки цветов.
- Убран отладочный вывод, оставшийся в версии 1.4.4.
Версия 1.4.6
- Реализован вызов «диалогового» режима комбинацией клавиш. По умолчанию вызывается по AltT:Double. Для таких возможностей требуется скрипт MacroEx.
- Реализована настройка сочетания клавиш, вызывающего «диалоговый» режим.
- При входе в диалоговый режим предусмотрено гашение выделения текста (не проверено — нет условий).
Версия 1.4.7
- При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
- Стилистические правки в языковых файлах и Справке.
- Диалог настроек перекомпонован таким образом, чтоб всё помещалось.
- В диалоге настроек реализована краткая контекстная подсказка (, но не всплывающая, а выводимая в «подвале» формы).
Версия 1.4.8.
- При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
- Стилистические правки в файлах помощи и языковом
- Перекомпонован диалог настройки таким образом, чтоб всё помещалось
- В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы.
Версия 1.4.9.
- Исправлена ошибка, приводившая к "блокировке" скрипта в случае клика по рамке панели вне заголовка (вне «чувствительной зоны»).
(Блокировка - неработоспособность скрипта до перезагрузки макросов командойmacro:load
)
Версия 1.4.10.
- Изменён алгоритм синтаксического разбора строки заголовка для корректной обработки времени, заданного в американском формате (
2:10 AM
) при клике по правой панели
Версия 1.4.11.
- Исправлена ошибка процедуры настройки, в результате которой не сохранялась «горячая клавиша» вызова диалогового окна.
- В настроечном диалоге вызов сервиса ввода «горячей клавиши» теперь вызывается по
Ctrl+↓
в поле текстового ввода
Вместе с файлом самого скрипта поставляются языковые файлы
ClickToTitleDirRus.lng
и ClickToTitleDirEng.lng
и файл помощи ClickToTitleDirRus.hlf
.