diff options
| author | Simon <simon@hardwired.org.uk> | 2011-03-22 17:58:52 (GMT) |
|---|---|---|
| committer | Simon <simon@hardwired.org.uk> | 2011-03-22 17:58:52 (GMT) |
| commit | 2e401babb793238564ca640fc802a52ab7f6c293 (patch) | |
| tree | 87a9b471e82604e76f96d556f5771322fb31818a /src/python/stdlib/plat-mac/Carbon/ControlAccessor.py | |
| parent | c096b2b14a200a0cc0a08cfea839c9e7f4edf22e (diff) | |
| parent | 04a9cbcb8855e64db660a8c6e23d79114b4afd83 (diff) | |
| download | powder-2e401babb793238564ca640fc802a52ab7f6c293.zip powder-2e401babb793238564ca640fc802a52ab7f6c293.tar.gz | |
Python console
Diffstat (limited to 'src/python/stdlib/plat-mac/Carbon/ControlAccessor.py')
| -rw-r--r-- | src/python/stdlib/plat-mac/Carbon/ControlAccessor.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/python/stdlib/plat-mac/Carbon/ControlAccessor.py b/src/python/stdlib/plat-mac/Carbon/ControlAccessor.py new file mode 100644 index 0000000..0998925 --- /dev/null +++ b/src/python/stdlib/plat-mac/Carbon/ControlAccessor.py @@ -0,0 +1,56 @@ +# 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 |
