diff options
Diffstat (limited to 'Mac/Modules/ctl/ctlsupport.py')
-rw-r--r-- | Mac/Modules/ctl/ctlsupport.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Mac/Modules/ctl/ctlsupport.py b/Mac/Modules/ctl/ctlsupport.py index 75e7aa7..e01e871 100644 --- a/Mac/Modules/ctl/ctlsupport.py +++ b/Mac/Modules/ctl/ctlsupport.py @@ -204,6 +204,43 @@ f = ManualGenerator("TrackControl", trackcontrol_body); #f.docstring = "(Point startPoint [,trackercallback]) -> (ControlPartCode _rv)" object.add(f) +# And manual generators to get/set popup menu information +getpopupdata_body = """ +PopupPrivateDataHandle hdl; + +if ( (*_self->ob_itself)->contrlData == NULL ) { + PyErr_SetString(Ctl_Error, "No contrlData handle in control"); + return 0; +} +hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData; +HLock((Handle)hdl); +_res = Py_BuildValue("O&i", MenuObj_New, (*hdl)->mHandle, (int)(*hdl)->mID); +HUnlock((Handle)hdl); +return _res; +""" +f = ManualGenerator("GetPopupData", getpopupdata_body) +object.add(f) + +setpopupdata_body = """ +PopupPrivateDataHandle hdl; +MenuHandle mHandle; +short mID; + +if (!PyArg_ParseTuple(_args, "O&h", MenuObj_Convert, &mHandle, &mID) ) + return 0; +if ( (*_self->ob_itself)->contrlData == NULL ) { + PyErr_SetString(Ctl_Error, "No contrlData handle in control"); + return 0; +} +hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData; +(*hdl)->mHandle = mHandle; +(*hdl)->mID = mID; +Py_INCREF(Py_None); +return Py_None; +""" +f = ManualGenerator("SetPopupData", setpopupdata_body) +object.add(f) + # generate output (open the output file as late as possible) SetOutputFileName(OUTPUTFILE) |