blob: 1f870c929c80132144abdc9a04541a8b157b66d1 [file] [log] [blame]
Guido van Rossum17448e21995-01-30 11:53:55 +00001# Scan <Controls.h>, generating ctlgen.py.
Jack Jansenae8a68f1995-06-06 12:55:40 +00002import addpack
3addpack.addpack(':Tools:bgen:bgen')
Guido van Rossum17448e21995-01-30 11:53:55 +00004
5from scantools import Scanner
Jack Jansenc574b431996-04-12 16:26:59 +00006from bgenlocations import TOOLBOXDIR
Guido van Rossum17448e21995-01-30 11:53:55 +00007
8def main():
9 input = "Controls.h"
10 output = "ctlgen.py"
Jack Jansenc574b431996-04-12 16:26:59 +000011 defsoutput = TOOLBOXDIR + "Controls.py"
Guido van Rossum17448e21995-01-30 11:53:55 +000012 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 ==="
18
19class MyScanner(Scanner):
20
21 def destination(self, type, name, arglist):
22 classname = "Function"
23 listname = "functions"
24 if arglist:
25 t, n, m = arglist[0]
Jack Jansenae8a68f1995-06-06 12:55:40 +000026 if t in ("ControlHandle", "ControlRef") and m == "InMode":
Guido van Rossum17448e21995-01-30 11:53:55 +000027 classname = "Method"
28 listname = "methods"
29 return classname, listname
30
31 def makeblacklistnames(self):
32 return [
Jack Jansencfb60ee1996-10-01 10:46:46 +000033 'DisposeControl', # Generated manually
Guido van Rossum17448e21995-01-30 11:53:55 +000034 'KillControls', # Implied by close of dialog
35 'SetCtlAction',
36 ]
37
38 def makeblacklisttypes(self):
39 return [
40 'ProcPtr',
Jack Jansenae8a68f1995-06-06 12:55:40 +000041 'ControlActionUPP',
Guido van Rossum17448e21995-01-30 11:53:55 +000042 ]
43
44 def makerepairinstructions(self):
45 return [
46 ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
47 [("InBuffer", "*", "*")]),
48
49 ([("void", "*", "OutMode"), ("long", "*", "InMode"),
50 ("long", "*", "OutMode")],
51 [("VarVarOutBuffer", "*", "InOutMode")]),
52
53 # For TrackControl
54 ([("ProcPtr", "actionProc", "InMode")],
55 [("FakeType('(ControlActionUPP)0')", "*", "*")]),
Jack Jansenae8a68f1995-06-06 12:55:40 +000056 ([("ControlActionUPP", "actionProc", "InMode")],
57 [("FakeType('(ControlActionUPP)0')", "*", "*")]),
Guido van Rossum17448e21995-01-30 11:53:55 +000058
59 ([("ControlHandle", "*", "OutMode")],
60 [("ExistingControlHandle", "*", "*")]),
Jack Jansenae8a68f1995-06-06 12:55:40 +000061 ([("ControlRef", "*", "OutMode")], # Ditto, for Universal Headers
62 [("ExistingControlHandle", "*", "*")]),
Guido van Rossum17448e21995-01-30 11:53:55 +000063 ]
64
65if __name__ == "__main__":
66 main()