diff options
Diffstat (limited to 'Mac/Modules/win/winsupport.py')
-rw-r--r-- | Mac/Modules/win/winsupport.py | 180 |
1 files changed, 90 insertions, 90 deletions
diff --git a/Mac/Modules/win/winsupport.py b/Mac/Modules/win/winsupport.py index 640e33a7f9c..08a0379c539 100644 --- a/Mac/Modules/win/winsupport.py +++ b/Mac/Modules/win/winsupport.py @@ -6,17 +6,17 @@ import string # Declarations that change for each manager -MACHEADERFILE = 'Windows.h' # The Apple header file -MODNAME = '_Win' # The name of the module -OBJECTNAME = 'Window' # The basic name of the objects used here +MACHEADERFILE = 'Windows.h' # The Apple header file +MODNAME = '_Win' # The name of the module +OBJECTNAME = 'Window' # The basic name of the objects used here # The following is *usually* unchanged but may still require tuning -MODPREFIX = 'Win' # The prefix for module-wide routines -OBJECTTYPE = OBJECTNAME + 'Ptr' # The C type used to represent them -OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods +MODPREFIX = 'Win' # The prefix for module-wide routines +OBJECTTYPE = OBJECTNAME + 'Ptr' # The C type used to represent them +OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner EDITFILE = string.lower(MODPREFIX) + 'edit.py' # The manual definitions -OUTPUTFILE = MODNAME + "module.c" # The file generated by this program +OUTPUTFILE = MODNAME + "module.c" # The file generated by this program from macsupport import * @@ -79,7 +79,7 @@ extern int _WinObj_Convert(PyObject *, WindowRef *); static void PyMac_AutoDisposeWindow(WindowPtr w) { - DisposeWindow(w); + DisposeWindow(w); } """ @@ -89,94 +89,94 @@ finalstuff = finalstuff + """ PyObject * WinObj_WhichWindow(WindowPtr w) { - PyObject *it; - - if (w == NULL) { - it = Py_None; - Py_INCREF(it); - } else { - it = (PyObject *) GetWRefCon(w); - if (it == NULL || !IsPointerValid((Ptr)it) || ((WindowObject *)it)->ob_itself != w || !WinObj_Check(it)) { - it = WinObj_New(w); - ((WindowObject *)it)->ob_freeit = NULL; - } else { - Py_INCREF(it); - } - } - return it; + PyObject *it; + + if (w == NULL) { + it = Py_None; + Py_INCREF(it); + } else { + it = (PyObject *) GetWRefCon(w); + if (it == NULL || !IsPointerValid((Ptr)it) || ((WindowObject *)it)->ob_itself != w || !WinObj_Check(it)) { + it = WinObj_New(w); + ((WindowObject *)it)->ob_freeit = NULL; + } else { + Py_INCREF(it); + } + } + return it; } """ initstuff = initstuff + """ - PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_New); - PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_WhichWindow); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(WindowPtr, WinObj_Convert); + PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_New); + PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_WhichWindow); + PyMac_INIT_TOOLBOX_OBJECT_CONVERT(WindowPtr, WinObj_Convert); """ class MyObjectDefinition(PEP253Mixin, GlobalObjectDefinition): - def outputCheckNewArg(self): - Output("if (itself == NULL) return PyMac_Error(resNotFound);") - Output("/* XXXX Or should we use WhichWindow code here? */") - def outputStructMembers(self): - GlobalObjectDefinition.outputStructMembers(self) - Output("void (*ob_freeit)(%s ptr);", self.itselftype) - def outputInitStructMembers(self): - GlobalObjectDefinition.outputInitStructMembers(self) - Output("it->ob_freeit = NULL;") - Output("if (GetWRefCon(itself) == 0)") - OutLbrace() - Output("SetWRefCon(itself, (long)it);") - Output("it->ob_freeit = PyMac_AutoDisposeWindow;") - OutRbrace() - def outputCheckConvertArg(self): - Out(""" - if (v == Py_None) { *p_itself = NULL; return 1; } - if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; } - """) - OutLbrace() - Output("DialogRef dlg;") - OutLbrace("if (DlgObj_Convert(v, &dlg) && dlg)") - Output("*p_itself = GetDialogWindow(dlg);") - Output("return 1;") - OutRbrace() - Output("PyErr_Clear();") - OutRbrace() - def outputCleanupStructMembers(self): - Output("if (self->ob_freeit && self->ob_itself)") - OutLbrace() - Output("SetWRefCon(self->ob_itself, 0);") - Output("self->ob_freeit(self->ob_itself);") - OutRbrace() - Output("self->ob_itself = NULL;") - Output("self->ob_freeit = NULL;") - - def outputCompare(self): - Output() - Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype, self.objecttype) - OutLbrace() - Output("if ( self->ob_itself > other->ob_itself ) return 1;") - Output("if ( self->ob_itself < other->ob_itself ) return -1;") - Output("return 0;") - OutRbrace() - - def outputHash(self): - Output() - Output("static int %s_hash(%s *self)", self.prefix, self.objecttype) - OutLbrace() - Output("return (int)self->ob_itself;") - OutRbrace() - - def outputRepr(self): - Output() - Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype) - OutLbrace() - Output("char buf[100];") - Output("""sprintf(buf, "<Window object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""") - Output("return PyString_FromString(buf);") - OutRbrace() - -## def outputFreeIt(self, itselfname): -## Output("DisposeWindow(%s);", itselfname) + def outputCheckNewArg(self): + Output("if (itself == NULL) return PyMac_Error(resNotFound);") + Output("/* XXXX Or should we use WhichWindow code here? */") + def outputStructMembers(self): + GlobalObjectDefinition.outputStructMembers(self) + Output("void (*ob_freeit)(%s ptr);", self.itselftype) + def outputInitStructMembers(self): + GlobalObjectDefinition.outputInitStructMembers(self) + Output("it->ob_freeit = NULL;") + Output("if (GetWRefCon(itself) == 0)") + OutLbrace() + Output("SetWRefCon(itself, (long)it);") + Output("it->ob_freeit = PyMac_AutoDisposeWindow;") + OutRbrace() + def outputCheckConvertArg(self): + Out(""" + if (v == Py_None) { *p_itself = NULL; return 1; } + if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; } + """) + OutLbrace() + Output("DialogRef dlg;") + OutLbrace("if (DlgObj_Convert(v, &dlg) && dlg)") + Output("*p_itself = GetDialogWindow(dlg);") + Output("return 1;") + OutRbrace() + Output("PyErr_Clear();") + OutRbrace() + def outputCleanupStructMembers(self): + Output("if (self->ob_freeit && self->ob_itself)") + OutLbrace() + Output("SetWRefCon(self->ob_itself, 0);") + Output("self->ob_freeit(self->ob_itself);") + OutRbrace() + Output("self->ob_itself = NULL;") + Output("self->ob_freeit = NULL;") + + def outputCompare(self): + Output() + Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype, self.objecttype) + OutLbrace() + Output("if ( self->ob_itself > other->ob_itself ) return 1;") + Output("if ( self->ob_itself < other->ob_itself ) return -1;") + Output("return 0;") + OutRbrace() + + def outputHash(self): + Output() + Output("static int %s_hash(%s *self)", self.prefix, self.objecttype) + OutLbrace() + Output("return (int)self->ob_itself;") + OutRbrace() + + def outputRepr(self): + Output() + Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype) + OutLbrace() + Output("char buf[100];") + Output("""sprintf(buf, "<Window object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""") + Output("return PyString_FromString(buf);") + OutRbrace() + +## def outputFreeIt(self, itselfname): +## Output("DisposeWindow(%s);", itselfname) # From here on it's basically all boiler plate... # Create the generator groups and link them @@ -199,7 +199,7 @@ whichwin_body = """ long ptr; if ( !PyArg_ParseTuple(_args, "i", &ptr) ) - return NULL; + return NULL; _res = WinObj_WhichWindow((WindowPtr)ptr); return _res; """ |