symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/carbonevt/CarbonEvtscan.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # IBCarbonscan.py
       
     2 
       
     3 import sys
       
     4 import MacOS
       
     5 import sys
       
     6 
       
     7 from bgenlocations import TOOLBOXDIR, BGENDIR
       
     8 sys.path.append(BGENDIR)
       
     9 
       
    10 from scantools import Scanner, Scanner_OSX
       
    11 
       
    12 def main():
       
    13     print "---Scanning CarbonEvents.h---"
       
    14     input = ["CarbonEvents.h"]
       
    15     output = "CarbonEventsgen.py"
       
    16     defsoutput = TOOLBOXDIR + "CarbonEvents.py"
       
    17     scanner = CarbonEvents_Scanner(input, output, defsoutput)
       
    18     scanner.scan()
       
    19     scanner.close()
       
    20     print "=== Testing definitions output code ==="
       
    21     execfile(defsoutput, {}, {})
       
    22     print "--done scanning, importing--"
       
    23     import CarbonEvtsupport
       
    24     print "done"
       
    25 
       
    26 RefObjectTypes = ["EventRef",
       
    27                                 "EventQueueRef",
       
    28                                 "EventLoopRef",
       
    29                                 "EventLoopTimerRef",
       
    30                                 "EventHandlerRef",
       
    31                                 "EventHandlerCallRef",
       
    32                                 "EventTargetRef",
       
    33                                 "EventHotKeyRef",
       
    34                                 ]
       
    35 
       
    36 class CarbonEvents_Scanner(Scanner_OSX):
       
    37     def destination(self, type, name, arglist):
       
    38         classname = "CarbonEventsFunction"
       
    39         listname = "functions"
       
    40         if arglist:
       
    41             t, n, m = arglist[0]
       
    42             if t in RefObjectTypes and m == "InMode":
       
    43                 if t == "EventHandlerRef":
       
    44                     classname = "EventHandlerRefMethod"
       
    45                 else:
       
    46                     classname = "CarbonEventsMethod"
       
    47                 listname = t + "methods"
       
    48             #else:
       
    49             #       print "not method"
       
    50         return classname, listname
       
    51 
       
    52     def writeinitialdefs(self):
       
    53         self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
       
    54         self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
       
    55         self.defsfile.write("false = 0\n")
       
    56         self.defsfile.write("true = 1\n")
       
    57         self.defsfile.write("keyAEEventClass = FOUR_CHAR_CODE('evcl')\n")
       
    58         self.defsfile.write("keyAEEventID = FOUR_CHAR_CODE('evti')\n")
       
    59 
       
    60     def makeblacklistnames(self):
       
    61         return [
       
    62                 "sHandler",
       
    63                 "MacCreateEvent",
       
    64 #                       "TrackMouseLocationWithOptions",
       
    65 #                       "TrackMouseLocation",
       
    66 #                       "TrackMouseRegion",
       
    67                 "RegisterToolboxObjectClass",
       
    68                 "UnregisterToolboxObjectClass",
       
    69                 "ProcessHICommand",
       
    70                 "GetCFRunLoopFromEventLoop",
       
    71 
       
    72                 "InvokeEventHandlerUPP",
       
    73                 "InvokeEventComparatorUPP",
       
    74                 "InvokeEventLoopTimerUPP",
       
    75                 "NewEventComparatorUPP",
       
    76                 "NewEventLoopTimerUPP",
       
    77                 "NewEventHandlerUPP",
       
    78                 "DisposeEventComparatorUPP",
       
    79                 "DisposeEventLoopTimerUPP",
       
    80                 "DisposeEventHandlerUPP",
       
    81 
       
    82                 # Wrote by hand
       
    83                 "InstallEventHandler",
       
    84                 "RemoveEventHandler",
       
    85 
       
    86                 # Write by hand?
       
    87                 "GetEventParameter",
       
    88                 "FlushSpecificEventsFromQueue",
       
    89                 "FindSpecificEventInQueue",
       
    90                 "InstallEventLoopTimer",
       
    91 
       
    92                 # Don't do these because they require a CFRelease
       
    93                 "CreateTypeStringWithOSType",
       
    94                 "CopyEvent",
       
    95                 ]
       
    96 
       
    97 #       def makeblacklisttypes(self):
       
    98 #               return ["EventComparatorUPP",
       
    99 #                               "EventLoopTimerUPP",
       
   100 #                               #"EventHandlerUPP",
       
   101 #                               "EventComparatorProcPtr",
       
   102 #                               "EventLoopTimerProcPtr",
       
   103 #                               "EventHandlerProcPtr",
       
   104 #                               ]
       
   105 
       
   106     def makerepairinstructions(self):
       
   107         return [
       
   108                 ([("UInt32", 'inSize', "InMode"), ("void_ptr", 'inDataPtr', "InMode")],
       
   109                  [("MyInBuffer", 'inDataPtr', "InMode")]),
       
   110                 ([("Boolean", 'ioWasInRgn', "OutMode")],
       
   111                  [("Boolean", 'ioWasInRgn', "InOutMode")]),
       
   112         ]
       
   113 
       
   114 if __name__ == "__main__":
       
   115     main()