Узнать состояние 3-state-чекбокса в диалоговом окне

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
dmitrik
Posts: 124
Joined: Mon 30 Nov, 2009 21:58
Has thanked: 1 time
Been thanked: 4 times

Узнать состояние 3-state-чекбокса в диалоговом окне

Post by dmitrik »

Понадобилось написать макрос включения и выключения в FarColorer cross-выделения в редакторе. Ну, просто, чтобы не делать это каждый раз вручную. Проблема в том, что в диалоге Main settings этого плагина настройка cross-выделения задается 3-state-чекбоксом с дефолным значением [?]. Т.е. нельзя его просто включить/выключить, его надо перебирать.

Я пока написал так:

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

Вопросы. Если способ узнать состояние чекбокса в произвольно открытом диалоге? Можно ли изменить его состояние, не эмулиря последовательное нажатие клавиш? И можно ли вообще такое в целом на lua реализовать?
Last edited by dmitrik on Fri 21 Oct, 2022 15:40, edited 2 times in total.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Узнать состояние 3-state-чекбокса в диалоговом окне

Post by Shmuel »

dmitrik wrote: Fri 21 Oct, 2022 15:25 Если способ узнать состояние чекбокса в произвольно открытом диалоге?
Dlg.GetValue
dmitrik wrote: Fri 21 Oct, 2022 15:25 Можно ли изменить его состояние, не эмулиря последовательное нажатие клавиш?
Можно через DialogEvent (описано в мануалах), но не для начинающих.
dmitrik wrote: Fri 21 Oct, 2022 15:25 И можно ли вообще такое в целом на lua реализовать?
Можно (хотя Lua как язык здесь ни при чём).
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Узнать состояние 3-state-чекбокса в диалоговом окне

Post by buniak_a_h »

dmitrik wrote: Fri 21 Oct, 2022 15:25 Понадобилось написать макрос включения и выключения в FarColorer cross-выделения в редакторе
Вообще-то, такое предусмотрено (посмотрите хелп к фарколореру, раздел «Макрофункции», статья «Работа с параметрами текущего редактора», пункт "CrossVisible" - Видимость и тип креста в редакторе:. Но если лениво, то в архиве turbo есть скрипт Alt-C-colorer.lua - управление функциями колорера (в т.ч. и вкл/выкл/перекл креста). Единственно что, в том посте, что по ссылке, он старый и нерабочий (из-за изменения интерфейса). Надо пролистать тему, там есть исправленные варианты скрипта (в т.ч. и мой). Ну и макросы рассчитаны на "двухклавишные хоткеи), а для этого надо ставить ещё один макрос (macroex). Но никто не запретит Вам переназначить кнопки как Вам будет удобно (если у Вас ещё остались свободные клавиши).
dmitrik
Posts: 124
Joined: Mon 30 Nov, 2009 21:58
Has thanked: 1 time
Been thanked: 4 times

Узнать состояние 3-state-чекбокса в диалоговом окне

Post by dmitrik »

buniak_a_h wrote: Sat 22 Oct, 2022 00:33 Вообще-то, такое предусмотрено (посмотрите хелп к фарколореру, раздел «Макрофункции», статья «Работа с параметрами текущего редактора», пункт "CrossVisible" - Видимость и тип креста в редакторе:.
О, спасибо! Не думал, что в хелпе будет инфа про API плагина. Плюс в папке с плагином нашел родной lua-скрипт и на его основе всё получилось:


Спасибо, други! 👍
Post Reply

Return to “Нужна помощь”