diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2001-02-02 22:41:48 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2001-02-02 22:41:48 (GMT) |
commit | dc2ac8d39f852bd0925c3462d37046015c79f150 (patch) | |
tree | 756461c9c82fadc82618ba9265bc29341ffaee04 | |
parent | 340eb88fa886d81dc3d0153bd96a4690962d91fa (diff) | |
download | cpython-dc2ac8d39f852bd0925c3462d37046015c79f150.zip cpython-dc2ac8d39f852bd0925c3462d37046015c79f150.tar.gz cpython-dc2ac8d39f852bd0925c3462d37046015c79f150.tar.bz2 |
Accept Dialogs and Windows where Grafports are expected (such as in SetPort) and do a MacOSX compatible cast. Bit of a hack, but good enough for now.
-rw-r--r-- | Mac/Modules/qd/Qdmodule.c | 10 | ||||
-rw-r--r-- | Mac/Modules/qd/qdsupport.py | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/Mac/Modules/qd/Qdmodule.c b/Mac/Modules/qd/Qdmodule.c index 34476d4..aece598 100644 --- a/Mac/Modules/qd/Qdmodule.c +++ b/Mac/Modules/qd/Qdmodule.c @@ -144,8 +144,14 @@ GrafObj_Convert(v, p_itself) PyObject *v; GrafPtr *p_itself; { - if (DlgObj_Check(v) || WinObj_Check(v)) { - *p_itself = ((GrafPortObject *)v)->ob_itself; + if (DlgObj_Check(v)) { + DialogRef dlg = (DialogRef)((GrafPortObject *)v)->ob_itself; + *p_itself = (GrafPtr)GetWindowPort(GetDialogWindow(dlg)); + return 1; + } + if (WinObj_Check(v)) { + WindowRef win = (WindowRef)((GrafPortObject *)v)->ob_itself; + *p_itself = (GrafPtr)GetWindowPort(win); return 1; } if (!GrafObj_Check(v)) diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py index f57cf17..fe606f5 100644 --- a/Mac/Modules/qd/qdsupport.py +++ b/Mac/Modules/qd/qdsupport.py @@ -219,8 +219,14 @@ class MyGRObjectDefinition(GlobalObjectDefinition): def outputCheckNewArg(self): Output("if (itself == NULL) return PyMac_Error(resNotFound);") def outputCheckConvertArg(self): - OutLbrace("if (DlgObj_Check(v) || WinObj_Check(v))") - Output("*p_itself = ((GrafPortObject *)v)->ob_itself;") + OutLbrace("if (DlgObj_Check(v))") + Output("DialogRef dlg = (DialogRef)((GrafPortObject *)v)->ob_itself;") + Output("*p_itself = (GrafPtr)GetWindowPort(GetDialogWindow(dlg));") + Output("return 1;") + OutRbrace() + OutLbrace("if (WinObj_Check(v))") + Output("WindowRef win = (WindowRef)((GrafPortObject *)v)->ob_itself;") + Output("*p_itself = (GrafPtr)GetWindowPort(win);") Output("return 1;") OutRbrace() def outputGetattrHook(self): |