Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 126, 127, 128 ... 190, 191, 192  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Thu Aug 24, 2023 22:44    Post subject: Reply with quote

Loopback
Да, версия по данной ссылке.

Пока тестирую на данной команде.
Code:
ControlSetMouseAction /M:U /B:1 17 ShowPopupMenu /A:16 %COMMANDER_PATH%\Language\HINTS.MNU


Само содержание MNU примерно такое
Code:
MENUITEM "Переименовать\tF2  ", em_hotkey
MENUITEM "Создать файл/папку\tF7  ", em_hotkey
MENUITEM SEPARATOR
MENUITEM "Настройки\tA+P  ", em_hotkey
MENUITEM "Поиск\tA+F  ", em_hotkey


Иконка одна для всех пунктов
В WCMICONFLAT.INC прописана 10000=277
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1534

Post (Separately) Posted: Thu Aug 24, 2023 23:54    Post subject: Reply with quote

jentoso
А, вот в чем дело. Вообще-то .inc файл предназначен для маппинга значков внутренних команд для главного меню, поэтому плагин читает индексы из .inc только для cm-команд. Для em-команд значок должен прописываться в usercmd.ini (или Wcmd_XXX.ini), откуда их плагин и читает.

Прописывание в .inc <10000+индекс em-команды в меню>, если я правильно помню, недокументированная возможность. Да, она добавит значок в главное меню, но не ассоциирует его с em-командой. Добавление такой em-команды на панель инструментов не поставит правильный значок автоматически. Я бы сказал, что это не совсем корректное использование пользовательских команд.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Aug 25, 2023 00:05    Post subject: Reply with quote

Loopback
Теперь понято в чем дело. Можно и без иконки в таком случае обойтись.

А почему не отображаются все стандартные иконки, которые в главном меню, если к примеру вызвать WCMD_EXT_RUS.MNU?
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1534

Post (Separately) Posted: Fri Aug 25, 2023 00:27    Post subject: Reply with quote

jentoso
Не знаю, нужны конкретные файлы, набором. Может парсер где-то неверно отрабатывает. Может значок не читается.

Попробовал скачать и проверить расширенное меню. Я не вижу разницы в значках между главным меню и меню выводимым плагином... Там где их нет, их нет и в главном меню.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 257
Location: Электросталь

Post (Separately) Posted: Fri Aug 25, 2023 06:31    Post subject: Reply with quote

Loopback
Кажется я отловил баг (только пока не понял где именно: у вас в коде или у себя в голове).
Следующим тестовым примером я хочу добиться, чтобы у меня:
  1. При вызове диалога копирования F5 на кнопках отображалось A2, A3, A4.
  2. При вызове диалога копирования F5 с пришпиленной доп-панелькой на кнопках отображалось A2P, A3P, A4P.
  3. При вызове диалога создания ярлыка CS+F5 на кнопках отображалось B2, B3, B4.
  4. При вызове диалога создания ярлыка CS+F5 с пришпиленной доп-панелькой на кнопках отображалось B2P, B3P, B4P.
 Тестовый пример

Но вместо желаемо-ожидаемого у меня A2..., A2P..., B2... отображаются, а B2P ни в какую. Обратите, пожалуйста, внимание на закомментированный AddCondition после DIALOG_COPYMOVE_PINNED: он не действует, что с ним, что без него, результат тот же.

Сейчас получается, что DIALOG_COPYMOVE_PINNED работает только в паре с DIALOG_COPYMOVE. Т.е. вот такая запись работает, отображается и A3, и A3P:
Code:
AddDialog DIALOG_COPYMOVE
AddControl "TButton" 3 "A3"
AddDialog DIALOG_COPYMOVE_PINNED
AddControl "TButton" 3 "A3P"

А вот такая запись не работает, A3P не отображается:
Code:
AddDialog DIALOG_COPYMOVE_PINNED
AddControl "TButton" 3 "A3P"


Добавлено:
Хм... А в 64-бит у меня DIALOG_COPYMOVE_PINNED вообще перестал работать. Ну, ладно, вначале с 32-бит бы разобраться.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Aug 25, 2023 10:28    Post subject: Reply with quote

Loopback
Вот как отображается у меня


Если такое поведение только у меня, скорее всего это частный случай (особенность системы, наличие загруженных плагинов и т.д.), но в целом на работоспособность не влияет.
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1534

Post (Separately) Posted: Fri Aug 25, 2023 13:01    Post subject: Reply with quote

yozhik wrote:
При вызове диалога создания ярлыка CS+F5 на кнопках отображалось B2, B3, B4.

Мы же отфильтровали диалог копирования, так что для этого диалога надо делать отдельный обработчик с помощью AddDialog.

yozhik wrote:
При вызове диалога создания ярлыка CS+F5 с пришпиленной доп-панелькой на кнопках отображалось B2P, B3P, B4P.

Исключение для панельки реализовано только для диалога копирования...

Кстати, тут обнаружился интересный баг тотала: если диалог копирования стартует раскрытым (ключ ShowCopyOptions=1), то при открытии диалога создания ярлыка отсутствует кнопка "Опции".


yozhik wrote:
Сейчас получается, что DIALOG_COPYMOVE_PINNED работает только в паре с DIALOG_COPYMOVE.

Всё верно, pinned и post зависимые, DIALOG_COPYMOVE всё равно должен быть объявлен. Фильтры для pinned и post не работают, фильтрация определяется настройками основного диалога (поскольку фактически для всех трех вариантов это остается один и тот же диалог). Пожалуй, это и правда недостаточно документированный момент.

jentoso
Не, ну так, разумеется, не должно быть. Хотелось бы понять, в чем тут дело. Похоже до сих пор никто с такой проблемой не сталкивался.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Aug 25, 2023 13:58    Post subject: Reply with quote

Loopback
Оставил только плагин Autorun, чтобы исключить влияние других плагинов, но эффект с иконками не изменился.
Затем переименовал свой набор иконок WCMICONSFLAT.dll (WCMICONSFLAT.INC) в WCMICONS.dll (WCMICONS.INC), выбрал последний в качестве библиотеки по умолчанию и в итоге все иконки стали отображаться в PopupMenu, но за исключением пользовательских указанных в WCMICONS.INC.
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Fri Aug 25, 2023 14:21    Post subject: Reply with quote

jentoso
Неплохо для начала всё-таки однозначно понять, имеет ли проблема вообще отношение к плагину. Почитайте про порядок работы с библиотеками значков для меню в описании ключа DefaultLib здесь и оцените, всё ли правильно делаете и всё ли нормально отображается в главном меню БЕЗ плагина.
И поясните, пожалуйста, насчёт "пользовательских указанных в WCMICONS.INC". Пользовательские — это что? Связки с командами значков, добавленные пользователем для встроенных команд (cm_), НИЧЕМ не должны функционально отличаться в этом INC-файле от стандартных связок. Если данная библиотека вообще загружается, а не отвергается с использование вместо неё библиотеки по умолчанию.

Loopback
Добавление в INC-файлы связок em-команд со значками действительно не документировано, а на практике создаёт массу проблем. Начиная с того, что числовой идентификатор такой команде присваивается не статический, а по факту динамический, зависящий ТОЛЬКО от порядкового номера данной пользовательской команды среди прочих аналогичных команд данного MNU-файла. Сбить эти настройки проще простого.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Aug 25, 2023 15:03    Post subject: Reply with quote

Avada
По поводу иконок, правильнее будет сказано это иконки пользовательских команд в главном меню.
Иконки были присвоены для em-команд, чтобы ничего лишнего не происходило при их нажатии (просто памятки для горячих клавиш).
Учитывая, что с отображением всех стандартных иконок в Popupmenu разобрался, а связка в INC-файлы em-команд со значками не документировано и создаем массу проблем, наверно стоит на этом и завершить.
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 257
Location: Электросталь

Post (Separately) Posted: Fri Aug 25, 2023 16:19    Post subject: Reply with quote

Loopback wrote:
Мы же отфильтровали диалог копирования, так что для этого диалога надо делать отдельный обработчик с помощью AddDialog.

Верно. Я так и сделал в тестовом примере и оно благополучно работает: надписи B2, B3, B4 отображаются.
Loopback wrote:
Исключение для панельки реализовано только для диалога копирования...

А, теперь понятно. Это как раз у меня и вызвало когнитивный диссонанс (баг в моей голове, как я выразился). Беда то в том, что при введении отдельного обработчика для диалога ярлыков (ДЯ) он наследует настройки PINNED из предыдущего обработчика, т.е. из диалога копирования (ДК). В тестовом примере не только не отображаются B3P, B4P, но вместо них отображаются A3P, A4P — в этом казус (прошу пардону, видимо мне надо было это дословно отрапортовать, но я понадеялся, что вы мой тест у себя воспроизведёте). В реальном же окружении это приводит к тому, что если я настроил ДК, то мне ДЯ лучше вообще не трогать, ибо если я его трону, то он у меня в PINNED состоянии станет вот таким:


И никак евонный PINNED не исправить, единственный выход — это отказаться от настройки ДЯ.
Loopback wrote:
Кстати, тут обнаружился интересный баг тотала

Я его уже зарепортил, и Гислер его уже исправил. Обновитесь, пожалуйста, до TC 11.01RC1 Smile .
Loopback wrote:
Фильтры для pinned и post не работают, фильтрация определяется... Пожалуй, это и правда недостаточно документированный момент.

Вот, вот, очень хорошо было бы прояснить как именно в этом случае работает фильтрация для PINNED. Что определяет границы действия фильтра: следующий вызов AddDialog или вызов AddDialog без PINNED? И вообще не всякий случай очевиден. Вот например, в 64-бит в ДК кнопка «F2 В очередь» это Button 2, а в ДК PINNED она уже Button 7. Хорошо бы юзеру быть уверенным, что когда он настроил Кнопку 2 в одном состоянии диалога, эта настройка экстраполируется на Кнопку 7 в другом состоянии этого же диалога — само по себе это не очевидно.

Но вообще с этими PINNED хорошо бы разобраться. Из истории с вышеупомянутым багом видно, что ДК и ДЯ — взаимозависимы, по факту это вообще один и тот же диалог, только видимость некоторых элементов различается. Если я пришпилил ДК, а затем сразу же вызвал ДЯ, то у меня и ДЯ тоже отобразится пришпиленным. Такие вот дела.

Ну, и в 64-бит настройки для DIALOG_COPYMOVE_PINNED не работают. Кажется работали некоторое время назад. Кажется работали до того, как вы сделали отрисовку (такую замечательную) иконок для маврофильного режима. Точно я не уверен, но помню что я тогда по-всякому тестировал свой код для ДК и всё везде работало. Мне дополнительные тесты предпринимать или вы уже сами увидели?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1534

Post (Separately) Posted: Fri Aug 25, 2023 17:44    Post subject: Reply with quote

jentoso
Ок, смог повторить на наборе из последней ссылки в этой теме. Буду смотреть.

yozhik wrote:
Беда то в том, что при введении отдельного обработчика для диалога ярлыков (ДЯ) он наследует настройки PINNED из предыдущего обработчика, т.е. из диалога копирования (ДК).

Теперь всё ясно. Дело в том, что DIALOG_COPYMOVE используется только для диалога копирования. Он не просто заменяет класс, а включает дополнительную обработку диалога, которая для диалога ярлыков неприменима.

Код должен быть примерно такой:
Code:
AddDialog DIALOG_COPYMOVE
AddCondition /VISIBLE:1 "TButton" 1
AddControl "TButton" 2 "A2"
AddControl "TButton" 3 "A3"
AddControl "TButton" 4 "A4"
AddDialog DIALOG_COPYMOVE_PINNED
AddControl "TButton" 2 "A2P"
AddControl "TButton" 3 "A3P"
AddControl "TButton" 4 "A4P"

AddDialog "TInpComboDlg"
AddControl "TButton" 2 "B2"
AddControl "TButton" 3 "B3"
AddControl "TButton" 4 "B4"


Как быть с прикрепленным окном тут - не знаю. Хоть и старался сделать универсальное решение, каждый раз нововведения ломают уже сделанное и не всё можно исправить без каких-то совсем вычурных ходов.

Взять хотя бы историю с плавающими экземплярами в x64. Оказалось, что в момент, когда плагин выполняет работу и все контролы уже должны быть созданы (непосредственно перед отображением окна), оказалось, что скрытые контролы (те, которые под кнопкой Опции) еще не созданы! А создаются они с приличной задержкой (не менее 100мс) уже после отображения окна. Т.е. код плагина видит один набор контролов, а Au3Info - другой. Выглядит бредово, но вот так в лазарусе реализовано. И что тут можно сделать?

Так же и с прикрепленным диалогом. Ему потребовалась спецобработка, что уже плохо, но потом оно появилось и для ярлыков. И что теперь - делать еще одно исключение для диалога ярлыков?

yozhik wrote:
Но вообще с этими PINNED хорошо бы разобраться. Из истории с вышеупомянутым багом видно, что ДК и ДЯ — взаимозависимы, по факту это вообще один и тот же диалог, только видимость некоторых элементов различается. Если я пришпилил ДК, а затем сразу же вызвал ДЯ, то у меня и ДЯ тоже отобразится пришпиленным. Такие вот дела.

Хорошо бы, но пока я не знаю, как всё это нормально решить. Остается ждать озарения Very Happy

yozhik wrote:
Ну, и в 64-бит настройки для DIALOG_COPYMOVE_PINNED не работают.

Да вроде код из этого поста - работает нормально.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 257
Location: Электросталь

Post (Separately) Posted: Fri Aug 25, 2023 18:03    Post subject: Reply with quote

Loopback wrote:
И что теперь - делать еще одно исключение для диалога ярлыков?

Нет, ничего не надо делать. Я попробую всё настроить стандартным путём AddDialog "TInpComboDlg" с перечислением фильтров и по результатам отчитаюсь. А потом уже будем ждать озарения Smile

Loopback wrote:
Да вроде код из этого поста - работает нормально.

Ух, он и у меня работает! Значит что-то там вмешивается и скорее всего этот «что-то» и есть ДЯ. Попозже проверю, сообщу.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1534

Post (Separately) Posted: Fri Aug 25, 2023 23:15    Post subject: Reply with quote

jentoso
Оказался банальный копипаст-баг, вместо нужного имени сопутствующего .inc подставлялось "wcmicons.inc", в котором, разумеется, нет всех индексов.

Tweaks 2023-08-25
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Aug 25, 2023 23:26    Post subject: Reply with quote

Loopback
Это изменение в части отображения иконки к пользовательским командам?
Я приводил к использованию WCMICONS.dll (WCMICONS.INC), но как уже выше выяснили, что связка в INC-файлы em-команд со значками проблематична.
_________________
TC 11.51 combo, Windows 10 x64
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 126, 127, 128 ... 190, 191, 192  Next
Page 127 of 192

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group