diff options
Diffstat (limited to 'Mac/Modules/qd/qdscan.py')
-rw-r--r-- | Mac/Modules/qd/qdscan.py | 434 |
1 files changed, 217 insertions, 217 deletions
diff --git a/Mac/Modules/qd/qdscan.py b/Mac/Modules/qd/qdscan.py index f58bb22..85a8cdc 100644 --- a/Mac/Modules/qd/qdscan.py +++ b/Mac/Modules/qd/qdscan.py @@ -8,228 +8,228 @@ 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! ===" + 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 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 +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')]), - - ] + 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() + main() |