ยปCore Development>Code coverage>Mac/Modules/qd/qdscan.py

Python code coverage for Mac/Modules/qd/qdscan.py

#countcontent
1n/a# Scan an Apple header file, generating a Python file of generator calls.
2n/a
3n/aimport sys
4n/afrom bgenlocations import TOOLBOXDIR, BGENDIR
5n/asys.path.append(BGENDIR)
6n/a
7n/afrom scantools import Scanner
8n/a
9n/adef main():
10n/a input = "QuickDraw.h"
11n/a output = "qdgen.py"
12n/a defsoutput = TOOLBOXDIR + "QuickDraw.py"
13n/a scanner = MyScanner(input, output, defsoutput)
14n/a scanner.scan()
15n/a scanner.close()
16n/a
17n/a # Grmpf. Universal Headers have Text-stuff in a different include file...
18n/a input = "QuickDrawText.h"
19n/a output = "@qdgentext.py"
20n/a defsoutput = "@QuickDrawText.py"
21n/a have_extra = 0
22n/a try:
23n/a scanner = MyScanner(input, output, defsoutput)
24n/a scanner.scan()
25n/a scanner.close()
26n/a have_extra = 1
27n/a except IOError:
28n/a pass
29n/a if have_extra:
30n/a print "=== Copying QuickDrawText stuff into main files... ==="
31n/a ifp = open("@qdgentext.py")
32n/a ofp = open("qdgen.py", "a")
33n/a ofp.write(ifp.read())
34n/a ifp.close()
35n/a ofp.close()
36n/a ifp = open("@QuickDrawText.py")
37n/a ofp = open(TOOLBOXDIR + "QuickDraw.py", "a")
38n/a ofp.write(ifp.read())
39n/a ifp.close()
40n/a ofp.close()
41n/a
42n/a print "=== Testing definitions output code ==="
43n/a execfile(defsoutput, {}, {})
44n/a print "=== Done scanning and generating, now importing the generated code... ==="
45n/a import qdsupport
46n/a print "=== Done. It's up to you to compile it now! ==="
47n/a
48n/aclass MyScanner(Scanner):
49n/a
50n/a def destination(self, type, name, arglist):
51n/a classname = "Function"
52n/a listname = "functions"
53n/a if arglist:
54n/a t, n, m = arglist[0]
55n/a if t in ('GrafPtr', 'CGrafPtr') and m == 'InMode':
56n/a classname = "Method"
57n/a listname = "gr_methods"
58n/a elif t == 'BitMapPtr' and m == 'InMode':
59n/a classname = "Method"
60n/a listname = "bm_methods"
61n/a## elif t == "PolyHandle" and m == "InMode":
62n/a## classname = "Method"
63n/a## listname = "p_methods"
64n/a## elif t == "RgnHandle" and m == "InMode":
65n/a## classname = "Method"
66n/a## listname = "r_methods"
67n/a return classname, listname
68n/a
69n/a
70n/a def writeinitialdefs(self):
71n/a self.defsfile.write("""
72n/adef FOUR_CHAR_CODE(x): return x
73n/anormal = 0
74n/abold = 1
75n/aitalic = 2
76n/aunderline = 4
77n/aoutline = 8
78n/ashadow = 0x10
79n/acondense = 0x20
80n/aextend = 0x40
81n/a""")
82n/a
83n/a def makeblacklistnames(self):
84n/a return [
85n/a 'InitGraf',
86n/a 'StuffHex',
87n/a 'StdLine',
88n/a 'StdComment',
89n/a 'StdGetPic',
90n/a 'OpenPort',
91n/a 'InitPort',
92n/a 'ClosePort',
93n/a 'OpenCPort',
94n/a 'InitCPort',
95n/a 'CloseCPort',
96n/a 'BitMapToRegionGlue',
97n/a 'StdOpcode', # XXXX Missing from library...
98n/a # The following are for non-macos use:
99n/a 'LockPortBits',
100n/a 'UnlockPortBits',
101n/a 'UpdatePort',
102n/a 'GetPortNativeWindow',
103n/a 'GetNativeWindowPort',
104n/a 'NativeRegionToMacRegion',
105n/a 'MacRegionToNativeRegion',
106n/a 'GetPortHWND',
107n/a 'GetHWNDPort',
108n/a 'GetPICTFromDIB',
109n/a
110n/a 'HandleToRgn', # Funny signature
111n/a
112n/a # Need Cm, which we don't want to drag in just yet
113n/a 'OpenCursorComponent',
114n/a 'CloseCursorComponent',
115n/a 'SetCursorComponent',
116n/a 'CursorComponentChanged',
117n/a 'CursorComponentSetData',
118n/a ]
119n/a
120n/a def makeblacklisttypes(self):
121n/a return [
122n/a "QDRegionBitsRef", # Should do this, but too lazy now.
123n/a 'CIconHandle', # Obsolete
124n/a 'CQDProcs',
125n/a 'CQDProcsPtr',
126n/a 'CSpecArray',
127n/a 'ColorComplementProcPtr',
128n/a 'ColorComplementUPP',
129n/a 'ColorSearchProcPtr',
130n/a 'ColorSearchUPP',
131n/a 'ConstPatternParam',
132n/a 'DeviceLoopDrawingProcPtr',
133n/a 'DeviceLoopFlags',
134n/a 'GrafVerb',
135n/a 'OpenCPicParams_ptr',
136n/a 'Ptr',
137n/a 'QDProcs',
138n/a 'ReqListRec',
139n/a 'void_ptr',
140n/a 'CustomXFerProcPtr',
141n/a ]
142n/a
143n/a def makerepairinstructions(self):
144n/a return [
145n/a ([('void_ptr', 'textBuf', 'InMode'),
146n/a ('short', 'firstByte', 'InMode'),
147n/a ('short', 'byteCount', 'InMode')],
148n/a [('TextThingie', '*', '*'), ('*', '*', '*'), ('*', '*', '*')]),
149n/a
150n/a # GetPen and SetPt use a point-pointer as output-only:
151n/a ('GetPen', [('Point', '*', 'OutMode')], [('*', '*', 'OutMode')]),
152n/a ('SetPt', [('Point', '*', 'OutMode')], [('*', '*', 'OutMode')]),
153n/a
154n/a # All others use it as input/output:
155n/a ([('Point', '*', 'OutMode')],
156n/a [('*', '*', 'InOutMode')]),
157n/a
158n/a # InsetRect, OffsetRect
159n/a ([('Rect', 'r', 'OutMode'),
160n/a ('short', 'dh', 'InMode'),
161n/a ('short', 'dv', 'InMode')],
162n/a [('Rect', 'r', 'InOutMode'),
163n/a ('short', 'dh', 'InMode'),
164n/a ('short', 'dv', 'InMode')]),
165n/a
166n/a # MapRect
167n/a ([('Rect', 'r', 'OutMode'),
168n/a ('Rect_ptr', 'srcRect', 'InMode'),
169n/a ('Rect_ptr', 'dstRect', 'InMode')],
170n/a [('Rect', 'r', 'InOutMode'),
171n/a ('Rect_ptr', 'srcRect', 'InMode'),
172n/a ('Rect_ptr', 'dstRect', 'InMode')]),
173n/a
174n/a # CopyBits and friends
175n/a ([('RgnHandle', 'maskRgn', 'InMode')],
176n/a [('OptRgnHandle', 'maskRgn', 'InMode')]),
177n/a
178n/a ('QDFlushPortBuffer',
179n/a [('RgnHandle', '*', 'InMode')],
180n/a [('OptRgnHandle', '*', 'InMode')]),
181n/a
182n/a # Accessors with reference argument also returned.
183n/a ([('Rect_ptr', 'GetPortBounds', 'ReturnMode')],
184n/a [('void', '*', 'ReturnMode')]),
185n/a
186n/a ([('RGBColor_ptr', 'GetPortForeColor', 'ReturnMode')],
187n/a [('void', '*', 'ReturnMode')]),
188n/a
189n/a ([('RGBColor_ptr', 'GetPortBackColor', 'ReturnMode')],
190n/a [('void', '*', 'ReturnMode')]),
191n/a
192n/a ([('RGBColor_ptr', 'GetPortOpColor', 'ReturnMode')],
193n/a [('void', '*', 'ReturnMode')]),
194n/a
195n/a ([('RGBColor_ptr', 'GetPortHiliteColor', 'ReturnMode')],
196n/a [('void', '*', 'ReturnMode')]),
197n/a
198n/a ([('Point_ptr', 'GetPortPenSize', 'ReturnMode')],
199n/a [('void', '*', 'ReturnMode')]),
200n/a
201n/a ([('Point_ptr', 'GetPortPenLocation', 'ReturnMode')],
202n/a [('void', '*', 'ReturnMode')]),
203n/a
204n/a ([('Rect_ptr', 'GetPixBounds', 'ReturnMode')],
205n/a [('void', '*', 'ReturnMode')]),
206n/a
207n/a ([('BitMap_ptr', 'GetQDGlobalsScreenBits', 'ReturnMode')],
208n/a [('void', '*', 'ReturnMode')]),
209n/a
210n/a ([('Cursor_ptr', 'GetQDGlobalsArrow', 'ReturnMode')],
211n/a [('void', '*', 'ReturnMode')]),
212n/a
213n/a ([('Rect_ptr', 'GetRegionBounds', 'ReturnMode')],
214n/a [('void', '*', 'ReturnMode')]),
215n/a
216n/a ([('Pattern_ptr', '*', 'ReturnMode')],
217n/a [('void', '*', 'ReturnMode')]),
218n/a
219n/a ([('Point_ptr', 'QDLocalToGlobalPoint', 'ReturnMode')],
220n/a [('void', '*', 'ReturnMode')]),
221n/a
222n/a ([('Rect_ptr', 'QDLocalToGlobalRect', 'ReturnMode')],
223n/a [('void', '*', 'ReturnMode')]),
224n/a
225n/a ([('Point_ptr', 'QDGlobalToLocalPoint', 'ReturnMode')],
226n/a [('void', '*', 'ReturnMode')]),
227n/a
228n/a ([('Rect_ptr', 'QDGlobalToLocalRect', 'ReturnMode')],
229n/a [('void', '*', 'ReturnMode')]),
230n/a
231n/a ]
232n/a
233n/aif __name__ == "__main__":
234n/a main()