ยปCore Development>Code coverage>Mac/Modules/ctl/ctlscan.py

Python code coverage for Mac/Modules/ctl/ctlscan.py

#countcontent
1n/a# Scan <Controls.h>, generating ctlgen.py.
2n/aimport sys
3n/afrom bgenlocations import TOOLBOXDIR, BGENDIR
4n/asys.path.append(BGENDIR)
5n/a
6n/afrom scantools import Scanner
7n/a
8n/adef main():
9n/a# input = "Controls.h" # Universal Headers < 3.3
10n/a input = ["Controls.h", "ControlDefinitions.h"] # Universal Headers >= 3.3
11n/a output = "ctlgen.py"
12n/a defsoutput = TOOLBOXDIR + "Controls.py"
13n/a scanner = MyScanner(input, output, defsoutput)
14n/a scanner.scan()
15n/a scanner.close()
16n/a print "=== Testing definitions output code ==="
17n/a execfile(defsoutput, {}, {})
18n/a print "=== Done scanning and generating, now doing 'import ctlsupport' ==="
19n/a import ctlsupport
20n/a print "=== Done. It's up to you to compile Ctlmodule.c ==="
21n/a
22n/aclass MyScanner(Scanner):
23n/a
24n/a def destination(self, type, name, arglist):
25n/a classname = "Function"
26n/a listname = "functions"
27n/a if arglist:
28n/a t, n, m = arglist[0]
29n/a if t in ("ControlHandle", "ControlRef") and m == "InMode":
30n/a classname = "Method"
31n/a listname = "methods"
32n/a return classname, listname
33n/a
34n/a def writeinitialdefs(self):
35n/a self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
36n/a self.defsfile.write("from Carbon.TextEdit import *\n")
37n/a self.defsfile.write("from Carbon.QuickDraw import *\n")
38n/a self.defsfile.write("from Carbon.Dragconst import *\n")
39n/a self.defsfile.write("from Carbon.CarbonEvents import *\n")
40n/a self.defsfile.write("from Carbon.Appearance import *\n")
41n/a self.defsfile.write("kDataBrowserItemAnyState = -1\n")
42n/a self.defsfile.write("kControlBevelButtonCenterPopupGlyphTag = -1\n")
43n/a self.defsfile.write("kDataBrowserClientPropertyFlagsMask = 0xFF000000\n")
44n/a self.defsfile.write("\n")
45n/a
46n/a def makeblacklistnames(self):
47n/a return [
48n/a 'FindControlUnderMouse', # Generated manually, returns an existing control, not a new one.
49n/a 'DisposeControl', # Generated manually
50n/a 'KillControls', # Implied by close of dialog
51n/a 'SetCtlAction',
52n/a 'TrackControl', # Generated manually
53n/a 'HandleControlClick', # Generated manually
54n/a 'SetControlData', # Generated manually
55n/a 'GetControlData', # Generated manually
56n/a 'kControlBevelButtonCenterPopupGlyphTag', # Constant with funny definition
57n/a 'kDataBrowserClientPropertyFlagsMask', # ditto
58n/a 'kDataBrowserItemAnyState', # and ditto
59n/a # The following are unavailable for static 68k (appearance manager)
60n/a## 'GetBevelButtonMenuValue',
61n/a## 'SetBevelButtonMenuValue',
62n/a## 'GetBevelButtonMenuHandle',
63n/a## 'SetBevelButtonTransform',
64n/a 'SetBevelButtonGraphicAlignment',
65n/a 'SetBevelButtonTextAlignment',
66n/a 'SetBevelButtonTextPlacement',
67n/a## 'SetImageWellTransform',
68n/a## 'GetTabContentRect',
69n/a## 'SetTabEnabled',
70n/a## 'SetDisclosureTriangleLastValue',
71n/a## # Unavailable in CW Pro 3 libraries
72n/a## 'SetUpControlTextColor',
73n/a## # Unavailable in Jack's CW Pro 5.1 libraries
74n/a## 'GetControlRegion',
75n/a## 'RemoveControlProperty',
76n/a## 'IsValidControlHandle',
77n/a## 'SetControl32BitMinimum',
78n/a## 'GetControl32BitMinimum',
79n/a## 'SetControl32BitMaximum',
80n/a## 'GetControl32BitMaximum',
81n/a## 'SetControl32BitValue',
82n/a## 'GetControl32BitValue',
83n/a## 'SetControlViewSize',
84n/a## 'GetControlViewSize',
85n/a # Generally Bad News
86n/a 'GetControlProperty',
87n/a 'SetControlProperty',
88n/a 'GetControlPropertySize',
89n/a 'SendControlMessage', # Parameter changed from long to void* from UH3.3 to UH3.4
90n/a 'CreateTabsControl', # wrote manually
91n/a 'GetControlAction', # too much effort for too little usefulness
92n/a
93n/a # too lazy for now
94n/a 'GetImageWellContentInfo',
95n/a 'GetBevelButtonContentInfo',
96n/a # OS8 only
97n/a 'GetAuxiliaryControlRecord',
98n/a 'SetControlColor',
99n/a ]
100n/a
101n/a def makeblacklisttypes(self):
102n/a return [
103n/a 'ProcPtr',
104n/a# 'ControlActionUPP',
105n/a 'Ptr',
106n/a 'ControlDefSpec', # Don't know how to do this yet
107n/a 'ControlDefSpec_ptr', # ditto
108n/a 'Collection', # Ditto
109n/a # not-yet-supported stuff in Universal Headers 3.4:
110n/a 'ControlColorUPP',
111n/a 'ControlKind', # XXX easy: 2-tuple containing 2 OSType's
112n/a# 'ControlTabEntry_ptr', # XXX needed for tabs
113n/a# 'ControlButtonContentInfoPtr',
114n/a# 'ControlButtonContentInfo', # XXX ugh: a union
115n/a# 'ControlButtonContentInfo_ptr', # XXX ugh: a union
116n/a 'ListDefSpec_ptr', # XXX see _Listmodule.c, tricky but possible
117n/a 'DataBrowserItemID_ptr', # XXX array of UInt32, for BrowserView
118n/a 'DataBrowserItemUPP',
119n/a 'DataBrowserItemDataRef', # XXX void *
120n/a 'DataBrowserCallbacks', # difficult struct
121n/a 'DataBrowserCallbacks_ptr',
122n/a 'DataBrowserCustomCallbacks',
123n/a 'DataBrowserCustomCallbacks_ptr',
124n/a## 'DataBrowserTableViewColumnDesc',
125n/a## 'DataBrowserListViewColumnDesc',
126n/a 'CFDataRef',
127n/a 'DataBrowserListViewHeaderDesc', # difficult struct
128n/a ]
129n/a
130n/a def makerepairinstructions(self):
131n/a return [
132n/a ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
133n/a [("InBuffer", "*", "*")]),
134n/a
135n/a ([("void", "*", "OutMode"), ("long", "*", "InMode"),
136n/a ("long", "*", "OutMode")],
137n/a [("VarVarOutBuffer", "*", "InOutMode")]),
138n/a
139n/a## # For TrackControl
140n/a## ([("ProcPtr", "actionProc", "InMode")],
141n/a## [("FakeType('(ControlActionUPP)0')", "*", "*")]),
142n/a## ([("ControlActionUPP", "actionProc", "InMode")],
143n/a## [("FakeType('(ControlActionUPP)0')", "*", "*")]),
144n/a
145n/a # For GetControlTitle
146n/a ([('Str255', 'title', 'InMode')],
147n/a [('Str255', 'title', 'OutMode')]),
148n/a
149n/a ([("ControlHandle", "*", "OutMode")],
150n/a [("ExistingControlHandle", "*", "*")]),
151n/a ([("ControlRef", "*", "OutMode")], # Ditto, for Universal Headers
152n/a [("ExistingControlHandle", "*", "*")]),
153n/a
154n/a ([("Rect_ptr", "*", "ReturnMode")], # GetControlBounds
155n/a [("void", "*", "ReturnMode")]),
156n/a
157n/a ([("DataBrowserListViewColumnDesc", "*", "OutMode")],
158n/a [("DataBrowserListViewColumnDesc", "*", "InMode")]),
159n/a
160n/a ([("ControlButtonContentInfoPtr", 'outContent', "InMode")],
161n/a [("ControlButtonContentInfoPtr", '*', "OutMode")]),
162n/a
163n/a ([("ControlButtonContentInfo", '*', "OutMode")],
164n/a [("ControlButtonContentInfo", '*', "InMode")]),
165n/a
166n/a ([("ControlActionUPP", 'liveTrackingProc', "InMode")],
167n/a [("ControlActionUPPNewControl", 'liveTrackingProc', "InMode")]),
168n/a ]
169n/a
170n/aif __name__ == "__main__":
171n/a main()