symbian-qemu-0.9.1-12/python-2.6.1/Lib/plat-mac/Carbon/ControlAccessor.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # Accessor functions for control properties
       
     2 
       
     3 from Controls import *
       
     4 import struct
       
     5 
       
     6 # These needn't go through this module, but are here for completeness
       
     7 def SetControlData_Handle(control, part, selector, data):
       
     8     control.SetControlData_Handle(part, selector, data)
       
     9 
       
    10 def GetControlData_Handle(control, part, selector):
       
    11     return control.GetControlData_Handle(part, selector)
       
    12 
       
    13 _accessdict = {
       
    14     kControlPopupButtonMenuHandleTag: (SetControlData_Handle, GetControlData_Handle),
       
    15 }
       
    16 
       
    17 _codingdict = {
       
    18     kControlPushButtonDefaultTag : ("b", None, None),
       
    19 
       
    20     kControlEditTextTextTag: (None, None, None),
       
    21     kControlEditTextPasswordTag: (None, None, None),
       
    22 
       
    23     kControlPopupButtonMenuIDTag: ("h", None, None),
       
    24 
       
    25     kControlListBoxDoubleClickTag: ("b", None, None),
       
    26 }
       
    27 
       
    28 def SetControlData(control, part, selector, data):
       
    29     if _accessdict.has_key(selector):
       
    30         setfunc, getfunc = _accessdict[selector]
       
    31         setfunc(control, part, selector, data)
       
    32         return
       
    33     if not _codingdict.has_key(selector):
       
    34         raise KeyError, ('Unknown control selector', selector)
       
    35     structfmt, coder, decoder = _codingdict[selector]
       
    36     if coder:
       
    37         data = coder(data)
       
    38     if structfmt:
       
    39         data = struct.pack(structfmt, data)
       
    40     control.SetControlData(part, selector, data)
       
    41 
       
    42 def GetControlData(control, part, selector):
       
    43     if _accessdict.has_key(selector):
       
    44         setfunc, getfunc = _accessdict[selector]
       
    45         return getfunc(control, part, selector, data)
       
    46     if not _codingdict.has_key(selector):
       
    47         raise KeyError, ('Unknown control selector', selector)
       
    48     structfmt, coder, decoder = _codingdict[selector]
       
    49     data = control.GetControlData(part, selector)
       
    50     if structfmt:
       
    51         data = struct.unpack(structfmt, data)
       
    52     if decoder:
       
    53         data = decoder(data)
       
    54     if type(data) == type(()) and len(data) == 1:
       
    55         data = data[0]
       
    56     return data