Skip to content

Instantly share code, notes, and snippets.

@okay-type
Created June 13, 2023 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okay-type/1438d844086029911fe6a383eede0c50 to your computer and use it in GitHub Desktop.
Save okay-type/1438d844086029911fe6a383eede0c50 to your computer and use it in GitHub Desktop.
shift+click a vanilla checkbox to un/check other checkboxes
from vanilla import *
from AppKit import NSEvent, NSShiftKeyMask, NSCommandKeyMask, NSAlternateKeyMask, NSControlKeyMask
class Test_Only_CheckBox():
def __init__(self):
u = 22
self.w = Window((250, u*10), 'Test_Only_CheckBox')
self.w.check_0 = CheckBox((5, u*0, -5, u), 'Check 0', value=True, callback=self.checks)
self.w.check_1 = CheckBox((5, u*1, -5, u), 'Check 1', value=True, callback=self.checks)
self.w.check_2 = CheckBox((5, u*2, -5, u), 'Check 2', value=True, callback=self.checks)
self.w.check_3 = CheckBox((5, u*3, -5, u), 'Check 3', value=True, callback=self.checks)
self.w.check_4 = CheckBox((5, u*4, -5, u), 'Check 4', value=True, callback=self.checks)
self.w.check_5 = CheckBox((5, u*5, -5, u), 'Check 5', value=True, callback=self.checks)
self.checkboxes = [self.w.check_0, self.w.check_1, self.w.check_2, self.w.check_3, self.w.check_4, self.w.check_5]
self.w.open()
def checks(self, sender):
sender_value = sender.get()
print('checks()', sender.getTitle(), sender_value)
if NSEvent.modifierFlags() and NSShiftKeyMask:
print('NSShiftKeyMask')
for checkbox in self.checkboxes:
if checkbox != sender:
checkbox.set(not sender_value)
return
print('No Modifier')
Test_Only_CheckBox()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment