]> granicus.if.org Git - python/commitdiff
Added Ctl.as_Control and Menu.as_Menu methods, which take a resource as
authorJack Jansen <jack.jansen@cwi.nl>
Sun, 7 Feb 1999 14:02:03 +0000 (14:02 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Sun, 7 Feb 1999 14:02:03 +0000 (14:02 +0000)
argument and return a Control or Menu object.

Mac/Modules/ctl/Ctlmodule.c
Mac/Modules/ctl/ctledit.py
Mac/Modules/ctl/ctlsupport.py
Mac/Modules/menu/Menumodule.c
Mac/Modules/menu/menuedit.py
Mac/Modules/menu/menusupport.py

index 6a74d2338caae2d7095d3bb7b5a62995f8c8345f..07fff2990411351c641b99b6b4b51eecda5e97df 100644 (file)
@@ -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}
 };
 
index a23eef8e62c3b77b5e58df8331a9d6527e450e8d..97534e2bdbd4415ef4000722363c8bbd91cfbb48 100644 (file)
@@ -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);
 """
index 84dd6cec8d7ccceaea49367b1298ee3c2dec6202..3ba67785e8fcddfb536792699e69899b20da1595 100644 (file)
@@ -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 */
index 3e16440db4836d2723e36dc480c2d546a4a82367..42490abed9957ed7815b0042ea9a19bde8a33fac 100644 (file)
@@ -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,
index 37aace427d42a1a74527ef3ae19548eae79aa499..8e7d12b4186630f66874c13a39322fabde08cc05 100644 (file)
@@ -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);
 """
index cbd57bf52a76d23c52397a7e31a3ee8caef3dbd7..6424ed9a9375b27b2543d9b50aa2caf3b9bf7c91 100644 (file)
@@ -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):