# IBCarbonscan.py import sys import os import string import MacOS import sys BGENDIR= os.path.join(sys.prefix, ':Tools:bgen:bgen:') sys.path.append(BGENDIR) from bgenlocations import TOOLBOXDIR 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 "--done scanning, importing--" import CarbonEvtsupport print "done" RefObjectTypes = ["EventRef", "EventQueueRef", "EventLoopRef", "EventLoopTimerRef", "EventHandlerRef", "EventHandlerCallRef", "EventTargetRef", "EventHotKeyRef", ] class CarbonEvents_Scanner(Scanner): def destination(self, type, name, arglist): classname = "CarbonEventsFunction" listname = "functions" if arglist: t, n, m = arglist[0] print "*********", t, if t in RefObjectTypes and m == "InMode": print "method" classname = "CarbonEventsMethod" listname = t + "methods" else: print "not method" return classname, listname def makeblacklistnames(self): return [ "MacCreateEvent", "TrackMouseLocationWithOptions", "TrackMouseLocation", "TrackMouseRegion", "RegisterToolboxObjectClass", "UnregisterToolboxObjectClass", "ProcessHICommand", "GetCFRunLoopFromEventLoop", "InvokeEventHandlerUPP", "InvokeEventComparatorUPP", "InvokeEventLoopTimerUPP", # Wrote by hand "InstallEventHandler", "RunApplicationEventLoop", # 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 [] if __name__ == "__main__": main()