diff options
Diffstat (limited to 'Mac/Modules/app')
-rw-r--r-- | Mac/Modules/app/appscan.py | 120 | ||||
-rw-r--r-- | Mac/Modules/app/appsupport.py | 43 |
2 files changed, 81 insertions, 82 deletions
diff --git a/Mac/Modules/app/appscan.py b/Mac/Modules/app/appscan.py index 822651d..1b04859 100644 --- a/Mac/Modules/app/appscan.py +++ b/Mac/Modules/app/appscan.py @@ -11,71 +11,71 @@ SHORT = "app" OBJECT = "ThemeDrawingState" def main(): - input = LONG + ".h" - output = SHORT + "gen.py" - defsoutput = TOOLBOXDIR + LONG + ".py" - scanner = MyScanner(input, output, defsoutput) - scanner.scan() - scanner.close() - print "=== Testing definitions output code ===" - execfile(defsoutput, {}, {}) - print "=== Done scanning and generating, now importing the generated code... ===" - exec "import " + SHORT + "support" - print "=== Done. It's up to you to compile it now! ===" + input = LONG + ".h" + output = SHORT + "gen.py" + defsoutput = TOOLBOXDIR + LONG + ".py" + scanner = MyScanner(input, output, defsoutput) + scanner.scan() + scanner.close() + print "=== Testing definitions output code ===" + execfile(defsoutput, {}, {}) + print "=== Done scanning and generating, now importing the generated code... ===" + exec "import " + SHORT + "support" + print "=== Done. It's up to you to compile it now! ===" class MyScanner(Scanner): - def destination(self, type, name, arglist): - classname = "Function" - listname = "functions" - if arglist: - t, n, m = arglist[0] - # This is non-functional today - if t == OBJECT and m == "InMode": - classname = "Method" - listname = "methods" - return classname, listname + def destination(self, type, name, arglist): + classname = "Function" + listname = "functions" + if arglist: + t, n, m = arglist[0] + # This is non-functional today + if t == OBJECT and m == "InMode": + classname = "Method" + listname = "methods" + return classname, listname - def writeinitialdefs(self): - self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") + def writeinitialdefs(self): + self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") - def makeblacklistnames(self): - return [ - "GetThemeFont", # Funny stringbuffer in/out parameter, I think... - # Constants with funny definitions - "appearanceBadBrushIndexErr", - "appearanceProcessRegisteredErr", - "appearanceProcessNotRegisteredErr", - "appearanceBadTextColorIndexErr", - "appearanceThemeHasNoAccents", - "appearanceBadCursorIndexErr", - ] + def makeblacklistnames(self): + return [ + "GetThemeFont", # Funny stringbuffer in/out parameter, I think... + # Constants with funny definitions + "appearanceBadBrushIndexErr", + "appearanceProcessRegisteredErr", + "appearanceProcessNotRegisteredErr", + "appearanceBadTextColorIndexErr", + "appearanceThemeHasNoAccents", + "appearanceBadCursorIndexErr", + ] - def makeblacklisttypes(self): - return [ - "MenuTitleDrawingUPP", - "MenuItemDrawingUPP", - "ThemeIteratorUPP", - "ThemeTabTitleDrawUPP", -# "ThemeEraseUPP", -# "ThemeButtonDrawUPP", - "WindowTitleDrawingUPP", - "ProcessSerialNumber_ptr", # Too much work for now. - "ThemeTrackDrawInfo_ptr", # Too much work -# "ThemeButtonDrawInfo_ptr", # ditto - "ThemeWindowMetrics_ptr", # ditto -# "ThemeDrawingState", # This is an opaque pointer, so it should be simple. Later. - "Collection", # No interface to collection mgr yet. - "BytePtr", # Not yet. - ] + def makeblacklisttypes(self): + return [ + "MenuTitleDrawingUPP", + "MenuItemDrawingUPP", + "ThemeIteratorUPP", + "ThemeTabTitleDrawUPP", +# "ThemeEraseUPP", +# "ThemeButtonDrawUPP", + "WindowTitleDrawingUPP", + "ProcessSerialNumber_ptr", # Too much work for now. + "ThemeTrackDrawInfo_ptr", # Too much work +# "ThemeButtonDrawInfo_ptr", # ditto + "ThemeWindowMetrics_ptr", # ditto +# "ThemeDrawingState", # This is an opaque pointer, so it should be simple. Later. + "Collection", # No interface to collection mgr yet. + "BytePtr", # Not yet. + ] + + def makerepairinstructions(self): + return [ + ([("void", 'inContext', "OutMode")], + [("NULL", 'inContext', "InMode")]), + ([("Point", 'ioBounds', "OutMode")], + [("Point", 'ioBounds', "InOutMode")]), + ] - def makerepairinstructions(self): - return [ - ([("void", 'inContext', "OutMode")], - [("NULL", 'inContext', "InMode")]), - ([("Point", 'ioBounds', "OutMode")], - [("Point", 'ioBounds', "InOutMode")]), - ] - if __name__ == "__main__": - main() + main() diff --git a/Mac/Modules/app/appsupport.py b/Mac/Modules/app/appsupport.py index a9d8768..177dfd5 100644 --- a/Mac/Modules/app/appsupport.py +++ b/Mac/Modules/app/appsupport.py @@ -6,17 +6,17 @@ import string # Declarations that change for each manager -MACHEADERFILE = 'Appearance.h' # The Apple header file -MODNAME = '_App' # The name of the module -OBJECTNAME = 'ThemeDrawingState' # The basic name of the objects used here -KIND = '' # Usually 'Ptr' or 'Handle' +MACHEADERFILE = 'Appearance.h' # The Apple header file +MODNAME = '_App' # The name of the module +OBJECTNAME = 'ThemeDrawingState' # The basic name of the objects used here +KIND = '' # Usually 'Ptr' or 'Handle' # The following is *usually* unchanged but may still require tuning -MODPREFIX = 'App' # The prefix for module-wide routines -OBJECTTYPE = OBJECTNAME + KIND # The C type used to represent them -OBJECTPREFIX = OBJECTNAME + 'Obj' # The prefix for object methods +MODPREFIX = 'App' # The prefix for module-wide routines +OBJECTTYPE = OBJECTNAME + KIND # The C type used to represent them +OBJECTPREFIX = OBJECTNAME + 'Obj' # The prefix for object methods INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner -OUTPUTFILE = MODNAME + "module.c" # The file generated by this program +OUTPUTFILE = MODNAME + "module.c" # The file generated by this program from macsupport import * @@ -84,24 +84,24 @@ includestuff = includestuff + """ int ThemeButtonDrawInfo_Convert(PyObject *v, ThemeButtonDrawInfo *p_itself) { - return PyArg_Parse(v, "(iHH)", &p_itself->state, &p_itself->value, &p_itself->adornment); + return PyArg_Parse(v, "(iHH)", &p_itself->state, &p_itself->value, &p_itself->adornment); } """ class MyObjectDefinition(PEP253Mixin, GlobalObjectDefinition): - pass -## def outputCheckNewArg(self): -## Output("if (itself == NULL) return PyMac_Error(resNotFound);") -## def outputCheckConvertArg(self): -## OutLbrace("if (DlgObj_Check(v))") -## Output("*p_itself = ((WindowObject *)v)->ob_itself;") -## Output("return 1;") -## OutRbrace() -## Out(""" -## if (v == Py_None) { *p_itself = NULL; return 1; } -## if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; } -## """) + pass +## def outputCheckNewArg(self): +## Output("if (itself == NULL) return PyMac_Error(resNotFound);") +## def outputCheckConvertArg(self): +## OutLbrace("if (DlgObj_Check(v))") +## Output("*p_itself = ((WindowObject *)v)->ob_itself;") +## Output("return 1;") +## OutRbrace() +## Out(""" +## if (v == Py_None) { *p_itself = NULL; return 1; } +## if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; } +## """) # From here on it's basically all boiler plate... @@ -131,4 +131,3 @@ for f in methods: object.add(f) # generate output (open the output file as late as possible) SetOutputFileName(OUTPUTFILE) module.generate() - |