/Lib/plat-mac/Carbon/ControlAccessor.py
http://unladen-swallow.googlecode.com/ · Python · 56 lines · 44 code · 10 blank · 2 comment · 10 complexity · f914898d6a82e4abca65d69f730d9666 MD5 · raw file
- # Accessor functions for control properties
- from Controls import *
- import struct
- # These needn't go through this module, but are here for completeness
- def SetControlData_Handle(control, part, selector, data):
- control.SetControlData_Handle(part, selector, data)
- def GetControlData_Handle(control, part, selector):
- return control.GetControlData_Handle(part, selector)
- _accessdict = {
- kControlPopupButtonMenuHandleTag: (SetControlData_Handle, GetControlData_Handle),
- }
- _codingdict = {
- kControlPushButtonDefaultTag : ("b", None, None),
- kControlEditTextTextTag: (None, None, None),
- kControlEditTextPasswordTag: (None, None, None),
- kControlPopupButtonMenuIDTag: ("h", None, None),
- kControlListBoxDoubleClickTag: ("b", None, None),
- }
- def SetControlData(control, part, selector, data):
- if _accessdict.has_key(selector):
- setfunc, getfunc = _accessdict[selector]
- setfunc(control, part, selector, data)
- return
- if not _codingdict.has_key(selector):
- raise KeyError, ('Unknown control selector', selector)
- structfmt, coder, decoder = _codingdict[selector]
- if coder:
- data = coder(data)
- if structfmt:
- data = struct.pack(structfmt, data)
- control.SetControlData(part, selector, data)
- def GetControlData(control, part, selector):
- if _accessdict.has_key(selector):
- setfunc, getfunc = _accessdict[selector]
- return getfunc(control, part, selector, data)
- if not _codingdict.has_key(selector):
- raise KeyError, ('Unknown control selector', selector)
- structfmt, coder, decoder = _codingdict[selector]
- data = control.GetControlData(part, selector)
- if structfmt:
- data = struct.unpack(structfmt, data)
- if decoder:
- data = decoder(data)
- if type(data) == type(()) and len(data) == 1:
- data = data[0]
- return data