1999-12-13 12:04:48 -04:00
|
|
|
# Accessor functions for control properties
|
|
|
|
|
|
|
|
from Controls import *
|
|
|
|
import struct
|
|
|
|
|
1999-12-18 20:06:52 -04:00
|
|
|
# These needn't go through this module, but are here for completeness
|
|
|
|
def SetControlDataHandle(control, part, selector, data):
|
|
|
|
control.SetControlDataHandle(part, selector, data)
|
|
|
|
|
|
|
|
def GetControlDataHandle(control, part, selector):
|
|
|
|
return control.GetControlDataHandle(part, selector)
|
|
|
|
|
|
|
|
_accessdict = {
|
|
|
|
kControlPopupButtonMenuHandleTag: (SetControlDataHandle, GetControlDataHandle),
|
|
|
|
}
|
|
|
|
|
1999-12-13 12:04:48 -04:00
|
|
|
_codingdict = {
|
|
|
|
kControlPushButtonDefaultTag : ("b", None, None),
|
1999-12-18 20:06:52 -04:00
|
|
|
|
1999-12-13 12:04:48 -04:00
|
|
|
kControlEditTextTextTag: (None, None, None),
|
|
|
|
kControlEditTextPasswordTag: (None, None, None),
|
1999-12-18 20:06:52 -04:00
|
|
|
|
|
|
|
kControlPopupButtonMenuIDTag: ("h", None, None),
|
2000-05-04 12:43:00 -03:00
|
|
|
|
|
|
|
kControlListBoxDoubleClickTag: ("b", None, None),
|
1999-12-13 12:04:48 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
def SetControlData(control, part, selector, data):
|
1999-12-18 20:06:52 -04:00
|
|
|
if _accessdict.has_key(selector):
|
|
|
|
setfunc, getfunc = _accessdict[selector]
|
|
|
|
setfunc(control, part, selector, data)
|
|
|
|
return
|
1999-12-13 12:04:48 -04:00
|
|
|
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):
|
1999-12-18 20:06:52 -04:00
|
|
|
if _accessdict.has_key(selector):
|
|
|
|
setfunc, getfunc = _accessdict[selector]
|
|
|
|
return getfunc(control, part, selector, data)
|
1999-12-13 12:04:48 -04:00
|
|
|
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)
|
2000-05-04 12:43:00 -03:00
|
|
|
if type(data) == type(()) and len(data) == 1:
|
|
|
|
data = data[0]
|
1999-12-13 12:04:48 -04:00
|
|
|
return data
|
|
|
|
|