[Python-checkins] CVS: python/dist/src/Mac/Modules/carbonevt CarbonEvtscan.py,1.2,1.3 CarbonEvtsupport.py,1.4,1.5 _CarbonEvtmodule.c,1.1,1.2
Just van Rossum
jvr@users.sourceforge.net
Wed, 12 Dec 2001 12:48:56 -0800
Update of /cvsroot/python/python/dist/src/Mac/Modules/carbonevt
In directory usw-pr-cvs1:/tmp/cvs-serv19463
Modified Files:
CarbonEvtscan.py CarbonEvtsupport.py _CarbonEvtmodule.c
Log Message:
Exposed quite a few more calls.
Index: CarbonEvtscan.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/carbonevt/CarbonEvtscan.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CarbonEvtscan.py 2001/11/05 16:15:40 1.2
--- CarbonEvtscan.py 2001/12/12 20:48:53 1.3
***************
*** 36,40 ****
]
! class CarbonEvents_Scanner(Scanner):
def destination(self, type, name, arglist):
classname = "CarbonEventsFunction"
--- 36,40 ----
]
! class CarbonEvents_Scanner(Scanner_OSX):
def destination(self, type, name, arglist):
classname = "CarbonEventsFunction"
***************
*** 51,56 ****
--- 51,65 ----
return classname, listname
+ def writeinitialdefs(self):
+ self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
+ self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
+ self.defsfile.write("false = 0\n")
+ self.defsfile.write("true = 1\n")
+ self.defsfile.write("keyAEEventClass = FOUR_CHAR_CODE('evcl')\n")
+ self.defsfile.write("keyAEEventID = FOUR_CHAR_CODE('evti')\n")
+
def makeblacklistnames(self):
return [
+ "sHandler",
"MacCreateEvent",
"TrackMouseLocationWithOptions",
***************
*** 65,68 ****
--- 74,83 ----
"InvokeEventComparatorUPP",
"InvokeEventLoopTimerUPP",
+ "NewEventComparatorUPP",
+ "NewEventLoopTimerUPP",
+ "NewEventHandlerUPP",
+ "DisposeEventComparatorUPP",
+ "DisposeEventLoopTimerUPP",
+ "DisposeEventHandlerUPP",
# Wrote by hand
Index: CarbonEvtsupport.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/carbonevt/CarbonEvtsupport.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CarbonEvtsupport.py 2001/12/11 21:52:01 1.4
--- CarbonEvtsupport.py 2001/12/12 20:48:53 1.5
***************
*** 12,28 ****
exec execstr
! # these types will have no methods and will merely be opaque blobs
! # should write getattr and setattr for them?
! StructObjectTypes = ["EventTypeSpec",
! "HIPoint",
! "HICommand",
! "EventHotKeyID",
! ]
! for typ in StructObjectTypes:
! execstr = "%(name)s = OpaqueType('%(name)s')" % {"name": typ}
! exec execstr
EventTypeSpec_ptr = OpaqueType("EventTypeSpec", "EventTypeSpec")
--- 12,30 ----
exec execstr
! if 0:
! # these types will have no methods and will merely be opaque blobs
! # should write getattr and setattr for them?
! StructObjectTypes = ["EventTypeSpec",
! "HIPoint",
! "HICommand",
! "EventHotKeyID",
! ]
! for typ in StructObjectTypes:
! execstr = "%(name)s = OpaqueType('%(name)s')" % {"name": typ}
! exec execstr
+ EventHotKeyID = OpaqueByValueType("EventHotKeyID", "EventHotKeyID")
EventTypeSpec_ptr = OpaqueType("EventTypeSpec", "EventTypeSpec")
***************
*** 52,56 ****
CarbonEventsMethod = OSErrMethodGenerator
! includestuff = """
#ifdef WITHOUT_FRAMEWORKS
#include <CarbonEvents.h>
--- 54,58 ----
CarbonEventsMethod = OSErrMethodGenerator
! includestuff = r"""
#ifdef WITHOUT_FRAMEWORKS
#include <CarbonEvents.h>
***************
*** 61,66 ****
#include "macglue.h"
! #define USE_MAC_MP_MULTITHREADING 1
#if USE_MAC_MP_MULTITHREADING
static PyThreadState *_save;
--- 63,76 ----
#include "macglue.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; \
! }} while(0)
+
+ #define USE_MAC_MP_MULTITHREADING 0
+
#if USE_MAC_MP_MULTITHREADING
static PyThreadState *_save;
***************
*** 132,140 ****
/********** end EventHotKeyID *******/
! /******** handlecommand ***********/
! static EventHandlerUPP gEventHandlerUPP;
! pascal OSStatus CarbonEvents_HandleEvent(EventHandlerCallRef handlerRef, EventRef event, void *outPyObject) {
PyObject *retValue;
int status;
--- 142,150 ----
/********** end EventHotKeyID *******/
! /******** myEventHandler ***********/
! static EventHandlerUPP myEventHandlerUPP;
! pascal OSStatus myEventHandler(EventHandlerCallRef handlerRef, EventRef event, void *outPyObject) {
PyObject *retValue;
int status;
***************
*** 156,165 ****
}
! /******** end handlecommand ***********/
"""
initstuff = initstuff + """
! gEventHandlerUPP = NewEventHandlerUPP(CarbonEvents_HandleEvent);
"""
module = MacModule('_CarbonEvt', 'CarbonEvents', includestuff, finalstuff, initstuff)
--- 166,176 ----
}
! /******** end myEventHandler ***********/
"""
initstuff = initstuff + """
! PyMac_PRECHECK(NewEventHandlerUPP); /* This can fail if CarbonLib is too old */
! myEventHandlerUPP = NewEventHandlerUPP(myEventHandler);
"""
module = MacModule('_CarbonEvt', 'CarbonEvents', includestuff, finalstuff, initstuff)
***************
*** 198,202 ****
return NULL;
! _err = InstallEventHandler(_self->ob_itself, gEventHandlerUPP, 1, &inSpec, (void *)callback, &outRef);
if (_err != noErr) return PyMac_Error(_err);
--- 209,213 ----
return NULL;
! _err = InstallEventHandler(_self->ob_itself, myEventHandlerUPP, 1, &inSpec, (void *)callback, &outRef);
if (_err != noErr) return PyMac_Error(_err);
***************
*** 210,214 ****
#if USE_MAC_MP_MULTITHREADING
if (MPCreateCriticalRegion(&reentrantLock) != noErr) {
! printf("lock failure\\n");
return NULL;
}
--- 221,225 ----
#if USE_MAC_MP_MULTITHREADING
if (MPCreateCriticalRegion(&reentrantLock) != noErr) {
! PySys_WriteStderr("lock failure\\n");
return NULL;
}
Index: _CarbonEvtmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/carbonevt/_CarbonEvtmodule.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** _CarbonEvtmodule.c 2001/12/11 21:52:02 1.1
--- _CarbonEvtmodule.c 2001/12/12 20:48:53 1.2
***************
*** 14,18 ****
#include "macglue.h"
! #define USE_MAC_MP_MULTITHREADING 1
#if USE_MAC_MP_MULTITHREADING
--- 14,26 ----
#include "macglue.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; \
! }} while(0)
!
!
! #define USE_MAC_MP_MULTITHREADING 0
#if USE_MAC_MP_MULTITHREADING
***************
*** 85,93 ****
/********** end EventHotKeyID *******/
! /******** handlecommand ***********/
! static EventHandlerUPP gEventHandlerUPP;
! pascal OSStatus CarbonEvents_HandleEvent(EventHandlerCallRef handlerRef, EventRef event, void *outPyObject) {
PyObject *retValue;
int status;
--- 93,101 ----
/********** end EventHotKeyID *******/
! /******** myEventHandler ***********/
! static EventHandlerUPP myEventHandlerUPP;
! pascal OSStatus myEventHandler(EventHandlerCallRef handlerRef, EventRef event, void *outPyObject) {
PyObject *retValue;
int status;
***************
*** 109,113 ****
}
! /******** end handlecommand ***********/
--- 117,121 ----
}
! /******** end myEventHandler ***********/
***************
*** 1060,1064 ****
return NULL;
! _err = InstallEventHandler(_self->ob_itself, gEventHandlerUPP, 1, &inSpec, (void *)callback, &outRef);
if (_err != noErr) return PyMac_Error(_err);
--- 1068,1072 ----
return NULL;
! _err = InstallEventHandler(_self->ob_itself, myEventHandlerUPP, 1, &inSpec, (void *)callback, &outRef);
if (_err != noErr) return PyMac_Error(_err);
***************
*** 1147,1151 ****
--- 1155,1174 ----
}
+ static PyObject *EventHotKeyRef_UnregisterEventHotKey(EventHotKeyRefObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _err = UnregisterEventHotKey(_self->ob_itself);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+ }
+
static PyMethodDef EventHotKeyRef_methods[] = {
+ {"UnregisterEventHotKey", (PyCFunction)EventHotKeyRef_UnregisterEventHotKey, 1,
+ "() -> None"},
{NULL, NULL, 0}
};
***************
*** 1367,1370 ****
--- 1390,1405 ----
}
+ static PyObject *CarbonEvents_GetEventDispatcherTarget(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ EventTargetRef _rv;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _rv = GetEventDispatcherTarget();
+ _res = Py_BuildValue("O&",
+ EventTargetRef_New, _rv);
+ return _res;
+ }
+
static PyObject *CarbonEvents_QuitApplicationEventLoop(PyObject *_self, PyObject *_args)
{
***************
*** 1378,1381 ****
--- 1413,1476 ----
}
+ static PyObject *CarbonEvents_RunAppModalLoopForWindow(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ WindowPtr inWindow;
+ if (!PyArg_ParseTuple(_args, "O&",
+ WinObj_Convert, &inWindow))
+ return NULL;
+ _err = RunAppModalLoopForWindow(inWindow);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+ }
+
+ static PyObject *CarbonEvents_QuitAppModalLoopForWindow(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ WindowPtr inWindow;
+ if (!PyArg_ParseTuple(_args, "O&",
+ WinObj_Convert, &inWindow))
+ return NULL;
+ _err = QuitAppModalLoopForWindow(inWindow);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+ }
+
+ static PyObject *CarbonEvents_BeginAppModalStateForWindow(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ WindowPtr inWindow;
+ if (!PyArg_ParseTuple(_args, "O&",
+ WinObj_Convert, &inWindow))
+ return NULL;
+ _err = BeginAppModalStateForWindow(inWindow);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+ }
+
+ static PyObject *CarbonEvents_EndAppModalStateForWindow(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ WindowPtr inWindow;
+ if (!PyArg_ParseTuple(_args, "O&",
+ WinObj_Convert, &inWindow))
+ return NULL;
+ _err = EndAppModalStateForWindow(inWindow);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+ }
+
static PyObject *CarbonEvents_SetUserFocusWindow(PyObject *_self, PyObject *_args)
{
***************
*** 1475,1478 ****
--- 1570,1602 ----
}
+ static PyObject *CarbonEvents_RegisterEventHotKey(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+ OSStatus _err;
+ UInt32 inHotKeyCode;
+ UInt32 inHotKeyModifiers;
+ EventHotKeyID inHotKeyID;
+ EventTargetRef inTarget;
+ OptionBits inOptions;
+ EventHotKeyRef outRef;
+ if (!PyArg_ParseTuple(_args, "llO&O&l",
+ &inHotKeyCode,
+ &inHotKeyModifiers,
+ EventHotKeyID_Convert, &inHotKeyID,
+ EventTargetRef_Convert, &inTarget,
+ &inOptions))
+ return NULL;
+ _err = RegisterEventHotKey(inHotKeyCode,
+ inHotKeyModifiers,
+ inHotKeyID,
+ inTarget,
+ inOptions,
+ &outRef);
+ if (_err != noErr) return PyMac_Error(_err);
+ _res = Py_BuildValue("O&",
+ EventHotKeyRef_New, outRef);
+ return _res;
+ }
+
static PyObject *CarbonEvents_RunApplicationEventLoop(PyObject *_self, PyObject *_args)
{
***************
*** 1481,1485 ****
#if USE_MAC_MP_MULTITHREADING
if (MPCreateCriticalRegion(&reentrantLock) != noErr) {
! printf("lock failure\n");
return NULL;
}
--- 1605,1609 ----
#if USE_MAC_MP_MULTITHREADING
if (MPCreateCriticalRegion(&reentrantLock) != noErr) {
! PySys_WriteStderr("lock failure\n");
return NULL;
}
***************
*** 1528,1533 ****
--- 1652,1667 ----
{"GetUserFocusEventTarget", (PyCFunction)CarbonEvents_GetUserFocusEventTarget, 1,
"() -> (EventTargetRef _rv)"},
+ {"GetEventDispatcherTarget", (PyCFunction)CarbonEvents_GetEventDispatcherTarget, 1,
+ "() -> (EventTargetRef _rv)"},
{"QuitApplicationEventLoop", (PyCFunction)CarbonEvents_QuitApplicationEventLoop, 1,
"() -> None"},
+ {"RunAppModalLoopForWindow", (PyCFunction)CarbonEvents_RunAppModalLoopForWindow, 1,
+ "(WindowPtr inWindow) -> None"},
+ {"QuitAppModalLoopForWindow", (PyCFunction)CarbonEvents_QuitAppModalLoopForWindow, 1,
+ "(WindowPtr inWindow) -> None"},
+ {"BeginAppModalStateForWindow", (PyCFunction)CarbonEvents_BeginAppModalStateForWindow, 1,
+ "(WindowPtr inWindow) -> None"},
+ {"EndAppModalStateForWindow", (PyCFunction)CarbonEvents_EndAppModalStateForWindow, 1,
+ "(WindowPtr inWindow) -> None"},
{"SetUserFocusWindow", (PyCFunction)CarbonEvents_SetUserFocusWindow, 1,
"(WindowPtr inWindow) -> None"},
***************
*** 1542,1545 ****
--- 1676,1681 ----
{"GetWindowCancelButton", (PyCFunction)CarbonEvents_GetWindowCancelButton, 1,
"(WindowPtr inWindow) -> (ControlHandle outControl)"},
+ {"RegisterEventHotKey", (PyCFunction)CarbonEvents_RegisterEventHotKey, 1,
+ "(UInt32 inHotKeyCode, UInt32 inHotKeyModifiers, EventHotKeyID inHotKeyID, EventTargetRef inTarget, OptionBits inOptions) -> (EventHotKeyRef outRef)"},
{"RunApplicationEventLoop", (PyCFunction)CarbonEvents_RunApplicationEventLoop, 1,
"() -> ()"},
***************
*** 1557,1561 ****
! gEventHandlerUPP = NewEventHandlerUPP(CarbonEvents_HandleEvent);
--- 1693,1698 ----
! PyMac_PRECHECK(NewEventHandlerUPP); /* This can fail if CarbonLib is too old */
! myEventHandlerUPP = NewEventHandlerUPP(myEventHandler);