symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/drag/dragscan.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # Scan <Drag.h>, generating draggen.py.
       
     2 import sys
       
     3 from bgenlocations import TOOLBOXDIR, BGENDIR, INCLUDEDIR
       
     4 sys.path.append(BGENDIR)
       
     5 
       
     6 from scantools import Scanner
       
     7 
       
     8 MISSING_DEFINES="""
       
     9 kDragHasLeftSenderWindow        = (1 << 0)
       
    10 kDragInsideSenderApplication = (1 << 1)
       
    11 kDragInsideSenderWindow         = (1 << 2)
       
    12 kDragRegionAndImage                     = (1 << 4)
       
    13 flavorSenderOnly                        = (1 << 0)
       
    14 flavorSenderTranslated          = (1 << 1)
       
    15 flavorNotSaved                          = (1 << 2)
       
    16 flavorSystemTranslated          = (1 << 8)
       
    17 """
       
    18 
       
    19 
       
    20 def main():
       
    21     input = INCLUDEDIR + "Drag.h"
       
    22     output = "draggen.py"
       
    23     defsoutput = TOOLBOXDIR + "Dragconst.py"
       
    24     scanner = MyScanner(input, output, defsoutput)
       
    25     scanner.scan()
       
    26     scanner.close()
       
    27     print "=== Testing definitions output code ==="
       
    28     execfile(defsoutput, {}, {})
       
    29     print "=== Done scanning and generating, now doing 'import dragsupport' ==="
       
    30     import dragsupport
       
    31     print "=== Done.  It's up to you to compile Dragmodule.c ==="
       
    32 
       
    33 class MyScanner(Scanner):
       
    34 
       
    35     def destination(self, type, name, arglist):
       
    36         classname = "Function"
       
    37         listname = "functions"
       
    38         if arglist:
       
    39             t, n, m = arglist[0]
       
    40             if t in ('DragReference', 'DragRef') and m == "InMode":
       
    41                 classname = "Method"
       
    42                 listname = "methods"
       
    43         return classname, listname
       
    44 
       
    45     def writeinitialdefs(self):
       
    46         self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
       
    47         self.defsfile.write("from Carbon.TextEdit import *\n")
       
    48         self.defsfile.write("from Carbon.QuickDraw import *\n")
       
    49         self.defsfile.write("fkDragActionAll = -1\n")
       
    50         self.defsfile.write("\n")
       
    51         # Defines unparseable in Drag.h
       
    52         self.defsfile.write(MISSING_DEFINES)
       
    53 
       
    54     def makeblacklistnames(self):
       
    55         return [
       
    56                 "kDragActionAll",
       
    57                 ]
       
    58 
       
    59     def makeblacklisttypes(self):
       
    60         return [
       
    61                 "DragTrackingHandlerUPP",
       
    62                 "DragReceiveHandlerUPP",
       
    63                 "DragSendDataUPP",
       
    64                 "DragInputUPP",
       
    65                 "DragDrawingUPP",
       
    66                 ]
       
    67 
       
    68     def makerepairinstructions(self):
       
    69         return [
       
    70                 ([("void_ptr", "*", "InMode"), ("Size", "*", "InMode")],
       
    71                  [("OptionalInBuffer", "*", "*")]),
       
    72 
       
    73                 ([("void", "*", "OutMode"), ("Size", "*", "OutMode")],
       
    74                  [("VarOutBuffer", "*", "InOutMode")]),
       
    75 
       
    76                 ]
       
    77 
       
    78 if __name__ == "__main__":
       
    79     main()