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 

как создать пункт в меню с галочками (чекбоксами)
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
VJet



Joined: 29 Sep 2011
Posts: 1

Post (Separately) Posted: Sat Oct 08, 2011 14:25    Post subject: как создать пункт в меню с галочками (чекбоксами) Reply with quote

хотелось бы создать пункт в меню, который:
а. после первого нажатия выполнял бы первый скрипт и напротив него появлялась бы галочка.
б. после второго нажатия выполнялся бы второй скрипт и галка бы пропадала.
т.е. чтобы все получилось как с "Панель инструментов: вкл/выкл" на картинке.

(список с такими пунктами будет размещен в меню "Запуск")
заранее спасибо за любой совет в нужную сторону.

http://i30.fastpic.ru/big/2011/1008/aa/c59f890055da5f946f633e5c3e589eaa.png
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Sat Oct 08, 2011 14:36    Post subject: Reply with quote

VJet
Нет. Пользовательские команды с состояниями в Тотале не реализованы, это поддерживается только для внутренних команд.

PS: Ссылку на картинку поправил.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Sat Oct 08, 2011 14:43    Post subject: Reply with quote

VJet
Да. Можно нарисовать значок с галочкой и без, а скриптом менять.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Mon Oct 10, 2011 09:38    Post subject: Reply with quote

CaptainFlint wrote:
Пользовательские команды с состояниями в Тотале не реализованы

А может уже настала пора сильно попросить Гислера это сделать?
На нашем форуме в который раз поднимается вопрос о реализации такой возможности. И каждый раз в качестве ответа предлагаются "танцы с бубном". На оффоруме идея выдвигалась?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 09:39    Post subject: Reply with quote

Batya
По принципу "нажал-отжал" с флагом в ini?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Oct 10, 2011 10:03    Post subject: Reply with quote

И как тотал будет узнавать, что состояние изменилось, и надо изменить иконку?
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 10:14    Post subject: Reply with quote

Если - 0, то отжимать, если 1, то вдавливать.
Функция будет активироваться ключом в секциях usercmd.ini/wcmd_lng.ini.


Last edited by Flasher on Mon Oct 10, 2011 10:18; edited 1 time in total
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 10:17    Post subject: Reply with quote

Batya wrote:
А может уже настала пора сильно попросить Гислера это сделать?

Может, и пора, но вряд ли он в 8.0 сподобится (война с Лазарусом, судя по всему, отнимает у него все силы и время). А к 8.5 успеет забыть.

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

MVV wrote:
И как тотал будет узнавать, что состояние изменилось, и надо изменить иконку?

Например, состояния — независимые команды, а в коде кнопки прописаны несколько команд, которые Тотал переключает циклически. Со значками только надо продумать. Например, если команды две, и у второй значок отсутствует, то для неё берётся значок первой и отрисовывается нажатым (и наоборот, для случая, когда начальным должно быть ненажатое состояние). Неясно пока, как запоминать состояния, как контролировать синхронизацию команд в меню/тулбаре/хоткеях (особенно если учесть, что последовательности команд там могут быть разными), как отображать состояния трёх и более команд… В общем, на 8.0 я бы не рассчитывал. Но идея в целом, мне кажется, интересная.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 10:24    Post subject: Reply with quote

CaptainFlint wrote:
Неясно пока, как запоминать состояния, как контролировать синхронизацию команд в меню/тулбаре/хоткеях (особенно если учесть, что последовательности команд там могут быть разными)
Выше написал как.
CaptainFlint wrote:
как отображать состояния трёх и более команд…
Можно обойтись и без этого извращения. Да и вряд ли у автора появится желание колупаться более чем с двумя командами. Здесь же проводится аналогия с уже существующим функционалом.
Я так вижу, что вообще одна команда нужна. Скрипт должен быть один, и он, кстати, и будет читать значение ключа, чтобы выполнить соотв. действие. Т.е. флаги и для скрипта и для команды должны располагаться в одном месте для верного срабатывания и установки маркера.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 10:29    Post subject: Reply with quote

Flasher
Вариант с флагами интересен, но он может работать исключительно на скриптах. А мой хорош ещё тем, что позволит переключать и внутренние команды (например, создать команду переключения между пользовательким набором колонок и стандартным режимом станет плёвым делом).

Впрочем, ни на чём пока не настаиваю. Говорю же, это надо тщательно продумать. Явные флаги состояний тоже могут быть полезны, чтобы не дублировать скрипты и команды, когда они оказываются почти одинаковыми.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 10:44    Post subject: Reply with quote

CaptainFlint wrote:
А мой хорош ещё тем, что позволит переключать и внутренние команды (например, создать команду переключения между пользовательким набором колонок и стандартным режимом станет плёвым делом).
А команды как записывать? Через пробел? А если вн. команда поддерживает параметры?
CaptainFlint wrote:
Явные флаги состояний тоже могут быть полезны, чтобы не дублировать скрипты и команды, когда они оказываются почти одинаковыми.
В том-то и дело.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Oct 10, 2011 10:49    Post subject: Reply with quote

А если команда не отработала и переключать состояние не нужно? Тонкий это момент, без путаниц не обойдёшься.

Думаю, более полезной была бы возможность изменения значка пункта меню на лету. Например, возможность указания пути к значку в usercmd.ini. И чтобы тотал не кэшировал такой значок. Тогда скриптом можно было бы переключать значки при вызове команды.

Хм, а ведь по идее можно подменять иконки и флажки пунктов меню непосредственно перед его отображением... Правда, нужно будет точно определить, какой именно пункт меню соответствует какой команде.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 11:04    Post subject: Reply with quote

MVV wrote:
А если команда не отработала и переключать состояние не нужно?
Значит, это проблема того, кто написал такую кривую команду.

MVV wrote:
Например, возможность указания пути к значку в usercmd.ini. И чтобы тотал не кэшировал такой значок. Тогда скриптом можно было бы переключать значки при вызове команды.
В unercmd.ini и так можно путь к значку указывать. Ты о чём? Переписывать путь к значку скриптом? Ну, вот это точно лишнее. Да и вообще речь шла о нажатом/отжатом состоянии, значок сам по себе должен быть один.

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



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Oct 10, 2011 11:13    Post subject: Reply with quote

Quote:
В unercmd.ini и так можно путь к значку указывать.

Точно. Тогда требуется лишь научить тотал отображать эти значки в меню.

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

Quote:
Не совсем понял. Приведи пример, плз.

Это можно реализовать и без Гислера - через TWinKey или другой плагин, который встраивается в обработчик сообщений окна тотала. Менять значки или ставить/снимать галочки в зависимости от тех или иных параметров в каком-то конфиге, или ещё как-нибудь.
Перед отображением каждой менюшки винда посылает окну сообщение, где передаёт дескриптор менюшки, и можно внести изменения прямо перед отображением - например, поменять значок или поставить/снять галочку. Нужно лишь понять, какому пункту меню нужно что-то менять. Пока вижу только 1 вариант - по названию пункта меню.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Oct 10, 2011 11:22    Post subject: Reply with quote

MVV wrote:
Не вижу существенной разницы между изменением флага в INI и изменением пути к значку.
Разница
а) в кол-ве символов
б) в необходимости плодить значки для команд вкл./выкл.

MVV wrote:
где передаёт дескриптор менюшки
Всё, теперь понял, о чём ты. Мы же с тобой этот вопрос как-то решали. Но для скриптов всё равно флаги нужны. Кстати, не проверял в 8-ке, баг, проявившийся в TcMenuPopup, исправлен?

Last edited by Flasher on Mon Oct 10, 2011 11:51; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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