--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/qd/qdscan.py Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,234 @@
+# Scan an Apple header file, generating a Python file of generator calls.
+
+import sys
+from bgenlocations import TOOLBOXDIR, BGENDIR
+sys.path.append(BGENDIR)
+
+from scantools import Scanner
+
+def main():
+ input = "QuickDraw.h"
+ output = "qdgen.py"
+ defsoutput = TOOLBOXDIR + "QuickDraw.py"
+ scanner = MyScanner(input, output, defsoutput)
+ scanner.scan()
+ scanner.close()
+
+ # Grmpf. Universal Headers have Text-stuff in a different include file...
+ input = "QuickDrawText.h"
+ output = "@qdgentext.py"
+ defsoutput = "@QuickDrawText.py"
+ have_extra = 0
+ try:
+ scanner = MyScanner(input, output, defsoutput)
+ scanner.scan()
+ scanner.close()
+ have_extra = 1
+ except IOError:
+ pass
+ if have_extra:
+ print "=== Copying QuickDrawText stuff into main files... ==="
+ ifp = open("@qdgentext.py")
+ ofp = open("qdgen.py", "a")
+ ofp.write(ifp.read())
+ ifp.close()
+ ofp.close()
+ ifp = open("@QuickDrawText.py")
+ ofp = open(TOOLBOXDIR + "QuickDraw.py", "a")
+ ofp.write(ifp.read())
+ ifp.close()
+ ofp.close()
+
+ print "=== Testing definitions output code ==="
+ execfile(defsoutput, {}, {})
+ 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 ('GrafPtr', 'CGrafPtr') and m == 'InMode':
+ classname = "Method"
+ listname = "gr_methods"
+ elif t == 'BitMapPtr' and m == 'InMode':
+ classname = "Method"
+ listname = "bm_methods"
+## elif t == "PolyHandle" and m == "InMode":
+## classname = "Method"
+## listname = "p_methods"
+## elif t == "RgnHandle" and m == "InMode":
+## classname = "Method"
+## listname = "r_methods"
+ return classname, listname
+
+
+ def writeinitialdefs(self):
+ self.defsfile.write("""
+def FOUR_CHAR_CODE(x): return x
+normal = 0
+bold = 1
+italic = 2
+underline = 4
+outline = 8
+shadow = 0x10
+condense = 0x20
+extend = 0x40
+""")
+
+ def makeblacklistnames(self):
+ return [
+ 'InitGraf',
+ 'StuffHex',
+ 'StdLine',
+ 'StdComment',
+ 'StdGetPic',
+ 'OpenPort',
+ 'InitPort',
+ 'ClosePort',
+ 'OpenCPort',
+ 'InitCPort',
+ 'CloseCPort',
+ 'BitMapToRegionGlue',
+ 'StdOpcode', # XXXX Missing from library...
+ # The following are for non-macos use:
+ 'LockPortBits',
+ 'UnlockPortBits',
+ 'UpdatePort',
+ 'GetPortNativeWindow',
+ 'GetNativeWindowPort',
+ 'NativeRegionToMacRegion',
+ 'MacRegionToNativeRegion',
+ 'GetPortHWND',
+ 'GetHWNDPort',
+ 'GetPICTFromDIB',
+
+ 'HandleToRgn', # Funny signature
+
+ # Need Cm, which we don't want to drag in just yet
+ 'OpenCursorComponent',
+ 'CloseCursorComponent',
+ 'SetCursorComponent',
+ 'CursorComponentChanged',
+ 'CursorComponentSetData',
+ ]
+
+ def makeblacklisttypes(self):
+ return [
+ "QDRegionBitsRef", # Should do this, but too lazy now.
+ 'CIconHandle', # Obsolete
+ 'CQDProcs',
+ 'CQDProcsPtr',
+ 'CSpecArray',
+ 'ColorComplementProcPtr',
+ 'ColorComplementUPP',
+ 'ColorSearchProcPtr',
+ 'ColorSearchUPP',
+ 'ConstPatternParam',
+ 'DeviceLoopDrawingProcPtr',
+ 'DeviceLoopFlags',
+ 'GrafVerb',
+ 'OpenCPicParams_ptr',
+ 'Ptr',
+ 'QDProcs',
+ 'ReqListRec',
+ 'void_ptr',
+ 'CustomXFerProcPtr',
+ ]
+
+ def makerepairinstructions(self):
+ return [
+ ([('void_ptr', 'textBuf', 'InMode'),
+ ('short', 'firstByte', 'InMode'),
+ ('short', 'byteCount', 'InMode')],
+ [('TextThingie', '*', '*'), ('*', '*', '*'), ('*', '*', '*')]),
+
+ # GetPen and SetPt use a point-pointer as output-only:
+ ('GetPen', [('Point', '*', 'OutMode')], [('*', '*', 'OutMode')]),
+ ('SetPt', [('Point', '*', 'OutMode')], [('*', '*', 'OutMode')]),
+
+ # All others use it as input/output:
+ ([('Point', '*', 'OutMode')],
+ [('*', '*', 'InOutMode')]),
+
+ # InsetRect, OffsetRect
+ ([('Rect', 'r', 'OutMode'),
+ ('short', 'dh', 'InMode'),
+ ('short', 'dv', 'InMode')],
+ [('Rect', 'r', 'InOutMode'),
+ ('short', 'dh', 'InMode'),
+ ('short', 'dv', 'InMode')]),
+
+ # MapRect
+ ([('Rect', 'r', 'OutMode'),
+ ('Rect_ptr', 'srcRect', 'InMode'),
+ ('Rect_ptr', 'dstRect', 'InMode')],
+ [('Rect', 'r', 'InOutMode'),
+ ('Rect_ptr', 'srcRect', 'InMode'),
+ ('Rect_ptr', 'dstRect', 'InMode')]),
+
+ # CopyBits and friends
+ ([('RgnHandle', 'maskRgn', 'InMode')],
+ [('OptRgnHandle', 'maskRgn', 'InMode')]),
+
+ ('QDFlushPortBuffer',
+ [('RgnHandle', '*', 'InMode')],
+ [('OptRgnHandle', '*', 'InMode')]),
+
+ # Accessors with reference argument also returned.
+ ([('Rect_ptr', 'GetPortBounds', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('RGBColor_ptr', 'GetPortForeColor', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('RGBColor_ptr', 'GetPortBackColor', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('RGBColor_ptr', 'GetPortOpColor', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('RGBColor_ptr', 'GetPortHiliteColor', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Point_ptr', 'GetPortPenSize', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Point_ptr', 'GetPortPenLocation', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Rect_ptr', 'GetPixBounds', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('BitMap_ptr', 'GetQDGlobalsScreenBits', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Cursor_ptr', 'GetQDGlobalsArrow', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Rect_ptr', 'GetRegionBounds', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Pattern_ptr', '*', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Point_ptr', 'QDLocalToGlobalPoint', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Rect_ptr', 'QDLocalToGlobalRect', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Point_ptr', 'QDGlobalToLocalPoint', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ([('Rect_ptr', 'QDGlobalToLocalRect', 'ReturnMode')],
+ [('void', '*', 'ReturnMode')]),
+
+ ]
+
+if __name__ == "__main__":
+ main()