diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1999-02-07 14:02:03 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1999-02-07 14:02:03 (GMT) |
commit | e058189040dcaf951c34d66f99eeb7e4ee91af6a (patch) | |
tree | 673cb8b9538f0573222f3577597709bd442a84e5 | |
parent | b0687899d7a84c09f00bcf492e76eee3a44143b3 (diff) | |
download | cpython-e058189040dcaf951c34d66f99eeb7e4ee91af6a.zip cpython-e058189040dcaf951c34d66f99eeb7e4ee91af6a.tar.gz cpython-e058189040dcaf951c34d66f99eeb7e4ee91af6a.tar.bz2 |
Added Ctl.as_Control and Menu.as_Menu methods, which take a resource as
argument and return a Control or Menu object.
-rw-r--r-- | Mac/Modules/ctl/Ctlmodule.c | 20 | ||||
-rw-r--r-- | Mac/Modules/ctl/ctledit.py | 4 | ||||
-rw-r--r-- | Mac/Modules/ctl/ctlsupport.py | 2 | ||||
-rw-r--r-- | Mac/Modules/menu/Menumodule.c | 20 | ||||
-rw-r--r-- | Mac/Modules/menu/menuedit.py | 4 | ||||
-rw-r--r-- | Mac/Modules/menu/menusupport.py | 2 |
6 files changed, 52 insertions, 0 deletions
diff --git a/Mac/Modules/ctl/Ctlmodule.c b/Mac/Modules/ctl/Ctlmodule.c index 6a74d23..07fff29 100644 --- a/Mac/Modules/ctl/Ctlmodule.c +++ b/Mac/Modules/ctl/Ctlmodule.c @@ -44,6 +44,8 @@ extern PyObject *WinObj_WhichWindow(WindowPtr); #include <Controls.h> +#define as_Control(h) ((ControlHandle)h) + #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ extern PyObject *CtlObj_WhichControl(ControlHandle); /* Forward */ @@ -1333,6 +1335,22 @@ static PyObject *Ctl_ClearKeyboardFocus(_self, _args) return _res; } +static PyObject *Ctl_as_Control(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + ControlHandle _rv; + Handle h; + if (!PyArg_ParseTuple(_args, "O&", + ResObj_Convert, &h)) + return NULL; + _rv = as_Control(h); + _res = Py_BuildValue("O&", + CtlObj_New, _rv); + return _res; +} + static PyMethodDef Ctl_methods[] = { {"NewControl", (PyCFunction)Ctl_NewControl, 1, "(WindowPtr owningWindow, Rect boundsRect, Str255 controlTitle, Boolean initiallyVisible, SInt16 initialValue, SInt16 minimumValue, SInt16 maximumValue, SInt16 procID, SInt32 controlReference) -> (ControlHandle _rv)"}, @@ -1364,6 +1382,8 @@ static PyMethodDef Ctl_methods[] = { "(WindowPtr inWindow) -> None"}, {"ClearKeyboardFocus", (PyCFunction)Ctl_ClearKeyboardFocus, 1, "(WindowPtr inWindow) -> None"}, + {"as_Control", (PyCFunction)Ctl_as_Control, 1, + "(Handle h) -> (ControlHandle _rv)"}, {NULL, NULL, 0} }; diff --git a/Mac/Modules/ctl/ctledit.py b/Mac/Modules/ctl/ctledit.py index a23eef8..97534e2 100644 --- a/Mac/Modules/ctl/ctledit.py +++ b/Mac/Modules/ctl/ctledit.py @@ -1,3 +1,7 @@ +f = Function(ControlHandle, 'as_Control', + (Handle, 'h', InMode)) +functions.append(f) + as_resource_body = """ return ResObj_New((Handle)_self->ob_itself); """ diff --git a/Mac/Modules/ctl/ctlsupport.py b/Mac/Modules/ctl/ctlsupport.py index 84dd6ce..3ba6778 100644 --- a/Mac/Modules/ctl/ctlsupport.py +++ b/Mac/Modules/ctl/ctlsupport.py @@ -44,6 +44,8 @@ ControlFontStyleRec_ptr = ControlFontStyleRec includestuff = includestuff + """ #include <%s>""" % MACHEADERFILE + """ +#define as_Control(h) ((ControlHandle)h) + #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ extern PyObject *CtlObj_WhichControl(ControlHandle); /* Forward */ diff --git a/Mac/Modules/menu/Menumodule.c b/Mac/Modules/menu/Menumodule.c index 3e16440..42490ab 100644 --- a/Mac/Modules/menu/Menumodule.c +++ b/Mac/Modules/menu/Menumodule.c @@ -47,6 +47,8 @@ extern PyObject *WinObj_WhichWindow(WindowPtr); #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ +#define as_Menu(h) ((MenuHandle)h) + static PyObject *Menu_Error; /* ------------------------ Object type Menu ------------------------ */ @@ -1455,6 +1457,22 @@ static PyObject *Menu_OpenDeskAcc(_self, _args) return _res; } +static PyObject *Menu_as_Menu(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + MenuHandle _rv; + Handle h; + if (!PyArg_ParseTuple(_args, "O&", + ResObj_Convert, &h)) + return NULL; + _rv = as_Menu(h); + _res = Py_BuildValue("O&", + MenuObj_New, _rv); + return _res; +} + static PyObject *Menu_GetMenu(_self, _args) PyObject *_self; PyObject *_args; @@ -1548,6 +1566,8 @@ static PyMethodDef Menu_methods[] = { "(EventRecord inEvent) -> (UInt32 _rv)"}, {"OpenDeskAcc", (PyCFunction)Menu_OpenDeskAcc, 1, "(Str255 name) -> None"}, + {"as_Menu", (PyCFunction)Menu_as_Menu, 1, + "(Handle h) -> (MenuHandle _rv)"}, {"GetMenu", (PyCFunction)Menu_GetMenu, 1, "(short resourceID) -> (MenuHandle _rv)"}, {"DeleteMenu", (PyCFunction)Menu_DeleteMenu, 1, diff --git a/Mac/Modules/menu/menuedit.py b/Mac/Modules/menu/menuedit.py index 37aace4..8e7d12b 100644 --- a/Mac/Modules/menu/menuedit.py +++ b/Mac/Modules/menu/menuedit.py @@ -3,6 +3,10 @@ f = Function(void, 'OpenDeskAcc', ) functions.append(f) +f = Function(MenuHandle, 'as_Menu', + (Handle, 'h', InMode)) +functions.append(f) + as_resource_body = """ return ResObj_New((Handle)_self->ob_itself); """ diff --git a/Mac/Modules/menu/menusupport.py b/Mac/Modules/menu/menusupport.py index cbd57bf..6424ed9 100644 --- a/Mac/Modules/menu/menusupport.py +++ b/Mac/Modules/menu/menusupport.py @@ -32,6 +32,8 @@ includestuff = includestuff + """ #include <%s>""" % MACHEADERFILE + """ #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ + +#define as_Menu(h) ((MenuHandle)h) """ class MyObjectDefinition(GlobalObjectDefinition): |