Render.ru

Нужна помощь с CheckButton

ibn_rashit

Мастер
Рейтинг
119
#1
Захотелось создать свой тулбар. Но вот возникла проблема с ChechButton.
При нажатии она срабатывает, но при нажатии правой кнопки мыши, когда задача уже перестала работать, она остается в режиме работы, т.е. подсвечивается. При следующем нажатии она гаснет, но так как я еще раз нажимаю она снова переходит в рабочий режим. А нужно чтоб она автоматически отжималась.
Еще одна проблема это то, что запись Undo распространяется не на все действия.
В скриптах я прям ноль., 2 дня поисков решения ни чего не дали.
Нужна помощь знатоков.
Это пример кода, вырачнивание по осям не сохраняется в Undo, "Swift Loop" при нажатии на ПКМ перестает работать, но не отжимается.

rollout RL_Panel "Panel" width:168 height:70
(
button 'btn01' " X" pos:[14,4] width:22 height:22
button 'btn02' " Y" pos:[43,4] width:22 height:22
button 'btn03' "Z" pos:[72,4] width:22 height:22
checkButton 'ckb01' "Swift Loop" pos:[4,32] width:74 height:22 align:#center


on btn01 pressed do

$.EditablePoly.MakePlanarIn #X

on btn02 pressed do

$.EditablePoly.MakePlanarIn #Y

on btn03 pressed do

$.EditablePoly.MakePlanarIn #Z

on ckb01 changed state do

macros.run "PolyTools" "SwiftLoop"


)
createDialog RL_Panel
cui.RegisterDialogBar RL_Panel
 

Вадим_Вегас

Активный участник
Рейтинг
7
#3
Возможно тупо в лоб но я бы решил так.
Создал глобальную переменную для отмены срабатывания CheckButton - ну скажем CBreak = 0 as integer (с типом Boolean - MScript работает криво)
После срабатывания всех необходимых действий CBreak = 1, а затем принудительно бы сбрасывал соcтояние CheckButton в исходное
В в функцию обработки ckb01 добавил бы проверку if CBreak ==1 then return()
 
Сверху