как создать пункт в меню с галочками (чекбоксами)
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
как создать пункт в меню с галочками (чекбоксами)
хотелось бы создать пункт в меню, который:
а. после первого нажатия выполнял бы первый скрипт и напротив него появлялась бы галочка.
б. после второго нажатия выполнялся бы второй скрипт и галка бы пропадала.
т.е. чтобы все получилось как с "Панель инструментов: вкл/выкл" на картинке.
(список с такими пунктами будет размещен в меню "Запуск")
заранее спасибо за любой совет в нужную сторону.
http://i30.fastpic.ru/big/2011/1008/aa/ ... 589eaa.png
а. после первого нажатия выполнял бы первый скрипт и напротив него появлялась бы галочка.
б. после второго нажатия выполнялся бы второй скрипт и галка бы пропадала.
т.е. чтобы все получилось как с "Панель инструментов: вкл/выкл" на картинке.
(список с такими пунктами будет размещен в меню "Запуск")
заранее спасибо за любой совет в нужную сторону.
http://i30.fastpic.ru/big/2011/1008/aa/ ... 589eaa.png
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
А может уже настала пора сильно попросить Гислера это сделать?CaptainFlint писал(а):Пользовательские команды с состояниями в Тотале не реализованы
На нашем форуме в который раз поднимается вопрос о реализации такой возможности. И каждый раз в качестве ответа предлагаются "танцы с бубном". На оффоруме идея выдвигалась?
Нет, я не сплю. Я просто медленно моргаю.
Если - 0, то отжимать, если 1, то вдавливать.
Функция будет активироваться ключом в секциях usercmd.ini/wcmd_lng.ini.
Функция будет активироваться ключом в секциях usercmd.ini/wcmd_lng.ini.
Последний раз редактировалось Flasher Пн окт 10, 2011 10:18, всего редактировалось 1 раз.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Может, и пора, но вряд ли он в 8.0 сподобится (война с Лазарусом, судя по всему, отнимает у него все силы и время). А к 8.5 успеет забыть.Batya писал(а):А может уже настала пора сильно попросить Гислера это сделать?
Ну и, само собой, надо сначала прикинуть, как это вообще должно работать, чтобы этим было удобно пользоваться.
Например, состояния — независимые команды, а в коде кнопки прописаны несколько команд, которые Тотал переключает циклически. Со значками только надо продумать. Например, если команды две, и у второй значок отсутствует, то для неё берётся значок первой и отрисовывается нажатым (и наоборот, для случая, когда начальным должно быть ненажатое состояние). Неясно пока, как запоминать состояния, как контролировать синхронизацию команд в меню/тулбаре/хоткеях (особенно если учесть, что последовательности команд там могут быть разными), как отображать состояния трёх и более команд… В общем, на 8.0 я бы не рассчитывал. Но идея в целом, мне кажется, интересная.MVV писал(а):И как тотал будет узнавать, что состояние изменилось, и надо изменить иконку?
Почему же, ё-моё, ты нигде не пишешь "ё"?
Выше написал как.CaptainFlint писал(а):Неясно пока, как запоминать состояния, как контролировать синхронизацию команд в меню/тулбаре/хоткеях (особенно если учесть, что последовательности команд там могут быть разными)
Можно обойтись и без этого извращения. Да и вряд ли у автора появится желание колупаться более чем с двумя командами. Здесь же проводится аналогия с уже существующим функционалом.CaptainFlint писал(а):как отображать состояния трёх и более команд…
Я так вижу, что вообще одна команда нужна. Скрипт должен быть один, и он, кстати, и будет читать значение ключа, чтобы выполнить соотв. действие. Т.е. флаги и для скрипта и для команды должны располагаться в одном месте для верного срабатывания и установки маркера.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Flasher
Вариант с флагами интересен, но он может работать исключительно на скриптах. А мой хорош ещё тем, что позволит переключать и внутренние команды (например, создать команду переключения между пользовательким набором колонок и стандартным режимом станет плёвым делом).
Впрочем, ни на чём пока не настаиваю. Говорю же, это надо тщательно продумать. Явные флаги состояний тоже могут быть полезны, чтобы не дублировать скрипты и команды, когда они оказываются почти одинаковыми.
Вариант с флагами интересен, но он может работать исключительно на скриптах. А мой хорош ещё тем, что позволит переключать и внутренние команды (например, создать команду переключения между пользовательким набором колонок и стандартным режимом станет плёвым делом).
Впрочем, ни на чём пока не настаиваю. Говорю же, это надо тщательно продумать. Явные флаги состояний тоже могут быть полезны, чтобы не дублировать скрипты и команды, когда они оказываются почти одинаковыми.
Почему же, ё-моё, ты нигде не пишешь "ё"?
А команды как записывать? Через пробел? А если вн. команда поддерживает параметры?CaptainFlint писал(а):А мой хорош ещё тем, что позволит переключать и внутренние команды (например, создать команду переключения между пользовательким набором колонок и стандартным режимом станет плёвым делом).
В том-то и дело.CaptainFlint писал(а):Явные флаги состояний тоже могут быть полезны, чтобы не дублировать скрипты и команды, когда они оказываются почти одинаковыми.
А если команда не отработала и переключать состояние не нужно? Тонкий это момент, без путаниц не обойдёшься.
Думаю, более полезной была бы возможность изменения значка пункта меню на лету. Например, возможность указания пути к значку в usercmd.ini. И чтобы тотал не кэшировал такой значок. Тогда скриптом можно было бы переключать значки при вызове команды.
Хм, а ведь по идее можно подменять иконки и флажки пунктов меню непосредственно перед его отображением... Правда, нужно будет точно определить, какой именно пункт меню соответствует какой команде.
Думаю, более полезной была бы возможность изменения значка пункта меню на лету. Например, возможность указания пути к значку в usercmd.ini. И чтобы тотал не кэшировал такой значок. Тогда скриптом можно было бы переключать значки при вызове команды.
Хм, а ведь по идее можно подменять иконки и флажки пунктов меню непосредственно перед его отображением... Правда, нужно будет точно определить, какой именно пункт меню соответствует какой команде.
Значит, это проблема того, кто написал такую кривую команду.MVV писал(а):А если команда не отработала и переключать состояние не нужно?
В unercmd.ini и так можно путь к значку указывать. Ты о чём? Переписывать путь к значку скриптом? Ну, вот это точно лишнее. Да и вообще речь шла о нажатом/отжатом состоянии, значок сам по себе должен быть один.MVV писал(а):Например, возможность указания пути к значку в usercmd.ini. И чтобы тотал не кэшировал такой значок. Тогда скриптом можно было бы переключать значки при вызове команды.
Не совсем понял. Приведи пример, плз.MVV писал(а):Хм, а ведь по идее можно подменять иконки и флажки пунктов меню непосредственно перед его отображением... Правда, нужно будет точно определить, какой именно пункт меню соответствует какой команде.
Точно. Тогда требуется лишь научить тотал отображать эти значки в меню.В unercmd.ini и так можно путь к значку указывать.
Не вижу существенной разницы между изменением флага в INI и изменением пути к значку. В любом случае требуется правка INI.
Это можно реализовать и без Гислера - через TWinKey или другой плагин, который встраивается в обработчик сообщений окна тотала. Менять значки или ставить/снимать галочки в зависимости от тех или иных параметров в каком-то конфиге, или ещё как-нибудь.Не совсем понял. Приведи пример, плз.
Перед отображением каждой менюшки винда посылает окну сообщение, где передаёт дескриптор менюшки, и можно внести изменения прямо перед отображением - например, поменять значок или поставить/снять галочку. Нужно лишь понять, какому пункту меню нужно что-то менять. Пока вижу только 1 вариант - по названию пункта меню.
РазницаMVV писал(а):Не вижу существенной разницы между изменением флага в INI и изменением пути к значку.
а) в кол-ве символов
б) в необходимости плодить значки для команд вкл./выкл.
Всё, теперь понял, о чём ты. Мы же с тобой этот вопрос как-то решали. Но для скриптов всё равно флаги нужны. Кстати, не проверял в 8-ке, баг, проявившийся в TcMenuPopup, исправлен?MVV писал(а):где передаёт дескриптор менюшки
Последний раз редактировалось Flasher Пн окт 10, 2011 11:51, всего редактировалось 1 раз.