I just created a button similar to the description, please try it
[IButton,???,"Mask Shell Group",
[IPress,Brush:SelectRect]
[If,[IGetStatus,Tool:Visibility:Grow All],
[IFreeze,
[IPress,Tool:Masking:Clear][MergeUndo]
[IPress,Transform:Move][MergeUndo]
[IKeyPress,CTRL, [CanvasClick,[MouseHPos],[MouseVPos]]][MergeUndo]
[IPress,Tool:Masking:Inverse][MergeUndo]
[IPress,Transform:Draw Pointer]
]
,
// [IPress,Tool:Masking:Clear][MergeUndo]
[If,[IGet,Tool:Masking:ViewMask],
[IFreeze,
[IPress,Tool:Masking:Inverse][MergeUndo]
[IKeyPress, SHIFT + CTRL, [CanvasClick,[MouseHPos],[MouseVPos]]][MergeUndo]
[IPress,Tool:Masking:MaskAll][MergeUndo]
[IPress,Tool:Visibility:ShowPt][MergeUndo]
[IPress,Tool:Masking:Inverse]
]
,
[IFreeze,
[IKeyPress, SHIFT + CTRL, [CanvasClick,[MouseHPos],[MouseVPos]]][MergeUndo]
[IPress,Tool:Masking:MaskAll][MergeUndo]
[IPress,Tool:Visibility:Grow All][MergeUndo]
[IPress,Tool:Visibility:ShowPt][MergeUndo]
[IPress,Tool:Masking:Inverse]//[MergeUndo]
]
]
]
,,1,,,]