/* ========================== Module _Evt =========================== */ #include "Python.h" #include "pymactoolbox.h" /* 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) #include static PyObject *Evt_Error; static PyObject *Evt_GetMouse(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Point mouseLoc; #ifndef GetMouse PyMac_PRECHECK(GetMouse); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; GetMouse(&mouseLoc); _res = Py_BuildValue("O&", PyMac_BuildPoint, mouseLoc); return _res; } static PyObject *Evt_Button(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; #ifndef Button PyMac_PRECHECK(Button); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = Button(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_StillDown(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; #ifndef StillDown PyMac_PRECHECK(StillDown); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = StillDown(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_WaitMouseUp(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; #ifndef WaitMouseUp PyMac_PRECHECK(WaitMouseUp); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = WaitMouseUp(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_GetCaretTime(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt32 _rv; #ifndef GetCaretTime PyMac_PRECHECK(GetCaretTime); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = GetCaretTime(); _res = Py_BuildValue("l", _rv); return _res; } static PyObject *Evt_GetKeys(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; KeyMap theKeys__out__; #ifndef GetKeys PyMac_PRECHECK(GetKeys); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; GetKeys(theKeys__out__); _res = Py_BuildValue("s#", (char *)&theKeys__out__, (int)sizeof(KeyMap)); return _res; } static PyObject *Evt_GetDblTime(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt32 _rv; #ifndef GetDblTime PyMac_PRECHECK(GetDblTime); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = GetDblTime(); _res = Py_BuildValue("l", _rv); return _res; } static PyObject *Evt_SetEventMask(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; EventMask value; #ifndef SetEventMask PyMac_PRECHECK(SetEventMask); #endif if (!PyArg_ParseTuple(_args, "H", &value)) return NULL; SetEventMask(value); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_GetNextEvent(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; EventMask eventMask; EventRecord theEvent; #ifndef GetNextEvent PyMac_PRECHECK(GetNextEvent); #endif if (!PyArg_ParseTuple(_args, "H", &eventMask)) return NULL; _rv = GetNextEvent(eventMask, &theEvent); _res = Py_BuildValue("bO&", _rv, PyMac_BuildEventRecord, &theEvent); return _res; } static PyObject *Evt_EventAvail(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; EventMask eventMask; EventRecord theEvent; #ifndef EventAvail PyMac_PRECHECK(EventAvail); #endif if (!PyArg_ParseTuple(_args, "H", &eventMask)) return NULL; _rv = EventAvail(eventMask, &theEvent); _res = Py_BuildValue("bO&", _rv, PyMac_BuildEventRecord, &theEvent); return _res; } static PyObject *Evt_PostEvent(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSErr _err; EventKind eventNum; UInt32 eventMsg; #ifndef PostEvent PyMac_PRECHECK(PostEvent); #endif if (!PyArg_ParseTuple(_args, "Hl", &eventNum, &eventMsg)) return NULL; _err = PostEvent(eventNum, eventMsg); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_FlushEvents(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; EventMask whichMask; EventMask stopMask; #ifndef FlushEvents PyMac_PRECHECK(FlushEvents); #endif if (!PyArg_ParseTuple(_args, "HH", &whichMask, &stopMask)) return NULL; FlushEvents(whichMask, stopMask); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_GetGlobalMouse(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Point globalMouse; #ifndef GetGlobalMouse PyMac_PRECHECK(GetGlobalMouse); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; GetGlobalMouse(&globalMouse); _res = Py_BuildValue("O&", PyMac_BuildPoint, globalMouse); return _res; } static PyObject *Evt_GetCurrentKeyModifiers(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt32 _rv; #ifndef GetCurrentKeyModifiers PyMac_PRECHECK(GetCurrentKeyModifiers); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = GetCurrentKeyModifiers(); _res = Py_BuildValue("l", _rv); return _res; } static PyObject *Evt_CheckEventQueueForUserCancel(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; #ifndef CheckEventQueueForUserCancel PyMac_PRECHECK(CheckEventQueueForUserCancel); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CheckEventQueueForUserCancel(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_KeyScript(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; short code; #ifndef KeyScript PyMac_PRECHECK(KeyScript); #endif if (!PyArg_ParseTuple(_args, "h", &code)) return NULL; KeyScript(code); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_IsCmdChar(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; EventRecord event; short test; #ifndef IsCmdChar PyMac_PRECHECK(IsCmdChar); #endif if (!PyArg_ParseTuple(_args, "O&h", PyMac_GetEventRecord, &event, &test)) return NULL; _rv = IsCmdChar(&event, test); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_LMGetKeyThresh(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; SInt16 _rv; #ifndef LMGetKeyThresh PyMac_PRECHECK(LMGetKeyThresh); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = LMGetKeyThresh(); _res = Py_BuildValue("h", _rv); return _res; } static PyObject *Evt_LMSetKeyThresh(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; SInt16 value; #ifndef LMSetKeyThresh PyMac_PRECHECK(LMSetKeyThresh); #endif if (!PyArg_ParseTuple(_args, "h", &value)) return NULL; LMSetKeyThresh(value); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_LMGetKeyRepThresh(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; SInt16 _rv; #ifndef LMGetKeyRepThresh PyMac_PRECHECK(LMGetKeyRepThresh); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = LMGetKeyRepThresh(); _res = Py_BuildValue("h", _rv); return _res; } static PyObject *Evt_LMSetKeyRepThresh(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; SInt16 value; #ifndef LMSetKeyRepThresh PyMac_PRECHECK(LMSetKeyRepThresh); #endif if (!PyArg_ParseTuple(_args, "h", &value)) return NULL; LMSetKeyRepThresh(value); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_LMGetKbdLast(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt8 _rv; #ifndef LMGetKbdLast PyMac_PRECHECK(LMGetKbdLast); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = LMGetKbdLast(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_LMSetKbdLast(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt8 value; #ifndef LMSetKbdLast PyMac_PRECHECK(LMSetKbdLast); #endif if (!PyArg_ParseTuple(_args, "b", &value)) return NULL; LMSetKbdLast(value); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_LMGetKbdType(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt8 _rv; #ifndef LMGetKbdType PyMac_PRECHECK(LMGetKbdType); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = LMGetKbdType(); _res = Py_BuildValue("b", _rv); return _res; } static PyObject *Evt_LMSetKbdType(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt8 value; #ifndef LMSetKbdType PyMac_PRECHECK(LMSetKbdType); #endif if (!PyArg_ParseTuple(_args, "b", &value)) return NULL; LMSetKbdType(value); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Evt_TickCount(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; UInt32 _rv; #ifndef TickCount PyMac_PRECHECK(TickCount); #endif if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = TickCount(); _res = Py_BuildValue("l", _rv); return _res; } static PyObject *Evt_WaitNextEvent(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; Boolean _rv; EventMask eventMask; EventRecord theEvent; UInt32 sleep; Handle mouseregion = (Handle)0; if (!PyArg_ParseTuple(_args, "Hl|O&", &eventMask, &sleep, OptResObj_Convert, &mouseregion)) return NULL; _rv = WaitNextEvent(eventMask, &theEvent, sleep, (RgnHandle)mouseregion); _res = Py_BuildValue("bO&", _rv, PyMac_BuildEventRecord, &theEvent); return _res; } static PyMethodDef Evt_methods[] = { {"GetMouse", (PyCFunction)Evt_GetMouse, 1, PyDoc_STR("() -> (Point mouseLoc)")}, {"Button", (PyCFunction)Evt_Button, 1, PyDoc_STR("() -> (Boolean _rv)")}, {"StillDown", (PyCFunction)Evt_StillDown, 1, PyDoc_STR("() -> (Boolean _rv)")}, {"WaitMouseUp", (PyCFunction)Evt_WaitMouseUp, 1, PyDoc_STR("() -> (Boolean _rv)")}, {"GetCaretTime", (PyCFunction)Evt_GetCaretTime, 1, PyDoc_STR("() -> (UInt32 _rv)")}, {"GetKeys", (PyCFunction)Evt_GetKeys, 1, PyDoc_STR("() -> (KeyMap theKeys)")}, {"GetDblTime", (PyCFunction)Evt_GetDblTime, 1, PyDoc_STR("() -> (UInt32 _rv)")}, {"SetEventMask", (PyCFunction)Evt_SetEventMask, 1, PyDoc_STR("(EventMask value) -> None")}, {"GetNextEvent", (PyCFunction)Evt_GetNextEvent, 1, PyDoc_STR("(EventMask eventMask) -> (Boolean _rv, EventRecord theEvent)")}, {"EventAvail", (PyCFunction)Evt_EventAvail, 1, PyDoc_STR("(EventMask eventMask) -> (Boolean _rv, EventRecord theEvent)")}, {"PostEvent", (PyCFunction)Evt_PostEvent, 1, PyDoc_STR("(EventKind eventNum, UInt32 eventMsg) -> None")}, {"FlushEvents", (PyCFunction)Evt_FlushEvents, 1, PyDoc_STR("(EventMask whichMask, EventMask stopMask) -> None")}, {"GetGlobalMouse", (PyCFunction)Evt_GetGlobalMouse, 1, PyDoc_STR("() -> (Point globalMouse)")}, {"GetCurrentKeyModifiers", (PyCFunction)Evt_GetCurrentKeyModifiers, 1, PyDoc_STR("() -> (UInt32 _rv)")}, {"CheckEventQueueForUserCancel", (PyCFunction)Evt_CheckEventQueueForUserCancel, 1, PyDoc_STR("() -> (Boolean _rv)")}, {"KeyScript", (PyCFunction)Evt_KeyScript, 1, PyDoc_STR("(short code) -> None")}, {"IsCmdChar", (PyCFunction)Evt_IsCmdChar, 1, PyDoc_STR("(EventRecord event, short test) -> (Boolean _rv)")}, {"LMGetKeyThresh", (PyCFunction)Evt_LMGetKeyThresh, 1, PyDoc_STR("() -> (SInt16 _rv)")}, {"LMSetKeyThresh", (PyCFunction)Evt_LMSetKeyThresh, 1, PyDoc_STR("(SInt16 value) -> None")}, {"LMGetKeyRepThresh", (PyCFunction)Evt_LMGetKeyRepThresh, 1, PyDoc_STR("() -> (SInt16 _rv)")}, {"LMSetKeyRepThresh", (PyCFunction)Evt_LMSetKeyRepThresh, 1, PyDoc_STR("(SInt16 value) -> None")}, {"LMGetKbdLast", (PyCFunction)Evt_LMGetKbdLast, 1, PyDoc_STR("() -> (UInt8 _rv)")}, {"LMSetKbdLast", (PyCFunction)Evt_LMSetKbdLast, 1, PyDoc_STR("(UInt8 value) -> None")}, {"LMGetKbdType", (PyCFunction)Evt_LMGetKbdType, 1, PyDoc_STR("() -> (UInt8 _rv)")}, {"LMSetKbdType", (PyCFunction)Evt_LMSetKbdType, 1, PyDoc_STR("(UInt8 value) -> None")}, {"TickCount", (PyCFunction)Evt_TickCount, 1, PyDoc_STR("() -> (UInt32 _rv)")}, {"WaitNextEvent", (PyCFunction)Evt_WaitNextEvent, 1, PyDoc_STR("(EventMask eventMask, UInt32 sleep [,RegionHandle]) -> (Boolean _rv, EventRecord theEvent)")}, {NULL, NULL, 0} }; void init_Evt(void) { PyObject *m; PyObject *d; m = Py_InitModule("_Evt", Evt_methods); d = PyModule_GetDict(m); Evt_Error = PyMac_GetOSErrException(); if (Evt_Error == NULL || PyDict_SetItemString(d, "Error", Evt_Error) != 0) return; } /* ======================== End module _Evt ========================= */