Methods {Get,Set}ControlData that know about data types passed for the various
4-char codes. The table which maps codes to datatypes is still pretty empty,
I'll fill it as I need entries (or maybe someone wants to spend a nice day filling it?).
diff --git a/Mac/Lib/lib-toolbox/ControlAccessor.py b/Mac/Lib/lib-toolbox/ControlAccessor.py
new file mode 100644
index 0000000..d3952f7
--- /dev/null
+++ b/Mac/Lib/lib-toolbox/ControlAccessor.py
@@ -0,0 +1,32 @@
+# Accessor functions for control properties
+
+from Controls import *
+import struct
+
+_codingdict = {
+	kControlPushButtonDefaultTag : ("b", None, None),
+	kControlEditTextTextTag: (None, None, None),
+	kControlEditTextPasswordTag: (None, None, None),
+}
+
+def SetControlData(control, part, selector, data):
+	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 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)
+	return data
+