summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/ctl
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-08-23 14:11:10 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-08-23 14:11:10 (GMT)
commit25a5bd77083a359ea9afccef9de04f2d4fb57362 (patch)
treeda545b510ed6590dc9dd262a0960ccf9a8309fef /Mac/Modules/ctl
parent50ecb0ad835480e6a3446613ceeffa78a7bd2de3 (diff)
downloadcpython-25a5bd77083a359ea9afccef9de04f2d4fb57362.zip
cpython-25a5bd77083a359ea9afccef9de04f2d4fb57362.tar.gz
cpython-25a5bd77083a359ea9afccef9de04f2d4fb57362.tar.bz2
Renamed.
Diffstat (limited to 'Mac/Modules/ctl')
-rw-r--r--Mac/Modules/ctl/Ctlmodule.c2686
1 files changed, 0 insertions, 2686 deletions
diff --git a/Mac/Modules/ctl/Ctlmodule.c b/Mac/Modules/ctl/Ctlmodule.c
deleted file mode 100644
index 536da3c..0000000
--- a/Mac/Modules/ctl/Ctlmodule.c
+++ /dev/null
@@ -1,2686 +0,0 @@
-
-/* =========================== Module Ctl =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#ifdef WITHOUT_FRAMEWORKS
-#include <Controls.h>
-#include <ControlDefinitions.h>
-#else
-#include <Carbon/Carbon.h>
-#endif
-
-#ifdef USE_TOOLBOX_OBJECT_GLUE
-extern PyObject *_CtlObj_New(ControlHandle);
-extern int _CtlObj_Convert(PyObject *, ControlHandle *);
-
-#define CtlObj_New _CtlObj_New
-#define CtlObj_Convert _CtlObj_Convert
-#endif
-
-staticforward PyObject *CtlObj_WhichControl(ControlHandle);
-
-#define as_Control(h) ((ControlHandle)h)
-#define as_Resource(ctl) ((Handle)ctl)
-#if TARGET_API_MAC_CARBON
-#define GetControlRect(ctl, rectp) GetControlBounds(ctl, rectp)
-#else
-#define GetControlRect(ctl, rectp) (*(rectp) = ((*(ctl))->contrlRect))
-#endif
-
-/*
-** Parse/generate ControlFontStyleRec records
-*/
-#if 0 /* Not needed */
-static PyObject *
-ControlFontStyle_New(ControlFontStyleRec *itself)
-{
-
- return Py_BuildValue("hhhhhhO&O&", itself->flags, itself->font,
- itself->size, itself->style, itself->mode, itself->just,
- QdRGB_New, &itself->foreColor, QdRGB_New, &itself->backColor);
-}
-#endif
-
-static int
-ControlFontStyle_Convert(PyObject *v, ControlFontStyleRec *itself)
-{
- return PyArg_ParseTuple(v, "hhhhhhO&O&", &itself->flags,
- &itself->font, &itself->size, &itself->style, &itself->mode,
- &itself->just, QdRGB_Convert, &itself->foreColor,
- QdRGB_Convert, &itself->backColor);
-}
-
-/*
-** Parse/generate ControlID records
-*/
-static PyObject *
-PyControlID_New(ControlID *itself)
-{
-
- return Py_BuildValue("O&l", PyMac_BuildOSType, itself->signature, itself->id);
-}
-
-static int
-PyControlID_Convert(PyObject *v, ControlID *itself)
-{
- return PyArg_ParseTuple(v, "O&l", PyMac_GetOSType, &itself->signature, &itself->id);
-}
-
-
-/* TrackControl and HandleControlClick callback support */
-static PyObject *tracker;
-static ControlActionUPP mytracker_upp;
-static ControlUserPaneDrawUPP mydrawproc_upp;
-static ControlUserPaneIdleUPP myidleproc_upp;
-static ControlUserPaneHitTestUPP myhittestproc_upp;
-static ControlUserPaneTrackingUPP mytrackingproc_upp;
-
-staticforward int settrackfunc(PyObject *); /* forward */
-staticforward void clrtrackfunc(void); /* forward */
-staticforward int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *);
-
-static PyObject *Ctl_Error;
-
-/* ---------------------- Object type Control ----------------------- */
-
-PyTypeObject Control_Type;
-
-#define CtlObj_Check(x) ((x)->ob_type == &Control_Type)
-
-typedef struct ControlObject {
- PyObject_HEAD
- ControlHandle ob_itself;
- PyObject *ob_callbackdict;
-} ControlObject;
-
-PyObject *CtlObj_New(ControlHandle itself)
-{
- ControlObject *it;
- if (itself == NULL) return PyMac_Error(resNotFound);
- it = PyObject_NEW(ControlObject, &Control_Type);
- if (it == NULL) return NULL;
- it->ob_itself = itself;
- SetControlReference(itself, (long)it);
- it->ob_callbackdict = NULL;
- return (PyObject *)it;
-}
-CtlObj_Convert(PyObject *v, ControlHandle *p_itself)
-{
- if (!CtlObj_Check(v))
- {
- PyErr_SetString(PyExc_TypeError, "Control required");
- return 0;
- }
- *p_itself = ((ControlObject *)v)->ob_itself;
- return 1;
-}
-
-static void CtlObj_dealloc(ControlObject *self)
-{
- Py_XDECREF(self->ob_callbackdict);
- if (self->ob_itself)SetControlReference(self->ob_itself, (long)0); /* Make it forget about us */
- PyMem_DEL(self);
-}
-
-static PyObject *CtlObj_HiliteControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlPartCode hiliteState;
- if (!PyArg_ParseTuple(_args, "h",
- &hiliteState))
- return NULL;
- HiliteControl(_self->ob_itself,
- hiliteState);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_ShowControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- ShowControl(_self->ob_itself);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_HideControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- HideControl(_self->ob_itself);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_IsControlActive(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Boolean _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = IsControlActive(_self->ob_itself);
- _res = Py_BuildValue("b",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_IsControlVisible(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Boolean _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = IsControlVisible(_self->ob_itself);
- _res = Py_BuildValue("b",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_ActivateControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = ActivateControl(_self->ob_itself);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_DeactivateControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = DeactivateControl(_self->ob_itself);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetControlVisibility(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- Boolean inIsVisible;
- Boolean inDoDraw;
- if (!PyArg_ParseTuple(_args, "bb",
- &inIsVisible,
- &inDoDraw))
- return NULL;
- _err = SetControlVisibility(_self->ob_itself,
- inIsVisible,
- inDoDraw);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_Draw1Control(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- Draw1Control(_self->ob_itself);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetBestControlRect(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- Rect outRect;
- SInt16 outBaseLineOffset;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetBestControlRect(_self->ob_itself,
- &outRect,
- &outBaseLineOffset);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&h",
- PyMac_BuildRect, &outRect,
- outBaseLineOffset);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlFontStyle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- ControlFontStyleRec inStyle;
- if (!PyArg_ParseTuple(_args, "O&",
- ControlFontStyle_Convert, &inStyle))
- return NULL;
- _err = SetControlFontStyle(_self->ob_itself,
- &inStyle);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_DrawControlInCurrentPort(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- DrawControlInCurrentPort(_self->ob_itself);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetUpControlBackground(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 inDepth;
- Boolean inIsColorDevice;
- if (!PyArg_ParseTuple(_args, "hb",
- &inDepth,
- &inIsColorDevice))
- return NULL;
- _err = SetUpControlBackground(_self->ob_itself,
- inDepth,
- inIsColorDevice);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetUpControlTextColor(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 inDepth;
- Boolean inIsColorDevice;
- if (!PyArg_ParseTuple(_args, "hb",
- &inDepth,
- &inIsColorDevice))
- return NULL;
- _err = SetUpControlTextColor(_self->ob_itself,
- inDepth,
- inIsColorDevice);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_DragControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Point startPoint;
- Rect limitRect;
- Rect slopRect;
- DragConstraint axis;
- if (!PyArg_ParseTuple(_args, "O&O&O&H",
- PyMac_GetPoint, &startPoint,
- PyMac_GetRect, &limitRect,
- PyMac_GetRect, &slopRect,
- &axis))
- return NULL;
- DragControl(_self->ob_itself,
- startPoint,
- &limitRect,
- &slopRect,
- axis);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_TestControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlPartCode _rv;
- Point testPoint;
- if (!PyArg_ParseTuple(_args, "O&",
- PyMac_GetPoint, &testPoint))
- return NULL;
- _rv = TestControl(_self->ob_itself,
- testPoint);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlContextualMenuClick(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- Point inWhere;
- Boolean menuDisplayed;
- if (!PyArg_ParseTuple(_args, "O&",
- PyMac_GetPoint, &inWhere))
- return NULL;
- _err = HandleControlContextualMenuClick(_self->ob_itself,
- inWhere,
- &menuDisplayed);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("b",
- menuDisplayed);
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlClickActivation(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- Point inWhere;
- EventModifiers inModifiers;
- ClickActivationResult outResult;
- if (!PyArg_ParseTuple(_args, "O&H",
- PyMac_GetPoint, &inWhere,
- &inModifiers))
- return NULL;
- _err = GetControlClickActivation(_self->ob_itself,
- inWhere,
- inModifiers,
- &outResult);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("l",
- outResult);
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_HandleControlKey(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 _rv;
- SInt16 inKeyCode;
- SInt16 inCharCode;
- EventModifiers inModifiers;
- if (!PyArg_ParseTuple(_args, "hhH",
- &inKeyCode,
- &inCharCode,
- &inModifiers))
- return NULL;
- _rv = HandleControlKey(_self->ob_itself,
- inKeyCode,
- inCharCode,
- inModifiers);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlSetCursor(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- Point localPoint;
- EventModifiers modifiers;
- Boolean cursorWasSet;
- if (!PyArg_ParseTuple(_args, "O&H",
- PyMac_GetPoint, &localPoint,
- &modifiers))
- return NULL;
- _err = HandleControlSetCursor(_self->ob_itself,
- localPoint,
- modifiers,
- &cursorWasSet);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("b",
- cursorWasSet);
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_MoveControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 h;
- SInt16 v;
- if (!PyArg_ParseTuple(_args, "hh",
- &h,
- &v))
- return NULL;
- MoveControl(_self->ob_itself,
- h,
- v);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SizeControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 w;
- SInt16 h;
- if (!PyArg_ParseTuple(_args, "hh",
- &w,
- &h))
- return NULL;
- SizeControl(_self->ob_itself,
- w,
- h);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetControlTitle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Str255 title;
- if (!PyArg_ParseTuple(_args, "O&",
- PyMac_GetStr255, title))
- return NULL;
- SetControlTitle(_self->ob_itself,
- title);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlTitle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Str255 title;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- GetControlTitle(_self->ob_itself,
- title);
- _res = Py_BuildValue("O&",
- PyMac_BuildStr255, title);
- return _res;
-}
-
-static PyObject *CtlObj_GetControlValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlValue(_self->ob_itself);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 newValue;
- if (!PyArg_ParseTuple(_args, "h",
- &newValue))
- return NULL;
- SetControlValue(_self->ob_itself,
- newValue);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlMinimum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlMinimum(_self->ob_itself);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlMinimum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 newMinimum;
- if (!PyArg_ParseTuple(_args, "h",
- &newMinimum))
- return NULL;
- SetControlMinimum(_self->ob_itself,
- newMinimum);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlMaximum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlMaximum(_self->ob_itself);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlMaximum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt16 newMaximum;
- if (!PyArg_ParseTuple(_args, "h",
- &newMaximum))
- return NULL;
- SetControlMaximum(_self->ob_itself,
- newMaximum);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlViewSize(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlViewSize(_self->ob_itself);
- _res = Py_BuildValue("l",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlViewSize(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 newViewSize;
- if (!PyArg_ParseTuple(_args, "l",
- &newViewSize))
- return NULL;
- SetControlViewSize(_self->ob_itself,
- newViewSize);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControl32BitValue(_self->ob_itself);
- _res = Py_BuildValue("l",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 newValue;
- if (!PyArg_ParseTuple(_args, "l",
- &newValue))
- return NULL;
- SetControl32BitValue(_self->ob_itself,
- newValue);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitMaximum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControl32BitMaximum(_self->ob_itself);
- _res = Py_BuildValue("l",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitMaximum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 newMaximum;
- if (!PyArg_ParseTuple(_args, "l",
- &newMaximum))
- return NULL;
- SetControl32BitMaximum(_self->ob_itself,
- newMaximum);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitMinimum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControl32BitMinimum(_self->ob_itself);
- _res = Py_BuildValue("l",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitMinimum(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 newMinimum;
- if (!PyArg_ParseTuple(_args, "l",
- &newMinimum))
- return NULL;
- SetControl32BitMinimum(_self->ob_itself,
- newMinimum);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_IsValidControlHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Boolean _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = IsValidControlHandle(_self->ob_itself);
- _res = Py_BuildValue("b",
- _rv);
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlID(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- ControlID inID;
- if (!PyArg_ParseTuple(_args, "O&",
- PyControlID_Convert, &inID))
- return NULL;
- _err = SetControlID(_self->ob_itself,
- &inID);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlID(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- ControlID outID;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetControlID(_self->ob_itself,
- &outID);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- PyControlID_New, &outID);
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_RemoveControlProperty(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- OSType propertyCreator;
- OSType propertyTag;
- if (!PyArg_ParseTuple(_args, "O&O&",
- PyMac_GetOSType, &propertyCreator,
- PyMac_GetOSType, &propertyTag))
- return NULL;
- _err = RemoveControlProperty(_self->ob_itself,
- propertyCreator,
- propertyTag);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlPropertyAttributes(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- OSType propertyCreator;
- OSType propertyTag;
- UInt32 attributes;
- if (!PyArg_ParseTuple(_args, "O&O&",
- PyMac_GetOSType, &propertyCreator,
- PyMac_GetOSType, &propertyTag))
- return NULL;
- _err = GetControlPropertyAttributes(_self->ob_itself,
- propertyCreator,
- propertyTag,
- &attributes);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("l",
- attributes);
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_ChangeControlPropertyAttributes(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- OSType propertyCreator;
- OSType propertyTag;
- UInt32 attributesToSet;
- UInt32 attributesToClear;
- if (!PyArg_ParseTuple(_args, "O&O&ll",
- PyMac_GetOSType, &propertyCreator,
- PyMac_GetOSType, &propertyTag,
- &attributesToSet,
- &attributesToClear))
- return NULL;
- _err = ChangeControlPropertyAttributes(_self->ob_itself,
- propertyCreator,
- propertyTag,
- attributesToSet,
- attributesToClear);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_GetControlRegion(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- ControlPartCode inPart;
- RgnHandle outRegion;
- if (!PyArg_ParseTuple(_args, "hO&",
- &inPart,
- ResObj_Convert, &outRegion))
- return NULL;
- _err = GetControlRegion(_self->ob_itself,
- inPart,
- outRegion);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlVariant(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlVariant _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlVariant(_self->ob_itself);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlReference(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 data;
- if (!PyArg_ParseTuple(_args, "l",
- &data))
- return NULL;
- SetControlReference(_self->ob_itself,
- data);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlReference(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- SInt32 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlReference(_self->ob_itself);
- _res = Py_BuildValue("l",
- _rv);
- return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetAuxiliaryControlRecord(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Boolean _rv;
- AuxCtlHandle acHndl;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetAuxiliaryControlRecord(_self->ob_itself,
- &acHndl);
- _res = Py_BuildValue("bO&",
- _rv,
- ResObj_New, acHndl);
- return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlColor(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CCTabHandle newColorTable;
- if (!PyArg_ParseTuple(_args, "O&",
- ResObj_Convert, &newColorTable))
- return NULL;
- SetControlColor(_self->ob_itself,
- newColorTable);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_EmbedControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- ControlHandle inContainer;
- if (!PyArg_ParseTuple(_args, "O&",
- CtlObj_Convert, &inContainer))
- return NULL;
- _err = EmbedControl(_self->ob_itself,
- inContainer);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_AutoEmbedControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = AutoEmbedControl(_self->ob_itself,
- inWindow);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetSuperControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- ControlHandle outParent;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetSuperControl(_self->ob_itself,
- &outParent);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outParent);
- return _res;
-}
-
-static PyObject *CtlObj_CountSubControls(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- UInt16 outNumChildren;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = CountSubControls(_self->ob_itself,
- &outNumChildren);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("H",
- outNumChildren);
- return _res;
-}
-
-static PyObject *CtlObj_GetIndexedSubControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- UInt16 inIndex;
- ControlHandle outSubControl;
- if (!PyArg_ParseTuple(_args, "H",
- &inIndex))
- return NULL;
- _err = GetIndexedSubControl(_self->ob_itself,
- inIndex,
- &outSubControl);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outSubControl);
- return _res;
-}
-
-static PyObject *CtlObj_SetControlSupervisor(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- ControlHandle inBoss;
- if (!PyArg_ParseTuple(_args, "O&",
- CtlObj_Convert, &inBoss))
- return NULL;
- _err = SetControlSupervisor(_self->ob_itself,
- inBoss);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetControlFeatures(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- UInt32 outFeatures;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetControlFeatures(_self->ob_itself,
- &outFeatures);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("l",
- outFeatures);
- return _res;
-}
-
-static PyObject *CtlObj_GetControlDataSize(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- Size outMaxSize;
- if (!PyArg_ParseTuple(_args, "hO&",
- &inPart,
- PyMac_GetOSType, &inTagName))
- return NULL;
- _err = GetControlDataSize(_self->ob_itself,
- inPart,
- inTagName,
- &outMaxSize);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("l",
- outMaxSize);
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlDragTracking(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- DragTrackingMessage inMessage;
- DragReference inDrag;
- Boolean outLikesDrag;
- if (!PyArg_ParseTuple(_args, "hO&",
- &inMessage,
- DragObj_Convert, &inDrag))
- return NULL;
- _err = HandleControlDragTracking(_self->ob_itself,
- inMessage,
- inDrag,
- &outLikesDrag);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("b",
- outLikesDrag);
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlDragReceive(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- DragReference inDrag;
- if (!PyArg_ParseTuple(_args, "O&",
- DragObj_Convert, &inDrag))
- return NULL;
- _err = HandleControlDragReceive(_self->ob_itself,
- inDrag);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlDragTrackingEnabled(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- Boolean tracks;
- if (!PyArg_ParseTuple(_args, "b",
- &tracks))
- return NULL;
- _err = SetControlDragTrackingEnabled(_self->ob_itself,
- tracks);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_IsControlDragTrackingEnabled(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- Boolean tracks;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = IsControlDragTrackingEnabled(_self->ob_itself,
- &tracks);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("b",
- tracks);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlBounds(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Rect bounds;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- GetControlBounds(_self->ob_itself,
- &bounds);
- _res = Py_BuildValue("O&",
- PyMac_BuildRect, &bounds);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_IsControlHilited(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Boolean _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = IsControlHilited(_self->ob_itself);
- _res = Py_BuildValue("b",
- _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlHilite(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- UInt16 _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlHilite(_self->ob_itself);
- _res = Py_BuildValue("H",
- _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlOwner(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- WindowPtr _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlOwner(_self->ob_itself);
- _res = Py_BuildValue("O&",
- WinObj_New, _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlDataHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Handle _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlDataHandle(_self->ob_itself);
- _res = Py_BuildValue("O&",
- ResObj_New, _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlPopupMenuHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- MenuHandle _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlPopupMenuHandle(_self->ob_itself);
- _res = Py_BuildValue("O&",
- MenuObj_New, _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlPopupMenuID(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- short _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = GetControlPopupMenuID(_self->ob_itself);
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlDataHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Handle dataHandle;
- if (!PyArg_ParseTuple(_args, "O&",
- ResObj_Convert, &dataHandle))
- return NULL;
- SetControlDataHandle(_self->ob_itself,
- dataHandle);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlBounds(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Rect bounds;
- if (!PyArg_ParseTuple(_args, "O&",
- PyMac_GetRect, &bounds))
- return NULL;
- SetControlBounds(_self->ob_itself,
- &bounds);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlPopupMenuHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- MenuHandle popupMenu;
- if (!PyArg_ParseTuple(_args, "O&",
- MenuObj_Convert, &popupMenu))
- return NULL;
- SetControlPopupMenuHandle(_self->ob_itself,
- popupMenu);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlPopupMenuID(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- short menuID;
- if (!PyArg_ParseTuple(_args, "h",
- &menuID))
- return NULL;
- SetControlPopupMenuID(_self->ob_itself,
- menuID);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-static PyObject *CtlObj_GetBevelButtonMenuValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 outValue;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetBevelButtonMenuValue(_self->ob_itself,
- &outValue);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("h",
- outValue);
- return _res;
-}
-
-static PyObject *CtlObj_SetBevelButtonMenuValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 inValue;
- if (!PyArg_ParseTuple(_args, "h",
- &inValue))
- return NULL;
- _err = SetBevelButtonMenuValue(_self->ob_itself,
- inValue);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetBevelButtonMenuHandle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- MenuHandle outHandle;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetBevelButtonMenuHandle(_self->ob_itself,
- &outHandle);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- MenuObj_New, outHandle);
- return _res;
-}
-
-static PyObject *CtlObj_SetBevelButtonTransform(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- IconTransformType transform;
- if (!PyArg_ParseTuple(_args, "h",
- &transform))
- return NULL;
- _err = SetBevelButtonTransform(_self->ob_itself,
- transform);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetDisclosureTriangleLastValue(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 inValue;
- if (!PyArg_ParseTuple(_args, "h",
- &inValue))
- return NULL;
- _err = SetDisclosureTriangleLastValue(_self->ob_itself,
- inValue);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_GetTabContentRect(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- Rect outContentRect;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = GetTabContentRect(_self->ob_itself,
- &outContentRect);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- PyMac_BuildRect, &outContentRect);
- return _res;
-}
-
-static PyObject *CtlObj_SetTabEnabled(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- SInt16 inTabToHilite;
- Boolean inEnabled;
- if (!PyArg_ParseTuple(_args, "hb",
- &inTabToHilite,
- &inEnabled))
- return NULL;
- _err = SetTabEnabled(_self->ob_itself,
- inTabToHilite,
- inEnabled);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_SetImageWellTransform(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- IconTransformType inTransform;
- if (!PyArg_ParseTuple(_args, "h",
- &inTransform))
- return NULL;
- _err = SetImageWellTransform(_self->ob_itself,
- inTransform);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *CtlObj_as_Resource(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Handle _rv;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _rv = as_Resource(_self->ob_itself);
- _res = Py_BuildValue("O&",
- ResObj_New, _rv);
- return _res;
-}
-
-static PyObject *CtlObj_GetControlRect(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- Rect rect;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- GetControlRect(_self->ob_itself,
- &rect);
- _res = Py_BuildValue("O&",
- PyMac_BuildRect, &rect);
- return _res;
-}
-
-static PyObject *CtlObj_DisposeControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- if ( _self->ob_itself ) {
- SetControlReference(_self->ob_itself, (long)0); /* Make it forget about us */
- DisposeControl(_self->ob_itself);
- _self->ob_itself = NULL;
- }
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-
-}
-
-static PyObject *CtlObj_TrackControl(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- ControlPartCode _rv;
- Point startPoint;
- ControlActionUPP upp = 0;
- PyObject *callback = 0;
-
- if (!PyArg_ParseTuple(_args, "O&|O",
- PyMac_GetPoint, &startPoint, &callback))
- return NULL;
- if (callback && callback != Py_None) {
- if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
- upp = (ControlActionUPP)-1;
- else {
- settrackfunc(callback);
- upp = mytracker_upp;
- }
- }
- _rv = TrackControl(_self->ob_itself,
- startPoint,
- upp);
- clrtrackfunc();
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-
-}
-
-static PyObject *CtlObj_HandleControlClick(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- ControlPartCode _rv;
- Point startPoint;
- SInt16 modifiers;
- ControlActionUPP upp = 0;
- PyObject *callback = 0;
-
- if (!PyArg_ParseTuple(_args, "O&h|O",
- PyMac_GetPoint, &startPoint,
- &modifiers,
- &callback))
- return NULL;
- if (callback && callback != Py_None) {
- if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
- upp = (ControlActionUPP)-1;
- else {
- settrackfunc(callback);
- upp = mytracker_upp;
- }
- }
- _rv = HandleControlClick(_self->ob_itself,
- startPoint,
- modifiers,
- upp);
- clrtrackfunc();
- _res = Py_BuildValue("h",
- _rv);
- return _res;
-
-}
-
-static PyObject *CtlObj_SetControlData(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- Size bufferSize;
- Ptr buffer;
-
- if (!PyArg_ParseTuple(_args, "hO&s#",
- &inPart,
- PyMac_GetOSType, &inTagName,
- &buffer, &bufferSize))
- return NULL;
-
- _err = SetControlData(_self->ob_itself,
- inPart,
- inTagName,
- bufferSize,
- buffer);
-
- if (_err != noErr)
- return PyMac_Error(_err);
- _res = Py_None;
- return _res;
-
-}
-
-static PyObject *CtlObj_GetControlData(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- Size bufferSize;
- Ptr buffer;
- Size outSize;
-
- if (!PyArg_ParseTuple(_args, "hO&",
- &inPart,
- PyMac_GetOSType, &inTagName))
- return NULL;
-
- /* allocate a buffer for the data */
- _err = GetControlDataSize(_self->ob_itself,
- inPart,
- inTagName,
- &bufferSize);
- if (_err != noErr)
- return PyMac_Error(_err);
- buffer = PyMem_NEW(char, bufferSize);
- if (buffer == NULL)
- return PyErr_NoMemory();
-
- _err = GetControlData(_self->ob_itself,
- inPart,
- inTagName,
- bufferSize,
- buffer,
- &outSize);
-
- if (_err != noErr) {
- PyMem_DEL(buffer);
- return PyMac_Error(_err);
- }
- _res = Py_BuildValue("s#", buffer, outSize);
- PyMem_DEL(buffer);
- return _res;
-
-}
-
-static PyObject *CtlObj_SetControlData_Handle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- Handle buffer;
-
- if (!PyArg_ParseTuple(_args, "hO&O&",
- &inPart,
- PyMac_GetOSType, &inTagName,
- OptResObj_Convert, &buffer))
- return NULL;
-
- _err = SetControlData(_self->ob_itself,
- inPart,
- inTagName,
- sizeof(buffer),
- (Ptr)&buffer);
-
- if (_err != noErr)
- return PyMac_Error(_err);
- _res = Py_None;
- return _res;
-
-}
-
-static PyObject *CtlObj_GetControlData_Handle(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- Size bufferSize;
- Handle hdl;
-
- if (!PyArg_ParseTuple(_args, "hO&",
- &inPart,
- PyMac_GetOSType, &inTagName))
- return NULL;
-
- /* Check it is handle-sized */
- _err = GetControlDataSize(_self->ob_itself,
- inPart,
- inTagName,
- &bufferSize);
- if (_err != noErr)
- return PyMac_Error(_err);
- if (bufferSize != sizeof(Handle)) {
- PyErr_SetString(Ctl_Error, "GetControlDataSize() != sizeof(Handle)");
- return NULL;
- }
-
- _err = GetControlData(_self->ob_itself,
- inPart,
- inTagName,
- sizeof(Handle),
- (Ptr)&hdl,
- &bufferSize);
-
- if (_err != noErr) {
- return PyMac_Error(_err);
- }
- return Py_BuildValue("O&", OptResObj_New, hdl);
-
-}
-
-static PyObject *CtlObj_SetControlData_Callback(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- OSErr _err;
- ControlPartCode inPart;
- ResType inTagName;
- PyObject *callback;
- UniversalProcPtr c_callback;
-
- if (!PyArg_ParseTuple(_args, "hO&O",
- &inPart,
- PyMac_GetOSType, &inTagName,
- &callback))
- return NULL;
-
- if ( setcallback((PyObject *)_self, inTagName, callback, &c_callback) < 0 )
- return NULL;
- _err = SetControlData(_self->ob_itself,
- inPart,
- inTagName,
- sizeof(c_callback),
- (Ptr)&c_callback);
-
- if (_err != noErr)
- return PyMac_Error(_err);
- _res = Py_None;
- return _res;
-
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetPopupData(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- 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;
-
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetPopupData(ControlObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
-
- 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;
-
-}
-#endif
-
-static PyMethodDef CtlObj_methods[] = {
- {"HiliteControl", (PyCFunction)CtlObj_HiliteControl, 1,
- "(ControlPartCode hiliteState) -> None"},
- {"ShowControl", (PyCFunction)CtlObj_ShowControl, 1,
- "() -> None"},
- {"HideControl", (PyCFunction)CtlObj_HideControl, 1,
- "() -> None"},
- {"IsControlActive", (PyCFunction)CtlObj_IsControlActive, 1,
- "() -> (Boolean _rv)"},
- {"IsControlVisible", (PyCFunction)CtlObj_IsControlVisible, 1,
- "() -> (Boolean _rv)"},
- {"ActivateControl", (PyCFunction)CtlObj_ActivateControl, 1,
- "() -> None"},
- {"DeactivateControl", (PyCFunction)CtlObj_DeactivateControl, 1,
- "() -> None"},
- {"SetControlVisibility", (PyCFunction)CtlObj_SetControlVisibility, 1,
- "(Boolean inIsVisible, Boolean inDoDraw) -> None"},
- {"Draw1Control", (PyCFunction)CtlObj_Draw1Control, 1,
- "() -> None"},
- {"GetBestControlRect", (PyCFunction)CtlObj_GetBestControlRect, 1,
- "() -> (Rect outRect, SInt16 outBaseLineOffset)"},
- {"SetControlFontStyle", (PyCFunction)CtlObj_SetControlFontStyle, 1,
- "(ControlFontStyleRec inStyle) -> None"},
- {"DrawControlInCurrentPort", (PyCFunction)CtlObj_DrawControlInCurrentPort, 1,
- "() -> None"},
- {"SetUpControlBackground", (PyCFunction)CtlObj_SetUpControlBackground, 1,
- "(SInt16 inDepth, Boolean inIsColorDevice) -> None"},
- {"SetUpControlTextColor", (PyCFunction)CtlObj_SetUpControlTextColor, 1,
- "(SInt16 inDepth, Boolean inIsColorDevice) -> None"},
- {"DragControl", (PyCFunction)CtlObj_DragControl, 1,
- "(Point startPoint, Rect limitRect, Rect slopRect, DragConstraint axis) -> None"},
- {"TestControl", (PyCFunction)CtlObj_TestControl, 1,
- "(Point testPoint) -> (ControlPartCode _rv)"},
-
-#if TARGET_API_MAC_CARBON
- {"HandleControlContextualMenuClick", (PyCFunction)CtlObj_HandleControlContextualMenuClick, 1,
- "(Point inWhere) -> (Boolean menuDisplayed)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"GetControlClickActivation", (PyCFunction)CtlObj_GetControlClickActivation, 1,
- "(Point inWhere, EventModifiers inModifiers) -> (ClickActivationResult outResult)"},
-#endif
- {"HandleControlKey", (PyCFunction)CtlObj_HandleControlKey, 1,
- "(SInt16 inKeyCode, SInt16 inCharCode, EventModifiers inModifiers) -> (SInt16 _rv)"},
-
-#if TARGET_API_MAC_CARBON
- {"HandleControlSetCursor", (PyCFunction)CtlObj_HandleControlSetCursor, 1,
- "(Point localPoint, EventModifiers modifiers) -> (Boolean cursorWasSet)"},
-#endif
- {"MoveControl", (PyCFunction)CtlObj_MoveControl, 1,
- "(SInt16 h, SInt16 v) -> None"},
- {"SizeControl", (PyCFunction)CtlObj_SizeControl, 1,
- "(SInt16 w, SInt16 h) -> None"},
- {"SetControlTitle", (PyCFunction)CtlObj_SetControlTitle, 1,
- "(Str255 title) -> None"},
- {"GetControlTitle", (PyCFunction)CtlObj_GetControlTitle, 1,
- "() -> (Str255 title)"},
- {"GetControlValue", (PyCFunction)CtlObj_GetControlValue, 1,
- "() -> (SInt16 _rv)"},
- {"SetControlValue", (PyCFunction)CtlObj_SetControlValue, 1,
- "(SInt16 newValue) -> None"},
- {"GetControlMinimum", (PyCFunction)CtlObj_GetControlMinimum, 1,
- "() -> (SInt16 _rv)"},
- {"SetControlMinimum", (PyCFunction)CtlObj_SetControlMinimum, 1,
- "(SInt16 newMinimum) -> None"},
- {"GetControlMaximum", (PyCFunction)CtlObj_GetControlMaximum, 1,
- "() -> (SInt16 _rv)"},
- {"SetControlMaximum", (PyCFunction)CtlObj_SetControlMaximum, 1,
- "(SInt16 newMaximum) -> None"},
- {"GetControlViewSize", (PyCFunction)CtlObj_GetControlViewSize, 1,
- "() -> (SInt32 _rv)"},
- {"SetControlViewSize", (PyCFunction)CtlObj_SetControlViewSize, 1,
- "(SInt32 newViewSize) -> None"},
- {"GetControl32BitValue", (PyCFunction)CtlObj_GetControl32BitValue, 1,
- "() -> (SInt32 _rv)"},
- {"SetControl32BitValue", (PyCFunction)CtlObj_SetControl32BitValue, 1,
- "(SInt32 newValue) -> None"},
- {"GetControl32BitMaximum", (PyCFunction)CtlObj_GetControl32BitMaximum, 1,
- "() -> (SInt32 _rv)"},
- {"SetControl32BitMaximum", (PyCFunction)CtlObj_SetControl32BitMaximum, 1,
- "(SInt32 newMaximum) -> None"},
- {"GetControl32BitMinimum", (PyCFunction)CtlObj_GetControl32BitMinimum, 1,
- "() -> (SInt32 _rv)"},
- {"SetControl32BitMinimum", (PyCFunction)CtlObj_SetControl32BitMinimum, 1,
- "(SInt32 newMinimum) -> None"},
- {"IsValidControlHandle", (PyCFunction)CtlObj_IsValidControlHandle, 1,
- "() -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
- {"SetControlID", (PyCFunction)CtlObj_SetControlID, 1,
- "(ControlID inID) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"GetControlID", (PyCFunction)CtlObj_GetControlID, 1,
- "() -> (ControlID outID)"},
-#endif
- {"RemoveControlProperty", (PyCFunction)CtlObj_RemoveControlProperty, 1,
- "(OSType propertyCreator, OSType propertyTag) -> None"},
-
-#if TARGET_API_MAC_CARBON
- {"GetControlPropertyAttributes", (PyCFunction)CtlObj_GetControlPropertyAttributes, 1,
- "(OSType propertyCreator, OSType propertyTag) -> (UInt32 attributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"ChangeControlPropertyAttributes", (PyCFunction)CtlObj_ChangeControlPropertyAttributes, 1,
- "(OSType propertyCreator, OSType propertyTag, UInt32 attributesToSet, UInt32 attributesToClear) -> None"},
-#endif
- {"GetControlRegion", (PyCFunction)CtlObj_GetControlRegion, 1,
- "(ControlPartCode inPart, RgnHandle outRegion) -> None"},
- {"GetControlVariant", (PyCFunction)CtlObj_GetControlVariant, 1,
- "() -> (ControlVariant _rv)"},
- {"SetControlReference", (PyCFunction)CtlObj_SetControlReference, 1,
- "(SInt32 data) -> None"},
- {"GetControlReference", (PyCFunction)CtlObj_GetControlReference, 1,
- "() -> (SInt32 _rv)"},
-
-#if !TARGET_API_MAC_CARBON
- {"GetAuxiliaryControlRecord", (PyCFunction)CtlObj_GetAuxiliaryControlRecord, 1,
- "() -> (Boolean _rv, AuxCtlHandle acHndl)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
- {"SetControlColor", (PyCFunction)CtlObj_SetControlColor, 1,
- "(CCTabHandle newColorTable) -> None"},
-#endif
- {"EmbedControl", (PyCFunction)CtlObj_EmbedControl, 1,
- "(ControlHandle inContainer) -> None"},
- {"AutoEmbedControl", (PyCFunction)CtlObj_AutoEmbedControl, 1,
- "(WindowPtr inWindow) -> None"},
- {"GetSuperControl", (PyCFunction)CtlObj_GetSuperControl, 1,
- "() -> (ControlHandle outParent)"},
- {"CountSubControls", (PyCFunction)CtlObj_CountSubControls, 1,
- "() -> (UInt16 outNumChildren)"},
- {"GetIndexedSubControl", (PyCFunction)CtlObj_GetIndexedSubControl, 1,
- "(UInt16 inIndex) -> (ControlHandle outSubControl)"},
- {"SetControlSupervisor", (PyCFunction)CtlObj_SetControlSupervisor, 1,
- "(ControlHandle inBoss) -> None"},
- {"GetControlFeatures", (PyCFunction)CtlObj_GetControlFeatures, 1,
- "() -> (UInt32 outFeatures)"},
- {"GetControlDataSize", (PyCFunction)CtlObj_GetControlDataSize, 1,
- "(ControlPartCode inPart, ResType inTagName) -> (Size outMaxSize)"},
-
-#if TARGET_API_MAC_CARBON
- {"HandleControlDragTracking", (PyCFunction)CtlObj_HandleControlDragTracking, 1,
- "(DragTrackingMessage inMessage, DragReference inDrag) -> (Boolean outLikesDrag)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"HandleControlDragReceive", (PyCFunction)CtlObj_HandleControlDragReceive, 1,
- "(DragReference inDrag) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"SetControlDragTrackingEnabled", (PyCFunction)CtlObj_SetControlDragTrackingEnabled, 1,
- "(Boolean tracks) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"IsControlDragTrackingEnabled", (PyCFunction)CtlObj_IsControlDragTrackingEnabled, 1,
- "() -> (Boolean tracks)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlBounds", (PyCFunction)CtlObj_GetControlBounds, 1,
- "() -> (Rect bounds)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"IsControlHilited", (PyCFunction)CtlObj_IsControlHilited, 1,
- "() -> (Boolean _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlHilite", (PyCFunction)CtlObj_GetControlHilite, 1,
- "() -> (UInt16 _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlOwner", (PyCFunction)CtlObj_GetControlOwner, 1,
- "() -> (WindowPtr _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlDataHandle", (PyCFunction)CtlObj_GetControlDataHandle, 1,
- "() -> (Handle _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlPopupMenuHandle", (PyCFunction)CtlObj_GetControlPopupMenuHandle, 1,
- "() -> (MenuHandle _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"GetControlPopupMenuID", (PyCFunction)CtlObj_GetControlPopupMenuID, 1,
- "() -> (short _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"SetControlDataHandle", (PyCFunction)CtlObj_SetControlDataHandle, 1,
- "(Handle dataHandle) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"SetControlBounds", (PyCFunction)CtlObj_SetControlBounds, 1,
- "(Rect bounds) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"SetControlPopupMenuHandle", (PyCFunction)CtlObj_SetControlPopupMenuHandle, 1,
- "(MenuHandle popupMenu) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
- {"SetControlPopupMenuID", (PyCFunction)CtlObj_SetControlPopupMenuID, 1,
- "(short menuID) -> None"},
-#endif
- {"GetBevelButtonMenuValue", (PyCFunction)CtlObj_GetBevelButtonMenuValue, 1,
- "() -> (SInt16 outValue)"},
- {"SetBevelButtonMenuValue", (PyCFunction)CtlObj_SetBevelButtonMenuValue, 1,
- "(SInt16 inValue) -> None"},
- {"GetBevelButtonMenuHandle", (PyCFunction)CtlObj_GetBevelButtonMenuHandle, 1,
- "() -> (MenuHandle outHandle)"},
- {"SetBevelButtonTransform", (PyCFunction)CtlObj_SetBevelButtonTransform, 1,
- "(IconTransformType transform) -> None"},
- {"SetDisclosureTriangleLastValue", (PyCFunction)CtlObj_SetDisclosureTriangleLastValue, 1,
- "(SInt16 inValue) -> None"},
- {"GetTabContentRect", (PyCFunction)CtlObj_GetTabContentRect, 1,
- "() -> (Rect outContentRect)"},
- {"SetTabEnabled", (PyCFunction)CtlObj_SetTabEnabled, 1,
- "(SInt16 inTabToHilite, Boolean inEnabled) -> None"},
- {"SetImageWellTransform", (PyCFunction)CtlObj_SetImageWellTransform, 1,
- "(IconTransformType inTransform) -> None"},
- {"as_Resource", (PyCFunction)CtlObj_as_Resource, 1,
- "() -> (Handle _rv)"},
- {"GetControlRect", (PyCFunction)CtlObj_GetControlRect, 1,
- "() -> (Rect rect)"},
- {"DisposeControl", (PyCFunction)CtlObj_DisposeControl, 1,
- "() -> None"},
- {"TrackControl", (PyCFunction)CtlObj_TrackControl, 1,
- "(Point startPoint [,trackercallback]) -> (ControlPartCode _rv)"},
- {"HandleControlClick", (PyCFunction)CtlObj_HandleControlClick, 1,
- "(Point startPoint, Integer modifiers, [,trackercallback]) -> (ControlPartCode _rv)"},
- {"SetControlData", (PyCFunction)CtlObj_SetControlData, 1,
- "(stuff) -> None"},
- {"GetControlData", (PyCFunction)CtlObj_GetControlData, 1,
- "(part, type) -> String"},
- {"SetControlData_Handle", (PyCFunction)CtlObj_SetControlData_Handle, 1,
- "(ResObj) -> None"},
- {"GetControlData_Handle", (PyCFunction)CtlObj_GetControlData_Handle, 1,
- "(part, type) -> ResObj"},
- {"SetControlData_Callback", (PyCFunction)CtlObj_SetControlData_Callback, 1,
- "(callbackfunc) -> None"},
-
-#if !TARGET_API_MAC_CARBON
- {"GetPopupData", (PyCFunction)CtlObj_GetPopupData, 1,
- NULL},
-#endif
-
-#if !TARGET_API_MAC_CARBON
- {"SetPopupData", (PyCFunction)CtlObj_SetPopupData, 1,
- NULL},
-#endif
- {NULL, NULL, 0}
-};
-
-PyMethodChain CtlObj_chain = { CtlObj_methods, NULL };
-
-static PyObject *CtlObj_getattr(ControlObject *self, char *name)
-{
- return Py_FindMethodInChain(&CtlObj_chain, (PyObject *)self, name);
-}
-
-#define CtlObj_setattr NULL
-
-static int CtlObj_compare(ControlObject *self, ControlObject *other)
-{
- unsigned long v, w;
-
- if (!CtlObj_Check((PyObject *)other))
- {
- v=(unsigned long)self;
- w=(unsigned long)other;
- }
- else
- {
- v=(unsigned long)self->ob_itself;
- w=(unsigned long)other->ob_itself;
- }
- if( v < w ) return -1;
- if( v > w ) return 1;
- return 0;
-}
-
-#define CtlObj_repr NULL
-
-static long CtlObj_hash(ControlObject *self)
-{
- return (long)self->ob_itself;
-}
-
-PyTypeObject Control_Type = {
- PyObject_HEAD_INIT(&PyType_Type)
- 0, /*ob_size*/
- "Control", /*tp_name*/
- sizeof(ControlObject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- (destructor) CtlObj_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- (getattrfunc) CtlObj_getattr, /*tp_getattr*/
- (setattrfunc) CtlObj_setattr, /*tp_setattr*/
- (cmpfunc) CtlObj_compare, /*tp_compare*/
- (reprfunc) CtlObj_repr, /*tp_repr*/
- (PyNumberMethods *)0, /* tp_as_number */
- (PySequenceMethods *)0, /* tp_as_sequence */
- (PyMappingMethods *)0, /* tp_as_mapping */
- (hashfunc) CtlObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type Control --------------------- */
-
-
-static PyObject *Ctl_NewControl(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlHandle _rv;
- WindowPtr owningWindow;
- Rect boundsRect;
- Str255 controlTitle;
- Boolean initiallyVisible;
- SInt16 initialValue;
- SInt16 minimumValue;
- SInt16 maximumValue;
- SInt16 procID;
- SInt32 controlReference;
- if (!PyArg_ParseTuple(_args, "O&O&O&bhhhhl",
- WinObj_Convert, &owningWindow,
- PyMac_GetRect, &boundsRect,
- PyMac_GetStr255, controlTitle,
- &initiallyVisible,
- &initialValue,
- &minimumValue,
- &maximumValue,
- &procID,
- &controlReference))
- return NULL;
- _rv = NewControl(owningWindow,
- &boundsRect,
- controlTitle,
- initiallyVisible,
- initialValue,
- minimumValue,
- maximumValue,
- procID,
- controlReference);
- _res = Py_BuildValue("O&",
- CtlObj_New, _rv);
- return _res;
-}
-
-static PyObject *Ctl_GetNewControl(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlHandle _rv;
- SInt16 resourceID;
- WindowPtr owningWindow;
- if (!PyArg_ParseTuple(_args, "hO&",
- &resourceID,
- WinObj_Convert, &owningWindow))
- return NULL;
- _rv = GetNewControl(resourceID,
- owningWindow);
- _res = Py_BuildValue("O&",
- CtlObj_New, _rv);
- return _res;
-}
-
-static PyObject *Ctl_DrawControls(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- WindowPtr theWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &theWindow))
- return NULL;
- DrawControls(theWindow);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_UpdateControls(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- WindowPtr theWindow;
- RgnHandle updateRegion;
- if (!PyArg_ParseTuple(_args, "O&O&",
- WinObj_Convert, &theWindow,
- ResObj_Convert, &updateRegion))
- return NULL;
- UpdateControls(theWindow,
- updateRegion);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_FindControl(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlPartCode _rv;
- Point testPoint;
- WindowPtr theWindow;
- ControlHandle theControl;
- if (!PyArg_ParseTuple(_args, "O&O&",
- PyMac_GetPoint, &testPoint,
- WinObj_Convert, &theWindow))
- return NULL;
- _rv = FindControl(testPoint,
- theWindow,
- &theControl);
- _res = Py_BuildValue("hO&",
- _rv,
- CtlObj_WhichControl, theControl);
- return _res;
-}
-
-static PyObject *Ctl_FindControlUnderMouse(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- ControlHandle _rv;
- Point inWhere;
- WindowPtr inWindow;
- SInt16 outPart;
- if (!PyArg_ParseTuple(_args, "O&O&",
- PyMac_GetPoint, &inWhere,
- WinObj_Convert, &inWindow))
- return NULL;
- _rv = FindControlUnderMouse(inWhere,
- inWindow,
- &outPart);
- _res = Py_BuildValue("O&h",
- CtlObj_New, _rv,
- outPart);
- return _res;
-}
-
-static PyObject *Ctl_IdleControls(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- WindowPtr inWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- IdleControls(inWindow);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_GetControlByID(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- WindowPtr inWindow;
- ControlID inID;
- ControlHandle outControl;
- if (!PyArg_ParseTuple(_args, "O&O&",
- WinObj_Convert, &inWindow,
- PyControlID_Convert, &inID))
- return NULL;
- _err = GetControlByID(inWindow,
- &inID,
- &outControl);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outControl);
- return _res;
-}
-#endif
-
-static PyObject *Ctl_DumpControlHierarchy(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- FSSpec inDumpFile;
- if (!PyArg_ParseTuple(_args, "O&O&",
- WinObj_Convert, &inWindow,
- PyMac_GetFSSpec, &inDumpFile))
- return NULL;
- _err = DumpControlHierarchy(inWindow,
- &inDumpFile);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_CreateRootControl(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- ControlHandle outControl;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = CreateRootControl(inWindow,
- &outControl);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outControl);
- return _res;
-}
-
-static PyObject *Ctl_GetRootControl(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- ControlHandle outControl;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = GetRootControl(inWindow,
- &outControl);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outControl);
- return _res;
-}
-
-static PyObject *Ctl_GetKeyboardFocus(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- ControlHandle outControl;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = GetKeyboardFocus(inWindow,
- &outControl);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- CtlObj_WhichControl, outControl);
- return _res;
-}
-
-static PyObject *Ctl_SetKeyboardFocus(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- ControlHandle inControl;
- ControlFocusPart inPart;
- if (!PyArg_ParseTuple(_args, "O&O&h",
- WinObj_Convert, &inWindow,
- CtlObj_Convert, &inControl,
- &inPart))
- return NULL;
- _err = SetKeyboardFocus(inWindow,
- inControl,
- inPart);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_AdvanceKeyboardFocus(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = AdvanceKeyboardFocus(inWindow);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_ReverseKeyboardFocus(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = ReverseKeyboardFocus(inWindow);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-static PyObject *Ctl_ClearKeyboardFocus(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSErr _err;
- WindowPtr inWindow;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &inWindow))
- return NULL;
- _err = ClearKeyboardFocus(inWindow);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_SetAutomaticControlDragTrackingEnabledForWindow(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- WindowPtr theWindow;
- Boolean tracks;
- if (!PyArg_ParseTuple(_args, "O&b",
- WinObj_Convert, &theWindow,
- &tracks))
- return NULL;
- _err = SetAutomaticControlDragTrackingEnabledForWindow(theWindow,
- tracks);
- if (_err != noErr) return PyMac_Error(_err);
- Py_INCREF(Py_None);
- _res = Py_None;
- return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_IsAutomaticControlDragTrackingEnabledForWindow(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- OSStatus _err;
- WindowPtr theWindow;
- Boolean tracks;
- if (!PyArg_ParseTuple(_args, "O&",
- WinObj_Convert, &theWindow))
- return NULL;
- _err = IsAutomaticControlDragTrackingEnabledForWindow(theWindow,
- &tracks);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("b",
- tracks);
- return _res;
-}
-#endif
-
-static PyObject *Ctl_as_Control(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)"},
- {"GetNewControl", (PyCFunction)Ctl_GetNewControl, 1,
- "(SInt16 resourceID, WindowPtr owningWindow) -> (ControlHandle _rv)"},
- {"DrawControls", (PyCFunction)Ctl_DrawControls, 1,
- "(WindowPtr theWindow) -> None"},
- {"UpdateControls", (PyCFunction)Ctl_UpdateControls, 1,
- "(WindowPtr theWindow, RgnHandle updateRegion) -> None"},
- {"FindControl", (PyCFunction)Ctl_FindControl, 1,
- "(Point testPoint, WindowPtr theWindow) -> (ControlPartCode _rv, ControlHandle theControl)"},
- {"FindControlUnderMouse", (PyCFunction)Ctl_FindControlUnderMouse, 1,
- "(Point inWhere, WindowPtr inWindow) -> (ControlHandle _rv, SInt16 outPart)"},
- {"IdleControls", (PyCFunction)Ctl_IdleControls, 1,
- "(WindowPtr inWindow) -> None"},
-
-#if TARGET_API_MAC_CARBON
- {"GetControlByID", (PyCFunction)Ctl_GetControlByID, 1,
- "(WindowPtr inWindow, ControlID inID) -> (ControlHandle outControl)"},
-#endif
- {"DumpControlHierarchy", (PyCFunction)Ctl_DumpControlHierarchy, 1,
- "(WindowPtr inWindow, FSSpec inDumpFile) -> None"},
- {"CreateRootControl", (PyCFunction)Ctl_CreateRootControl, 1,
- "(WindowPtr inWindow) -> (ControlHandle outControl)"},
- {"GetRootControl", (PyCFunction)Ctl_GetRootControl, 1,
- "(WindowPtr inWindow) -> (ControlHandle outControl)"},
- {"GetKeyboardFocus", (PyCFunction)Ctl_GetKeyboardFocus, 1,
- "(WindowPtr inWindow) -> (ControlHandle outControl)"},
- {"SetKeyboardFocus", (PyCFunction)Ctl_SetKeyboardFocus, 1,
- "(WindowPtr inWindow, ControlHandle inControl, ControlFocusPart inPart) -> None"},
- {"AdvanceKeyboardFocus", (PyCFunction)Ctl_AdvanceKeyboardFocus, 1,
- "(WindowPtr inWindow) -> None"},
- {"ReverseKeyboardFocus", (PyCFunction)Ctl_ReverseKeyboardFocus, 1,
- "(WindowPtr inWindow) -> None"},
- {"ClearKeyboardFocus", (PyCFunction)Ctl_ClearKeyboardFocus, 1,
- "(WindowPtr inWindow) -> None"},
-
-#if TARGET_API_MAC_CARBON
- {"SetAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_SetAutomaticControlDragTrackingEnabledForWindow, 1,
- "(WindowPtr theWindow, Boolean tracks) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
- {"IsAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_IsAutomaticControlDragTrackingEnabledForWindow, 1,
- "(WindowPtr theWindow) -> (Boolean tracks)"},
-#endif
- {"as_Control", (PyCFunction)Ctl_as_Control, 1,
- "(Handle h) -> (ControlHandle _rv)"},
- {NULL, NULL, 0}
-};
-
-
-
-static PyObject *
-CtlObj_NewUnmanaged(ControlHandle itself)
-{
- ControlObject *it;
- if (itself == NULL) return PyMac_Error(resNotFound);
- it = PyObject_NEW(ControlObject, &Control_Type);
- if (it == NULL) return NULL;
- it->ob_itself = itself;
- it->ob_callbackdict = NULL;
- return (PyObject *)it;
-}
-
-static PyObject *
-CtlObj_WhichControl(ControlHandle c)
-{
- PyObject *it;
-
- if (c == NULL)
- it = Py_None;
- else {
- it = (PyObject *) GetControlReference(c);
- /*
- ** If the refcon is zero or doesn't point back to the Python object
- ** the control is not ours. Return a temporary object.
- */
- if (it == NULL || ((ControlObject *)it)->ob_itself != c)
- return CtlObj_NewUnmanaged(c);
- }
- Py_INCREF(it);
- return it;
-}
-
-static int
-settrackfunc(PyObject *obj)
-{
- if (tracker) {
- PyErr_SetString(Ctl_Error, "Tracker function in use");
- return 0;
- }
- tracker = obj;
- Py_INCREF(tracker);
-}
-
-static void
-clrtrackfunc(void)
-{
- Py_XDECREF(tracker);
- tracker = 0;
-}
-
-static pascal void
-mytracker(ControlHandle ctl, short part)
-{
- PyObject *args, *rv=0;
-
- args = Py_BuildValue("(O&i)", CtlObj_WhichControl, ctl, (int)part);
- if (args && tracker) {
- rv = PyEval_CallObject(tracker, args);
- Py_DECREF(args);
- }
- if (rv)
- Py_DECREF(rv);
- else
- PySys_WriteStderr("TrackControl or HandleControlClick: exception in tracker function\n");
-}
-
-static int
-setcallback(PyObject *myself, OSType which, PyObject *callback, UniversalProcPtr *uppp)
-{
- ControlObject *self = (ControlObject *)myself;
- char keybuf[9];
-
- if ( which == kControlUserPaneDrawProcTag )
- *uppp = (UniversalProcPtr)mydrawproc_upp;
- else if ( which == kControlUserPaneIdleProcTag )
- *uppp = (UniversalProcPtr)myidleproc_upp;
- else if ( which == kControlUserPaneHitTestProcTag )
- *uppp = (UniversalProcPtr)myhittestproc_upp;
- else if ( which == kControlUserPaneTrackingProcTag )
- *uppp = (UniversalProcPtr)mytrackingproc_upp;
- else
- return -1;
- /* Only now do we test for clearing of the callback: */
- if ( callback == Py_None )
- *uppp = NULL;
- /* Create the dict if it doesn't exist yet (so we don't get such a dict for every control) */
- if ( self->ob_callbackdict == NULL )
- if ( (self->ob_callbackdict = PyDict_New()) == NULL )
- return -1;
- /* And store the Python callback */
- sprintf(keybuf, "%x", which);
- if (PyDict_SetItemString(self->ob_callbackdict, keybuf, callback) < 0)
- return -1;
- return 0;
-}
-
-static PyObject *
-callcallback(ControlObject *self, OSType which, PyObject *arglist)
-{
- char keybuf[9];
- PyObject *func, *rv;
-
- sprintf(keybuf, "%x", which);
- if ( self->ob_callbackdict == NULL ||
- (func = PyDict_GetItemString(self->ob_callbackdict, keybuf)) == NULL ) {
- PySys_WriteStderr("Control callback %x without callback object\n", which);
- return NULL;
- }
- rv = PyEval_CallObject(func, arglist);
- if ( rv == NULL )
- PySys_WriteStderr("Exception in control callback %x handler\n", which);
- return rv;
-}
-
-static pascal void
-mydrawproc(ControlHandle control, SInt16 part)
-{
- ControlObject *ctl_obj;
- PyObject *arglist, *rv;
-
- ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
- arglist = Py_BuildValue("Oh", ctl_obj, part);
- rv = callcallback(ctl_obj, kControlUserPaneDrawProcTag, arglist);
- Py_XDECREF(arglist);
- Py_XDECREF(rv);
-}
-
-static pascal void
-myidleproc(ControlHandle control)
-{
- ControlObject *ctl_obj;
- PyObject *arglist, *rv;
-
- ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
- arglist = Py_BuildValue("O", ctl_obj);
- rv = callcallback(ctl_obj, kControlUserPaneIdleProcTag, arglist);
- Py_XDECREF(arglist);
- Py_XDECREF(rv);
-}
-
-static pascal ControlPartCode
-myhittestproc(ControlHandle control, Point where)
-{
- ControlObject *ctl_obj;
- PyObject *arglist, *rv;
- short c_rv = -1;
-
- ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
- arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, where);
- rv = callcallback(ctl_obj, kControlUserPaneHitTestProcTag, arglist);
- Py_XDECREF(arglist);
- /* Ignore errors, nothing we can do about them */
- if ( rv )
- PyArg_Parse(rv, "h", &c_rv);
- Py_XDECREF(rv);
- return (ControlPartCode)c_rv;
-}
-
-static pascal ControlPartCode
-mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc)
-{
- ControlObject *ctl_obj;
- PyObject *arglist, *rv;
- short c_rv = -1;
-
- ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
- /* We cannot pass the actionProc without lots of work */
- arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, startPt);
- rv = callcallback(ctl_obj, kControlUserPaneTrackingProcTag, arglist);
- Py_XDECREF(arglist);
- if ( rv )
- PyArg_Parse(rv, "h", &c_rv);
- Py_XDECREF(rv);
- return (ControlPartCode)c_rv;
-}
-
-
-void initCtl(void)
-{
- PyObject *m;
- PyObject *d;
-
-
-
- mytracker_upp = NewControlActionUPP(mytracker);
- mydrawproc_upp = NewControlUserPaneDrawUPP(mydrawproc);
- myidleproc_upp = NewControlUserPaneIdleUPP(myidleproc);
- myhittestproc_upp = NewControlUserPaneHitTestUPP(myhittestproc);
- mytrackingproc_upp = NewControlUserPaneTrackingUPP(mytrackingproc);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(ControlHandle, CtlObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ControlHandle, CtlObj_Convert);
-
-
- m = Py_InitModule("Ctl", Ctl_methods);
- d = PyModule_GetDict(m);
- Ctl_Error = PyMac_GetOSErrException();
- if (Ctl_Error == NULL ||
- PyDict_SetItemString(d, "Error", Ctl_Error) != 0)
- return;
- Control_Type.ob_type = &PyType_Type;
- Py_INCREF(&Control_Type);
- if (PyDict_SetItemString(d, "ControlType", (PyObject *)&Control_Type) != 0)
- Py_FatalError("can't initialize ControlType");
-}
-
-/* ========================= End module Ctl ========================= */
-