0
0
mirror of https://github.com/python/cpython.git synced 2024-11-28 08:20:55 +01:00
cpython/Mac/Modules/help/_Helpmodule.c

185 lines
4.8 KiB
C
Raw Normal View History

/* ========================== Module _Help ========================== */
#include "Python.h"
2001-12-18 16:39:38 +01:00
#ifdef _WIN32
#include "pywintoolbox.h"
#else
#include "macglue.h"
#include "pymactoolbox.h"
2001-12-18 16:39:38 +01:00
#endif
/* Macro to test whether a weak-loaded CFM function exists */
#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
PyErr_SetString(PyExc_NotImplementedError, \
"Not available in this shared library/OS version"); \
return NULL; \
}} while(0)
#ifndef PyDoc_STR
#define PyDoc_STR(x) (x)
#endif
#ifdef WITHOUT_FRAMEWORKS
#include <MacHelp.h>
#else
#include <Carbon/Carbon.h>
#endif
static PyObject *Help_Error;
static PyObject *Help_HMGetHelpMenu(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
MenuRef outHelpMenu;
MenuItemIndex outFirstCustomItemIndex;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_err = HMGetHelpMenu(&outHelpMenu,
&outFirstCustomItemIndex);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&H",
MenuObj_New, outHelpMenu,
outFirstCustomItemIndex);
return _res;
}
static PyObject *Help_HMAreHelpTagsDisplayed(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
Boolean _rv;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_rv = HMAreHelpTagsDisplayed();
_res = Py_BuildValue("b",
_rv);
return _res;
}
static PyObject *Help_HMSetHelpTagsDisplayed(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
Boolean inDisplayTags;
if (!PyArg_ParseTuple(_args, "b",
&inDisplayTags))
return NULL;
_err = HMSetHelpTagsDisplayed(inDisplayTags);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Help_HMSetTagDelay(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
Duration inDelay;
if (!PyArg_ParseTuple(_args, "l",
&inDelay))
return NULL;
_err = HMSetTagDelay(inDelay);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Help_HMGetTagDelay(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
Duration outDelay;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_err = HMGetTagDelay(&outDelay);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("l",
outDelay);
return _res;
}
static PyObject *Help_HMSetMenuHelpFromBalloonRsrc(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
MenuRef inMenu;
SInt16 inHmnuRsrcID;
if (!PyArg_ParseTuple(_args, "O&h",
MenuObj_Convert, &inMenu,
&inHmnuRsrcID))
return NULL;
_err = HMSetMenuHelpFromBalloonRsrc(inMenu,
inHmnuRsrcID);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Help_HMSetDialogHelpFromBalloonRsrc(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
DialogPtr inDialog;
SInt16 inHdlgRsrcID;
SInt16 inItemStart;
if (!PyArg_ParseTuple(_args, "O&hh",
DlgObj_Convert, &inDialog,
&inHdlgRsrcID,
&inItemStart))
return NULL;
_err = HMSetDialogHelpFromBalloonRsrc(inDialog,
inHdlgRsrcID,
inItemStart);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyMethodDef Help_methods[] = {
{"HMGetHelpMenu", (PyCFunction)Help_HMGetHelpMenu, 1,
PyDoc_STR("() -> (MenuRef outHelpMenu, MenuItemIndex outFirstCustomItemIndex)")},
{"HMAreHelpTagsDisplayed", (PyCFunction)Help_HMAreHelpTagsDisplayed, 1,
PyDoc_STR("() -> (Boolean _rv)")},
{"HMSetHelpTagsDisplayed", (PyCFunction)Help_HMSetHelpTagsDisplayed, 1,
PyDoc_STR("(Boolean inDisplayTags) -> None")},
{"HMSetTagDelay", (PyCFunction)Help_HMSetTagDelay, 1,
PyDoc_STR("(Duration inDelay) -> None")},
{"HMGetTagDelay", (PyCFunction)Help_HMGetTagDelay, 1,
PyDoc_STR("() -> (Duration outDelay)")},
{"HMSetMenuHelpFromBalloonRsrc", (PyCFunction)Help_HMSetMenuHelpFromBalloonRsrc, 1,
PyDoc_STR("(MenuRef inMenu, SInt16 inHmnuRsrcID) -> None")},
{"HMSetDialogHelpFromBalloonRsrc", (PyCFunction)Help_HMSetDialogHelpFromBalloonRsrc, 1,
PyDoc_STR("(DialogPtr inDialog, SInt16 inHdlgRsrcID, SInt16 inItemStart) -> None")},
{NULL, NULL, 0}
};
void init_Help(void)
{
PyObject *m;
PyObject *d;
m = Py_InitModule("_Help", Help_methods);
d = PyModule_GetDict(m);
Help_Error = PyMac_GetOSErrException();
if (Help_Error == NULL ||
PyDict_SetItemString(d, "Error", Help_Error) != 0)
return;
}
/* ======================== End module _Help ======================== */