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 ... 136, 137, 138, 139  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
sa



Joined: 29 Apr 2009
Posts: 2588

Post (Separately) Posted: Tue May 14, 2024 17:14    Post subject: Reply with quote

yozhik
Это
Code:
Set hintF3 "View File"
ControlSetHint /B:1 17 hintF3
показывает hintF3, а это
Code:
ControlSetHint /B:1 17 "My Hint" & auLF & "line 2"
как у вас - половину.
Так что всё, как у вас!
У меня x32.

Orion9 wrote:
срабатывает даже не через раз, а больше
Мне показалось, что для уверенного срабатывания указатель мыши надо подводить к нижней половине кнопки...
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1307

Post (Separately) Posted: Tue May 14, 2024 19:05    Post subject: Reply with quote

yozhik wrote:
Эх, похоже да, не работают в ControlSetHint с ф-ми кнопками ни переменные, ни вывод пользовательских Func, ни спец-символы (auTAB, etc.), ни даже конкатенация (&). А как же теперь?

Можно по аналогии с ShowPopupMenu использовать функцию с ключом /F.

Остальное тоже всё работает. Просто поскольку функция записана в командном виде, выражения с конкатенациями надо обернуть в вычисляемую строку.

Code:
ControlSetHint /B:1 17 %'"My Hint" & auLF & "line 2"'


yozhik wrote:
А вот такое показывает только половину, т.е. всё после "My Hint" уже не показывает:

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



Joined: 01 Jan 2024
Posts: 237

Post (Separately) Posted: Tue May 14, 2024 20:00    Post subject: Reply with quote

Loopback
Еще раз спасибо за фикс в Runtime.dll, эксперимент удался! Всё работает, как я и ожидал Very Happy
Code:
If Not IsPressed (0x11) Then
   TitleLaunch
Else
   ShowTitle = 0   
EndIf   

Ништяк просто.) Эти строчка позволяет отключать заголовок при запуске ТС с зажатым CTRL.)

И более того:
Code:
ControlSetHint /F /B:1 17 "FButtonsHintText"
ControlSetHint /F /B:2 17 "FButtonsHintText"

Func FButtonsHintText()
Local tip = "No Info"
   
   If IsPressed (0x11) Then
      tip = "CTRL"
   else
      tip = "CTRL выключен"
   EndIf
   Return tip
EndFunc

Выводит разный текст тултипа при заходе мыши на контрол при зажатом или отпущенном CTRL! Развить эту тему далее - дело техники.)

Вот что еще хотелось бы по этому поводу отметить: если функция возвращает пустой текст, то хинт по идее не должен всплывать совсем. Сейчас в такие моменты появляется маленький кусочек тултипа, и это правильно с одной стороны, но с другой - так нельзя управлять его появлением.

Можно еще к функции добавить обработку параметра, хотя бы одного?
ControlSetHint /F /B:2 17 "FButtonsHintText" "param"
Loopback wrote:
Не могу подтвердить. Фокус тотала ничто не перехватывает? Подсказки не будут отображаться на несфокусированном окне.

Пробую сейчас на Win11 Pro, может, в этом дело. Но на другой системе сейчас не могу проверить. Но, вероятно, какая-то проблема все же есть, поскольку как верно заметил sa при заходе "снизу" вероятность появления тултипа возрастает Smile

Добавлено спустя 6 минут:

Quote:
Вариант подсветки для AkelPad. Скромная-сырая-недоделанная — но поскольку это состояние перманентно, то что есть, то есть:

Спасибо, забрал.) Сегодня вечером как раз и заценю Smile
Back to top
View user's profile Send private message
yozhik



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

Post (Separately) Posted: Tue May 14, 2024 20:14    Post subject: Reply with quote

Loopback wrote:
надо обернуть в вычисляемую строку

Ой-ё-ёй, забыл совсем за давностью. Прошу великодушного пардону за напрасный шум Embarassed Всё работает просто замечательно.


Last edited by yozhik on Tue May 14, 2024 21:23; edited 1 time in total
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2588

Post (Separately) Posted: Tue May 14, 2024 21:05    Post subject: Reply with quote

Orion9 wrote:
при заходе "снизу" вероятность появления тултипа возрастает

Откуда идёт заход не имеет значения: важно, где остановить указатель – в верхней (плохо) или нижней (хорошо) половине кнопки.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1307

Post (Separately) Posted: Tue May 14, 2024 22:44    Post subject: Reply with quote

Orion9 wrote:
Вот что еще хотелось бы по этому поводу отметить: если функция возвращает пустой текст, то хинт по идее не должен всплывать совсем.

Соглашусь, надо добавить проверку.

Orion9 wrote:
Можно еще к функции добавить обработку параметра, хотя бы одного?

Наверно можно, только этим закрывается потенциальная возможность добавить еще параметры в ControlSetHint, останутся только ключи. В принципе никто ведь не мешает сделать под каждый вызов свою функцию.

Orion9 wrote:
Пробую сейчас на Win11 Pro, может, в этом дело.

Вероятно нет, у меня в виртуалке на Win11 23H2 никаких аномалий. На основной системе с Win10 нормально, на другой с высоким разрешением и масштабом 200% тоже, так что даже разным масштабным коэффициентом не объяснить. Вообще, если на этих кнопках работает ControlSetMouseAction, то должно работать и здесь, код определения окна и прямоугольника кнопки идентичный.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 237

Post (Separately) Posted: Wed May 15, 2024 01:10    Post subject: Reply with quote

sa wrote:
Откуда идёт заход не имеет значения: важно, где остановить указатель – в верхней (плохо) или нижней (хорошо) половине кнопки.

Да, уже убедился. Достаточно чуть-чуть сдвинуть указатель в нижней части и хинт всплывает исправно даже с клавишами модификаторами.
Сделал на скорую руку скрипт с неплохим потенциалом дальнейшего развития, может кому пригодится (только переменные AutoHotkeyPath и ConfigPath нужно будет определить, а то я в спешке на рабочем конфиге эксперимент ставил)
 Shortcuts.ahk

 Title.aucfg

Считывается информация о назначенных клавишах из конфига ТС и показывается в полном сортированном виде при наведении на F3 и F4. Если при этом зажат Ctrl, Alt или Shift, то фильтруются только комбинации с этой клавишей.

Добавлено спустя 3 минуты:

yozhik
Quote:
ариант подсветки для AkelPad. Скромная-сырая-недоделанная — но поскольку это состояние перманентно, то что есть, то есть:

Да нормальная подсветка.) Только мне показалось, что зря жирным сделаны функции, непривычно как-то.

Добавлено спустя 3 минуты:

Loopback
Quote:
Наверно можно, только этим закрывается потенциальная возможность добавить еще параметры в ControlSetHint, останутся только ключи. В принципе никто ведь не мешает сделать под каждый вызов свою функцию.

Да, не нужно это, согласен. Можно через обертку. А с хинтом надо смотреть...
Back to top
View user's profile Send private message
yozhik



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

Post (Separately) Posted: Wed May 15, 2024 07:15    Post subject: Reply with quote

Orion9 wrote:
зря жирным сделаны функции, непривычно как-то

Помимо вкуса это ещё ж и от шрифта зависит. Если разница в толщине между начертаниями невелика и сбалансирована, то норм. У меня, к примеру, Iosevka Curly.

—————————

Пока подготавливается справка, пускай конспект повисит здесь:

Плагин Tweaks, всплывающие подсказки

ShowHint
Code:
ShowHint("text" [, x, y])

Универсальная функция отображения подсказки. Закрывается кликом на самой подсказке, на свободном месте окна или по ESC. Цвета берутся из настроек TC. Поддерживает темную тему и переключение командой cm_SwitchDarkmode. По умолчанию, без задания x, y, показывается под курсором.

ControlSetHint
Code:
ControlSetHint [/F] [/D:<ms>] [/H:<area>] [/B:<1..7>] <id> <text>

Регистрирует подсказку по наведению на элемент окна TC.

При /F параметр <text> — имя функции, возвращающей текст подсказки. По аналогии с ShowPopupMenu.
/D:<ms> — дополнительная задержка в мс.
/H:<area> — сумма флагов зон окна. Используется только с <id> = 0. Подробнее см. в ControlSetMouseAction.
/B:<1..7> — кнопка нижней панели. Используется только с <id> = 17. Подробнее см. в ControlSetMouseAction.

Примеры:
Code:
ControlSetHint /B:1 17 "My hint"
ControlSetHint /B:1 17 %'"My hint" & auLF & "Line 2"'

ControlSetHint /F /B:1 17 "MyFunc"
Func MyFunc()
  Local s = "My hint" & auLF & "Line 2"
  Return s
EndFunc

— отображает подсказку при наведении на кнопку F3 Просмотр.

SetHintParam
Code:
SetHintParam("CSH" | "SH", <param_id>, <param1> [, <param2> ... <param5>])

Первый параметр SH или CSH — для какой функции будут заданы параметры: ShowHint или ControlSetHint

Далее: <param_id> — его параметр(ы):
  • Reload — перезагружает параметры из конфига TC заново
  • Delay — (только для CSH) задержка появления подсказки, в мс
  • Font — шрифт, порядок параметров: size, face, weight, style, charset
  • BackColor, DarkBackColor — цвет фона: 0xRRGGBB
  • Text, DarkText — цвет текста: 0xRRGGBB
  • Border, DarkBorder — цвет рамки: 0xRRGGBB

Примеры:
Code:
SetHintParam("SH", "Font", 9, "Courier New")
SetHintParam("SH", "BackColor", 0x00FF00)
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2588

Post (Separately) Posted: Wed May 15, 2024 11:12    Post subject: Reply with quote

Orion9 wrote:
Да, уже убедился. Достаточно чуть-чуть сдвинуть указатель в нижней части и хинт всплывает исправно

Кажется, проблемы возникают при отключённой командной строке. При её наличии – кнопка используется не на половину, а целиком. Просьба проверить.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1307

Post (Separately) Posted: Wed May 15, 2024 12:54    Post subject: Reply with quote

sa wrote:
Кажется, проблемы возникают при отключённой командной строке.

Точно, дело именно в этом. Неудивительно, учитывая что контрол с кнопками также включает в себя командную строку, и если ее отключить, как раз и будет такой эффект, т.к. вдвое уменьшенная высота контрола будет ещё раз делиться пополам. Так что при расчете нужно учитывать, показывается ли в данный момент командная строка.

Кстати, CSMA ведь тоже этому подвержена, но за столько лет никто этого не заметил.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 237

Post (Separately) Posted: Wed May 15, 2024 14:29    Post subject: Reply with quote

sa
Loopback
Когда попробовал в Win8.1 сразу подумалось, что дело в какой-то тонкой настройке, но идей на это счёт совершенно не было. Спасибо, что нашли в чём причина.

Quote:
Кстати, CSMA ведь тоже этому подвержена, но за столько лет никто этого не заметил.

Это нормально. Flasher, конечно, расписал всё как с куста в справке, но много ли пойдет так далеко? Не каждый сборщик станет этим заморачиваться, тут нужен особый вид любви:
 Hidden text

А ведь зря. По-сути, можно повесить полезные менюшки повсюду "где хошь", например на той же F3:
ControlSetMouseAction /R /B:1 17 TitleBarMenu
Просто я, к примеру, еще не успел до этого добраться Smile

yozhik
Quote:
Помимо вкуса это ещё ж и от шрифта зависит. Если разница в толщине между начертаниями невелика и сбалансирована, то норм. У меня, к примеру, Iosevka Curly.

Ну да, с этим шрифтом смотрится получше. Но мне бы хотелось совсем убрать жирный текст, как это сделать? А то я в этом деле совсем не разбираюсь, AkelPad юзаю "как-есть" с их сайта, так и не нашел время в нем поковыряться.)
Quote:
Пока подготавливается справка, пускай конспект повисит здесь:

Спасибо! Это дело нужное...))

P.S. Ох чуть не забыл:
sa
Я проверил в Win8.1 на других путях и дисках, с пробелами и без, но проблем не обнаружил. У вас случайно не старая версия Autorun_Process.dll, в которой была загвоздка с функцией ProcessExecGetOutput (она резала путь). Нужна последняя версия библиотеки, где это исправлено:
https://total.darkhost.ru/files/temp/autorun_process_20240318.zip
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2588

Post (Separately) Posted: Wed May 15, 2024 15:06    Post subject: Reply with quote

Loopback wrote:
Кстати, CSMA ведь тоже этому подвержена, но за столько лет никто этого не заметил.

Эх, какая фича-то, оказывается была: на нижние половинки функциональных кнопок можно было свои команды навесить (а теперь ещё и снабдить подсказками), в то время, как верхние половинки работали бы по умолчанию!

Я натыкался когда-то на нестабильность работы кнопки (F6 Перемещение) при нажатии левой кнопки мыши с модификатором, но не докопался до причины. Просто закомментировал строку в autorun.cfg до лучших времён. Но там ещё вмешался и мой ляп – пытался использовать в качестве модификатора клавишу Win, которая допустима в SetHotkeyAction, но не в ControlSetMouseAction.

Orion9 wrote:
Нужна последняя версия библиотеки

"Слонёнка"-то на 131 странице я и не приметил!
Теперь задваивать файл Title.ahk нет необходимости. Спасибо!
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1307

Post (Separately) Posted: Wed May 15, 2024 16:09    Post subject: Reply with quote

Orion9 wrote:
По-сути, можно повесить полезные менюшки повсюду "где хошь", например на той же F3

Собственно, с этого всё и начиналось, для этого в первую очередь и делалось. Это уже потом разрослось до универсального решения.

sa wrote:
Эх, какая фича-то, оказывается была: на нижние половинки функциональных кнопок можно было свои команды навесить

Ну, фича-то сомнительная, попадать в нужную половину кнопки вслепую Smile Да и работало только при скрытой командной строке. Но и так достаточно вариантов остаётся - средняя и правая кнопки + модификаторы.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2588

Post (Separately) Posted: Wed May 15, 2024 16:25    Post subject: Reply with quote

Loopback wrote:
Ну, фича-то сомнительная, попадать в нужную половину кнопки вслепую

Теперь же подсказка есть.
Да я не серьёзно! Smile
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 237

Post (Separately) Posted: Wed May 15, 2024 20:43    Post subject: Reply with quote

yozhik
Quote:
Но мне бы хотелось совсем убрать жирный текст, как это сделать? А то я в этом деле совсем не разбираюсь, AkelPad юзаю "как-есть" с их сайта, так и не нашел время в нем поковыряться.)

Таки пришлось поковыряться. Жирный и курсив там отключается легко, а вот сделать, чтобы можно было переключаться между двумя подсветками на одном .aucfg файле, как оказалось, не так уж. Отличия от авторского варианта у вас безусловно есть, и мне синий цвет определения функций даже больше заходит, т.ч. будем пользоваться и хранить обе подсветки.)
Loopback wrote:
Собственно, с этого всё и начиналось, для этого в первую очередь и делалось. Это уже потом разрослось до универсального решения.

Настолько универсального, что пора Гислеру делать отдельную команду для связи с плагином Autorun, чтобы не задействовать сторонние средства, типа TCFS2 в качестве триггера для зарегистрированных функций.)
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 ... 136, 137, 138, 139  Next
Page 137 of 139

 
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