~malept/ubuntu/lucid/python2.6/dev-dependency-fix

« back to all changes in this revision

Viewing changes to Mac/Modules/dlg/dlgscan.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-02-13 12:51:00 UTC
  • Revision ID: james.westby@ubuntu.com-20090213125100-uufgcb9yeqzujpqw
Tags: upstream-2.6.1
ImportĀ upstreamĀ versionĀ 2.6.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Scan an Apple header file, generating a Python file of generator calls.
 
2
 
 
3
import sys
 
4
from bgenlocations import TOOLBOXDIR, BGENDIR
 
5
sys.path.append(BGENDIR)
 
6
 
 
7
from scantools import Scanner
 
8
 
 
9
LONG = "Dialogs"
 
10
SHORT = "dlg"
 
11
OBJECT = "DialogPtr"
 
12
 
 
13
def main():
 
14
    input = LONG + ".h"
 
15
    output = SHORT + "gen.py"
 
16
    defsoutput = TOOLBOXDIR + LONG + ".py"
 
17
    scanner = MyScanner(input, output, defsoutput)
 
18
    scanner.scan()
 
19
    scanner.close()
 
20
    print "=== Testing definitions output code ==="
 
21
    execfile(defsoutput, {}, {})
 
22
    print "=== Done scanning and generating, now importing the generated code... ==="
 
23
    exec "import " + SHORT + "support"
 
24
    print "=== Done.  It's up to you to compile it now! ==="
 
25
 
 
26
class MyScanner(Scanner):
 
27
 
 
28
    def destination(self, type, name, arglist):
 
29
        classname = "Function"
 
30
        listname = "functions"
 
31
        if arglist:
 
32
            t, n, m = arglist[0]
 
33
            if t in ("DialogPtr", "DialogRef") and m == "InMode":
 
34
                classname = "Method"
 
35
                listname = "methods"
 
36
        return classname, listname
 
37
 
 
38
    def makeblacklistnames(self):
 
39
        return [
 
40
                'InitDialogs',
 
41
                'ErrorSound',
 
42
                # Dialogs are disposed when the object is deleted
 
43
                'CloseDialog',
 
44
                'DisposDialog',
 
45
                'DisposeDialog',
 
46
                'UpdtDialog',
 
47
                'CouldAlert',
 
48
                'FreeAlert',
 
49
                'CouldDialog',
 
50
                'FreeDialog',
 
51
                'GetStdFilterProc',
 
52
                'GetDialogParent',
 
53
##                      # Can't find these in the CW Pro 3 libraries
 
54
                'SetDialogMovableModal',
 
55
                'GetDialogControlNotificationProc',
 
56
                'SetGrafPortOfDialog', # Funny, and probably not useful
 
57
                # Can't find these:
 
58
                'CloseStandardSheet',
 
59
                'RunStandardAlert',
 
60
                ]
 
61
 
 
62
    def makeblacklisttypes(self):
 
63
        return [
 
64
                "AlertStdAlertParamPtr",        # Too much work, for now
 
65
                "AlertStdAlertParamRec",        # ditto
 
66
                "AlertStdAlertParamRec_ptr",    # ditto
 
67
                "AlertStdCFStringAlertParamPtr",        # ditto
 
68
                "AlertStdCFStringAlertParamRec",
 
69
                "AlertStdCFStringAlertParamRec_ptr",
 
70
                "QTModelessCallbackProcPtr",
 
71
                ]
 
72
 
 
73
    def makerepairinstructions(self):
 
74
        return [
 
75
                ([("Str255", "*", "InMode")],
 
76
                 [("*", "*", "OutMode")]),
 
77
 
 
78
                ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
 
79
                 [("InBuffer", "*", "*")]),
 
80
 
 
81
                ([("void", "*", "OutMode"), ("long", "*", "InMode"),
 
82
                                            ("long", "*", "OutMode")],
 
83
                 [("VarVarOutBuffer", "*", "InOutMode")]),
 
84
 
 
85
                # GetDialogItem return handle is optional
 
86
                ([("Handle", "item", "OutMode")],
 
87
                 [("OptHandle", "item", "OutMode")]),
 
88
 
 
89
                # NewDialog ETC.
 
90
                ([("void", "*", "OutMode")],
 
91
                 [("NullStorage", "*", "InMode")]),
 
92
 
 
93
                ([("DialogPtr", "*", "OutMode")],
 
94
                 [("ExistingDialogPtr", "*", "*")]),
 
95
                ([("DialogRef", "*", "OutMode")],
 
96
                 [("ExistingDialogPtr", "*", "*")]),
 
97
                ([("WindowPtr", "*", "OutMode")],
 
98
                 [("ExistingWindowPtr", "*", "*")]),
 
99
                ([("WindowPtr", "*", "ReturnMode")],
 
100
                 [("ExistingWindowPtr", "*", "*")]),
 
101
 
 
102
                # StdFilterProc
 
103
                ([('EventRecord', 'event', 'OutMode'),
 
104
                  ('DialogItemIndex', 'itemHit', 'OutMode')],
 
105
                 [('EventRecord', 'event', 'InOutMode'),
 
106
                  ('DialogItemIndex', 'itemHit', 'InOutMode')])
 
107
 
 
108
                ]
 
109
 
 
110
    def writeinitialdefs(self):
 
111
        self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
 
112
 
 
113
 
 
114
if __name__ == "__main__":
 
115
    main()