Loopback
Привет! Рады вас видеть!
Успехов и
развития в новом году!
Loopback писал(а):Банальное чтение ключа ini. И AUTORUN_TCLANGFILE делает то же самое, естественно.
Понятно. А чтение ini-файла, на ваш взгляд, каждую секунду в отдельном потоке подойдет в качестве решения, или все же это чрезмерные накладки?
Loopback писал(а):В следующей версии будет набор функций для работы с секциями, они уже готовы.
Здорово! Замечательное расширение функционала.
Loopback писал(а):В принципе меню можно переместить после открытия с помощью оконных функций, вот тут рабочий код. Конечно, некоторое лишнее мелькание, но как вариант.
Да, я видел этот код. Неплохое решение, но меня и ShowPopupMenu вполне пока устраивает. Но спасибо, что заодно объяснили, почему есть эта разница в отрисовке меню.
Loopback писал(а):Чудесный лайфхак! А то мне приходилось кастомный значок со стрелкой делать.
Именно что "хак". Работает все как-то непонятно. Вернее понятно, но не совсем так, как мне хотелось бы.))
Всё, что есть в документации - другого не нашел:
[cut="Russian.cedf"]
PopupOverlay
Кнопки, открывающие другую панель инструментов в виде выпадающего меню, отображаются:
1 (по умолчанию): с добавлением небольшого оверлейного значка (квадратика со стрелочкой-треугольником);
0: в обычном виде, без оверлейного значка.
ПРИМЕЧАНИЯ:
Этот ключ общий для главной (горизонтальной) и вертикальной панелей инструментов.
Кнопка, указывающая на связанную панель инструментов, позволяет отобразить её вместо исходной панели или в виде выпадающего меню кнопки-переключателя, в зависимости от состояния опции "в виде меню" в настройках кнопки и ключа iconicN в исходном BAR-файле (у обычных кнопок функция ключа иная — см. описание ключа Buttonbar). Если включить в настройках указывающей на BAR-файл кнопки указанную опцию (по умолчанию она не отмечена), то щелчком мыши по этой кнопке (или клавишей ENTER при клавиатурной работе с главной панелью инструментов) содержимое соответствующего BAR-файла откроется как выпадающее меню кнопки, а щелчком мыши с удерживанием клавиши SHIFT (или клавишами SHIFT+ENTER при работе с клавиатуры) произойдёт обычное переключение на другую панель. Если опция в "виде меню" оставлена выключенной, то описанными способами выполняется альтернативное действие, а оверлейный значок у такой кнопки не отображается независимо от состояния ключа PopupOverlay.
Отображение другой панели в виде меню сопряжено с рядом особенностей. Например, в таком меню не работает перетаскивание, контекстное меню кнопки выводится без части команд ("Удалить", "Вырезать", "Копировать", "Вставить"), но с добавлением команды для правки открытой в меню панели инструментов, многострочная подсказка выглядит как одна строка без скрытия символа-разделителя, а при открытии контекстного меню кнопки или запуске назначенной ей команды выпадающее меню тут же закрывается.
При создании связанной панели через диалог "Настройка панели инструментов", первой по порядку в новой панели автоматически создаётся (с добавлением разделителя) кнопка для возврата в базовую панель (местоположение кнопки можно потом изменить). По такому же принципу работает утилита Button Bar Editor. При открытии в TC связанной панели в виде меню кнопка возврата, ссылающаяся на текущую панель (и только на неё!), автоматически скрывается, но остаётся видна во всех прочих случаях.
Размер оверлейного значка со стрелочкой-треугольником автоматически подстраивается под размер кнопок в текущей панели инструментов: при отображаемом размере кнопок по 23 пикселя включительно оверлейный значок мелкий, при размере 24x24 он увеличивается примерно вдвое, далее увеличение происходит при размере кнопок 40x40 и 64x64..
В вертикальной панели инструментов, если имеющиеся кнопки не вписываются полностью в отведённую высоту, нижняя часть содержимого панели перемещается в выпадающее меню, открываемое автоматически добавляемой в нижнюю часть панели кнопкой с направленной вниз стрелкой-треугольником (более крупным аналогом упомянутого выше оверлейного значка). Никакими настройками это поведение не управляется, дочерней панелью содержимое указанного меню на самом деле не является, хотя ни внешне, ни функционально это меню не отличается от тех, которые отображаются обычными кнопками для переключения панелей инструментов.
[/cut]
Думал, что может у меня из-за ТС 11.03 не так работает, но сейчас проверил на чистом 11.50 - результат тот же: пока вручную в бар-файле не пропишешь ключ iconicN=1, затененная галочка "в виде меню" не чекается и значок не появляется. Ну, а с ключом PopupOverlay=0, который полностю отключает оверлей, никакие значки вообще не появляются, включая "хакнутый".
Loopback писал(а):Числу можно сопоставить имя в файле TOTALCMD.INC.
Классно, что можно сопоставлять команды и давать им имена. Жаль только, что за этим придется следить при обновлении.
AkulaBig писал(а):Через TCFS2 я не пробовал, чтобы не устанавливать доп утильку.
Для таких задач я как раз предпочитаю TCFS2 - скорость выше и сама по себе утилита "нейтральна" (не нужно привязываться к скриптовому языку для отправки сообщений) и содержит большой набор других полезных функций.
AkulaBig писал(а):Не пойму. Я-же скрин выкладывал и так писал. Если в параметрах кнопки прописать параметр, значок появляется навсегда. Или вы имеете ввиду, что вам обязательно надо было использовать команду Autorun?
Выше я написал, как у меня работает. И выходит, что пока только так.