diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/carbonevt/CarbonEvtscan.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/carbonevt/CarbonEvtscan.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,115 @@ +# IBCarbonscan.py + +import sys +import MacOS +import sys + +from bgenlocations import TOOLBOXDIR, BGENDIR +sys.path.append(BGENDIR) + +from scantools import Scanner, Scanner_OSX + +def main(): + print "---Scanning CarbonEvents.h---" + input = ["CarbonEvents.h"] + output = "CarbonEventsgen.py" + defsoutput = TOOLBOXDIR + "CarbonEvents.py" + scanner = CarbonEvents_Scanner(input, output, defsoutput) + scanner.scan() + scanner.close() + print "=== Testing definitions output code ===" + execfile(defsoutput, {}, {}) + print "--done scanning, importing--" + import CarbonEvtsupport + print "done" + +RefObjectTypes = ["EventRef", + "EventQueueRef", + "EventLoopRef", + "EventLoopTimerRef", + "EventHandlerRef", + "EventHandlerCallRef", + "EventTargetRef", + "EventHotKeyRef", + ] + +class CarbonEvents_Scanner(Scanner_OSX): + def destination(self, type, name, arglist): + classname = "CarbonEventsFunction" + listname = "functions" + if arglist: + t, n, m = arglist[0] + if t in RefObjectTypes and m == "InMode": + if t == "EventHandlerRef": + classname = "EventHandlerRefMethod" + else: + classname = "CarbonEventsMethod" + listname = t + "methods" + #else: + # print "not method" + return classname, listname + + def writeinitialdefs(self): + self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") + self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") + self.defsfile.write("false = 0\n") + self.defsfile.write("true = 1\n") + self.defsfile.write("keyAEEventClass = FOUR_CHAR_CODE('evcl')\n") + self.defsfile.write("keyAEEventID = FOUR_CHAR_CODE('evti')\n") + + def makeblacklistnames(self): + return [ + "sHandler", + "MacCreateEvent", +# "TrackMouseLocationWithOptions", +# "TrackMouseLocation", +# "TrackMouseRegion", + "RegisterToolboxObjectClass", + "UnregisterToolboxObjectClass", + "ProcessHICommand", + "GetCFRunLoopFromEventLoop", + + "InvokeEventHandlerUPP", + "InvokeEventComparatorUPP", + "InvokeEventLoopTimerUPP", + "NewEventComparatorUPP", + "NewEventLoopTimerUPP", + "NewEventHandlerUPP", + "DisposeEventComparatorUPP", + "DisposeEventLoopTimerUPP", + "DisposeEventHandlerUPP", + + # Wrote by hand + "InstallEventHandler", + "RemoveEventHandler", + + # Write by hand? + "GetEventParameter", + "FlushSpecificEventsFromQueue", + "FindSpecificEventInQueue", + "InstallEventLoopTimer", + + # Don't do these because they require a CFRelease + "CreateTypeStringWithOSType", + "CopyEvent", + ] + +# def makeblacklisttypes(self): +# return ["EventComparatorUPP", +# "EventLoopTimerUPP", +# #"EventHandlerUPP", +# "EventComparatorProcPtr", +# "EventLoopTimerProcPtr", +# "EventHandlerProcPtr", +# ] + + def makerepairinstructions(self): + return [ + ([("UInt32", 'inSize', "InMode"), ("void_ptr", 'inDataPtr', "InMode")], + [("MyInBuffer", 'inDataPtr', "InMode")]), + ([("Boolean", 'ioWasInRgn', "OutMode")], + [("Boolean", 'ioWasInRgn', "InOutMode")]), + ] + +if __name__ == "__main__": + main()