summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/qd/qdscan.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Modules/qd/qdscan.py')
-rw-r--r--Mac/Modules/qd/qdscan.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/Mac/Modules/qd/qdscan.py b/Mac/Modules/qd/qdscan.py
new file mode 100644
index 0000000..057db6d
--- /dev/null
+++ b/Mac/Modules/qd/qdscan.py
@@ -0,0 +1,83 @@
+# Scan an Apple header file, generating a Python file of generator calls.
+
+import addpack
+addpack.addpack('D:python:Tools:bgen:bgen')
+
+from scantools import Scanner
+
+def main():
+ input = "QuickDraw.h"
+ output = "qdgen.py"
+ defsoutput = "QuickDraw.py"
+ scanner = MyScanner(input, output, defsoutput)
+ scanner.scan()
+ scanner.close()
+ print "=== Done scanning and generating, now importing the generated code... ==="
+ import qdsupport
+ print "=== Done. It's up to you to compile it now! ==="
+
+class MyScanner(Scanner):
+
+ def destination(self, type, name, arglist):
+ classname = "Function"
+ listname = "functions"
+ if arglist:
+ t, n, m = arglist[0]
+ if t in ("WindowPtr", "WindowPeek") and m == "InMode":
+ classname = "Method"
+ listname = "methods"
+ return classname, listname
+
+ def makeblacklistnames(self):
+ return [
+ 'InitGraf',
+ 'StuffHex',
+ 'StdLine',
+ 'StdComment',
+ 'StdGetPic',
+ 'StdLine',
+ ]
+
+ def makeblacklisttypes(self):
+ return [
+ 'BitMap_ptr',
+ 'CCrsrHandle',
+ 'CGrafPtr',
+ 'CIconHandle',
+ 'CQDProcs',
+ 'CSpecArray',
+ 'CTabHandle',
+ 'ColorComplementProcPtr',
+ 'ColorSearchProcPtr',
+ 'ConstPatternParam',
+ 'Cursor_ptr',
+ 'DeviceLoopDrawingProcPtr',
+ 'DeviceLoopFlags',
+ 'FontInfo',
+ 'GDHandle',
+ 'GrafVerb',
+ 'OpenCPicParams_ptr',
+ 'PenState',
+ 'PenState_ptr',
+ 'Ptr',
+ 'QDProcs',
+ 'RGBColor',
+ 'RGBColor_ptr',
+ 'ReqListRec',
+ 'void_ptr',
+ ]
+
+ def makerepairinstructions(self):
+ return [
+ ([('void_ptr', 'textBuf', 'InMode'),
+ ('short', 'firstByte', 'InMode'),
+ ('short', 'byteCount', 'InMode')],
+ [('TextThingie', '*', '*'), ('*', '*', '*'), ('*', '*', '*')]),
+
+ ([('Point', '*', 'OutMode')],
+ [('*', '*', 'InOutMode')]),
+
+ ]
+
+if __name__ == "__main__":
+ main()