ยปCore Development>Code coverage>Mac/Modules/mlte/mltescan.py

Python code coverage for Mac/Modules/mlte/mltescan.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/afrom scantools import Scanner_OSX
7n/a
8n/aLONG = "MacTextEditor"
9n/aSHORT = "mlte"
10n/aOBJECTS = ("TXNObject", "TXNFontMenuObject")
11n/a# ADD object typenames here
12n/a
13n/adef main():
14n/a input = "MacTextEditor.h"
15n/a output = SHORT + "gen.py"
16n/a defsoutput = TOOLBOXDIR + LONG + ".py"
17n/a scanner = MyScanner(input, output, defsoutput)
18n/a scanner.scan()
19n/a scanner.gentypetest(SHORT+"typetest.py")
20n/a scanner.close()
21n/a print "=== Testing definitions output code ==="
22n/a execfile(defsoutput, {}, {})
23n/a print "=== Done scanning and generating, now importing the generated code... ==="
24n/a exec "import " + SHORT + "support"
25n/a print "=== Done. It's up to you to compile it now! ==="
26n/a
27n/aclass MyScanner(Scanner_OSX):
28n/a
29n/a def destination(self, type, name, arglist):
30n/a classname = "Function"
31n/a listname = "functions"
32n/a if arglist:
33n/a t, n, m = arglist[0]
34n/a if t in OBJECTS and m == "InMode":
35n/a classname = "Method"
36n/a listname = t + "_methods"
37n/a return classname, listname
38n/a
39n/a def writeinitialdefs(self):
40n/a self.defsfile.write("""
41n/adef FOUR_CHAR_CODE(x): return x
42n/afalse = 0
43n/atrue = 1
44n/akTXNClearThisControl = 0xFFFFFFFF
45n/akTXNClearTheseFontFeatures = 0x80000000
46n/akTXNDontCareTypeSize = 0xFFFFFFFF
47n/akTXNDecrementTypeSize = 0x80000000
48n/akTXNUseCurrentSelection = 0xFFFFFFFF
49n/akTXNStartOffset = 0
50n/akTXNEndOffset = 0x7FFFFFFF
51n/aMovieFileType = FOUR_CHAR_CODE('moov')
52n/akTXNUseEncodingWordRulesMask = 0x80000000
53n/akTXNFontSizeAttributeSize = 4
54n/anormal = 0
55n/a""")
56n/a
57n/a def makeblacklistnames(self):
58n/a return [
59n/a "TXNGetFontDefaults", # Arg is too difficult
60n/a "TXNSetFontDefaults", # Arg is too difficult
61n/a "TXNInitTextension", # done manually
62n/a
63n/a # Constants with funny definitions
64n/a "kTXNClearThisControl",
65n/a "kTXNClearTheseFontFeatures",
66n/a "kTXNDontCareTypeSize",
67n/a "kTXNDecrementTypeSize",
68n/a "kTXNUseCurrentSelection",
69n/a "kTXNStartOffset",
70n/a "kTXNEndOffset",
71n/a "kTXNQDFontNameAttributeSize",
72n/a "kTXNQDFontFamilyIDAttributeSize",
73n/a "kTXNQDFontSizeAttributeSize",
74n/a "kTXNQDFontStyleAttributeSize",
75n/a "kTXNQDFontColorAttributeSize",
76n/a "kTXNTextEncodingAttributeSize",
77n/a "kTXNUseEncodingWordRulesMask",
78n/a "kTXNFontSizeAttributeSize",
79n/a "status",
80n/a "justification",
81n/a 'TXNTSMCheck', # OS8
82n/a ]
83n/a
84n/a def makeblacklisttypes(self):
85n/a return [
86n/a "TXNTab", # TBD
87n/a "TXNMargins", # TBD
88n/a "TXNControlData", #TBD
89n/a "TXNATSUIFeatures", #TBD
90n/a "TXNATSUIVariations", #TBD
91n/a "TXNAttributeData", #TBD
92n/a "TXNTypeAttributes", #TBD
93n/a "TXNMatchTextRecord", #TBD
94n/a "TXNBackground", #TBD
95n/a "TXNFindUPP",
96n/a "ATSUStyle", #TBD
97n/a "TXNBackground_ptr", #TBD
98n/a "TXNControlData_ptr", #TBD
99n/a "TXNControlTag_ptr", #TBD
100n/a "TXNLongRect", #TBD
101n/a "TXNLongRect_ptr", #TBD
102n/a "TXNTypeAttributes_ptr", #TBD
103n/a
104n/a "TXNActionKeyMapperProcPtr",
105n/a "TXNActionKeyMapperUPP",
106n/a "TXNTextBoxOptionsData",
107n/a "TXNCountOptions",
108n/a "void_ptr",
109n/a ]
110n/a
111n/a def makerepairinstructions(self):
112n/a return [
113n/a # TXNNewObject has a lot of optional parameters
114n/a ([("FSSpec_ptr", "iFileSpec", "InMode")],
115n/a [("OptFSSpecPtr", "*", "*")]),
116n/a ([("Rect", "iFrame", "OutMode")],
117n/a [("OptRectPtr", "*", "InMode")]),
118n/a
119n/a # In UH 332 some of the "const" are missing for input parameters passed
120n/a # by reference. We fix that up here.
121n/a ([("EventRecord", "iEvent", "OutMode")],
122n/a [("EventRecord_ptr", "*", "InMode")]),
123n/a ([("FSSpec", "iFileSpecification", "OutMode")],
124n/a [("FSSpec_ptr", "*", "InMode")]),
125n/a ([("TXNMacOSPreferredFontDescription", "iFontDefaults", "OutMode")],
126n/a [("TXNMacOSPreferredFontDescription_ptr", "*", "InMode")]),
127n/a
128n/a # In buffers are passed as void *
129n/a ([("void", "*", "OutMode"), ("ByteCount", "*", "InMode")],
130n/a [("MlteInBuffer", "*", "InMode")]),
131n/a
132n/a # The AdjustCursor region handle is optional
133n/a ([("RgnHandle", "ioCursorRgn", "InMode")],
134n/a [("OptRgnHandle", "*", "*")]),
135n/a
136n/a # The GWorld for TXNDraw is optional
137n/a ([('GWorldPtr', 'iDrawPort', 'InMode')],
138n/a [('OptGWorldPtr', '*', '*')]),
139n/a ]
140n/a
141n/aif __name__ == "__main__":
142n/a main()