Commit e0581890 authored by Jack Jansen's avatar Jack Jansen

Added Ctl.as_Control and Menu.as_Menu methods, which take a resource as

argument and return a Control or Menu object.
parent b0687899
......@@ -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}
};
......
f = Function(ControlHandle, 'as_Control',
(Handle, 'h', InMode))
functions.append(f)
as_resource_body = """
return ResObj_New((Handle)_self->ob_itself);
"""
......
......@@ -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 */
......
......@@ -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,
......
......@@ -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);
"""
......
......@@ -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):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment