2 /* ========================== Module _App =========================== */
7 /* Carbon GUI stuff, not available in 64-bit mode */
10 #include "pymactoolbox.h"
12 /* Macro to test whether a weak-loaded CFM function exists */
13 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
14 PyErr_SetString(PyExc_NotImplementedError, \
15 "Not available in this shared library/OS version"); \
20 #include <Carbon/Carbon.h>
23 static int ThemeButtonDrawInfo_Convert(PyObject
*v
, ThemeButtonDrawInfo
*p_itself
)
25 return PyArg_Parse(v
, "(iHH)", &p_itself
->state
, &p_itself
->value
, &p_itself
->adornment
);
29 static PyObject
*App_Error
;
31 /* ----------------- Object type ThemeDrawingState ------------------ */
33 PyTypeObject ThemeDrawingState_Type
;
35 #define ThemeDrawingStateObj_Check(x) ((x)->ob_type == &ThemeDrawingState_Type || PyObject_TypeCheck((x), &ThemeDrawingState_Type))
37 typedef struct ThemeDrawingStateObject
{
39 ThemeDrawingState ob_itself
;
40 } ThemeDrawingStateObject
;
42 PyObject
*ThemeDrawingStateObj_New(ThemeDrawingState itself
)
44 ThemeDrawingStateObject
*it
;
45 it
= PyObject_NEW(ThemeDrawingStateObject
, &ThemeDrawingState_Type
);
46 if (it
== NULL
) return NULL
;
47 it
->ob_itself
= itself
;
48 return (PyObject
*)it
;
51 int ThemeDrawingStateObj_Convert(PyObject
*v
, ThemeDrawingState
*p_itself
)
53 if (!ThemeDrawingStateObj_Check(v
))
55 PyErr_SetString(PyExc_TypeError
, "ThemeDrawingState required");
58 *p_itself
= ((ThemeDrawingStateObject
*)v
)->ob_itself
;
62 static void ThemeDrawingStateObj_dealloc(ThemeDrawingStateObject
*self
)
64 /* Cleanup of self->ob_itself goes here */
65 self
->ob_type
->tp_free((PyObject
*)self
);
68 static PyObject
*ThemeDrawingStateObj_SetThemeDrawingState(ThemeDrawingStateObject
*_self
, PyObject
*_args
)
70 PyObject
*_res
= NULL
;
73 #ifndef SetThemeDrawingState
74 PyMac_PRECHECK(SetThemeDrawingState
);
76 if (!PyArg_ParseTuple(_args
, "b",
79 _rv
= SetThemeDrawingState(_self
->ob_itself
,
81 _res
= Py_BuildValue("l",
86 static PyObject
*ThemeDrawingStateObj_DisposeThemeDrawingState(ThemeDrawingStateObject
*_self
, PyObject
*_args
)
88 PyObject
*_res
= NULL
;
90 #ifndef DisposeThemeDrawingState
91 PyMac_PRECHECK(DisposeThemeDrawingState
);
93 if (!PyArg_ParseTuple(_args
, ""))
95 _rv
= DisposeThemeDrawingState(_self
->ob_itself
);
96 _res
= Py_BuildValue("l",
101 static PyMethodDef ThemeDrawingStateObj_methods
[] = {
102 {"SetThemeDrawingState", (PyCFunction
)ThemeDrawingStateObj_SetThemeDrawingState
, 1,
103 PyDoc_STR("(Boolean inDisposeNow) -> (OSStatus _rv)")},
104 {"DisposeThemeDrawingState", (PyCFunction
)ThemeDrawingStateObj_DisposeThemeDrawingState
, 1,
105 PyDoc_STR("() -> (OSStatus _rv)")},
109 #define ThemeDrawingStateObj_getsetlist NULL
112 #define ThemeDrawingStateObj_compare NULL
114 #define ThemeDrawingStateObj_repr NULL
116 #define ThemeDrawingStateObj_hash NULL
117 #define ThemeDrawingStateObj_tp_init 0
119 #define ThemeDrawingStateObj_tp_alloc PyType_GenericAlloc
121 static PyObject
*ThemeDrawingStateObj_tp_new(PyTypeObject
*type
, PyObject
*_args
, PyObject
*_kwds
)
124 ThemeDrawingState itself
;
125 char *kw
[] = {"itself", 0};
127 if (!PyArg_ParseTupleAndKeywords(_args
, _kwds
, "O&", kw
, ThemeDrawingStateObj_Convert
, &itself
)) return NULL
;
128 if ((_self
= type
->tp_alloc(type
, 0)) == NULL
) return NULL
;
129 ((ThemeDrawingStateObject
*)_self
)->ob_itself
= itself
;
133 #define ThemeDrawingStateObj_tp_free PyObject_Del
136 PyTypeObject ThemeDrawingState_Type
= {
137 PyObject_HEAD_INIT(NULL
)
139 "_App.ThemeDrawingState", /*tp_name*/
140 sizeof(ThemeDrawingStateObject
), /*tp_basicsize*/
143 (destructor
) ThemeDrawingStateObj_dealloc
, /*tp_dealloc*/
145 (getattrfunc
)0, /*tp_getattr*/
146 (setattrfunc
)0, /*tp_setattr*/
147 (cmpfunc
) ThemeDrawingStateObj_compare
, /*tp_compare*/
148 (reprfunc
) ThemeDrawingStateObj_repr
, /*tp_repr*/
149 (PyNumberMethods
*)0, /* tp_as_number */
150 (PySequenceMethods
*)0, /* tp_as_sequence */
151 (PyMappingMethods
*)0, /* tp_as_mapping */
152 (hashfunc
) ThemeDrawingStateObj_hash
, /*tp_hash*/
155 PyObject_GenericGetAttr
, /*tp_getattro*/
156 PyObject_GenericSetAttr
, /*tp_setattro */
158 Py_TPFLAGS_DEFAULT
|Py_TPFLAGS_BASETYPE
, /* tp_flags */
162 0, /*tp_richcompare*/
163 0, /*tp_weaklistoffset*/
166 ThemeDrawingStateObj_methods
, /* tp_methods */
168 ThemeDrawingStateObj_getsetlist
, /*tp_getset*/
174 ThemeDrawingStateObj_tp_init
, /* tp_init */
175 ThemeDrawingStateObj_tp_alloc
, /* tp_alloc */
176 ThemeDrawingStateObj_tp_new
, /* tp_new */
177 ThemeDrawingStateObj_tp_free
, /* tp_free */
180 /* --------------- End object type ThemeDrawingState ---------------- */
183 static PyObject
*App_RegisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
185 PyObject
*_res
= NULL
;
187 #ifndef RegisterAppearanceClient
188 PyMac_PRECHECK(RegisterAppearanceClient
);
190 if (!PyArg_ParseTuple(_args
, ""))
192 _err
= RegisterAppearanceClient();
193 if (_err
!= noErr
) return PyMac_Error(_err
);
199 static PyObject
*App_UnregisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
201 PyObject
*_res
= NULL
;
203 #ifndef UnregisterAppearanceClient
204 PyMac_PRECHECK(UnregisterAppearanceClient
);
206 if (!PyArg_ParseTuple(_args
, ""))
208 _err
= UnregisterAppearanceClient();
209 if (_err
!= noErr
) return PyMac_Error(_err
);
215 static PyObject
*App_SetThemePen(PyObject
*_self
, PyObject
*_args
)
217 PyObject
*_res
= NULL
;
221 Boolean inIsColorDevice
;
223 PyMac_PRECHECK(SetThemePen
);
225 if (!PyArg_ParseTuple(_args
, "hhb",
230 _err
= SetThemePen(inBrush
,
233 if (_err
!= noErr
) return PyMac_Error(_err
);
239 static PyObject
*App_SetThemeBackground(PyObject
*_self
, PyObject
*_args
)
241 PyObject
*_res
= NULL
;
245 Boolean inIsColorDevice
;
246 #ifndef SetThemeBackground
247 PyMac_PRECHECK(SetThemeBackground
);
249 if (!PyArg_ParseTuple(_args
, "hhb",
254 _err
= SetThemeBackground(inBrush
,
257 if (_err
!= noErr
) return PyMac_Error(_err
);
263 static PyObject
*App_SetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
265 PyObject
*_res
= NULL
;
267 ThemeTextColor inColor
;
269 Boolean inIsColorDevice
;
270 #ifndef SetThemeTextColor
271 PyMac_PRECHECK(SetThemeTextColor
);
273 if (!PyArg_ParseTuple(_args
, "hhb",
278 _err
= SetThemeTextColor(inColor
,
281 if (_err
!= noErr
) return PyMac_Error(_err
);
287 static PyObject
*App_SetThemeWindowBackground(PyObject
*_self
, PyObject
*_args
)
289 PyObject
*_res
= NULL
;
294 #ifndef SetThemeWindowBackground
295 PyMac_PRECHECK(SetThemeWindowBackground
);
297 if (!PyArg_ParseTuple(_args
, "O&hb",
298 WinObj_Convert
, &inWindow
,
302 _err
= SetThemeWindowBackground(inWindow
,
305 if (_err
!= noErr
) return PyMac_Error(_err
);
311 static PyObject
*App_DrawThemeWindowHeader(PyObject
*_self
, PyObject
*_args
)
313 PyObject
*_res
= NULL
;
316 ThemeDrawState inState
;
317 #ifndef DrawThemeWindowHeader
318 PyMac_PRECHECK(DrawThemeWindowHeader
);
320 if (!PyArg_ParseTuple(_args
, "O&l",
321 PyMac_GetRect
, &inRect
,
324 _err
= DrawThemeWindowHeader(&inRect
,
326 if (_err
!= noErr
) return PyMac_Error(_err
);
332 static PyObject
*App_DrawThemeWindowListViewHeader(PyObject
*_self
, PyObject
*_args
)
334 PyObject
*_res
= NULL
;
337 ThemeDrawState inState
;
338 #ifndef DrawThemeWindowListViewHeader
339 PyMac_PRECHECK(DrawThemeWindowListViewHeader
);
341 if (!PyArg_ParseTuple(_args
, "O&l",
342 PyMac_GetRect
, &inRect
,
345 _err
= DrawThemeWindowListViewHeader(&inRect
,
347 if (_err
!= noErr
) return PyMac_Error(_err
);
353 static PyObject
*App_DrawThemePlacard(PyObject
*_self
, PyObject
*_args
)
355 PyObject
*_res
= NULL
;
358 ThemeDrawState inState
;
359 #ifndef DrawThemePlacard
360 PyMac_PRECHECK(DrawThemePlacard
);
362 if (!PyArg_ParseTuple(_args
, "O&l",
363 PyMac_GetRect
, &inRect
,
366 _err
= DrawThemePlacard(&inRect
,
368 if (_err
!= noErr
) return PyMac_Error(_err
);
374 static PyObject
*App_DrawThemeEditTextFrame(PyObject
*_self
, PyObject
*_args
)
376 PyObject
*_res
= NULL
;
379 ThemeDrawState inState
;
380 #ifndef DrawThemeEditTextFrame
381 PyMac_PRECHECK(DrawThemeEditTextFrame
);
383 if (!PyArg_ParseTuple(_args
, "O&l",
384 PyMac_GetRect
, &inRect
,
387 _err
= DrawThemeEditTextFrame(&inRect
,
389 if (_err
!= noErr
) return PyMac_Error(_err
);
395 static PyObject
*App_DrawThemeListBoxFrame(PyObject
*_self
, PyObject
*_args
)
397 PyObject
*_res
= NULL
;
400 ThemeDrawState inState
;
401 #ifndef DrawThemeListBoxFrame
402 PyMac_PRECHECK(DrawThemeListBoxFrame
);
404 if (!PyArg_ParseTuple(_args
, "O&l",
405 PyMac_GetRect
, &inRect
,
408 _err
= DrawThemeListBoxFrame(&inRect
,
410 if (_err
!= noErr
) return PyMac_Error(_err
);
416 static PyObject
*App_DrawThemeFocusRect(PyObject
*_self
, PyObject
*_args
)
418 PyObject
*_res
= NULL
;
422 #ifndef DrawThemeFocusRect
423 PyMac_PRECHECK(DrawThemeFocusRect
);
425 if (!PyArg_ParseTuple(_args
, "O&b",
426 PyMac_GetRect
, &inRect
,
429 _err
= DrawThemeFocusRect(&inRect
,
431 if (_err
!= noErr
) return PyMac_Error(_err
);
437 static PyObject
*App_DrawThemePrimaryGroup(PyObject
*_self
, PyObject
*_args
)
439 PyObject
*_res
= NULL
;
442 ThemeDrawState inState
;
443 #ifndef DrawThemePrimaryGroup
444 PyMac_PRECHECK(DrawThemePrimaryGroup
);
446 if (!PyArg_ParseTuple(_args
, "O&l",
447 PyMac_GetRect
, &inRect
,
450 _err
= DrawThemePrimaryGroup(&inRect
,
452 if (_err
!= noErr
) return PyMac_Error(_err
);
458 static PyObject
*App_DrawThemeSecondaryGroup(PyObject
*_self
, PyObject
*_args
)
460 PyObject
*_res
= NULL
;
463 ThemeDrawState inState
;
464 #ifndef DrawThemeSecondaryGroup
465 PyMac_PRECHECK(DrawThemeSecondaryGroup
);
467 if (!PyArg_ParseTuple(_args
, "O&l",
468 PyMac_GetRect
, &inRect
,
471 _err
= DrawThemeSecondaryGroup(&inRect
,
473 if (_err
!= noErr
) return PyMac_Error(_err
);
479 static PyObject
*App_DrawThemeSeparator(PyObject
*_self
, PyObject
*_args
)
481 PyObject
*_res
= NULL
;
484 ThemeDrawState inState
;
485 #ifndef DrawThemeSeparator
486 PyMac_PRECHECK(DrawThemeSeparator
);
488 if (!PyArg_ParseTuple(_args
, "O&l",
489 PyMac_GetRect
, &inRect
,
492 _err
= DrawThemeSeparator(&inRect
,
494 if (_err
!= noErr
) return PyMac_Error(_err
);
500 static PyObject
*App_DrawThemeModelessDialogFrame(PyObject
*_self
, PyObject
*_args
)
502 PyObject
*_res
= NULL
;
505 ThemeDrawState inState
;
506 #ifndef DrawThemeModelessDialogFrame
507 PyMac_PRECHECK(DrawThemeModelessDialogFrame
);
509 if (!PyArg_ParseTuple(_args
, "O&l",
510 PyMac_GetRect
, &inRect
,
513 _err
= DrawThemeModelessDialogFrame(&inRect
,
515 if (_err
!= noErr
) return PyMac_Error(_err
);
521 static PyObject
*App_DrawThemeGenericWell(PyObject
*_self
, PyObject
*_args
)
523 PyObject
*_res
= NULL
;
526 ThemeDrawState inState
;
527 Boolean inFillCenter
;
528 #ifndef DrawThemeGenericWell
529 PyMac_PRECHECK(DrawThemeGenericWell
);
531 if (!PyArg_ParseTuple(_args
, "O&lb",
532 PyMac_GetRect
, &inRect
,
536 _err
= DrawThemeGenericWell(&inRect
,
539 if (_err
!= noErr
) return PyMac_Error(_err
);
545 static PyObject
*App_DrawThemeFocusRegion(PyObject
*_self
, PyObject
*_args
)
547 PyObject
*_res
= NULL
;
550 #ifndef DrawThemeFocusRegion
551 PyMac_PRECHECK(DrawThemeFocusRegion
);
553 if (!PyArg_ParseTuple(_args
, "b",
556 _err
= DrawThemeFocusRegion((RgnHandle
)0,
558 if (_err
!= noErr
) return PyMac_Error(_err
);
564 static PyObject
*App_IsThemeInColor(PyObject
*_self
, PyObject
*_args
)
566 PyObject
*_res
= NULL
;
569 Boolean inIsColorDevice
;
570 #ifndef IsThemeInColor
571 PyMac_PRECHECK(IsThemeInColor
);
573 if (!PyArg_ParseTuple(_args
, "hb",
577 _rv
= IsThemeInColor(inDepth
,
579 _res
= Py_BuildValue("b",
584 static PyObject
*App_GetThemeAccentColors(PyObject
*_self
, PyObject
*_args
)
586 PyObject
*_res
= NULL
;
588 CTabHandle outColors
;
589 #ifndef GetThemeAccentColors
590 PyMac_PRECHECK(GetThemeAccentColors
);
592 if (!PyArg_ParseTuple(_args
, ""))
594 _err
= GetThemeAccentColors(&outColors
);
595 if (_err
!= noErr
) return PyMac_Error(_err
);
596 _res
= Py_BuildValue("O&",
597 ResObj_New
, outColors
);
601 static PyObject
*App_DrawThemeMenuBarBackground(PyObject
*_self
, PyObject
*_args
)
603 PyObject
*_res
= NULL
;
606 ThemeMenuBarState inState
;
608 #ifndef DrawThemeMenuBarBackground
609 PyMac_PRECHECK(DrawThemeMenuBarBackground
);
611 if (!PyArg_ParseTuple(_args
, "O&Hl",
612 PyMac_GetRect
, &inBounds
,
616 _err
= DrawThemeMenuBarBackground(&inBounds
,
619 if (_err
!= noErr
) return PyMac_Error(_err
);
625 static PyObject
*App_GetThemeMenuBarHeight(PyObject
*_self
, PyObject
*_args
)
627 PyObject
*_res
= NULL
;
630 #ifndef GetThemeMenuBarHeight
631 PyMac_PRECHECK(GetThemeMenuBarHeight
);
633 if (!PyArg_ParseTuple(_args
, ""))
635 _err
= GetThemeMenuBarHeight(&outHeight
);
636 if (_err
!= noErr
) return PyMac_Error(_err
);
637 _res
= Py_BuildValue("h",
642 static PyObject
*App_DrawThemeMenuBackground(PyObject
*_self
, PyObject
*_args
)
644 PyObject
*_res
= NULL
;
647 ThemeMenuType inMenuType
;
648 #ifndef DrawThemeMenuBackground
649 PyMac_PRECHECK(DrawThemeMenuBackground
);
651 if (!PyArg_ParseTuple(_args
, "O&H",
652 PyMac_GetRect
, &inMenuRect
,
655 _err
= DrawThemeMenuBackground(&inMenuRect
,
657 if (_err
!= noErr
) return PyMac_Error(_err
);
663 static PyObject
*App_GetThemeMenuBackgroundRegion(PyObject
*_self
, PyObject
*_args
)
665 PyObject
*_res
= NULL
;
668 ThemeMenuType menuType
;
669 #ifndef GetThemeMenuBackgroundRegion
670 PyMac_PRECHECK(GetThemeMenuBackgroundRegion
);
672 if (!PyArg_ParseTuple(_args
, "O&H",
673 PyMac_GetRect
, &inMenuRect
,
676 _err
= GetThemeMenuBackgroundRegion(&inMenuRect
,
679 if (_err
!= noErr
) return PyMac_Error(_err
);
685 static PyObject
*App_DrawThemeMenuSeparator(PyObject
*_self
, PyObject
*_args
)
687 PyObject
*_res
= NULL
;
690 #ifndef DrawThemeMenuSeparator
691 PyMac_PRECHECK(DrawThemeMenuSeparator
);
693 if (!PyArg_ParseTuple(_args
, "O&",
694 PyMac_GetRect
, &inItemRect
))
696 _err
= DrawThemeMenuSeparator(&inItemRect
);
697 if (_err
!= noErr
) return PyMac_Error(_err
);
703 static PyObject
*App_GetThemeMenuSeparatorHeight(PyObject
*_self
, PyObject
*_args
)
705 PyObject
*_res
= NULL
;
708 #ifndef GetThemeMenuSeparatorHeight
709 PyMac_PRECHECK(GetThemeMenuSeparatorHeight
);
711 if (!PyArg_ParseTuple(_args
, ""))
713 _err
= GetThemeMenuSeparatorHeight(&outHeight
);
714 if (_err
!= noErr
) return PyMac_Error(_err
);
715 _res
= Py_BuildValue("h",
720 static PyObject
*App_GetThemeMenuItemExtra(PyObject
*_self
, PyObject
*_args
)
722 PyObject
*_res
= NULL
;
724 ThemeMenuItemType inItemType
;
727 #ifndef GetThemeMenuItemExtra
728 PyMac_PRECHECK(GetThemeMenuItemExtra
);
730 if (!PyArg_ParseTuple(_args
, "H",
733 _err
= GetThemeMenuItemExtra(inItemType
,
736 if (_err
!= noErr
) return PyMac_Error(_err
);
737 _res
= Py_BuildValue("hh",
743 static PyObject
*App_GetThemeMenuTitleExtra(PyObject
*_self
, PyObject
*_args
)
745 PyObject
*_res
= NULL
;
748 Boolean inIsSquished
;
749 #ifndef GetThemeMenuTitleExtra
750 PyMac_PRECHECK(GetThemeMenuTitleExtra
);
752 if (!PyArg_ParseTuple(_args
, "b",
755 _err
= GetThemeMenuTitleExtra(&outWidth
,
757 if (_err
!= noErr
) return PyMac_Error(_err
);
758 _res
= Py_BuildValue("h",
763 static PyObject
*App_DrawThemeTabPane(PyObject
*_self
, PyObject
*_args
)
765 PyObject
*_res
= NULL
;
768 ThemeDrawState inState
;
769 #ifndef DrawThemeTabPane
770 PyMac_PRECHECK(DrawThemeTabPane
);
772 if (!PyArg_ParseTuple(_args
, "O&l",
773 PyMac_GetRect
, &inRect
,
776 _err
= DrawThemeTabPane(&inRect
,
778 if (_err
!= noErr
) return PyMac_Error(_err
);
784 static PyObject
*App_GetThemeTabRegion(PyObject
*_self
, PyObject
*_args
)
786 PyObject
*_res
= NULL
;
789 ThemeTabStyle inStyle
;
790 ThemeTabDirection inDirection
;
791 #ifndef GetThemeTabRegion
792 PyMac_PRECHECK(GetThemeTabRegion
);
794 if (!PyArg_ParseTuple(_args
, "O&HH",
795 PyMac_GetRect
, &inRect
,
799 _err
= GetThemeTabRegion(&inRect
,
803 if (_err
!= noErr
) return PyMac_Error(_err
);
809 static PyObject
*App_SetThemeCursor(PyObject
*_self
, PyObject
*_args
)
811 PyObject
*_res
= NULL
;
813 ThemeCursor inCursor
;
814 #ifndef SetThemeCursor
815 PyMac_PRECHECK(SetThemeCursor
);
817 if (!PyArg_ParseTuple(_args
, "l",
820 _err
= SetThemeCursor(inCursor
);
821 if (_err
!= noErr
) return PyMac_Error(_err
);
827 static PyObject
*App_SetAnimatedThemeCursor(PyObject
*_self
, PyObject
*_args
)
829 PyObject
*_res
= NULL
;
831 ThemeCursor inCursor
;
832 UInt32 inAnimationStep
;
833 #ifndef SetAnimatedThemeCursor
834 PyMac_PRECHECK(SetAnimatedThemeCursor
);
836 if (!PyArg_ParseTuple(_args
, "ll",
840 _err
= SetAnimatedThemeCursor(inCursor
,
842 if (_err
!= noErr
) return PyMac_Error(_err
);
848 static PyObject
*App_GetThemeScrollBarThumbStyle(PyObject
*_self
, PyObject
*_args
)
850 PyObject
*_res
= NULL
;
852 ThemeScrollBarThumbStyle outStyle
;
853 #ifndef GetThemeScrollBarThumbStyle
854 PyMac_PRECHECK(GetThemeScrollBarThumbStyle
);
856 if (!PyArg_ParseTuple(_args
, ""))
858 _err
= GetThemeScrollBarThumbStyle(&outStyle
);
859 if (_err
!= noErr
) return PyMac_Error(_err
);
860 _res
= Py_BuildValue("H",
865 static PyObject
*App_GetThemeScrollBarArrowStyle(PyObject
*_self
, PyObject
*_args
)
867 PyObject
*_res
= NULL
;
869 ThemeScrollBarArrowStyle outStyle
;
870 #ifndef GetThemeScrollBarArrowStyle
871 PyMac_PRECHECK(GetThemeScrollBarArrowStyle
);
873 if (!PyArg_ParseTuple(_args
, ""))
875 _err
= GetThemeScrollBarArrowStyle(&outStyle
);
876 if (_err
!= noErr
) return PyMac_Error(_err
);
877 _res
= Py_BuildValue("H",
882 static PyObject
*App_GetThemeCheckBoxStyle(PyObject
*_self
, PyObject
*_args
)
884 PyObject
*_res
= NULL
;
886 ThemeCheckBoxStyle outStyle
;
887 #ifndef GetThemeCheckBoxStyle
888 PyMac_PRECHECK(GetThemeCheckBoxStyle
);
890 if (!PyArg_ParseTuple(_args
, ""))
892 _err
= GetThemeCheckBoxStyle(&outStyle
);
893 if (_err
!= noErr
) return PyMac_Error(_err
);
894 _res
= Py_BuildValue("H",
899 static PyObject
*App_UseThemeFont(PyObject
*_self
, PyObject
*_args
)
901 PyObject
*_res
= NULL
;
903 ThemeFontID inFontID
;
906 PyMac_PRECHECK(UseThemeFont
);
908 if (!PyArg_ParseTuple(_args
, "Hh",
912 _err
= UseThemeFont(inFontID
,
914 if (_err
!= noErr
) return PyMac_Error(_err
);
920 static PyObject
*App_DrawThemeTextBox(PyObject
*_self
, PyObject
*_args
)
922 PyObject
*_res
= NULL
;
924 CFStringRef inString
;
925 ThemeFontID inFontID
;
926 ThemeDrawState inState
;
927 Boolean inWrapToWidth
;
930 #ifndef DrawThemeTextBox
931 PyMac_PRECHECK(DrawThemeTextBox
);
933 if (!PyArg_ParseTuple(_args
, "O&HlbO&h",
934 CFStringRefObj_Convert
, &inString
,
938 PyMac_GetRect
, &inBoundingBox
,
941 _err
= DrawThemeTextBox(inString
,
948 if (_err
!= noErr
) return PyMac_Error(_err
);
954 static PyObject
*App_TruncateThemeText(PyObject
*_self
, PyObject
*_args
)
956 PyObject
*_res
= NULL
;
958 CFMutableStringRef inString
;
959 ThemeFontID inFontID
;
960 ThemeDrawState inState
;
961 SInt16 inPixelWidthLimit
;
962 TruncCode inTruncWhere
;
963 Boolean outTruncated
;
964 #ifndef TruncateThemeText
965 PyMac_PRECHECK(TruncateThemeText
);
967 if (!PyArg_ParseTuple(_args
, "O&Hlhh",
968 CFMutableStringRefObj_Convert
, &inString
,
974 _err
= TruncateThemeText(inString
,
980 if (_err
!= noErr
) return PyMac_Error(_err
);
981 _res
= Py_BuildValue("b",
986 static PyObject
*App_GetThemeTextDimensions(PyObject
*_self
, PyObject
*_args
)
988 PyObject
*_res
= NULL
;
990 CFStringRef inString
;
991 ThemeFontID inFontID
;
992 ThemeDrawState inState
;
993 Boolean inWrapToWidth
;
996 #ifndef GetThemeTextDimensions
997 PyMac_PRECHECK(GetThemeTextDimensions
);
999 if (!PyArg_ParseTuple(_args
, "O&HlbO&",
1000 CFStringRefObj_Convert
, &inString
,
1004 PyMac_GetPoint
, &ioBounds
))
1006 _err
= GetThemeTextDimensions(inString
,
1012 if (_err
!= noErr
) return PyMac_Error(_err
);
1013 _res
= Py_BuildValue("O&h",
1014 PyMac_BuildPoint
, ioBounds
,
1019 static PyObject
*App_GetThemeTextShadowOutset(PyObject
*_self
, PyObject
*_args
)
1021 PyObject
*_res
= NULL
;
1023 ThemeFontID inFontID
;
1024 ThemeDrawState inState
;
1026 #ifndef GetThemeTextShadowOutset
1027 PyMac_PRECHECK(GetThemeTextShadowOutset
);
1029 if (!PyArg_ParseTuple(_args
, "Hl",
1033 _err
= GetThemeTextShadowOutset(inFontID
,
1036 if (_err
!= noErr
) return PyMac_Error(_err
);
1037 _res
= Py_BuildValue("O&",
1038 PyMac_BuildRect
, &outOutset
);
1042 static PyObject
*App_DrawThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1044 PyObject
*_res
= NULL
;
1047 ThemeTrackEnableState enableState
;
1048 ThemeTrackPressState pressState
;
1051 #ifndef DrawThemeScrollBarArrows
1052 PyMac_PRECHECK(DrawThemeScrollBarArrows
);
1054 if (!PyArg_ParseTuple(_args
, "O&bbb",
1055 PyMac_GetRect
, &bounds
,
1060 _err
= DrawThemeScrollBarArrows(&bounds
,
1065 if (_err
!= noErr
) return PyMac_Error(_err
);
1066 _res
= Py_BuildValue("O&",
1067 PyMac_BuildRect
, &trackBounds
);
1071 static PyObject
*App_GetThemeScrollBarTrackRect(PyObject
*_self
, PyObject
*_args
)
1073 PyObject
*_res
= NULL
;
1076 ThemeTrackEnableState enableState
;
1077 ThemeTrackPressState pressState
;
1080 #ifndef GetThemeScrollBarTrackRect
1081 PyMac_PRECHECK(GetThemeScrollBarTrackRect
);
1083 if (!PyArg_ParseTuple(_args
, "O&bbb",
1084 PyMac_GetRect
, &bounds
,
1089 _err
= GetThemeScrollBarTrackRect(&bounds
,
1094 if (_err
!= noErr
) return PyMac_Error(_err
);
1095 _res
= Py_BuildValue("O&",
1096 PyMac_BuildRect
, &trackBounds
);
1100 static PyObject
*App_HitTestThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1102 PyObject
*_res
= NULL
;
1104 Rect scrollBarBounds
;
1105 ThemeTrackEnableState enableState
;
1106 ThemeTrackPressState pressState
;
1110 ControlPartCode partcode
;
1111 #ifndef HitTestThemeScrollBarArrows
1112 PyMac_PRECHECK(HitTestThemeScrollBarArrows
);
1114 if (!PyArg_ParseTuple(_args
, "O&bbbO&",
1115 PyMac_GetRect
, &scrollBarBounds
,
1119 PyMac_GetPoint
, &ptHit
))
1121 _rv
= HitTestThemeScrollBarArrows(&scrollBarBounds
,
1128 _res
= Py_BuildValue("bO&h",
1130 PyMac_BuildRect
, &trackBounds
,
1135 static PyObject
*App_DrawThemeScrollBarDelimiters(PyObject
*_self
, PyObject
*_args
)
1137 PyObject
*_res
= NULL
;
1139 ThemeWindowType flavor
;
1141 ThemeDrawState state
;
1142 ThemeWindowAttributes attributes
;
1143 #ifndef DrawThemeScrollBarDelimiters
1144 PyMac_PRECHECK(DrawThemeScrollBarDelimiters
);
1146 if (!PyArg_ParseTuple(_args
, "HO&ll",
1148 PyMac_GetRect
, &inContRect
,
1152 _err
= DrawThemeScrollBarDelimiters(flavor
,
1156 if (_err
!= noErr
) return PyMac_Error(_err
);
1162 static PyObject
*App_DrawThemeButton(PyObject
*_self
, PyObject
*_args
)
1164 PyObject
*_res
= NULL
;
1168 ThemeButtonDrawInfo inNewInfo
;
1169 ThemeButtonDrawInfo inPrevInfo
;
1171 #ifndef DrawThemeButton
1172 PyMac_PRECHECK(DrawThemeButton
);
1174 if (!PyArg_ParseTuple(_args
, "O&HO&O&l",
1175 PyMac_GetRect
, &inBounds
,
1177 ThemeButtonDrawInfo_Convert
, &inNewInfo
,
1178 ThemeButtonDrawInfo_Convert
, &inPrevInfo
,
1181 _err
= DrawThemeButton(&inBounds
,
1188 if (_err
!= noErr
) return PyMac_Error(_err
);
1194 static PyObject
*App_GetThemeButtonRegion(PyObject
*_self
, PyObject
*_args
)
1196 PyObject
*_res
= NULL
;
1200 ThemeButtonDrawInfo inNewInfo
;
1201 #ifndef GetThemeButtonRegion
1202 PyMac_PRECHECK(GetThemeButtonRegion
);
1204 if (!PyArg_ParseTuple(_args
, "O&HO&",
1205 PyMac_GetRect
, &inBounds
,
1207 ThemeButtonDrawInfo_Convert
, &inNewInfo
))
1209 _err
= GetThemeButtonRegion(&inBounds
,
1213 if (_err
!= noErr
) return PyMac_Error(_err
);
1219 static PyObject
*App_GetThemeButtonContentBounds(PyObject
*_self
, PyObject
*_args
)
1221 PyObject
*_res
= NULL
;
1225 ThemeButtonDrawInfo inDrawInfo
;
1227 #ifndef GetThemeButtonContentBounds
1228 PyMac_PRECHECK(GetThemeButtonContentBounds
);
1230 if (!PyArg_ParseTuple(_args
, "O&HO&",
1231 PyMac_GetRect
, &inBounds
,
1233 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1235 _err
= GetThemeButtonContentBounds(&inBounds
,
1239 if (_err
!= noErr
) return PyMac_Error(_err
);
1240 _res
= Py_BuildValue("O&",
1241 PyMac_BuildRect
, &outBounds
);
1245 static PyObject
*App_GetThemeButtonBackgroundBounds(PyObject
*_self
, PyObject
*_args
)
1247 PyObject
*_res
= NULL
;
1251 ThemeButtonDrawInfo inDrawInfo
;
1253 #ifndef GetThemeButtonBackgroundBounds
1254 PyMac_PRECHECK(GetThemeButtonBackgroundBounds
);
1256 if (!PyArg_ParseTuple(_args
, "O&HO&",
1257 PyMac_GetRect
, &inBounds
,
1259 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1261 _err
= GetThemeButtonBackgroundBounds(&inBounds
,
1265 if (_err
!= noErr
) return PyMac_Error(_err
);
1266 _res
= Py_BuildValue("O&",
1267 PyMac_BuildRect
, &outBounds
);
1271 static PyObject
*App_PlayThemeSound(PyObject
*_self
, PyObject
*_args
)
1273 PyObject
*_res
= NULL
;
1275 ThemeSoundKind kind
;
1276 #ifndef PlayThemeSound
1277 PyMac_PRECHECK(PlayThemeSound
);
1279 if (!PyArg_ParseTuple(_args
, "O&",
1280 PyMac_GetOSType
, &kind
))
1282 _err
= PlayThemeSound(kind
);
1283 if (_err
!= noErr
) return PyMac_Error(_err
);
1289 static PyObject
*App_BeginThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1291 PyObject
*_res
= NULL
;
1293 ThemeDragSoundKind kind
;
1294 #ifndef BeginThemeDragSound
1295 PyMac_PRECHECK(BeginThemeDragSound
);
1297 if (!PyArg_ParseTuple(_args
, "O&",
1298 PyMac_GetOSType
, &kind
))
1300 _err
= BeginThemeDragSound(kind
);
1301 if (_err
!= noErr
) return PyMac_Error(_err
);
1307 static PyObject
*App_EndThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1309 PyObject
*_res
= NULL
;
1311 #ifndef EndThemeDragSound
1312 PyMac_PRECHECK(EndThemeDragSound
);
1314 if (!PyArg_ParseTuple(_args
, ""))
1316 _err
= EndThemeDragSound();
1317 if (_err
!= noErr
) return PyMac_Error(_err
);
1323 static PyObject
*App_DrawThemeTickMark(PyObject
*_self
, PyObject
*_args
)
1325 PyObject
*_res
= NULL
;
1328 ThemeDrawState state
;
1329 #ifndef DrawThemeTickMark
1330 PyMac_PRECHECK(DrawThemeTickMark
);
1332 if (!PyArg_ParseTuple(_args
, "O&l",
1333 PyMac_GetRect
, &bounds
,
1336 _err
= DrawThemeTickMark(&bounds
,
1338 if (_err
!= noErr
) return PyMac_Error(_err
);
1344 static PyObject
*App_DrawThemeChasingArrows(PyObject
*_self
, PyObject
*_args
)
1346 PyObject
*_res
= NULL
;
1350 ThemeDrawState state
;
1352 #ifndef DrawThemeChasingArrows
1353 PyMac_PRECHECK(DrawThemeChasingArrows
);
1355 if (!PyArg_ParseTuple(_args
, "O&lll",
1356 PyMac_GetRect
, &bounds
,
1361 _err
= DrawThemeChasingArrows(&bounds
,
1366 if (_err
!= noErr
) return PyMac_Error(_err
);
1372 static PyObject
*App_DrawThemePopupArrow(PyObject
*_self
, PyObject
*_args
)
1374 PyObject
*_res
= NULL
;
1377 ThemeArrowOrientation orientation
;
1378 ThemePopupArrowSize size
;
1379 ThemeDrawState state
;
1381 #ifndef DrawThemePopupArrow
1382 PyMac_PRECHECK(DrawThemePopupArrow
);
1384 if (!PyArg_ParseTuple(_args
, "O&HHll",
1385 PyMac_GetRect
, &bounds
,
1391 _err
= DrawThemePopupArrow(&bounds
,
1397 if (_err
!= noErr
) return PyMac_Error(_err
);
1403 static PyObject
*App_DrawThemeStandaloneGrowBox(PyObject
*_self
, PyObject
*_args
)
1405 PyObject
*_res
= NULL
;
1408 ThemeGrowDirection growDirection
;
1410 ThemeDrawState state
;
1411 #ifndef DrawThemeStandaloneGrowBox
1412 PyMac_PRECHECK(DrawThemeStandaloneGrowBox
);
1414 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1415 PyMac_GetPoint
, &origin
,
1420 _err
= DrawThemeStandaloneGrowBox(origin
,
1424 if (_err
!= noErr
) return PyMac_Error(_err
);
1430 static PyObject
*App_DrawThemeStandaloneNoGrowBox(PyObject
*_self
, PyObject
*_args
)
1432 PyObject
*_res
= NULL
;
1435 ThemeGrowDirection growDirection
;
1437 ThemeDrawState state
;
1438 #ifndef DrawThemeStandaloneNoGrowBox
1439 PyMac_PRECHECK(DrawThemeStandaloneNoGrowBox
);
1441 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1442 PyMac_GetPoint
, &origin
,
1447 _err
= DrawThemeStandaloneNoGrowBox(origin
,
1451 if (_err
!= noErr
) return PyMac_Error(_err
);
1457 static PyObject
*App_GetThemeStandaloneGrowBoxBounds(PyObject
*_self
, PyObject
*_args
)
1459 PyObject
*_res
= NULL
;
1462 ThemeGrowDirection growDirection
;
1465 #ifndef GetThemeStandaloneGrowBoxBounds
1466 PyMac_PRECHECK(GetThemeStandaloneGrowBoxBounds
);
1468 if (!PyArg_ParseTuple(_args
, "O&Hb",
1469 PyMac_GetPoint
, &origin
,
1473 _err
= GetThemeStandaloneGrowBoxBounds(origin
,
1477 if (_err
!= noErr
) return PyMac_Error(_err
);
1478 _res
= Py_BuildValue("O&",
1479 PyMac_BuildRect
, &bounds
);
1483 static PyObject
*App_NormalizeThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1485 PyObject
*_res
= NULL
;
1487 #ifndef NormalizeThemeDrawingState
1488 PyMac_PRECHECK(NormalizeThemeDrawingState
);
1490 if (!PyArg_ParseTuple(_args
, ""))
1492 _err
= NormalizeThemeDrawingState();
1493 if (_err
!= noErr
) return PyMac_Error(_err
);
1499 static PyObject
*App_GetThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1501 PyObject
*_res
= NULL
;
1503 ThemeDrawingState outState
;
1504 #ifndef GetThemeDrawingState
1505 PyMac_PRECHECK(GetThemeDrawingState
);
1507 if (!PyArg_ParseTuple(_args
, ""))
1509 _err
= GetThemeDrawingState(&outState
);
1510 if (_err
!= noErr
) return PyMac_Error(_err
);
1511 _res
= Py_BuildValue("O&",
1512 ThemeDrawingStateObj_New
, outState
);
1516 static PyObject
*App_ApplyThemeBackground(PyObject
*_self
, PyObject
*_args
)
1518 PyObject
*_res
= NULL
;
1520 ThemeBackgroundKind inKind
;
1522 ThemeDrawState inState
;
1525 #ifndef ApplyThemeBackground
1526 PyMac_PRECHECK(ApplyThemeBackground
);
1528 if (!PyArg_ParseTuple(_args
, "lO&lhb",
1530 PyMac_GetRect
, &bounds
,
1535 _err
= ApplyThemeBackground(inKind
,
1540 if (_err
!= noErr
) return PyMac_Error(_err
);
1546 static PyObject
*App_SetThemeTextColorForWindow(PyObject
*_self
, PyObject
*_args
)
1548 PyObject
*_res
= NULL
;
1554 #ifndef SetThemeTextColorForWindow
1555 PyMac_PRECHECK(SetThemeTextColorForWindow
);
1557 if (!PyArg_ParseTuple(_args
, "O&bhb",
1558 WinObj_Convert
, &window
,
1563 _err
= SetThemeTextColorForWindow(window
,
1567 if (_err
!= noErr
) return PyMac_Error(_err
);
1573 static PyObject
*App_IsValidAppearanceFileType(PyObject
*_self
, PyObject
*_args
)
1575 PyObject
*_res
= NULL
;
1578 #ifndef IsValidAppearanceFileType
1579 PyMac_PRECHECK(IsValidAppearanceFileType
);
1581 if (!PyArg_ParseTuple(_args
, "O&",
1582 PyMac_GetOSType
, &fileType
))
1584 _rv
= IsValidAppearanceFileType(fileType
);
1585 _res
= Py_BuildValue("b",
1590 static PyObject
*App_GetThemeBrushAsColor(PyObject
*_self
, PyObject
*_args
)
1592 PyObject
*_res
= NULL
;
1598 #ifndef GetThemeBrushAsColor
1599 PyMac_PRECHECK(GetThemeBrushAsColor
);
1601 if (!PyArg_ParseTuple(_args
, "hhb",
1606 _err
= GetThemeBrushAsColor(inBrush
,
1610 if (_err
!= noErr
) return PyMac_Error(_err
);
1611 _res
= Py_BuildValue("O&",
1612 QdRGB_New
, &outColor
);
1616 static PyObject
*App_GetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
1618 PyObject
*_res
= NULL
;
1620 ThemeTextColor inColor
;
1624 #ifndef GetThemeTextColor
1625 PyMac_PRECHECK(GetThemeTextColor
);
1627 if (!PyArg_ParseTuple(_args
, "hhb",
1632 _err
= GetThemeTextColor(inColor
,
1636 if (_err
!= noErr
) return PyMac_Error(_err
);
1637 _res
= Py_BuildValue("O&",
1638 QdRGB_New
, &outColor
);
1642 static PyObject
*App_GetThemeMetric(PyObject
*_self
, PyObject
*_args
)
1644 PyObject
*_res
= NULL
;
1646 ThemeMetric inMetric
;
1648 #ifndef GetThemeMetric
1649 PyMac_PRECHECK(GetThemeMetric
);
1651 if (!PyArg_ParseTuple(_args
, "l",
1654 _err
= GetThemeMetric(inMetric
,
1656 if (_err
!= noErr
) return PyMac_Error(_err
);
1657 _res
= Py_BuildValue("l",
1662 static PyMethodDef App_methods
[] = {
1663 {"RegisterAppearanceClient", (PyCFunction
)App_RegisterAppearanceClient
, 1,
1664 PyDoc_STR("() -> None")},
1665 {"UnregisterAppearanceClient", (PyCFunction
)App_UnregisterAppearanceClient
, 1,
1666 PyDoc_STR("() -> None")},
1667 {"SetThemePen", (PyCFunction
)App_SetThemePen
, 1,
1668 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1669 {"SetThemeBackground", (PyCFunction
)App_SetThemeBackground
, 1,
1670 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1671 {"SetThemeTextColor", (PyCFunction
)App_SetThemeTextColor
, 1,
1672 PyDoc_STR("(ThemeTextColor inColor, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1673 {"SetThemeWindowBackground", (PyCFunction
)App_SetThemeWindowBackground
, 1,
1674 PyDoc_STR("(WindowPtr inWindow, ThemeBrush inBrush, Boolean inUpdate) -> None")},
1675 {"DrawThemeWindowHeader", (PyCFunction
)App_DrawThemeWindowHeader
, 1,
1676 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1677 {"DrawThemeWindowListViewHeader", (PyCFunction
)App_DrawThemeWindowListViewHeader
, 1,
1678 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1679 {"DrawThemePlacard", (PyCFunction
)App_DrawThemePlacard
, 1,
1680 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1681 {"DrawThemeEditTextFrame", (PyCFunction
)App_DrawThemeEditTextFrame
, 1,
1682 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1683 {"DrawThemeListBoxFrame", (PyCFunction
)App_DrawThemeListBoxFrame
, 1,
1684 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1685 {"DrawThemeFocusRect", (PyCFunction
)App_DrawThemeFocusRect
, 1,
1686 PyDoc_STR("(Rect inRect, Boolean inHasFocus) -> None")},
1687 {"DrawThemePrimaryGroup", (PyCFunction
)App_DrawThemePrimaryGroup
, 1,
1688 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1689 {"DrawThemeSecondaryGroup", (PyCFunction
)App_DrawThemeSecondaryGroup
, 1,
1690 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1691 {"DrawThemeSeparator", (PyCFunction
)App_DrawThemeSeparator
, 1,
1692 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1693 {"DrawThemeModelessDialogFrame", (PyCFunction
)App_DrawThemeModelessDialogFrame
, 1,
1694 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1695 {"DrawThemeGenericWell", (PyCFunction
)App_DrawThemeGenericWell
, 1,
1696 PyDoc_STR("(Rect inRect, ThemeDrawState inState, Boolean inFillCenter) -> None")},
1697 {"DrawThemeFocusRegion", (PyCFunction
)App_DrawThemeFocusRegion
, 1,
1698 PyDoc_STR("(Boolean inHasFocus) -> None")},
1699 {"IsThemeInColor", (PyCFunction
)App_IsThemeInColor
, 1,
1700 PyDoc_STR("(SInt16 inDepth, Boolean inIsColorDevice) -> (Boolean _rv)")},
1701 {"GetThemeAccentColors", (PyCFunction
)App_GetThemeAccentColors
, 1,
1702 PyDoc_STR("() -> (CTabHandle outColors)")},
1703 {"DrawThemeMenuBarBackground", (PyCFunction
)App_DrawThemeMenuBarBackground
, 1,
1704 PyDoc_STR("(Rect inBounds, ThemeMenuBarState inState, UInt32 inAttributes) -> None")},
1705 {"GetThemeMenuBarHeight", (PyCFunction
)App_GetThemeMenuBarHeight
, 1,
1706 PyDoc_STR("() -> (SInt16 outHeight)")},
1707 {"DrawThemeMenuBackground", (PyCFunction
)App_DrawThemeMenuBackground
, 1,
1708 PyDoc_STR("(Rect inMenuRect, ThemeMenuType inMenuType) -> None")},
1709 {"GetThemeMenuBackgroundRegion", (PyCFunction
)App_GetThemeMenuBackgroundRegion
, 1,
1710 PyDoc_STR("(Rect inMenuRect, ThemeMenuType menuType) -> None")},
1711 {"DrawThemeMenuSeparator", (PyCFunction
)App_DrawThemeMenuSeparator
, 1,
1712 PyDoc_STR("(Rect inItemRect) -> None")},
1713 {"GetThemeMenuSeparatorHeight", (PyCFunction
)App_GetThemeMenuSeparatorHeight
, 1,
1714 PyDoc_STR("() -> (SInt16 outHeight)")},
1715 {"GetThemeMenuItemExtra", (PyCFunction
)App_GetThemeMenuItemExtra
, 1,
1716 PyDoc_STR("(ThemeMenuItemType inItemType) -> (SInt16 outHeight, SInt16 outWidth)")},
1717 {"GetThemeMenuTitleExtra", (PyCFunction
)App_GetThemeMenuTitleExtra
, 1,
1718 PyDoc_STR("(Boolean inIsSquished) -> (SInt16 outWidth)")},
1719 {"DrawThemeTabPane", (PyCFunction
)App_DrawThemeTabPane
, 1,
1720 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1721 {"GetThemeTabRegion", (PyCFunction
)App_GetThemeTabRegion
, 1,
1722 PyDoc_STR("(Rect inRect, ThemeTabStyle inStyle, ThemeTabDirection inDirection) -> None")},
1723 {"SetThemeCursor", (PyCFunction
)App_SetThemeCursor
, 1,
1724 PyDoc_STR("(ThemeCursor inCursor) -> None")},
1725 {"SetAnimatedThemeCursor", (PyCFunction
)App_SetAnimatedThemeCursor
, 1,
1726 PyDoc_STR("(ThemeCursor inCursor, UInt32 inAnimationStep) -> None")},
1727 {"GetThemeScrollBarThumbStyle", (PyCFunction
)App_GetThemeScrollBarThumbStyle
, 1,
1728 PyDoc_STR("() -> (ThemeScrollBarThumbStyle outStyle)")},
1729 {"GetThemeScrollBarArrowStyle", (PyCFunction
)App_GetThemeScrollBarArrowStyle
, 1,
1730 PyDoc_STR("() -> (ThemeScrollBarArrowStyle outStyle)")},
1731 {"GetThemeCheckBoxStyle", (PyCFunction
)App_GetThemeCheckBoxStyle
, 1,
1732 PyDoc_STR("() -> (ThemeCheckBoxStyle outStyle)")},
1733 {"UseThemeFont", (PyCFunction
)App_UseThemeFont
, 1,
1734 PyDoc_STR("(ThemeFontID inFontID, ScriptCode inScript) -> None")},
1735 {"DrawThemeTextBox", (PyCFunction
)App_DrawThemeTextBox
, 1,
1736 PyDoc_STR("(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Rect inBoundingBox, SInt16 inJust) -> None")},
1737 {"TruncateThemeText", (PyCFunction
)App_TruncateThemeText
, 1,
1738 PyDoc_STR("(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)")},
1739 {"GetThemeTextDimensions", (PyCFunction
)App_GetThemeTextDimensions
, 1,
1740 PyDoc_STR("(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Point ioBounds) -> (Point ioBounds, SInt16 outBaseline)")},
1741 {"GetThemeTextShadowOutset", (PyCFunction
)App_GetThemeTextShadowOutset
, 1,
1742 PyDoc_STR("(ThemeFontID inFontID, ThemeDrawState inState) -> (Rect outOutset)")},
1743 {"DrawThemeScrollBarArrows", (PyCFunction
)App_DrawThemeScrollBarArrows
, 1,
1744 PyDoc_STR("(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)")},
1745 {"GetThemeScrollBarTrackRect", (PyCFunction
)App_GetThemeScrollBarTrackRect
, 1,
1746 PyDoc_STR("(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)")},
1747 {"HitTestThemeScrollBarArrows", (PyCFunction
)App_HitTestThemeScrollBarArrows
, 1,
1748 PyDoc_STR("(Rect scrollBarBounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz, Point ptHit) -> (Boolean _rv, Rect trackBounds, ControlPartCode partcode)")},
1749 {"DrawThemeScrollBarDelimiters", (PyCFunction
)App_DrawThemeScrollBarDelimiters
, 1,
1750 PyDoc_STR("(ThemeWindowType flavor, Rect inContRect, ThemeDrawState state, ThemeWindowAttributes attributes) -> None")},
1751 {"DrawThemeButton", (PyCFunction
)App_DrawThemeButton
, 1,
1752 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo, ThemeButtonDrawInfo inPrevInfo, UInt32 inUserData) -> None")},
1753 {"GetThemeButtonRegion", (PyCFunction
)App_GetThemeButtonRegion
, 1,
1754 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo) -> None")},
1755 {"GetThemeButtonContentBounds", (PyCFunction
)App_GetThemeButtonContentBounds
, 1,
1756 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)")},
1757 {"GetThemeButtonBackgroundBounds", (PyCFunction
)App_GetThemeButtonBackgroundBounds
, 1,
1758 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)")},
1759 {"PlayThemeSound", (PyCFunction
)App_PlayThemeSound
, 1,
1760 PyDoc_STR("(ThemeSoundKind kind) -> None")},
1761 {"BeginThemeDragSound", (PyCFunction
)App_BeginThemeDragSound
, 1,
1762 PyDoc_STR("(ThemeDragSoundKind kind) -> None")},
1763 {"EndThemeDragSound", (PyCFunction
)App_EndThemeDragSound
, 1,
1764 PyDoc_STR("() -> None")},
1765 {"DrawThemeTickMark", (PyCFunction
)App_DrawThemeTickMark
, 1,
1766 PyDoc_STR("(Rect bounds, ThemeDrawState state) -> None")},
1767 {"DrawThemeChasingArrows", (PyCFunction
)App_DrawThemeChasingArrows
, 1,
1768 PyDoc_STR("(Rect bounds, UInt32 index, ThemeDrawState state, UInt32 eraseData) -> None")},
1769 {"DrawThemePopupArrow", (PyCFunction
)App_DrawThemePopupArrow
, 1,
1770 PyDoc_STR("(Rect bounds, ThemeArrowOrientation orientation, ThemePopupArrowSize size, ThemeDrawState state, UInt32 eraseData) -> None")},
1771 {"DrawThemeStandaloneGrowBox", (PyCFunction
)App_DrawThemeStandaloneGrowBox
, 1,
1772 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None")},
1773 {"DrawThemeStandaloneNoGrowBox", (PyCFunction
)App_DrawThemeStandaloneNoGrowBox
, 1,
1774 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None")},
1775 {"GetThemeStandaloneGrowBoxBounds", (PyCFunction
)App_GetThemeStandaloneGrowBoxBounds
, 1,
1776 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall) -> (Rect bounds)")},
1777 {"NormalizeThemeDrawingState", (PyCFunction
)App_NormalizeThemeDrawingState
, 1,
1778 PyDoc_STR("() -> None")},
1779 {"GetThemeDrawingState", (PyCFunction
)App_GetThemeDrawingState
, 1,
1780 PyDoc_STR("() -> (ThemeDrawingState outState)")},
1781 {"ApplyThemeBackground", (PyCFunction
)App_ApplyThemeBackground
, 1,
1782 PyDoc_STR("(ThemeBackgroundKind inKind, Rect bounds, ThemeDrawState inState, SInt16 inDepth, Boolean inColorDev) -> None")},
1783 {"SetThemeTextColorForWindow", (PyCFunction
)App_SetThemeTextColorForWindow
, 1,
1784 PyDoc_STR("(WindowPtr window, Boolean isActive, SInt16 depth, Boolean isColorDev) -> None")},
1785 {"IsValidAppearanceFileType", (PyCFunction
)App_IsValidAppearanceFileType
, 1,
1786 PyDoc_STR("(OSType fileType) -> (Boolean _rv)")},
1787 {"GetThemeBrushAsColor", (PyCFunction
)App_GetThemeBrushAsColor
, 1,
1788 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)")},
1789 {"GetThemeTextColor", (PyCFunction
)App_GetThemeTextColor
, 1,
1790 PyDoc_STR("(ThemeTextColor inColor, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)")},
1791 {"GetThemeMetric", (PyCFunction
)App_GetThemeMetric
, 1,
1792 PyDoc_STR("(ThemeMetric inMetric) -> (SInt32 outMetric)")},
1797 #else /* __LP64__ */
1799 static PyMethodDef App_methods
[] = {
1803 #endif /* __LP64__ */
1811 #endif /* !__LP64__ */
1814 m
= Py_InitModule("_App", App_methods
);
1816 d
= PyModule_GetDict(m
);
1817 App_Error
= PyMac_GetOSErrException();
1818 if (App_Error
== NULL
||
1819 PyDict_SetItemString(d
, "Error", App_Error
) != 0)
1821 ThemeDrawingState_Type
.ob_type
= &PyType_Type
;
1822 if (PyType_Ready(&ThemeDrawingState_Type
) < 0) return;
1823 Py_INCREF(&ThemeDrawingState_Type
);
1824 PyModule_AddObject(m
, "ThemeDrawingState", (PyObject
*)&ThemeDrawingState_Type
);
1825 /* Backward-compatible name */
1826 Py_INCREF(&ThemeDrawingState_Type
);
1827 PyModule_AddObject(m
, "ThemeDrawingStateType", (PyObject
*)&ThemeDrawingState_Type
);
1828 #endif /* __LP64__ */
1831 /* ======================== End module _App ========================= */