Установка/снятие состояния недоступного (серого) пункта меню
|
|
Andrey_A | Дата: Среда, 10.07.2013, 19:53 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Установка/ снятие состояния недоступного (серого) пункта меню Total Commander
Для тех, кто настраивал под себя главное меню, наверняка хотелось как-то структурировать, улучшить, оптимизировать... Про некоторые эксперименты с меню вы можете прочитать тут и тут
В утилите TCIMG 2.8. beta 14 от 10.07.2013 появилась возможность устанавливать для пунктов меню состояние недоступности, отображаемое серым цветом.
Для чего это нужно? На сегодняшний день для Total Commander существует много утилит, скриптов, команд для автоматизации... Те, кто пытался организовать и объединять нужный функционал в меню, сталкивался с проблемой как лучше объединить темы и подтемы. В сборке Total Commander Image когда-то создал заголовки для подтем и придумал, как их делать недоступными и подсвечивать серым цветом.
Пример:
Но это был своего рода костыль, я просто создал в команду cm_Ziro=554 (cm_Ziro - использовал в меню для отделения заголовка от команд), т.е приравнял её к существующей в Total Commander команде (cm_FtpAbort- Прервать текущую FTP-команду), пункт, которой недоступен (серый), если не используется FTP ... Но когда включался FTP, то все такие заголовки превращались в "тыкву" (в обычный пункт меню)
Проводя эксперименты с меню, выяснилось, что это можно делать и без этого.
Команда menug=NUMBER||iMenu1,iMenu2, ... ,iMenuN(||iMenu1,iMenu2, ... ,iMenuN||...)
[helpquote]- NUMBER - 1 - установить серый пункт меню, 0 - снять серый пункт меню - iMenu1,iMenu2, ... ,iMenuN - номер пункта, которому устанавливается/снимается атрибут серого пункта меню. Если пункт находится в подменю (неважно на какой глубине), то указываются весь путь: все соответствующие номера пунктов через запятую, последнему из которых будет присвоен указанный атрибут. Если необходимо присвоить атрибут нескольким пунктам меню, то они (пути) прописываются через разделитель "||". При подсчёте учитывать сепаратор.[/helpquote]
Примеры:
Доступно только для пользователей
Доступно только для пользователей
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Доступно только для пользователей
Доступно только для пользователей
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Доступно только для пользователей
Доступно только для пользователей
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Доступно только для пользователей
Доступно только для пользователей
Так же эту возможность можно использовать при "блокировки" отдельных пунктов меню при определённых условиях.
Для того, чтобы заданные пункты меню "блокировались" при старте Total Commander, необходимо в прописать в autorun.cfg (конфигурационном файле плагина autorun.wdx) строку:
Код # установить заданным пунктам меню состояние недоступности (отображение серым цветом) Total Commander при запуске shellexec "%COMMANDER_PATH%\TCIMG.exe" "menug=0||1,3,5||2,6||3,2,1"
Испытания и тестирование продолжаются. Присоединяйтесь к этому историческому процессу. Все обсуждения статьи, предложения, сообщения об ошибках можно в этой теме или в теме TCIMG
|
|
| |
Andrey_A | Дата: Среда, 17.07.2013, 21:36 | Сообщение № 2 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Продолжение предыдущего сообщения...
Пошёл немного дальше. При большом количестве "заголовков", которым необходимо делать состоянии недоступности, вышеописанная команда неудобна. Во первых, вычисление всех номеров представляется мне очень нудным занятием. Во вторых, при изменении меню надо будет заново составлять, что тоже не хотелось бы делать.
В утилите TCIMG 2.8. beta 16 от 17.07.2013 ввёл новую команду menux, которая решает эту задачу.
Команда menux=NUMBER||NameCommand
[helpquote] [Установка/Снятие состояния недоступного (серого) для пунктов меню заданной команды Total Commander] - NUMBER - 1 - установить серый пункт меню, 0 - снять серый пункт меню - NameCommand - имя команды, названиям которых будет установлено состояние[/helpquote]
Рассмотрим на примере:
Тем пунктам меню, которым необходимо "заблокировать" присваиваем одинаковую для всех команду, к примеру, em_Grey. Ей даже нет необходимости создавать команду в UserCmd.ini, т.к. в главном меню она никогда не будет нажиматься.
Цитата POPUP "Внутренние ассоциации..." MENUITEM "Внутренние ассо&циации в TC Image Alt+H", $207 MENUITEM "Обновление внутренних ассоциаций Alt+J", em_and_2927 MENUITEM "Файл-отчёта о количестве символах в строках FilterN", em_and_2876 MENUITEM "Копировать в буфер путь в виде "Путь" "%1"", em_and_2590 MENUITEM "Вкл./Выкл. ассоциаций в TC Image", em_and_2858 MENUITEM "•••••••••• ДОБАВЛЕНИЕ В АССОЦИАЦИИ ТС •••••••••", em_Grey MENUITEM "Добавить выделенные РАСШИРЕНИЯ файлов (№ фильтра вводится)", em_and_1804 MENUITEM "Добавить выделенные ''ЧИСТЫЕ ИМЕНА'' файлов (№ фильтра вводится)", em_and_1805 MENUITEM "Добавить выделенные ИМЕНА файлов (№ фильтра вводится)", em_and_1806 MENUITEM "•••••••••• ДОБАВЛЕНИЕ В ИГНОРИРУЕМЫЕ АССОЦИАЦИИ ТС ••••••••••", em_Grey MENUITEM "Добавить выделенные РАСШИРЕНИЯ файлов (№ фильтра вводится)", em_and_1807 MENUITEM "Добавить выделенные ''ЧИСТЫЕ ИМЕНА'' файлов (№ фильтра вводится)", em_and_1808 MENUITEM "Добавить выделенные ИМЕНА файлов (№ фильтра вводится)", em_and_1809 MENUITEM "•••••••••• УДАЛЕНИЕ ИЗ АССОЦИАЦИИ ТС ••••••••••", em_Grey MENUITEM "Удалить выделенные РАСШИРЕНИЯ файлов", em_and_1810 MENUITEM "Удалить выделенные ''ЧИСТЫЕ ИМЕНА'' файлов", em_and_1811 MENUITEM "Удалить выделенные ИМЕНА файлов", em_and_1812 MENUITEM SEPARATOR MENUITEM "Набор колонок отображающий ассоциации", em_and_716 MENUITEM "Обновить информацию для набора колонок", em_and_715 END_POPUP
И теперь нажав на кнопку все пункты, имеющие команду em_Grey станут "серыми":
Доступно только для пользователей
Обратное действие
Доступно только для пользователей
Для того, чтобы пункты меню с заданной командой "блокировались" при старте Total Commander, необходимо в прописать в autorun.cfg (конфигурационном файле плагина autorun.wdx) строку:
Код # установить состояние недоступности пунктам меню Total Commander с командой em_Grey при запуске shellexec "%COMMANDER_PATH%\TCIMG.exe" "menux=1||em_Grey"
Испытания и тестирование продолжаются. Присоединяйтесь к этому историческому процессу. Все обсуждения статьи, предложения, сообщения об ошибках можно в этой теме или в теме TCIMG
|
|
| |
asmadeus | Дата: Четверг, 13.03.2014, 00:07 | Сообщение № 3 |
|
Разрули тему - не работает ни через авторан, ни через кнопку. Код TOTALCMD#BAR#DATA "D:\Total Commander\Utils\TCIMG\TCIMG.exe" menux=1||em_1234 D:\Total Commander\Utils\TCIMG\TCIMG.exe Установить состояние недоступности пунктам меню, которым присвоена команда em_Grey D:\Total Commander\Utils\TCIMG\
-1 win 7x64
|
|
| |
Andrey_A | Дата: Четверг, 13.03.2014, 08:50 | Сообщение № 4 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата asmadeus ( ) не работает ни через авторан, ни через кнопку У меня на 32 всё рабтает и с em_1234 и em_Grey
Нет под рукой 7x64 Как будет возможность посмотрю...
------------------- Добавлено -------------- Проверил на Вашей сборке.. есть разница в определённых местах и версиях и путях... Попробуй 59_b8.zip
|
|
| |
asmadeus | Дата: Четверг, 13.03.2014, 15:33 | Сообщение № 5 |
|
Цитата Andrey_A ( ) Проверил на Вашей сборке.. есть разница в определённых местах и версиях и путях... Попробуй 59_b8.zip работает)) слава великому комбинатору))
|
|
| |
|