Another batch of updates...
[python/dscho.git] / Mac / Modules / ctl / ctlscan.py
blob661cbfebc2b92ecc3531c8eeb0f78ba1b4132875
1 # Scan <Controls.h>, generating ctlgen.py.
2 import addpack
3 addpack.addpack(':Tools:bgen:bgen')
5 from scantools import Scanner
6 from bgenlocations import TOOLBOXDIR
8 def main():
9 input = "Controls.h"
10 output = "ctlgen.py"
11 defsoutput = TOOLBOXDIR + "Controls.py"
12 scanner = MyScanner(input, output, defsoutput)
13 scanner.scan()
14 scanner.close()
15 print "=== Done scanning and generating, now doing 'import ctlsupport' ==="
16 import ctlsupport
17 print "=== Done. It's up to you to compile Ctlmodule.c ==="
19 class MyScanner(Scanner):
21 def destination(self, type, name, arglist):
22 classname = "Function"
23 listname = "functions"
24 if arglist:
25 t, n, m = arglist[0]
26 if t in ("ControlHandle", "ControlRef") and m == "InMode":
27 classname = "Method"
28 listname = "methods"
29 return classname, listname
31 def makeblacklistnames(self):
32 return [
33 'DisposeControl' # Implied by deletion of control object
34 'KillControls', # Implied by close of dialog
35 'SetCtlAction',
38 def makeblacklisttypes(self):
39 return [
40 'ProcPtr',
41 'ControlActionUPP',
42 'CCTabHandle',
43 'AuxCtlHandle',
46 def makerepairinstructions(self):
47 return [
48 ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
49 [("InBuffer", "*", "*")]),
51 ([("void", "*", "OutMode"), ("long", "*", "InMode"),
52 ("long", "*", "OutMode")],
53 [("VarVarOutBuffer", "*", "InOutMode")]),
55 # For TrackControl
56 ([("ProcPtr", "actionProc", "InMode")],
57 [("FakeType('(ControlActionUPP)0')", "*", "*")]),
58 ([("ControlActionUPP", "actionProc", "InMode")],
59 [("FakeType('(ControlActionUPP)0')", "*", "*")]),
61 ([("ControlHandle", "*", "OutMode")],
62 [("ExistingControlHandle", "*", "*")]),
63 ([("ControlRef", "*", "OutMode")], # Ditto, for Universal Headers
64 [("ExistingControlHandle", "*", "*")]),
67 if __name__ == "__main__":
68 main()