2 /* ========================== Module _App =========================== */
9 #include "pywintoolbox.h"
12 #include "pymactoolbox.h"
15 /* Macro to test whether a weak-loaded CFM function exists */
16 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
17 PyErr_SetString(PyExc_NotImplementedError, \
18 "Not available in this shared library/OS version"); \
23 #ifdef WITHOUT_FRAMEWORKS
24 #include <Appearance.h>
26 #include <Carbon/Carbon.h>
31 int ThemeButtonDrawInfo_Convert(PyObject
*v
, ThemeButtonDrawInfo
*p_itself
)
33 return PyArg_Parse(v
, "(iHH)", &p_itself
->state
, &p_itself
->value
, &p_itself
->adornment
);
37 static PyObject
*App_Error
;
39 /* ----------------- Object type ThemeDrawingState ------------------ */
41 PyTypeObject ThemeDrawingState_Type
;
43 #define ThemeDrawingStateObj_Check(x) ((x)->ob_type == &ThemeDrawingState_Type || PyObject_TypeCheck((x), &ThemeDrawingState_Type))
45 typedef struct ThemeDrawingStateObject
{
47 ThemeDrawingState ob_itself
;
48 } ThemeDrawingStateObject
;
50 PyObject
*ThemeDrawingStateObj_New(ThemeDrawingState itself
)
52 ThemeDrawingStateObject
*it
;
53 it
= PyObject_NEW(ThemeDrawingStateObject
, &ThemeDrawingState_Type
);
54 if (it
== NULL
) return NULL
;
55 it
->ob_itself
= itself
;
56 return (PyObject
*)it
;
58 int ThemeDrawingStateObj_Convert(PyObject
*v
, ThemeDrawingState
*p_itself
)
60 if (!ThemeDrawingStateObj_Check(v
))
62 PyErr_SetString(PyExc_TypeError
, "ThemeDrawingState required");
65 *p_itself
= ((ThemeDrawingStateObject
*)v
)->ob_itself
;
69 static void ThemeDrawingStateObj_dealloc(ThemeDrawingStateObject
*self
)
71 /* Cleanup of self->ob_itself goes here */
72 self
->ob_type
->tp_free((PyObject
*)self
);
75 static PyObject
*ThemeDrawingStateObj_SetThemeDrawingState(ThemeDrawingStateObject
*_self
, PyObject
*_args
)
77 PyObject
*_res
= NULL
;
80 #ifndef SetThemeDrawingState
81 PyMac_PRECHECK(SetThemeDrawingState
);
83 if (!PyArg_ParseTuple(_args
, "b",
86 _rv
= SetThemeDrawingState(_self
->ob_itself
,
88 _res
= Py_BuildValue("l",
93 static PyObject
*ThemeDrawingStateObj_DisposeThemeDrawingState(ThemeDrawingStateObject
*_self
, PyObject
*_args
)
95 PyObject
*_res
= NULL
;
97 #ifndef DisposeThemeDrawingState
98 PyMac_PRECHECK(DisposeThemeDrawingState
);
100 if (!PyArg_ParseTuple(_args
, ""))
102 _rv
= DisposeThemeDrawingState(_self
->ob_itself
);
103 _res
= Py_BuildValue("l",
108 static PyMethodDef ThemeDrawingStateObj_methods
[] = {
109 {"SetThemeDrawingState", (PyCFunction
)ThemeDrawingStateObj_SetThemeDrawingState
, 1,
110 PyDoc_STR("(Boolean inDisposeNow) -> (OSStatus _rv)")},
111 {"DisposeThemeDrawingState", (PyCFunction
)ThemeDrawingStateObj_DisposeThemeDrawingState
, 1,
112 PyDoc_STR("() -> (OSStatus _rv)")},
116 #define ThemeDrawingStateObj_getsetlist NULL
119 #define ThemeDrawingStateObj_compare NULL
121 #define ThemeDrawingStateObj_repr NULL
123 #define ThemeDrawingStateObj_hash NULL
124 #define ThemeDrawingStateObj_tp_init 0
126 #define ThemeDrawingStateObj_tp_alloc PyType_GenericAlloc
128 static PyObject
*ThemeDrawingStateObj_tp_new(PyTypeObject
*type
, PyObject
*args
, PyObject
*kwds
)
131 ThemeDrawingState itself
;
132 char *kw
[] = {"itself", 0};
134 if (!PyArg_ParseTupleAndKeywords(args
, kwds
, "O&", kw
, ThemeDrawingStateObj_Convert
, &itself
)) return NULL
;
135 if ((self
= type
->tp_alloc(type
, 0)) == NULL
) return NULL
;
136 ((ThemeDrawingStateObject
*)self
)->ob_itself
= itself
;
140 #define ThemeDrawingStateObj_tp_free PyObject_Del
143 PyTypeObject ThemeDrawingState_Type
= {
144 PyObject_HEAD_INIT(NULL
)
146 "_App.ThemeDrawingState", /*tp_name*/
147 sizeof(ThemeDrawingStateObject
), /*tp_basicsize*/
150 (destructor
) ThemeDrawingStateObj_dealloc
, /*tp_dealloc*/
152 (getattrfunc
)0, /*tp_getattr*/
153 (setattrfunc
)0, /*tp_setattr*/
154 (cmpfunc
) ThemeDrawingStateObj_compare
, /*tp_compare*/
155 (reprfunc
) ThemeDrawingStateObj_repr
, /*tp_repr*/
156 (PyNumberMethods
*)0, /* tp_as_number */
157 (PySequenceMethods
*)0, /* tp_as_sequence */
158 (PyMappingMethods
*)0, /* tp_as_mapping */
159 (hashfunc
) ThemeDrawingStateObj_hash
, /*tp_hash*/
162 PyObject_GenericGetAttr
, /*tp_getattro*/
163 PyObject_GenericSetAttr
, /*tp_setattro */
165 Py_TPFLAGS_DEFAULT
|Py_TPFLAGS_BASETYPE
, /* tp_flags */
169 0, /*tp_richcompare*/
170 0, /*tp_weaklistoffset*/
173 ThemeDrawingStateObj_methods
, /* tp_methods */
175 ThemeDrawingStateObj_getsetlist
, /*tp_getset*/
181 ThemeDrawingStateObj_tp_init
, /* tp_init */
182 ThemeDrawingStateObj_tp_alloc
, /* tp_alloc */
183 ThemeDrawingStateObj_tp_new
, /* tp_new */
184 ThemeDrawingStateObj_tp_free
, /* tp_free */
187 /* --------------- End object type ThemeDrawingState ---------------- */
190 static PyObject
*App_RegisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
192 PyObject
*_res
= NULL
;
194 #ifndef RegisterAppearanceClient
195 PyMac_PRECHECK(RegisterAppearanceClient
);
197 if (!PyArg_ParseTuple(_args
, ""))
199 _err
= RegisterAppearanceClient();
200 if (_err
!= noErr
) return PyMac_Error(_err
);
206 static PyObject
*App_UnregisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
208 PyObject
*_res
= NULL
;
210 #ifndef UnregisterAppearanceClient
211 PyMac_PRECHECK(UnregisterAppearanceClient
);
213 if (!PyArg_ParseTuple(_args
, ""))
215 _err
= UnregisterAppearanceClient();
216 if (_err
!= noErr
) return PyMac_Error(_err
);
222 static PyObject
*App_SetThemePen(PyObject
*_self
, PyObject
*_args
)
224 PyObject
*_res
= NULL
;
228 Boolean inIsColorDevice
;
230 PyMac_PRECHECK(SetThemePen
);
232 if (!PyArg_ParseTuple(_args
, "hhb",
237 _err
= SetThemePen(inBrush
,
240 if (_err
!= noErr
) return PyMac_Error(_err
);
246 static PyObject
*App_SetThemeBackground(PyObject
*_self
, PyObject
*_args
)
248 PyObject
*_res
= NULL
;
252 Boolean inIsColorDevice
;
253 #ifndef SetThemeBackground
254 PyMac_PRECHECK(SetThemeBackground
);
256 if (!PyArg_ParseTuple(_args
, "hhb",
261 _err
= SetThemeBackground(inBrush
,
264 if (_err
!= noErr
) return PyMac_Error(_err
);
270 static PyObject
*App_SetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
272 PyObject
*_res
= NULL
;
274 ThemeTextColor inColor
;
276 Boolean inIsColorDevice
;
277 #ifndef SetThemeTextColor
278 PyMac_PRECHECK(SetThemeTextColor
);
280 if (!PyArg_ParseTuple(_args
, "hhb",
285 _err
= SetThemeTextColor(inColor
,
288 if (_err
!= noErr
) return PyMac_Error(_err
);
294 static PyObject
*App_SetThemeWindowBackground(PyObject
*_self
, PyObject
*_args
)
296 PyObject
*_res
= NULL
;
301 #ifndef SetThemeWindowBackground
302 PyMac_PRECHECK(SetThemeWindowBackground
);
304 if (!PyArg_ParseTuple(_args
, "O&hb",
305 WinObj_Convert
, &inWindow
,
309 _err
= SetThemeWindowBackground(inWindow
,
312 if (_err
!= noErr
) return PyMac_Error(_err
);
318 static PyObject
*App_DrawThemeWindowHeader(PyObject
*_self
, PyObject
*_args
)
320 PyObject
*_res
= NULL
;
323 ThemeDrawState inState
;
324 #ifndef DrawThemeWindowHeader
325 PyMac_PRECHECK(DrawThemeWindowHeader
);
327 if (!PyArg_ParseTuple(_args
, "O&l",
328 PyMac_GetRect
, &inRect
,
331 _err
= DrawThemeWindowHeader(&inRect
,
333 if (_err
!= noErr
) return PyMac_Error(_err
);
339 static PyObject
*App_DrawThemeWindowListViewHeader(PyObject
*_self
, PyObject
*_args
)
341 PyObject
*_res
= NULL
;
344 ThemeDrawState inState
;
345 #ifndef DrawThemeWindowListViewHeader
346 PyMac_PRECHECK(DrawThemeWindowListViewHeader
);
348 if (!PyArg_ParseTuple(_args
, "O&l",
349 PyMac_GetRect
, &inRect
,
352 _err
= DrawThemeWindowListViewHeader(&inRect
,
354 if (_err
!= noErr
) return PyMac_Error(_err
);
360 static PyObject
*App_DrawThemePlacard(PyObject
*_self
, PyObject
*_args
)
362 PyObject
*_res
= NULL
;
365 ThemeDrawState inState
;
366 #ifndef DrawThemePlacard
367 PyMac_PRECHECK(DrawThemePlacard
);
369 if (!PyArg_ParseTuple(_args
, "O&l",
370 PyMac_GetRect
, &inRect
,
373 _err
= DrawThemePlacard(&inRect
,
375 if (_err
!= noErr
) return PyMac_Error(_err
);
381 static PyObject
*App_DrawThemeEditTextFrame(PyObject
*_self
, PyObject
*_args
)
383 PyObject
*_res
= NULL
;
386 ThemeDrawState inState
;
387 #ifndef DrawThemeEditTextFrame
388 PyMac_PRECHECK(DrawThemeEditTextFrame
);
390 if (!PyArg_ParseTuple(_args
, "O&l",
391 PyMac_GetRect
, &inRect
,
394 _err
= DrawThemeEditTextFrame(&inRect
,
396 if (_err
!= noErr
) return PyMac_Error(_err
);
402 static PyObject
*App_DrawThemeListBoxFrame(PyObject
*_self
, PyObject
*_args
)
404 PyObject
*_res
= NULL
;
407 ThemeDrawState inState
;
408 #ifndef DrawThemeListBoxFrame
409 PyMac_PRECHECK(DrawThemeListBoxFrame
);
411 if (!PyArg_ParseTuple(_args
, "O&l",
412 PyMac_GetRect
, &inRect
,
415 _err
= DrawThemeListBoxFrame(&inRect
,
417 if (_err
!= noErr
) return PyMac_Error(_err
);
423 static PyObject
*App_DrawThemeFocusRect(PyObject
*_self
, PyObject
*_args
)
425 PyObject
*_res
= NULL
;
429 #ifndef DrawThemeFocusRect
430 PyMac_PRECHECK(DrawThemeFocusRect
);
432 if (!PyArg_ParseTuple(_args
, "O&b",
433 PyMac_GetRect
, &inRect
,
436 _err
= DrawThemeFocusRect(&inRect
,
438 if (_err
!= noErr
) return PyMac_Error(_err
);
444 static PyObject
*App_DrawThemePrimaryGroup(PyObject
*_self
, PyObject
*_args
)
446 PyObject
*_res
= NULL
;
449 ThemeDrawState inState
;
450 #ifndef DrawThemePrimaryGroup
451 PyMac_PRECHECK(DrawThemePrimaryGroup
);
453 if (!PyArg_ParseTuple(_args
, "O&l",
454 PyMac_GetRect
, &inRect
,
457 _err
= DrawThemePrimaryGroup(&inRect
,
459 if (_err
!= noErr
) return PyMac_Error(_err
);
465 static PyObject
*App_DrawThemeSecondaryGroup(PyObject
*_self
, PyObject
*_args
)
467 PyObject
*_res
= NULL
;
470 ThemeDrawState inState
;
471 #ifndef DrawThemeSecondaryGroup
472 PyMac_PRECHECK(DrawThemeSecondaryGroup
);
474 if (!PyArg_ParseTuple(_args
, "O&l",
475 PyMac_GetRect
, &inRect
,
478 _err
= DrawThemeSecondaryGroup(&inRect
,
480 if (_err
!= noErr
) return PyMac_Error(_err
);
486 static PyObject
*App_DrawThemeSeparator(PyObject
*_self
, PyObject
*_args
)
488 PyObject
*_res
= NULL
;
491 ThemeDrawState inState
;
492 #ifndef DrawThemeSeparator
493 PyMac_PRECHECK(DrawThemeSeparator
);
495 if (!PyArg_ParseTuple(_args
, "O&l",
496 PyMac_GetRect
, &inRect
,
499 _err
= DrawThemeSeparator(&inRect
,
501 if (_err
!= noErr
) return PyMac_Error(_err
);
507 static PyObject
*App_DrawThemeModelessDialogFrame(PyObject
*_self
, PyObject
*_args
)
509 PyObject
*_res
= NULL
;
512 ThemeDrawState inState
;
513 #ifndef DrawThemeModelessDialogFrame
514 PyMac_PRECHECK(DrawThemeModelessDialogFrame
);
516 if (!PyArg_ParseTuple(_args
, "O&l",
517 PyMac_GetRect
, &inRect
,
520 _err
= DrawThemeModelessDialogFrame(&inRect
,
522 if (_err
!= noErr
) return PyMac_Error(_err
);
528 static PyObject
*App_DrawThemeGenericWell(PyObject
*_self
, PyObject
*_args
)
530 PyObject
*_res
= NULL
;
533 ThemeDrawState inState
;
534 Boolean inFillCenter
;
535 #ifndef DrawThemeGenericWell
536 PyMac_PRECHECK(DrawThemeGenericWell
);
538 if (!PyArg_ParseTuple(_args
, "O&lb",
539 PyMac_GetRect
, &inRect
,
543 _err
= DrawThemeGenericWell(&inRect
,
546 if (_err
!= noErr
) return PyMac_Error(_err
);
552 static PyObject
*App_DrawThemeFocusRegion(PyObject
*_self
, PyObject
*_args
)
554 PyObject
*_res
= NULL
;
557 #ifndef DrawThemeFocusRegion
558 PyMac_PRECHECK(DrawThemeFocusRegion
);
560 if (!PyArg_ParseTuple(_args
, "b",
563 _err
= DrawThemeFocusRegion((RgnHandle
)0,
565 if (_err
!= noErr
) return PyMac_Error(_err
);
571 static PyObject
*App_IsThemeInColor(PyObject
*_self
, PyObject
*_args
)
573 PyObject
*_res
= NULL
;
576 Boolean inIsColorDevice
;
577 #ifndef IsThemeInColor
578 PyMac_PRECHECK(IsThemeInColor
);
580 if (!PyArg_ParseTuple(_args
, "hb",
584 _rv
= IsThemeInColor(inDepth
,
586 _res
= Py_BuildValue("b",
591 static PyObject
*App_GetThemeAccentColors(PyObject
*_self
, PyObject
*_args
)
593 PyObject
*_res
= NULL
;
595 CTabHandle outColors
;
596 #ifndef GetThemeAccentColors
597 PyMac_PRECHECK(GetThemeAccentColors
);
599 if (!PyArg_ParseTuple(_args
, ""))
601 _err
= GetThemeAccentColors(&outColors
);
602 if (_err
!= noErr
) return PyMac_Error(_err
);
603 _res
= Py_BuildValue("O&",
604 ResObj_New
, outColors
);
608 static PyObject
*App_DrawThemeMenuBarBackground(PyObject
*_self
, PyObject
*_args
)
610 PyObject
*_res
= NULL
;
613 ThemeMenuBarState inState
;
615 #ifndef DrawThemeMenuBarBackground
616 PyMac_PRECHECK(DrawThemeMenuBarBackground
);
618 if (!PyArg_ParseTuple(_args
, "O&Hl",
619 PyMac_GetRect
, &inBounds
,
623 _err
= DrawThemeMenuBarBackground(&inBounds
,
626 if (_err
!= noErr
) return PyMac_Error(_err
);
632 static PyObject
*App_GetThemeMenuBarHeight(PyObject
*_self
, PyObject
*_args
)
634 PyObject
*_res
= NULL
;
637 #ifndef GetThemeMenuBarHeight
638 PyMac_PRECHECK(GetThemeMenuBarHeight
);
640 if (!PyArg_ParseTuple(_args
, ""))
642 _err
= GetThemeMenuBarHeight(&outHeight
);
643 if (_err
!= noErr
) return PyMac_Error(_err
);
644 _res
= Py_BuildValue("h",
649 static PyObject
*App_DrawThemeMenuBackground(PyObject
*_self
, PyObject
*_args
)
651 PyObject
*_res
= NULL
;
654 ThemeMenuType inMenuType
;
655 #ifndef DrawThemeMenuBackground
656 PyMac_PRECHECK(DrawThemeMenuBackground
);
658 if (!PyArg_ParseTuple(_args
, "O&H",
659 PyMac_GetRect
, &inMenuRect
,
662 _err
= DrawThemeMenuBackground(&inMenuRect
,
664 if (_err
!= noErr
) return PyMac_Error(_err
);
670 static PyObject
*App_GetThemeMenuBackgroundRegion(PyObject
*_self
, PyObject
*_args
)
672 PyObject
*_res
= NULL
;
675 ThemeMenuType menuType
;
676 #ifndef GetThemeMenuBackgroundRegion
677 PyMac_PRECHECK(GetThemeMenuBackgroundRegion
);
679 if (!PyArg_ParseTuple(_args
, "O&H",
680 PyMac_GetRect
, &inMenuRect
,
683 _err
= GetThemeMenuBackgroundRegion(&inMenuRect
,
686 if (_err
!= noErr
) return PyMac_Error(_err
);
692 static PyObject
*App_DrawThemeMenuSeparator(PyObject
*_self
, PyObject
*_args
)
694 PyObject
*_res
= NULL
;
697 #ifndef DrawThemeMenuSeparator
698 PyMac_PRECHECK(DrawThemeMenuSeparator
);
700 if (!PyArg_ParseTuple(_args
, "O&",
701 PyMac_GetRect
, &inItemRect
))
703 _err
= DrawThemeMenuSeparator(&inItemRect
);
704 if (_err
!= noErr
) return PyMac_Error(_err
);
710 static PyObject
*App_GetThemeMenuSeparatorHeight(PyObject
*_self
, PyObject
*_args
)
712 PyObject
*_res
= NULL
;
715 #ifndef GetThemeMenuSeparatorHeight
716 PyMac_PRECHECK(GetThemeMenuSeparatorHeight
);
718 if (!PyArg_ParseTuple(_args
, ""))
720 _err
= GetThemeMenuSeparatorHeight(&outHeight
);
721 if (_err
!= noErr
) return PyMac_Error(_err
);
722 _res
= Py_BuildValue("h",
727 static PyObject
*App_GetThemeMenuItemExtra(PyObject
*_self
, PyObject
*_args
)
729 PyObject
*_res
= NULL
;
731 ThemeMenuItemType inItemType
;
734 #ifndef GetThemeMenuItemExtra
735 PyMac_PRECHECK(GetThemeMenuItemExtra
);
737 if (!PyArg_ParseTuple(_args
, "H",
740 _err
= GetThemeMenuItemExtra(inItemType
,
743 if (_err
!= noErr
) return PyMac_Error(_err
);
744 _res
= Py_BuildValue("hh",
750 static PyObject
*App_GetThemeMenuTitleExtra(PyObject
*_self
, PyObject
*_args
)
752 PyObject
*_res
= NULL
;
755 Boolean inIsSquished
;
756 #ifndef GetThemeMenuTitleExtra
757 PyMac_PRECHECK(GetThemeMenuTitleExtra
);
759 if (!PyArg_ParseTuple(_args
, "b",
762 _err
= GetThemeMenuTitleExtra(&outWidth
,
764 if (_err
!= noErr
) return PyMac_Error(_err
);
765 _res
= Py_BuildValue("h",
770 static PyObject
*App_DrawThemeTabPane(PyObject
*_self
, PyObject
*_args
)
772 PyObject
*_res
= NULL
;
775 ThemeDrawState inState
;
776 #ifndef DrawThemeTabPane
777 PyMac_PRECHECK(DrawThemeTabPane
);
779 if (!PyArg_ParseTuple(_args
, "O&l",
780 PyMac_GetRect
, &inRect
,
783 _err
= DrawThemeTabPane(&inRect
,
785 if (_err
!= noErr
) return PyMac_Error(_err
);
791 static PyObject
*App_GetThemeTabRegion(PyObject
*_self
, PyObject
*_args
)
793 PyObject
*_res
= NULL
;
796 ThemeTabStyle inStyle
;
797 ThemeTabDirection inDirection
;
798 #ifndef GetThemeTabRegion
799 PyMac_PRECHECK(GetThemeTabRegion
);
801 if (!PyArg_ParseTuple(_args
, "O&HH",
802 PyMac_GetRect
, &inRect
,
806 _err
= GetThemeTabRegion(&inRect
,
810 if (_err
!= noErr
) return PyMac_Error(_err
);
816 static PyObject
*App_SetThemeCursor(PyObject
*_self
, PyObject
*_args
)
818 PyObject
*_res
= NULL
;
820 ThemeCursor inCursor
;
821 #ifndef SetThemeCursor
822 PyMac_PRECHECK(SetThemeCursor
);
824 if (!PyArg_ParseTuple(_args
, "l",
827 _err
= SetThemeCursor(inCursor
);
828 if (_err
!= noErr
) return PyMac_Error(_err
);
834 static PyObject
*App_SetAnimatedThemeCursor(PyObject
*_self
, PyObject
*_args
)
836 PyObject
*_res
= NULL
;
838 ThemeCursor inCursor
;
839 UInt32 inAnimationStep
;
840 #ifndef SetAnimatedThemeCursor
841 PyMac_PRECHECK(SetAnimatedThemeCursor
);
843 if (!PyArg_ParseTuple(_args
, "ll",
847 _err
= SetAnimatedThemeCursor(inCursor
,
849 if (_err
!= noErr
) return PyMac_Error(_err
);
855 static PyObject
*App_GetThemeScrollBarThumbStyle(PyObject
*_self
, PyObject
*_args
)
857 PyObject
*_res
= NULL
;
859 ThemeScrollBarThumbStyle outStyle
;
860 #ifndef GetThemeScrollBarThumbStyle
861 PyMac_PRECHECK(GetThemeScrollBarThumbStyle
);
863 if (!PyArg_ParseTuple(_args
, ""))
865 _err
= GetThemeScrollBarThumbStyle(&outStyle
);
866 if (_err
!= noErr
) return PyMac_Error(_err
);
867 _res
= Py_BuildValue("H",
872 static PyObject
*App_GetThemeScrollBarArrowStyle(PyObject
*_self
, PyObject
*_args
)
874 PyObject
*_res
= NULL
;
876 ThemeScrollBarArrowStyle outStyle
;
877 #ifndef GetThemeScrollBarArrowStyle
878 PyMac_PRECHECK(GetThemeScrollBarArrowStyle
);
880 if (!PyArg_ParseTuple(_args
, ""))
882 _err
= GetThemeScrollBarArrowStyle(&outStyle
);
883 if (_err
!= noErr
) return PyMac_Error(_err
);
884 _res
= Py_BuildValue("H",
889 static PyObject
*App_GetThemeCheckBoxStyle(PyObject
*_self
, PyObject
*_args
)
891 PyObject
*_res
= NULL
;
893 ThemeCheckBoxStyle outStyle
;
894 #ifndef GetThemeCheckBoxStyle
895 PyMac_PRECHECK(GetThemeCheckBoxStyle
);
897 if (!PyArg_ParseTuple(_args
, ""))
899 _err
= GetThemeCheckBoxStyle(&outStyle
);
900 if (_err
!= noErr
) return PyMac_Error(_err
);
901 _res
= Py_BuildValue("H",
906 static PyObject
*App_UseThemeFont(PyObject
*_self
, PyObject
*_args
)
908 PyObject
*_res
= NULL
;
910 ThemeFontID inFontID
;
913 PyMac_PRECHECK(UseThemeFont
);
915 if (!PyArg_ParseTuple(_args
, "Hh",
919 _err
= UseThemeFont(inFontID
,
921 if (_err
!= noErr
) return PyMac_Error(_err
);
927 static PyObject
*App_DrawThemeTextBox(PyObject
*_self
, PyObject
*_args
)
929 PyObject
*_res
= NULL
;
931 CFStringRef inString
;
932 ThemeFontID inFontID
;
933 ThemeDrawState inState
;
934 Boolean inWrapToWidth
;
937 #ifndef DrawThemeTextBox
938 PyMac_PRECHECK(DrawThemeTextBox
);
940 if (!PyArg_ParseTuple(_args
, "O&HlbO&h",
941 CFStringRefObj_Convert
, &inString
,
945 PyMac_GetRect
, &inBoundingBox
,
948 _err
= DrawThemeTextBox(inString
,
955 if (_err
!= noErr
) return PyMac_Error(_err
);
961 static PyObject
*App_TruncateThemeText(PyObject
*_self
, PyObject
*_args
)
963 PyObject
*_res
= NULL
;
965 CFMutableStringRef inString
;
966 ThemeFontID inFontID
;
967 ThemeDrawState inState
;
968 SInt16 inPixelWidthLimit
;
969 TruncCode inTruncWhere
;
970 Boolean outTruncated
;
971 #ifndef TruncateThemeText
972 PyMac_PRECHECK(TruncateThemeText
);
974 if (!PyArg_ParseTuple(_args
, "O&Hlhh",
975 CFMutableStringRefObj_Convert
, &inString
,
981 _err
= TruncateThemeText(inString
,
987 if (_err
!= noErr
) return PyMac_Error(_err
);
988 _res
= Py_BuildValue("b",
993 static PyObject
*App_GetThemeTextDimensions(PyObject
*_self
, PyObject
*_args
)
995 PyObject
*_res
= NULL
;
997 CFStringRef inString
;
998 ThemeFontID inFontID
;
999 ThemeDrawState inState
;
1000 Boolean inWrapToWidth
;
1003 #ifndef GetThemeTextDimensions
1004 PyMac_PRECHECK(GetThemeTextDimensions
);
1006 if (!PyArg_ParseTuple(_args
, "O&HlbO&",
1007 CFStringRefObj_Convert
, &inString
,
1011 PyMac_GetPoint
, &ioBounds
))
1013 _err
= GetThemeTextDimensions(inString
,
1019 if (_err
!= noErr
) return PyMac_Error(_err
);
1020 _res
= Py_BuildValue("O&h",
1021 PyMac_BuildPoint
, ioBounds
,
1026 static PyObject
*App_GetThemeTextShadowOutset(PyObject
*_self
, PyObject
*_args
)
1028 PyObject
*_res
= NULL
;
1030 ThemeFontID inFontID
;
1031 ThemeDrawState inState
;
1033 #ifndef GetThemeTextShadowOutset
1034 PyMac_PRECHECK(GetThemeTextShadowOutset
);
1036 if (!PyArg_ParseTuple(_args
, "Hl",
1040 _err
= GetThemeTextShadowOutset(inFontID
,
1043 if (_err
!= noErr
) return PyMac_Error(_err
);
1044 _res
= Py_BuildValue("O&",
1045 PyMac_BuildRect
, &outOutset
);
1049 static PyObject
*App_DrawThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1051 PyObject
*_res
= NULL
;
1054 ThemeTrackEnableState enableState
;
1055 ThemeTrackPressState pressState
;
1058 #ifndef DrawThemeScrollBarArrows
1059 PyMac_PRECHECK(DrawThemeScrollBarArrows
);
1061 if (!PyArg_ParseTuple(_args
, "O&bbb",
1062 PyMac_GetRect
, &bounds
,
1067 _err
= DrawThemeScrollBarArrows(&bounds
,
1072 if (_err
!= noErr
) return PyMac_Error(_err
);
1073 _res
= Py_BuildValue("O&",
1074 PyMac_BuildRect
, &trackBounds
);
1078 static PyObject
*App_GetThemeScrollBarTrackRect(PyObject
*_self
, PyObject
*_args
)
1080 PyObject
*_res
= NULL
;
1083 ThemeTrackEnableState enableState
;
1084 ThemeTrackPressState pressState
;
1087 #ifndef GetThemeScrollBarTrackRect
1088 PyMac_PRECHECK(GetThemeScrollBarTrackRect
);
1090 if (!PyArg_ParseTuple(_args
, "O&bbb",
1091 PyMac_GetRect
, &bounds
,
1096 _err
= GetThemeScrollBarTrackRect(&bounds
,
1101 if (_err
!= noErr
) return PyMac_Error(_err
);
1102 _res
= Py_BuildValue("O&",
1103 PyMac_BuildRect
, &trackBounds
);
1107 static PyObject
*App_HitTestThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1109 PyObject
*_res
= NULL
;
1111 Rect scrollBarBounds
;
1112 ThemeTrackEnableState enableState
;
1113 ThemeTrackPressState pressState
;
1117 ControlPartCode partcode
;
1118 #ifndef HitTestThemeScrollBarArrows
1119 PyMac_PRECHECK(HitTestThemeScrollBarArrows
);
1121 if (!PyArg_ParseTuple(_args
, "O&bbbO&",
1122 PyMac_GetRect
, &scrollBarBounds
,
1126 PyMac_GetPoint
, &ptHit
))
1128 _rv
= HitTestThemeScrollBarArrows(&scrollBarBounds
,
1135 _res
= Py_BuildValue("bO&h",
1137 PyMac_BuildRect
, &trackBounds
,
1142 static PyObject
*App_DrawThemeScrollBarDelimiters(PyObject
*_self
, PyObject
*_args
)
1144 PyObject
*_res
= NULL
;
1146 ThemeWindowType flavor
;
1148 ThemeDrawState state
;
1149 ThemeWindowAttributes attributes
;
1150 #ifndef DrawThemeScrollBarDelimiters
1151 PyMac_PRECHECK(DrawThemeScrollBarDelimiters
);
1153 if (!PyArg_ParseTuple(_args
, "HO&ll",
1155 PyMac_GetRect
, &inContRect
,
1159 _err
= DrawThemeScrollBarDelimiters(flavor
,
1163 if (_err
!= noErr
) return PyMac_Error(_err
);
1169 static PyObject
*App_DrawThemeButton(PyObject
*_self
, PyObject
*_args
)
1171 PyObject
*_res
= NULL
;
1175 ThemeButtonDrawInfo inNewInfo
;
1176 ThemeButtonDrawInfo inPrevInfo
;
1178 #ifndef DrawThemeButton
1179 PyMac_PRECHECK(DrawThemeButton
);
1181 if (!PyArg_ParseTuple(_args
, "O&HO&O&l",
1182 PyMac_GetRect
, &inBounds
,
1184 ThemeButtonDrawInfo_Convert
, &inNewInfo
,
1185 ThemeButtonDrawInfo_Convert
, &inPrevInfo
,
1188 _err
= DrawThemeButton(&inBounds
,
1195 if (_err
!= noErr
) return PyMac_Error(_err
);
1201 static PyObject
*App_GetThemeButtonRegion(PyObject
*_self
, PyObject
*_args
)
1203 PyObject
*_res
= NULL
;
1207 ThemeButtonDrawInfo inNewInfo
;
1208 #ifndef GetThemeButtonRegion
1209 PyMac_PRECHECK(GetThemeButtonRegion
);
1211 if (!PyArg_ParseTuple(_args
, "O&HO&",
1212 PyMac_GetRect
, &inBounds
,
1214 ThemeButtonDrawInfo_Convert
, &inNewInfo
))
1216 _err
= GetThemeButtonRegion(&inBounds
,
1220 if (_err
!= noErr
) return PyMac_Error(_err
);
1226 static PyObject
*App_GetThemeButtonContentBounds(PyObject
*_self
, PyObject
*_args
)
1228 PyObject
*_res
= NULL
;
1232 ThemeButtonDrawInfo inDrawInfo
;
1234 #ifndef GetThemeButtonContentBounds
1235 PyMac_PRECHECK(GetThemeButtonContentBounds
);
1237 if (!PyArg_ParseTuple(_args
, "O&HO&",
1238 PyMac_GetRect
, &inBounds
,
1240 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1242 _err
= GetThemeButtonContentBounds(&inBounds
,
1246 if (_err
!= noErr
) return PyMac_Error(_err
);
1247 _res
= Py_BuildValue("O&",
1248 PyMac_BuildRect
, &outBounds
);
1252 static PyObject
*App_GetThemeButtonBackgroundBounds(PyObject
*_self
, PyObject
*_args
)
1254 PyObject
*_res
= NULL
;
1258 ThemeButtonDrawInfo inDrawInfo
;
1260 #ifndef GetThemeButtonBackgroundBounds
1261 PyMac_PRECHECK(GetThemeButtonBackgroundBounds
);
1263 if (!PyArg_ParseTuple(_args
, "O&HO&",
1264 PyMac_GetRect
, &inBounds
,
1266 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1268 _err
= GetThemeButtonBackgroundBounds(&inBounds
,
1272 if (_err
!= noErr
) return PyMac_Error(_err
);
1273 _res
= Py_BuildValue("O&",
1274 PyMac_BuildRect
, &outBounds
);
1278 static PyObject
*App_PlayThemeSound(PyObject
*_self
, PyObject
*_args
)
1280 PyObject
*_res
= NULL
;
1282 ThemeSoundKind kind
;
1283 #ifndef PlayThemeSound
1284 PyMac_PRECHECK(PlayThemeSound
);
1286 if (!PyArg_ParseTuple(_args
, "O&",
1287 PyMac_GetOSType
, &kind
))
1289 _err
= PlayThemeSound(kind
);
1290 if (_err
!= noErr
) return PyMac_Error(_err
);
1296 static PyObject
*App_BeginThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1298 PyObject
*_res
= NULL
;
1300 ThemeDragSoundKind kind
;
1301 #ifndef BeginThemeDragSound
1302 PyMac_PRECHECK(BeginThemeDragSound
);
1304 if (!PyArg_ParseTuple(_args
, "O&",
1305 PyMac_GetOSType
, &kind
))
1307 _err
= BeginThemeDragSound(kind
);
1308 if (_err
!= noErr
) return PyMac_Error(_err
);
1314 static PyObject
*App_EndThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1316 PyObject
*_res
= NULL
;
1318 #ifndef EndThemeDragSound
1319 PyMac_PRECHECK(EndThemeDragSound
);
1321 if (!PyArg_ParseTuple(_args
, ""))
1323 _err
= EndThemeDragSound();
1324 if (_err
!= noErr
) return PyMac_Error(_err
);
1330 static PyObject
*App_DrawThemeTickMark(PyObject
*_self
, PyObject
*_args
)
1332 PyObject
*_res
= NULL
;
1335 ThemeDrawState state
;
1336 #ifndef DrawThemeTickMark
1337 PyMac_PRECHECK(DrawThemeTickMark
);
1339 if (!PyArg_ParseTuple(_args
, "O&l",
1340 PyMac_GetRect
, &bounds
,
1343 _err
= DrawThemeTickMark(&bounds
,
1345 if (_err
!= noErr
) return PyMac_Error(_err
);
1351 static PyObject
*App_DrawThemeChasingArrows(PyObject
*_self
, PyObject
*_args
)
1353 PyObject
*_res
= NULL
;
1357 ThemeDrawState state
;
1359 #ifndef DrawThemeChasingArrows
1360 PyMac_PRECHECK(DrawThemeChasingArrows
);
1362 if (!PyArg_ParseTuple(_args
, "O&lll",
1363 PyMac_GetRect
, &bounds
,
1368 _err
= DrawThemeChasingArrows(&bounds
,
1373 if (_err
!= noErr
) return PyMac_Error(_err
);
1379 static PyObject
*App_DrawThemePopupArrow(PyObject
*_self
, PyObject
*_args
)
1381 PyObject
*_res
= NULL
;
1384 ThemeArrowOrientation orientation
;
1385 ThemePopupArrowSize size
;
1386 ThemeDrawState state
;
1388 #ifndef DrawThemePopupArrow
1389 PyMac_PRECHECK(DrawThemePopupArrow
);
1391 if (!PyArg_ParseTuple(_args
, "O&HHll",
1392 PyMac_GetRect
, &bounds
,
1398 _err
= DrawThemePopupArrow(&bounds
,
1404 if (_err
!= noErr
) return PyMac_Error(_err
);
1410 static PyObject
*App_DrawThemeStandaloneGrowBox(PyObject
*_self
, PyObject
*_args
)
1412 PyObject
*_res
= NULL
;
1415 ThemeGrowDirection growDirection
;
1417 ThemeDrawState state
;
1418 #ifndef DrawThemeStandaloneGrowBox
1419 PyMac_PRECHECK(DrawThemeStandaloneGrowBox
);
1421 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1422 PyMac_GetPoint
, &origin
,
1427 _err
= DrawThemeStandaloneGrowBox(origin
,
1431 if (_err
!= noErr
) return PyMac_Error(_err
);
1437 static PyObject
*App_DrawThemeStandaloneNoGrowBox(PyObject
*_self
, PyObject
*_args
)
1439 PyObject
*_res
= NULL
;
1442 ThemeGrowDirection growDirection
;
1444 ThemeDrawState state
;
1445 #ifndef DrawThemeStandaloneNoGrowBox
1446 PyMac_PRECHECK(DrawThemeStandaloneNoGrowBox
);
1448 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1449 PyMac_GetPoint
, &origin
,
1454 _err
= DrawThemeStandaloneNoGrowBox(origin
,
1458 if (_err
!= noErr
) return PyMac_Error(_err
);
1464 static PyObject
*App_GetThemeStandaloneGrowBoxBounds(PyObject
*_self
, PyObject
*_args
)
1466 PyObject
*_res
= NULL
;
1469 ThemeGrowDirection growDirection
;
1472 #ifndef GetThemeStandaloneGrowBoxBounds
1473 PyMac_PRECHECK(GetThemeStandaloneGrowBoxBounds
);
1475 if (!PyArg_ParseTuple(_args
, "O&Hb",
1476 PyMac_GetPoint
, &origin
,
1480 _err
= GetThemeStandaloneGrowBoxBounds(origin
,
1484 if (_err
!= noErr
) return PyMac_Error(_err
);
1485 _res
= Py_BuildValue("O&",
1486 PyMac_BuildRect
, &bounds
);
1490 static PyObject
*App_NormalizeThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1492 PyObject
*_res
= NULL
;
1494 #ifndef NormalizeThemeDrawingState
1495 PyMac_PRECHECK(NormalizeThemeDrawingState
);
1497 if (!PyArg_ParseTuple(_args
, ""))
1499 _err
= NormalizeThemeDrawingState();
1500 if (_err
!= noErr
) return PyMac_Error(_err
);
1506 static PyObject
*App_GetThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1508 PyObject
*_res
= NULL
;
1510 ThemeDrawingState outState
;
1511 #ifndef GetThemeDrawingState
1512 PyMac_PRECHECK(GetThemeDrawingState
);
1514 if (!PyArg_ParseTuple(_args
, ""))
1516 _err
= GetThemeDrawingState(&outState
);
1517 if (_err
!= noErr
) return PyMac_Error(_err
);
1518 _res
= Py_BuildValue("O&",
1519 ThemeDrawingStateObj_New
, outState
);
1523 static PyObject
*App_ApplyThemeBackground(PyObject
*_self
, PyObject
*_args
)
1525 PyObject
*_res
= NULL
;
1527 ThemeBackgroundKind inKind
;
1529 ThemeDrawState inState
;
1532 #ifndef ApplyThemeBackground
1533 PyMac_PRECHECK(ApplyThemeBackground
);
1535 if (!PyArg_ParseTuple(_args
, "lO&lhb",
1537 PyMac_GetRect
, &bounds
,
1542 _err
= ApplyThemeBackground(inKind
,
1547 if (_err
!= noErr
) return PyMac_Error(_err
);
1553 static PyObject
*App_SetThemeTextColorForWindow(PyObject
*_self
, PyObject
*_args
)
1555 PyObject
*_res
= NULL
;
1561 #ifndef SetThemeTextColorForWindow
1562 PyMac_PRECHECK(SetThemeTextColorForWindow
);
1564 if (!PyArg_ParseTuple(_args
, "O&bhb",
1565 WinObj_Convert
, &window
,
1570 _err
= SetThemeTextColorForWindow(window
,
1574 if (_err
!= noErr
) return PyMac_Error(_err
);
1580 static PyObject
*App_IsValidAppearanceFileType(PyObject
*_self
, PyObject
*_args
)
1582 PyObject
*_res
= NULL
;
1585 #ifndef IsValidAppearanceFileType
1586 PyMac_PRECHECK(IsValidAppearanceFileType
);
1588 if (!PyArg_ParseTuple(_args
, "O&",
1589 PyMac_GetOSType
, &fileType
))
1591 _rv
= IsValidAppearanceFileType(fileType
);
1592 _res
= Py_BuildValue("b",
1597 static PyObject
*App_GetThemeBrushAsColor(PyObject
*_self
, PyObject
*_args
)
1599 PyObject
*_res
= NULL
;
1605 #ifndef GetThemeBrushAsColor
1606 PyMac_PRECHECK(GetThemeBrushAsColor
);
1608 if (!PyArg_ParseTuple(_args
, "hhb",
1613 _err
= GetThemeBrushAsColor(inBrush
,
1617 if (_err
!= noErr
) return PyMac_Error(_err
);
1618 _res
= Py_BuildValue("O&",
1619 QdRGB_New
, &outColor
);
1623 static PyObject
*App_GetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
1625 PyObject
*_res
= NULL
;
1627 ThemeTextColor inColor
;
1631 #ifndef GetThemeTextColor
1632 PyMac_PRECHECK(GetThemeTextColor
);
1634 if (!PyArg_ParseTuple(_args
, "hhb",
1639 _err
= GetThemeTextColor(inColor
,
1643 if (_err
!= noErr
) return PyMac_Error(_err
);
1644 _res
= Py_BuildValue("O&",
1645 QdRGB_New
, &outColor
);
1649 static PyObject
*App_GetThemeMetric(PyObject
*_self
, PyObject
*_args
)
1651 PyObject
*_res
= NULL
;
1653 ThemeMetric inMetric
;
1655 #ifndef GetThemeMetric
1656 PyMac_PRECHECK(GetThemeMetric
);
1658 if (!PyArg_ParseTuple(_args
, "l",
1661 _err
= GetThemeMetric(inMetric
,
1663 if (_err
!= noErr
) return PyMac_Error(_err
);
1664 _res
= Py_BuildValue("l",
1669 static PyMethodDef App_methods
[] = {
1670 {"RegisterAppearanceClient", (PyCFunction
)App_RegisterAppearanceClient
, 1,
1671 PyDoc_STR("() -> None")},
1672 {"UnregisterAppearanceClient", (PyCFunction
)App_UnregisterAppearanceClient
, 1,
1673 PyDoc_STR("() -> None")},
1674 {"SetThemePen", (PyCFunction
)App_SetThemePen
, 1,
1675 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1676 {"SetThemeBackground", (PyCFunction
)App_SetThemeBackground
, 1,
1677 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1678 {"SetThemeTextColor", (PyCFunction
)App_SetThemeTextColor
, 1,
1679 PyDoc_STR("(ThemeTextColor inColor, SInt16 inDepth, Boolean inIsColorDevice) -> None")},
1680 {"SetThemeWindowBackground", (PyCFunction
)App_SetThemeWindowBackground
, 1,
1681 PyDoc_STR("(WindowPtr inWindow, ThemeBrush inBrush, Boolean inUpdate) -> None")},
1682 {"DrawThemeWindowHeader", (PyCFunction
)App_DrawThemeWindowHeader
, 1,
1683 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1684 {"DrawThemeWindowListViewHeader", (PyCFunction
)App_DrawThemeWindowListViewHeader
, 1,
1685 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1686 {"DrawThemePlacard", (PyCFunction
)App_DrawThemePlacard
, 1,
1687 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1688 {"DrawThemeEditTextFrame", (PyCFunction
)App_DrawThemeEditTextFrame
, 1,
1689 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1690 {"DrawThemeListBoxFrame", (PyCFunction
)App_DrawThemeListBoxFrame
, 1,
1691 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1692 {"DrawThemeFocusRect", (PyCFunction
)App_DrawThemeFocusRect
, 1,
1693 PyDoc_STR("(Rect inRect, Boolean inHasFocus) -> None")},
1694 {"DrawThemePrimaryGroup", (PyCFunction
)App_DrawThemePrimaryGroup
, 1,
1695 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1696 {"DrawThemeSecondaryGroup", (PyCFunction
)App_DrawThemeSecondaryGroup
, 1,
1697 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1698 {"DrawThemeSeparator", (PyCFunction
)App_DrawThemeSeparator
, 1,
1699 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1700 {"DrawThemeModelessDialogFrame", (PyCFunction
)App_DrawThemeModelessDialogFrame
, 1,
1701 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1702 {"DrawThemeGenericWell", (PyCFunction
)App_DrawThemeGenericWell
, 1,
1703 PyDoc_STR("(Rect inRect, ThemeDrawState inState, Boolean inFillCenter) -> None")},
1704 {"DrawThemeFocusRegion", (PyCFunction
)App_DrawThemeFocusRegion
, 1,
1705 PyDoc_STR("(Boolean inHasFocus) -> None")},
1706 {"IsThemeInColor", (PyCFunction
)App_IsThemeInColor
, 1,
1707 PyDoc_STR("(SInt16 inDepth, Boolean inIsColorDevice) -> (Boolean _rv)")},
1708 {"GetThemeAccentColors", (PyCFunction
)App_GetThemeAccentColors
, 1,
1709 PyDoc_STR("() -> (CTabHandle outColors)")},
1710 {"DrawThemeMenuBarBackground", (PyCFunction
)App_DrawThemeMenuBarBackground
, 1,
1711 PyDoc_STR("(Rect inBounds, ThemeMenuBarState inState, UInt32 inAttributes) -> None")},
1712 {"GetThemeMenuBarHeight", (PyCFunction
)App_GetThemeMenuBarHeight
, 1,
1713 PyDoc_STR("() -> (SInt16 outHeight)")},
1714 {"DrawThemeMenuBackground", (PyCFunction
)App_DrawThemeMenuBackground
, 1,
1715 PyDoc_STR("(Rect inMenuRect, ThemeMenuType inMenuType) -> None")},
1716 {"GetThemeMenuBackgroundRegion", (PyCFunction
)App_GetThemeMenuBackgroundRegion
, 1,
1717 PyDoc_STR("(Rect inMenuRect, ThemeMenuType menuType) -> None")},
1718 {"DrawThemeMenuSeparator", (PyCFunction
)App_DrawThemeMenuSeparator
, 1,
1719 PyDoc_STR("(Rect inItemRect) -> None")},
1720 {"GetThemeMenuSeparatorHeight", (PyCFunction
)App_GetThemeMenuSeparatorHeight
, 1,
1721 PyDoc_STR("() -> (SInt16 outHeight)")},
1722 {"GetThemeMenuItemExtra", (PyCFunction
)App_GetThemeMenuItemExtra
, 1,
1723 PyDoc_STR("(ThemeMenuItemType inItemType) -> (SInt16 outHeight, SInt16 outWidth)")},
1724 {"GetThemeMenuTitleExtra", (PyCFunction
)App_GetThemeMenuTitleExtra
, 1,
1725 PyDoc_STR("(Boolean inIsSquished) -> (SInt16 outWidth)")},
1726 {"DrawThemeTabPane", (PyCFunction
)App_DrawThemeTabPane
, 1,
1727 PyDoc_STR("(Rect inRect, ThemeDrawState inState) -> None")},
1728 {"GetThemeTabRegion", (PyCFunction
)App_GetThemeTabRegion
, 1,
1729 PyDoc_STR("(Rect inRect, ThemeTabStyle inStyle, ThemeTabDirection inDirection) -> None")},
1730 {"SetThemeCursor", (PyCFunction
)App_SetThemeCursor
, 1,
1731 PyDoc_STR("(ThemeCursor inCursor) -> None")},
1732 {"SetAnimatedThemeCursor", (PyCFunction
)App_SetAnimatedThemeCursor
, 1,
1733 PyDoc_STR("(ThemeCursor inCursor, UInt32 inAnimationStep) -> None")},
1734 {"GetThemeScrollBarThumbStyle", (PyCFunction
)App_GetThemeScrollBarThumbStyle
, 1,
1735 PyDoc_STR("() -> (ThemeScrollBarThumbStyle outStyle)")},
1736 {"GetThemeScrollBarArrowStyle", (PyCFunction
)App_GetThemeScrollBarArrowStyle
, 1,
1737 PyDoc_STR("() -> (ThemeScrollBarArrowStyle outStyle)")},
1738 {"GetThemeCheckBoxStyle", (PyCFunction
)App_GetThemeCheckBoxStyle
, 1,
1739 PyDoc_STR("() -> (ThemeCheckBoxStyle outStyle)")},
1740 {"UseThemeFont", (PyCFunction
)App_UseThemeFont
, 1,
1741 PyDoc_STR("(ThemeFontID inFontID, ScriptCode inScript) -> None")},
1742 {"DrawThemeTextBox", (PyCFunction
)App_DrawThemeTextBox
, 1,
1743 PyDoc_STR("(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Rect inBoundingBox, SInt16 inJust) -> None")},
1744 {"TruncateThemeText", (PyCFunction
)App_TruncateThemeText
, 1,
1745 PyDoc_STR("(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)")},
1746 {"GetThemeTextDimensions", (PyCFunction
)App_GetThemeTextDimensions
, 1,
1747 PyDoc_STR("(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Point ioBounds) -> (Point ioBounds, SInt16 outBaseline)")},
1748 {"GetThemeTextShadowOutset", (PyCFunction
)App_GetThemeTextShadowOutset
, 1,
1749 PyDoc_STR("(ThemeFontID inFontID, ThemeDrawState inState) -> (Rect outOutset)")},
1750 {"DrawThemeScrollBarArrows", (PyCFunction
)App_DrawThemeScrollBarArrows
, 1,
1751 PyDoc_STR("(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)")},
1752 {"GetThemeScrollBarTrackRect", (PyCFunction
)App_GetThemeScrollBarTrackRect
, 1,
1753 PyDoc_STR("(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)")},
1754 {"HitTestThemeScrollBarArrows", (PyCFunction
)App_HitTestThemeScrollBarArrows
, 1,
1755 PyDoc_STR("(Rect scrollBarBounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz, Point ptHit) -> (Boolean _rv, Rect trackBounds, ControlPartCode partcode)")},
1756 {"DrawThemeScrollBarDelimiters", (PyCFunction
)App_DrawThemeScrollBarDelimiters
, 1,
1757 PyDoc_STR("(ThemeWindowType flavor, Rect inContRect, ThemeDrawState state, ThemeWindowAttributes attributes) -> None")},
1758 {"DrawThemeButton", (PyCFunction
)App_DrawThemeButton
, 1,
1759 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo, ThemeButtonDrawInfo inPrevInfo, UInt32 inUserData) -> None")},
1760 {"GetThemeButtonRegion", (PyCFunction
)App_GetThemeButtonRegion
, 1,
1761 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo) -> None")},
1762 {"GetThemeButtonContentBounds", (PyCFunction
)App_GetThemeButtonContentBounds
, 1,
1763 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)")},
1764 {"GetThemeButtonBackgroundBounds", (PyCFunction
)App_GetThemeButtonBackgroundBounds
, 1,
1765 PyDoc_STR("(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)")},
1766 {"PlayThemeSound", (PyCFunction
)App_PlayThemeSound
, 1,
1767 PyDoc_STR("(ThemeSoundKind kind) -> None")},
1768 {"BeginThemeDragSound", (PyCFunction
)App_BeginThemeDragSound
, 1,
1769 PyDoc_STR("(ThemeDragSoundKind kind) -> None")},
1770 {"EndThemeDragSound", (PyCFunction
)App_EndThemeDragSound
, 1,
1771 PyDoc_STR("() -> None")},
1772 {"DrawThemeTickMark", (PyCFunction
)App_DrawThemeTickMark
, 1,
1773 PyDoc_STR("(Rect bounds, ThemeDrawState state) -> None")},
1774 {"DrawThemeChasingArrows", (PyCFunction
)App_DrawThemeChasingArrows
, 1,
1775 PyDoc_STR("(Rect bounds, UInt32 index, ThemeDrawState state, UInt32 eraseData) -> None")},
1776 {"DrawThemePopupArrow", (PyCFunction
)App_DrawThemePopupArrow
, 1,
1777 PyDoc_STR("(Rect bounds, ThemeArrowOrientation orientation, ThemePopupArrowSize size, ThemeDrawState state, UInt32 eraseData) -> None")},
1778 {"DrawThemeStandaloneGrowBox", (PyCFunction
)App_DrawThemeStandaloneGrowBox
, 1,
1779 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None")},
1780 {"DrawThemeStandaloneNoGrowBox", (PyCFunction
)App_DrawThemeStandaloneNoGrowBox
, 1,
1781 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None")},
1782 {"GetThemeStandaloneGrowBoxBounds", (PyCFunction
)App_GetThemeStandaloneGrowBoxBounds
, 1,
1783 PyDoc_STR("(Point origin, ThemeGrowDirection growDirection, Boolean isSmall) -> (Rect bounds)")},
1784 {"NormalizeThemeDrawingState", (PyCFunction
)App_NormalizeThemeDrawingState
, 1,
1785 PyDoc_STR("() -> None")},
1786 {"GetThemeDrawingState", (PyCFunction
)App_GetThemeDrawingState
, 1,
1787 PyDoc_STR("() -> (ThemeDrawingState outState)")},
1788 {"ApplyThemeBackground", (PyCFunction
)App_ApplyThemeBackground
, 1,
1789 PyDoc_STR("(ThemeBackgroundKind inKind, Rect bounds, ThemeDrawState inState, SInt16 inDepth, Boolean inColorDev) -> None")},
1790 {"SetThemeTextColorForWindow", (PyCFunction
)App_SetThemeTextColorForWindow
, 1,
1791 PyDoc_STR("(WindowPtr window, Boolean isActive, SInt16 depth, Boolean isColorDev) -> None")},
1792 {"IsValidAppearanceFileType", (PyCFunction
)App_IsValidAppearanceFileType
, 1,
1793 PyDoc_STR("(OSType fileType) -> (Boolean _rv)")},
1794 {"GetThemeBrushAsColor", (PyCFunction
)App_GetThemeBrushAsColor
, 1,
1795 PyDoc_STR("(ThemeBrush inBrush, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)")},
1796 {"GetThemeTextColor", (PyCFunction
)App_GetThemeTextColor
, 1,
1797 PyDoc_STR("(ThemeTextColor inColor, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)")},
1798 {"GetThemeMetric", (PyCFunction
)App_GetThemeMetric
, 1,
1799 PyDoc_STR("(ThemeMetric inMetric) -> (SInt32 outMetric)")},
1814 m
= Py_InitModule("_App", App_methods
);
1815 d
= PyModule_GetDict(m
);
1816 App_Error
= PyMac_GetOSErrException();
1817 if (App_Error
== NULL
||
1818 PyDict_SetItemString(d
, "Error", App_Error
) != 0)
1820 ThemeDrawingState_Type
.ob_type
= &PyType_Type
;
1821 if (PyType_Ready(&ThemeDrawingState_Type
) < 0) return;
1822 Py_INCREF(&ThemeDrawingState_Type
);
1823 PyModule_AddObject(m
, "ThemeDrawingState", (PyObject
*)&ThemeDrawingState_Type
);
1824 /* Backward-compatible name */
1825 Py_INCREF(&ThemeDrawingState_Type
);
1826 PyModule_AddObject(m
, "ThemeDrawingStateType", (PyObject
*)&ThemeDrawingState_Type
);
1829 /* ======================== End module _App ========================= */