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)
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 */
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 "(Boolean inDisposeNow) -> (OSStatus _rv)"},
111 {"DisposeThemeDrawingState", (PyCFunction
)ThemeDrawingStateObj_DisposeThemeDrawingState
, 1,
112 "() -> (OSStatus _rv)"},
116 PyMethodChain ThemeDrawingStateObj_chain
= { ThemeDrawingStateObj_methods
, NULL
};
118 static PyObject
*ThemeDrawingStateObj_getattr(ThemeDrawingStateObject
*self
, char *name
)
120 return Py_FindMethodInChain(&ThemeDrawingStateObj_chain
, (PyObject
*)self
, name
);
123 #define ThemeDrawingStateObj_setattr NULL
125 #define ThemeDrawingStateObj_compare NULL
127 #define ThemeDrawingStateObj_repr NULL
129 #define ThemeDrawingStateObj_hash NULL
131 PyTypeObject ThemeDrawingState_Type
= {
132 PyObject_HEAD_INIT(NULL
)
134 "_App.ThemeDrawingState", /*tp_name*/
135 sizeof(ThemeDrawingStateObject
), /*tp_basicsize*/
138 (destructor
) ThemeDrawingStateObj_dealloc
, /*tp_dealloc*/
140 (getattrfunc
) ThemeDrawingStateObj_getattr
, /*tp_getattr*/
141 (setattrfunc
) ThemeDrawingStateObj_setattr
, /*tp_setattr*/
142 (cmpfunc
) ThemeDrawingStateObj_compare
, /*tp_compare*/
143 (reprfunc
) ThemeDrawingStateObj_repr
, /*tp_repr*/
144 (PyNumberMethods
*)0, /* tp_as_number */
145 (PySequenceMethods
*)0, /* tp_as_sequence */
146 (PyMappingMethods
*)0, /* tp_as_mapping */
147 (hashfunc
) ThemeDrawingStateObj_hash
, /*tp_hash*/
150 /* --------------- End object type ThemeDrawingState ---------------- */
153 static PyObject
*App_RegisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
155 PyObject
*_res
= NULL
;
157 #ifndef RegisterAppearanceClient
158 PyMac_PRECHECK(RegisterAppearanceClient
);
160 if (!PyArg_ParseTuple(_args
, ""))
162 _err
= RegisterAppearanceClient();
163 if (_err
!= noErr
) return PyMac_Error(_err
);
169 static PyObject
*App_UnregisterAppearanceClient(PyObject
*_self
, PyObject
*_args
)
171 PyObject
*_res
= NULL
;
173 #ifndef UnregisterAppearanceClient
174 PyMac_PRECHECK(UnregisterAppearanceClient
);
176 if (!PyArg_ParseTuple(_args
, ""))
178 _err
= UnregisterAppearanceClient();
179 if (_err
!= noErr
) return PyMac_Error(_err
);
185 static PyObject
*App_SetThemePen(PyObject
*_self
, PyObject
*_args
)
187 PyObject
*_res
= NULL
;
191 Boolean inIsColorDevice
;
193 PyMac_PRECHECK(SetThemePen
);
195 if (!PyArg_ParseTuple(_args
, "hhb",
200 _err
= SetThemePen(inBrush
,
203 if (_err
!= noErr
) return PyMac_Error(_err
);
209 static PyObject
*App_SetThemeBackground(PyObject
*_self
, PyObject
*_args
)
211 PyObject
*_res
= NULL
;
215 Boolean inIsColorDevice
;
216 #ifndef SetThemeBackground
217 PyMac_PRECHECK(SetThemeBackground
);
219 if (!PyArg_ParseTuple(_args
, "hhb",
224 _err
= SetThemeBackground(inBrush
,
227 if (_err
!= noErr
) return PyMac_Error(_err
);
233 static PyObject
*App_SetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
235 PyObject
*_res
= NULL
;
237 ThemeTextColor inColor
;
239 Boolean inIsColorDevice
;
240 #ifndef SetThemeTextColor
241 PyMac_PRECHECK(SetThemeTextColor
);
243 if (!PyArg_ParseTuple(_args
, "hhb",
248 _err
= SetThemeTextColor(inColor
,
251 if (_err
!= noErr
) return PyMac_Error(_err
);
257 static PyObject
*App_SetThemeWindowBackground(PyObject
*_self
, PyObject
*_args
)
259 PyObject
*_res
= NULL
;
264 #ifndef SetThemeWindowBackground
265 PyMac_PRECHECK(SetThemeWindowBackground
);
267 if (!PyArg_ParseTuple(_args
, "O&hb",
268 WinObj_Convert
, &inWindow
,
272 _err
= SetThemeWindowBackground(inWindow
,
275 if (_err
!= noErr
) return PyMac_Error(_err
);
281 static PyObject
*App_DrawThemeWindowHeader(PyObject
*_self
, PyObject
*_args
)
283 PyObject
*_res
= NULL
;
286 ThemeDrawState inState
;
287 #ifndef DrawThemeWindowHeader
288 PyMac_PRECHECK(DrawThemeWindowHeader
);
290 if (!PyArg_ParseTuple(_args
, "O&l",
291 PyMac_GetRect
, &inRect
,
294 _err
= DrawThemeWindowHeader(&inRect
,
296 if (_err
!= noErr
) return PyMac_Error(_err
);
302 static PyObject
*App_DrawThemeWindowListViewHeader(PyObject
*_self
, PyObject
*_args
)
304 PyObject
*_res
= NULL
;
307 ThemeDrawState inState
;
308 #ifndef DrawThemeWindowListViewHeader
309 PyMac_PRECHECK(DrawThemeWindowListViewHeader
);
311 if (!PyArg_ParseTuple(_args
, "O&l",
312 PyMac_GetRect
, &inRect
,
315 _err
= DrawThemeWindowListViewHeader(&inRect
,
317 if (_err
!= noErr
) return PyMac_Error(_err
);
323 static PyObject
*App_DrawThemePlacard(PyObject
*_self
, PyObject
*_args
)
325 PyObject
*_res
= NULL
;
328 ThemeDrawState inState
;
329 #ifndef DrawThemePlacard
330 PyMac_PRECHECK(DrawThemePlacard
);
332 if (!PyArg_ParseTuple(_args
, "O&l",
333 PyMac_GetRect
, &inRect
,
336 _err
= DrawThemePlacard(&inRect
,
338 if (_err
!= noErr
) return PyMac_Error(_err
);
344 static PyObject
*App_DrawThemeEditTextFrame(PyObject
*_self
, PyObject
*_args
)
346 PyObject
*_res
= NULL
;
349 ThemeDrawState inState
;
350 #ifndef DrawThemeEditTextFrame
351 PyMac_PRECHECK(DrawThemeEditTextFrame
);
353 if (!PyArg_ParseTuple(_args
, "O&l",
354 PyMac_GetRect
, &inRect
,
357 _err
= DrawThemeEditTextFrame(&inRect
,
359 if (_err
!= noErr
) return PyMac_Error(_err
);
365 static PyObject
*App_DrawThemeListBoxFrame(PyObject
*_self
, PyObject
*_args
)
367 PyObject
*_res
= NULL
;
370 ThemeDrawState inState
;
371 #ifndef DrawThemeListBoxFrame
372 PyMac_PRECHECK(DrawThemeListBoxFrame
);
374 if (!PyArg_ParseTuple(_args
, "O&l",
375 PyMac_GetRect
, &inRect
,
378 _err
= DrawThemeListBoxFrame(&inRect
,
380 if (_err
!= noErr
) return PyMac_Error(_err
);
386 static PyObject
*App_DrawThemeFocusRect(PyObject
*_self
, PyObject
*_args
)
388 PyObject
*_res
= NULL
;
392 #ifndef DrawThemeFocusRect
393 PyMac_PRECHECK(DrawThemeFocusRect
);
395 if (!PyArg_ParseTuple(_args
, "O&b",
396 PyMac_GetRect
, &inRect
,
399 _err
= DrawThemeFocusRect(&inRect
,
401 if (_err
!= noErr
) return PyMac_Error(_err
);
407 static PyObject
*App_DrawThemePrimaryGroup(PyObject
*_self
, PyObject
*_args
)
409 PyObject
*_res
= NULL
;
412 ThemeDrawState inState
;
413 #ifndef DrawThemePrimaryGroup
414 PyMac_PRECHECK(DrawThemePrimaryGroup
);
416 if (!PyArg_ParseTuple(_args
, "O&l",
417 PyMac_GetRect
, &inRect
,
420 _err
= DrawThemePrimaryGroup(&inRect
,
422 if (_err
!= noErr
) return PyMac_Error(_err
);
428 static PyObject
*App_DrawThemeSecondaryGroup(PyObject
*_self
, PyObject
*_args
)
430 PyObject
*_res
= NULL
;
433 ThemeDrawState inState
;
434 #ifndef DrawThemeSecondaryGroup
435 PyMac_PRECHECK(DrawThemeSecondaryGroup
);
437 if (!PyArg_ParseTuple(_args
, "O&l",
438 PyMac_GetRect
, &inRect
,
441 _err
= DrawThemeSecondaryGroup(&inRect
,
443 if (_err
!= noErr
) return PyMac_Error(_err
);
449 static PyObject
*App_DrawThemeSeparator(PyObject
*_self
, PyObject
*_args
)
451 PyObject
*_res
= NULL
;
454 ThemeDrawState inState
;
455 #ifndef DrawThemeSeparator
456 PyMac_PRECHECK(DrawThemeSeparator
);
458 if (!PyArg_ParseTuple(_args
, "O&l",
459 PyMac_GetRect
, &inRect
,
462 _err
= DrawThemeSeparator(&inRect
,
464 if (_err
!= noErr
) return PyMac_Error(_err
);
470 static PyObject
*App_DrawThemeModelessDialogFrame(PyObject
*_self
, PyObject
*_args
)
472 PyObject
*_res
= NULL
;
475 ThemeDrawState inState
;
476 #ifndef DrawThemeModelessDialogFrame
477 PyMac_PRECHECK(DrawThemeModelessDialogFrame
);
479 if (!PyArg_ParseTuple(_args
, "O&l",
480 PyMac_GetRect
, &inRect
,
483 _err
= DrawThemeModelessDialogFrame(&inRect
,
485 if (_err
!= noErr
) return PyMac_Error(_err
);
491 static PyObject
*App_DrawThemeGenericWell(PyObject
*_self
, PyObject
*_args
)
493 PyObject
*_res
= NULL
;
496 ThemeDrawState inState
;
497 Boolean inFillCenter
;
498 #ifndef DrawThemeGenericWell
499 PyMac_PRECHECK(DrawThemeGenericWell
);
501 if (!PyArg_ParseTuple(_args
, "O&lb",
502 PyMac_GetRect
, &inRect
,
506 _err
= DrawThemeGenericWell(&inRect
,
509 if (_err
!= noErr
) return PyMac_Error(_err
);
515 static PyObject
*App_DrawThemeFocusRegion(PyObject
*_self
, PyObject
*_args
)
517 PyObject
*_res
= NULL
;
520 #ifndef DrawThemeFocusRegion
521 PyMac_PRECHECK(DrawThemeFocusRegion
);
523 if (!PyArg_ParseTuple(_args
, "b",
526 _err
= DrawThemeFocusRegion((RgnHandle
)0,
528 if (_err
!= noErr
) return PyMac_Error(_err
);
534 static PyObject
*App_IsThemeInColor(PyObject
*_self
, PyObject
*_args
)
536 PyObject
*_res
= NULL
;
539 Boolean inIsColorDevice
;
540 #ifndef IsThemeInColor
541 PyMac_PRECHECK(IsThemeInColor
);
543 if (!PyArg_ParseTuple(_args
, "hb",
547 _rv
= IsThemeInColor(inDepth
,
549 _res
= Py_BuildValue("b",
554 static PyObject
*App_GetThemeAccentColors(PyObject
*_self
, PyObject
*_args
)
556 PyObject
*_res
= NULL
;
558 CTabHandle outColors
;
559 #ifndef GetThemeAccentColors
560 PyMac_PRECHECK(GetThemeAccentColors
);
562 if (!PyArg_ParseTuple(_args
, ""))
564 _err
= GetThemeAccentColors(&outColors
);
565 if (_err
!= noErr
) return PyMac_Error(_err
);
566 _res
= Py_BuildValue("O&",
567 ResObj_New
, outColors
);
571 static PyObject
*App_DrawThemeMenuBarBackground(PyObject
*_self
, PyObject
*_args
)
573 PyObject
*_res
= NULL
;
576 ThemeMenuBarState inState
;
578 #ifndef DrawThemeMenuBarBackground
579 PyMac_PRECHECK(DrawThemeMenuBarBackground
);
581 if (!PyArg_ParseTuple(_args
, "O&Hl",
582 PyMac_GetRect
, &inBounds
,
586 _err
= DrawThemeMenuBarBackground(&inBounds
,
589 if (_err
!= noErr
) return PyMac_Error(_err
);
595 static PyObject
*App_GetThemeMenuBarHeight(PyObject
*_self
, PyObject
*_args
)
597 PyObject
*_res
= NULL
;
600 #ifndef GetThemeMenuBarHeight
601 PyMac_PRECHECK(GetThemeMenuBarHeight
);
603 if (!PyArg_ParseTuple(_args
, ""))
605 _err
= GetThemeMenuBarHeight(&outHeight
);
606 if (_err
!= noErr
) return PyMac_Error(_err
);
607 _res
= Py_BuildValue("h",
612 static PyObject
*App_DrawThemeMenuBackground(PyObject
*_self
, PyObject
*_args
)
614 PyObject
*_res
= NULL
;
617 ThemeMenuType inMenuType
;
618 #ifndef DrawThemeMenuBackground
619 PyMac_PRECHECK(DrawThemeMenuBackground
);
621 if (!PyArg_ParseTuple(_args
, "O&H",
622 PyMac_GetRect
, &inMenuRect
,
625 _err
= DrawThemeMenuBackground(&inMenuRect
,
627 if (_err
!= noErr
) return PyMac_Error(_err
);
633 static PyObject
*App_GetThemeMenuBackgroundRegion(PyObject
*_self
, PyObject
*_args
)
635 PyObject
*_res
= NULL
;
638 ThemeMenuType menuType
;
639 #ifndef GetThemeMenuBackgroundRegion
640 PyMac_PRECHECK(GetThemeMenuBackgroundRegion
);
642 if (!PyArg_ParseTuple(_args
, "O&H",
643 PyMac_GetRect
, &inMenuRect
,
646 _err
= GetThemeMenuBackgroundRegion(&inMenuRect
,
649 if (_err
!= noErr
) return PyMac_Error(_err
);
655 static PyObject
*App_DrawThemeMenuSeparator(PyObject
*_self
, PyObject
*_args
)
657 PyObject
*_res
= NULL
;
660 #ifndef DrawThemeMenuSeparator
661 PyMac_PRECHECK(DrawThemeMenuSeparator
);
663 if (!PyArg_ParseTuple(_args
, "O&",
664 PyMac_GetRect
, &inItemRect
))
666 _err
= DrawThemeMenuSeparator(&inItemRect
);
667 if (_err
!= noErr
) return PyMac_Error(_err
);
673 static PyObject
*App_GetThemeMenuSeparatorHeight(PyObject
*_self
, PyObject
*_args
)
675 PyObject
*_res
= NULL
;
678 #ifndef GetThemeMenuSeparatorHeight
679 PyMac_PRECHECK(GetThemeMenuSeparatorHeight
);
681 if (!PyArg_ParseTuple(_args
, ""))
683 _err
= GetThemeMenuSeparatorHeight(&outHeight
);
684 if (_err
!= noErr
) return PyMac_Error(_err
);
685 _res
= Py_BuildValue("h",
690 static PyObject
*App_GetThemeMenuItemExtra(PyObject
*_self
, PyObject
*_args
)
692 PyObject
*_res
= NULL
;
694 ThemeMenuItemType inItemType
;
697 #ifndef GetThemeMenuItemExtra
698 PyMac_PRECHECK(GetThemeMenuItemExtra
);
700 if (!PyArg_ParseTuple(_args
, "H",
703 _err
= GetThemeMenuItemExtra(inItemType
,
706 if (_err
!= noErr
) return PyMac_Error(_err
);
707 _res
= Py_BuildValue("hh",
713 static PyObject
*App_GetThemeMenuTitleExtra(PyObject
*_self
, PyObject
*_args
)
715 PyObject
*_res
= NULL
;
718 Boolean inIsSquished
;
719 #ifndef GetThemeMenuTitleExtra
720 PyMac_PRECHECK(GetThemeMenuTitleExtra
);
722 if (!PyArg_ParseTuple(_args
, "b",
725 _err
= GetThemeMenuTitleExtra(&outWidth
,
727 if (_err
!= noErr
) return PyMac_Error(_err
);
728 _res
= Py_BuildValue("h",
733 static PyObject
*App_DrawThemeTabPane(PyObject
*_self
, PyObject
*_args
)
735 PyObject
*_res
= NULL
;
738 ThemeDrawState inState
;
739 #ifndef DrawThemeTabPane
740 PyMac_PRECHECK(DrawThemeTabPane
);
742 if (!PyArg_ParseTuple(_args
, "O&l",
743 PyMac_GetRect
, &inRect
,
746 _err
= DrawThemeTabPane(&inRect
,
748 if (_err
!= noErr
) return PyMac_Error(_err
);
754 static PyObject
*App_GetThemeTabRegion(PyObject
*_self
, PyObject
*_args
)
756 PyObject
*_res
= NULL
;
759 ThemeTabStyle inStyle
;
760 ThemeTabDirection inDirection
;
761 #ifndef GetThemeTabRegion
762 PyMac_PRECHECK(GetThemeTabRegion
);
764 if (!PyArg_ParseTuple(_args
, "O&HH",
765 PyMac_GetRect
, &inRect
,
769 _err
= GetThemeTabRegion(&inRect
,
773 if (_err
!= noErr
) return PyMac_Error(_err
);
779 static PyObject
*App_SetThemeCursor(PyObject
*_self
, PyObject
*_args
)
781 PyObject
*_res
= NULL
;
783 ThemeCursor inCursor
;
784 #ifndef SetThemeCursor
785 PyMac_PRECHECK(SetThemeCursor
);
787 if (!PyArg_ParseTuple(_args
, "l",
790 _err
= SetThemeCursor(inCursor
);
791 if (_err
!= noErr
) return PyMac_Error(_err
);
797 static PyObject
*App_SetAnimatedThemeCursor(PyObject
*_self
, PyObject
*_args
)
799 PyObject
*_res
= NULL
;
801 ThemeCursor inCursor
;
802 UInt32 inAnimationStep
;
803 #ifndef SetAnimatedThemeCursor
804 PyMac_PRECHECK(SetAnimatedThemeCursor
);
806 if (!PyArg_ParseTuple(_args
, "ll",
810 _err
= SetAnimatedThemeCursor(inCursor
,
812 if (_err
!= noErr
) return PyMac_Error(_err
);
818 static PyObject
*App_GetThemeScrollBarThumbStyle(PyObject
*_self
, PyObject
*_args
)
820 PyObject
*_res
= NULL
;
822 ThemeScrollBarThumbStyle outStyle
;
823 #ifndef GetThemeScrollBarThumbStyle
824 PyMac_PRECHECK(GetThemeScrollBarThumbStyle
);
826 if (!PyArg_ParseTuple(_args
, ""))
828 _err
= GetThemeScrollBarThumbStyle(&outStyle
);
829 if (_err
!= noErr
) return PyMac_Error(_err
);
830 _res
= Py_BuildValue("H",
835 static PyObject
*App_GetThemeScrollBarArrowStyle(PyObject
*_self
, PyObject
*_args
)
837 PyObject
*_res
= NULL
;
839 ThemeScrollBarArrowStyle outStyle
;
840 #ifndef GetThemeScrollBarArrowStyle
841 PyMac_PRECHECK(GetThemeScrollBarArrowStyle
);
843 if (!PyArg_ParseTuple(_args
, ""))
845 _err
= GetThemeScrollBarArrowStyle(&outStyle
);
846 if (_err
!= noErr
) return PyMac_Error(_err
);
847 _res
= Py_BuildValue("H",
852 static PyObject
*App_GetThemeCheckBoxStyle(PyObject
*_self
, PyObject
*_args
)
854 PyObject
*_res
= NULL
;
856 ThemeCheckBoxStyle outStyle
;
857 #ifndef GetThemeCheckBoxStyle
858 PyMac_PRECHECK(GetThemeCheckBoxStyle
);
860 if (!PyArg_ParseTuple(_args
, ""))
862 _err
= GetThemeCheckBoxStyle(&outStyle
);
863 if (_err
!= noErr
) return PyMac_Error(_err
);
864 _res
= Py_BuildValue("H",
869 static PyObject
*App_UseThemeFont(PyObject
*_self
, PyObject
*_args
)
871 PyObject
*_res
= NULL
;
873 ThemeFontID inFontID
;
876 PyMac_PRECHECK(UseThemeFont
);
878 if (!PyArg_ParseTuple(_args
, "Hh",
882 _err
= UseThemeFont(inFontID
,
884 if (_err
!= noErr
) return PyMac_Error(_err
);
890 #if TARGET_API_MAC_CARBON
892 static PyObject
*App_DrawThemeTextBox(PyObject
*_self
, PyObject
*_args
)
894 PyObject
*_res
= NULL
;
896 CFStringRef inString
;
897 ThemeFontID inFontID
;
898 ThemeDrawState inState
;
899 Boolean inWrapToWidth
;
902 #ifndef DrawThemeTextBox
903 PyMac_PRECHECK(DrawThemeTextBox
);
905 if (!PyArg_ParseTuple(_args
, "O&HlbO&h",
906 CFStringRefObj_Convert
, &inString
,
910 PyMac_GetRect
, &inBoundingBox
,
913 _err
= DrawThemeTextBox(inString
,
920 if (_err
!= noErr
) return PyMac_Error(_err
);
927 #if TARGET_API_MAC_CARBON
929 static PyObject
*App_TruncateThemeText(PyObject
*_self
, PyObject
*_args
)
931 PyObject
*_res
= NULL
;
933 CFMutableStringRef inString
;
934 ThemeFontID inFontID
;
935 ThemeDrawState inState
;
936 SInt16 inPixelWidthLimit
;
937 TruncCode inTruncWhere
;
938 Boolean outTruncated
;
939 #ifndef TruncateThemeText
940 PyMac_PRECHECK(TruncateThemeText
);
942 if (!PyArg_ParseTuple(_args
, "O&Hlhh",
943 CFMutableStringRefObj_Convert
, &inString
,
949 _err
= TruncateThemeText(inString
,
955 if (_err
!= noErr
) return PyMac_Error(_err
);
956 _res
= Py_BuildValue("b",
962 #if TARGET_API_MAC_CARBON
964 static PyObject
*App_GetThemeTextDimensions(PyObject
*_self
, PyObject
*_args
)
966 PyObject
*_res
= NULL
;
968 CFStringRef inString
;
969 ThemeFontID inFontID
;
970 ThemeDrawState inState
;
971 Boolean inWrapToWidth
;
974 #ifndef GetThemeTextDimensions
975 PyMac_PRECHECK(GetThemeTextDimensions
);
977 if (!PyArg_ParseTuple(_args
, "O&HlbO&",
978 CFStringRefObj_Convert
, &inString
,
982 PyMac_GetPoint
, &ioBounds
))
984 _err
= GetThemeTextDimensions(inString
,
990 if (_err
!= noErr
) return PyMac_Error(_err
);
991 _res
= Py_BuildValue("O&h",
992 PyMac_BuildPoint
, ioBounds
,
998 #if TARGET_API_MAC_CARBON
1000 static PyObject
*App_GetThemeTextShadowOutset(PyObject
*_self
, PyObject
*_args
)
1002 PyObject
*_res
= NULL
;
1004 ThemeFontID inFontID
;
1005 ThemeDrawState inState
;
1007 #ifndef GetThemeTextShadowOutset
1008 PyMac_PRECHECK(GetThemeTextShadowOutset
);
1010 if (!PyArg_ParseTuple(_args
, "Hl",
1014 _err
= GetThemeTextShadowOutset(inFontID
,
1017 if (_err
!= noErr
) return PyMac_Error(_err
);
1018 _res
= Py_BuildValue("O&",
1019 PyMac_BuildRect
, &outOutset
);
1024 static PyObject
*App_DrawThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1026 PyObject
*_res
= NULL
;
1029 ThemeTrackEnableState enableState
;
1030 ThemeTrackPressState pressState
;
1033 #ifndef DrawThemeScrollBarArrows
1034 PyMac_PRECHECK(DrawThemeScrollBarArrows
);
1036 if (!PyArg_ParseTuple(_args
, "O&bbb",
1037 PyMac_GetRect
, &bounds
,
1042 _err
= DrawThemeScrollBarArrows(&bounds
,
1047 if (_err
!= noErr
) return PyMac_Error(_err
);
1048 _res
= Py_BuildValue("O&",
1049 PyMac_BuildRect
, &trackBounds
);
1053 static PyObject
*App_GetThemeScrollBarTrackRect(PyObject
*_self
, PyObject
*_args
)
1055 PyObject
*_res
= NULL
;
1058 ThemeTrackEnableState enableState
;
1059 ThemeTrackPressState pressState
;
1062 #ifndef GetThemeScrollBarTrackRect
1063 PyMac_PRECHECK(GetThemeScrollBarTrackRect
);
1065 if (!PyArg_ParseTuple(_args
, "O&bbb",
1066 PyMac_GetRect
, &bounds
,
1071 _err
= GetThemeScrollBarTrackRect(&bounds
,
1076 if (_err
!= noErr
) return PyMac_Error(_err
);
1077 _res
= Py_BuildValue("O&",
1078 PyMac_BuildRect
, &trackBounds
);
1082 static PyObject
*App_HitTestThemeScrollBarArrows(PyObject
*_self
, PyObject
*_args
)
1084 PyObject
*_res
= NULL
;
1086 Rect scrollBarBounds
;
1087 ThemeTrackEnableState enableState
;
1088 ThemeTrackPressState pressState
;
1092 ControlPartCode partcode
;
1093 #ifndef HitTestThemeScrollBarArrows
1094 PyMac_PRECHECK(HitTestThemeScrollBarArrows
);
1096 if (!PyArg_ParseTuple(_args
, "O&bbbO&",
1097 PyMac_GetRect
, &scrollBarBounds
,
1101 PyMac_GetPoint
, &ptHit
))
1103 _rv
= HitTestThemeScrollBarArrows(&scrollBarBounds
,
1110 _res
= Py_BuildValue("bO&h",
1112 PyMac_BuildRect
, &trackBounds
,
1117 static PyObject
*App_DrawThemeScrollBarDelimiters(PyObject
*_self
, PyObject
*_args
)
1119 PyObject
*_res
= NULL
;
1121 ThemeWindowType flavor
;
1123 ThemeDrawState state
;
1124 ThemeWindowAttributes attributes
;
1125 #ifndef DrawThemeScrollBarDelimiters
1126 PyMac_PRECHECK(DrawThemeScrollBarDelimiters
);
1128 if (!PyArg_ParseTuple(_args
, "HO&ll",
1130 PyMac_GetRect
, &inContRect
,
1134 _err
= DrawThemeScrollBarDelimiters(flavor
,
1138 if (_err
!= noErr
) return PyMac_Error(_err
);
1144 static PyObject
*App_DrawThemeButton(PyObject
*_self
, PyObject
*_args
)
1146 PyObject
*_res
= NULL
;
1150 ThemeButtonDrawInfo inNewInfo
;
1151 ThemeButtonDrawInfo inPrevInfo
;
1153 #ifndef DrawThemeButton
1154 PyMac_PRECHECK(DrawThemeButton
);
1156 if (!PyArg_ParseTuple(_args
, "O&HO&O&l",
1157 PyMac_GetRect
, &inBounds
,
1159 ThemeButtonDrawInfo_Convert
, &inNewInfo
,
1160 ThemeButtonDrawInfo_Convert
, &inPrevInfo
,
1163 _err
= DrawThemeButton(&inBounds
,
1170 if (_err
!= noErr
) return PyMac_Error(_err
);
1176 static PyObject
*App_GetThemeButtonRegion(PyObject
*_self
, PyObject
*_args
)
1178 PyObject
*_res
= NULL
;
1182 ThemeButtonDrawInfo inNewInfo
;
1183 #ifndef GetThemeButtonRegion
1184 PyMac_PRECHECK(GetThemeButtonRegion
);
1186 if (!PyArg_ParseTuple(_args
, "O&HO&",
1187 PyMac_GetRect
, &inBounds
,
1189 ThemeButtonDrawInfo_Convert
, &inNewInfo
))
1191 _err
= GetThemeButtonRegion(&inBounds
,
1195 if (_err
!= noErr
) return PyMac_Error(_err
);
1201 static PyObject
*App_GetThemeButtonContentBounds(PyObject
*_self
, PyObject
*_args
)
1203 PyObject
*_res
= NULL
;
1207 ThemeButtonDrawInfo inDrawInfo
;
1209 #ifndef GetThemeButtonContentBounds
1210 PyMac_PRECHECK(GetThemeButtonContentBounds
);
1212 if (!PyArg_ParseTuple(_args
, "O&HO&",
1213 PyMac_GetRect
, &inBounds
,
1215 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1217 _err
= GetThemeButtonContentBounds(&inBounds
,
1221 if (_err
!= noErr
) return PyMac_Error(_err
);
1222 _res
= Py_BuildValue("O&",
1223 PyMac_BuildRect
, &outBounds
);
1227 static PyObject
*App_GetThemeButtonBackgroundBounds(PyObject
*_self
, PyObject
*_args
)
1229 PyObject
*_res
= NULL
;
1233 ThemeButtonDrawInfo inDrawInfo
;
1235 #ifndef GetThemeButtonBackgroundBounds
1236 PyMac_PRECHECK(GetThemeButtonBackgroundBounds
);
1238 if (!PyArg_ParseTuple(_args
, "O&HO&",
1239 PyMac_GetRect
, &inBounds
,
1241 ThemeButtonDrawInfo_Convert
, &inDrawInfo
))
1243 _err
= GetThemeButtonBackgroundBounds(&inBounds
,
1247 if (_err
!= noErr
) return PyMac_Error(_err
);
1248 _res
= Py_BuildValue("O&",
1249 PyMac_BuildRect
, &outBounds
);
1253 static PyObject
*App_PlayThemeSound(PyObject
*_self
, PyObject
*_args
)
1255 PyObject
*_res
= NULL
;
1257 ThemeSoundKind kind
;
1258 #ifndef PlayThemeSound
1259 PyMac_PRECHECK(PlayThemeSound
);
1261 if (!PyArg_ParseTuple(_args
, "O&",
1262 PyMac_GetOSType
, &kind
))
1264 _err
= PlayThemeSound(kind
);
1265 if (_err
!= noErr
) return PyMac_Error(_err
);
1271 static PyObject
*App_BeginThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1273 PyObject
*_res
= NULL
;
1275 ThemeDragSoundKind kind
;
1276 #ifndef BeginThemeDragSound
1277 PyMac_PRECHECK(BeginThemeDragSound
);
1279 if (!PyArg_ParseTuple(_args
, "O&",
1280 PyMac_GetOSType
, &kind
))
1282 _err
= BeginThemeDragSound(kind
);
1283 if (_err
!= noErr
) return PyMac_Error(_err
);
1289 static PyObject
*App_EndThemeDragSound(PyObject
*_self
, PyObject
*_args
)
1291 PyObject
*_res
= NULL
;
1293 #ifndef EndThemeDragSound
1294 PyMac_PRECHECK(EndThemeDragSound
);
1296 if (!PyArg_ParseTuple(_args
, ""))
1298 _err
= EndThemeDragSound();
1299 if (_err
!= noErr
) return PyMac_Error(_err
);
1305 static PyObject
*App_DrawThemeTickMark(PyObject
*_self
, PyObject
*_args
)
1307 PyObject
*_res
= NULL
;
1310 ThemeDrawState state
;
1311 #ifndef DrawThemeTickMark
1312 PyMac_PRECHECK(DrawThemeTickMark
);
1314 if (!PyArg_ParseTuple(_args
, "O&l",
1315 PyMac_GetRect
, &bounds
,
1318 _err
= DrawThemeTickMark(&bounds
,
1320 if (_err
!= noErr
) return PyMac_Error(_err
);
1326 static PyObject
*App_DrawThemeChasingArrows(PyObject
*_self
, PyObject
*_args
)
1328 PyObject
*_res
= NULL
;
1332 ThemeDrawState state
;
1334 #ifndef DrawThemeChasingArrows
1335 PyMac_PRECHECK(DrawThemeChasingArrows
);
1337 if (!PyArg_ParseTuple(_args
, "O&lll",
1338 PyMac_GetRect
, &bounds
,
1343 _err
= DrawThemeChasingArrows(&bounds
,
1348 if (_err
!= noErr
) return PyMac_Error(_err
);
1354 static PyObject
*App_DrawThemePopupArrow(PyObject
*_self
, PyObject
*_args
)
1356 PyObject
*_res
= NULL
;
1359 ThemeArrowOrientation orientation
;
1360 ThemePopupArrowSize size
;
1361 ThemeDrawState state
;
1363 #ifndef DrawThemePopupArrow
1364 PyMac_PRECHECK(DrawThemePopupArrow
);
1366 if (!PyArg_ParseTuple(_args
, "O&HHll",
1367 PyMac_GetRect
, &bounds
,
1373 _err
= DrawThemePopupArrow(&bounds
,
1379 if (_err
!= noErr
) return PyMac_Error(_err
);
1385 static PyObject
*App_DrawThemeStandaloneGrowBox(PyObject
*_self
, PyObject
*_args
)
1387 PyObject
*_res
= NULL
;
1390 ThemeGrowDirection growDirection
;
1392 ThemeDrawState state
;
1393 #ifndef DrawThemeStandaloneGrowBox
1394 PyMac_PRECHECK(DrawThemeStandaloneGrowBox
);
1396 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1397 PyMac_GetPoint
, &origin
,
1402 _err
= DrawThemeStandaloneGrowBox(origin
,
1406 if (_err
!= noErr
) return PyMac_Error(_err
);
1412 static PyObject
*App_DrawThemeStandaloneNoGrowBox(PyObject
*_self
, PyObject
*_args
)
1414 PyObject
*_res
= NULL
;
1417 ThemeGrowDirection growDirection
;
1419 ThemeDrawState state
;
1420 #ifndef DrawThemeStandaloneNoGrowBox
1421 PyMac_PRECHECK(DrawThemeStandaloneNoGrowBox
);
1423 if (!PyArg_ParseTuple(_args
, "O&Hbl",
1424 PyMac_GetPoint
, &origin
,
1429 _err
= DrawThemeStandaloneNoGrowBox(origin
,
1433 if (_err
!= noErr
) return PyMac_Error(_err
);
1439 static PyObject
*App_GetThemeStandaloneGrowBoxBounds(PyObject
*_self
, PyObject
*_args
)
1441 PyObject
*_res
= NULL
;
1444 ThemeGrowDirection growDirection
;
1447 #ifndef GetThemeStandaloneGrowBoxBounds
1448 PyMac_PRECHECK(GetThemeStandaloneGrowBoxBounds
);
1450 if (!PyArg_ParseTuple(_args
, "O&Hb",
1451 PyMac_GetPoint
, &origin
,
1455 _err
= GetThemeStandaloneGrowBoxBounds(origin
,
1459 if (_err
!= noErr
) return PyMac_Error(_err
);
1460 _res
= Py_BuildValue("O&",
1461 PyMac_BuildRect
, &bounds
);
1465 static PyObject
*App_NormalizeThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1467 PyObject
*_res
= NULL
;
1469 #ifndef NormalizeThemeDrawingState
1470 PyMac_PRECHECK(NormalizeThemeDrawingState
);
1472 if (!PyArg_ParseTuple(_args
, ""))
1474 _err
= NormalizeThemeDrawingState();
1475 if (_err
!= noErr
) return PyMac_Error(_err
);
1481 static PyObject
*App_GetThemeDrawingState(PyObject
*_self
, PyObject
*_args
)
1483 PyObject
*_res
= NULL
;
1485 ThemeDrawingState outState
;
1486 #ifndef GetThemeDrawingState
1487 PyMac_PRECHECK(GetThemeDrawingState
);
1489 if (!PyArg_ParseTuple(_args
, ""))
1491 _err
= GetThemeDrawingState(&outState
);
1492 if (_err
!= noErr
) return PyMac_Error(_err
);
1493 _res
= Py_BuildValue("O&",
1494 ThemeDrawingStateObj_New
, outState
);
1498 static PyObject
*App_ApplyThemeBackground(PyObject
*_self
, PyObject
*_args
)
1500 PyObject
*_res
= NULL
;
1502 ThemeBackgroundKind inKind
;
1504 ThemeDrawState inState
;
1507 #ifndef ApplyThemeBackground
1508 PyMac_PRECHECK(ApplyThemeBackground
);
1510 if (!PyArg_ParseTuple(_args
, "lO&lhb",
1512 PyMac_GetRect
, &bounds
,
1517 _err
= ApplyThemeBackground(inKind
,
1522 if (_err
!= noErr
) return PyMac_Error(_err
);
1528 static PyObject
*App_SetThemeTextColorForWindow(PyObject
*_self
, PyObject
*_args
)
1530 PyObject
*_res
= NULL
;
1536 #ifndef SetThemeTextColorForWindow
1537 PyMac_PRECHECK(SetThemeTextColorForWindow
);
1539 if (!PyArg_ParseTuple(_args
, "O&bhb",
1540 WinObj_Convert
, &window
,
1545 _err
= SetThemeTextColorForWindow(window
,
1549 if (_err
!= noErr
) return PyMac_Error(_err
);
1555 static PyObject
*App_IsValidAppearanceFileType(PyObject
*_self
, PyObject
*_args
)
1557 PyObject
*_res
= NULL
;
1560 #ifndef IsValidAppearanceFileType
1561 PyMac_PRECHECK(IsValidAppearanceFileType
);
1563 if (!PyArg_ParseTuple(_args
, "O&",
1564 PyMac_GetOSType
, &fileType
))
1566 _rv
= IsValidAppearanceFileType(fileType
);
1567 _res
= Py_BuildValue("b",
1572 static PyObject
*App_GetThemeBrushAsColor(PyObject
*_self
, PyObject
*_args
)
1574 PyObject
*_res
= NULL
;
1580 #ifndef GetThemeBrushAsColor
1581 PyMac_PRECHECK(GetThemeBrushAsColor
);
1583 if (!PyArg_ParseTuple(_args
, "hhb",
1588 _err
= GetThemeBrushAsColor(inBrush
,
1592 if (_err
!= noErr
) return PyMac_Error(_err
);
1593 _res
= Py_BuildValue("O&",
1594 QdRGB_New
, &outColor
);
1598 static PyObject
*App_GetThemeTextColor(PyObject
*_self
, PyObject
*_args
)
1600 PyObject
*_res
= NULL
;
1602 ThemeTextColor inColor
;
1606 #ifndef GetThemeTextColor
1607 PyMac_PRECHECK(GetThemeTextColor
);
1609 if (!PyArg_ParseTuple(_args
, "hhb",
1614 _err
= GetThemeTextColor(inColor
,
1618 if (_err
!= noErr
) return PyMac_Error(_err
);
1619 _res
= Py_BuildValue("O&",
1620 QdRGB_New
, &outColor
);
1624 #if TARGET_API_MAC_CARBON
1626 static PyObject
*App_GetThemeMetric(PyObject
*_self
, PyObject
*_args
)
1628 PyObject
*_res
= NULL
;
1630 ThemeMetric inMetric
;
1632 #ifndef GetThemeMetric
1633 PyMac_PRECHECK(GetThemeMetric
);
1635 if (!PyArg_ParseTuple(_args
, "l",
1638 _err
= GetThemeMetric(inMetric
,
1640 if (_err
!= noErr
) return PyMac_Error(_err
);
1641 _res
= Py_BuildValue("l",
1647 static PyMethodDef App_methods
[] = {
1648 {"RegisterAppearanceClient", (PyCFunction
)App_RegisterAppearanceClient
, 1,
1650 {"UnregisterAppearanceClient", (PyCFunction
)App_UnregisterAppearanceClient
, 1,
1652 {"SetThemePen", (PyCFunction
)App_SetThemePen
, 1,
1653 "(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
1654 {"SetThemeBackground", (PyCFunction
)App_SetThemeBackground
, 1,
1655 "(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
1656 {"SetThemeTextColor", (PyCFunction
)App_SetThemeTextColor
, 1,
1657 "(ThemeTextColor inColor, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
1658 {"SetThemeWindowBackground", (PyCFunction
)App_SetThemeWindowBackground
, 1,
1659 "(WindowPtr inWindow, ThemeBrush inBrush, Boolean inUpdate) -> None"},
1660 {"DrawThemeWindowHeader", (PyCFunction
)App_DrawThemeWindowHeader
, 1,
1661 "(Rect inRect, ThemeDrawState inState) -> None"},
1662 {"DrawThemeWindowListViewHeader", (PyCFunction
)App_DrawThemeWindowListViewHeader
, 1,
1663 "(Rect inRect, ThemeDrawState inState) -> None"},
1664 {"DrawThemePlacard", (PyCFunction
)App_DrawThemePlacard
, 1,
1665 "(Rect inRect, ThemeDrawState inState) -> None"},
1666 {"DrawThemeEditTextFrame", (PyCFunction
)App_DrawThemeEditTextFrame
, 1,
1667 "(Rect inRect, ThemeDrawState inState) -> None"},
1668 {"DrawThemeListBoxFrame", (PyCFunction
)App_DrawThemeListBoxFrame
, 1,
1669 "(Rect inRect, ThemeDrawState inState) -> None"},
1670 {"DrawThemeFocusRect", (PyCFunction
)App_DrawThemeFocusRect
, 1,
1671 "(Rect inRect, Boolean inHasFocus) -> None"},
1672 {"DrawThemePrimaryGroup", (PyCFunction
)App_DrawThemePrimaryGroup
, 1,
1673 "(Rect inRect, ThemeDrawState inState) -> None"},
1674 {"DrawThemeSecondaryGroup", (PyCFunction
)App_DrawThemeSecondaryGroup
, 1,
1675 "(Rect inRect, ThemeDrawState inState) -> None"},
1676 {"DrawThemeSeparator", (PyCFunction
)App_DrawThemeSeparator
, 1,
1677 "(Rect inRect, ThemeDrawState inState) -> None"},
1678 {"DrawThemeModelessDialogFrame", (PyCFunction
)App_DrawThemeModelessDialogFrame
, 1,
1679 "(Rect inRect, ThemeDrawState inState) -> None"},
1680 {"DrawThemeGenericWell", (PyCFunction
)App_DrawThemeGenericWell
, 1,
1681 "(Rect inRect, ThemeDrawState inState, Boolean inFillCenter) -> None"},
1682 {"DrawThemeFocusRegion", (PyCFunction
)App_DrawThemeFocusRegion
, 1,
1683 "(Boolean inHasFocus) -> None"},
1684 {"IsThemeInColor", (PyCFunction
)App_IsThemeInColor
, 1,
1685 "(SInt16 inDepth, Boolean inIsColorDevice) -> (Boolean _rv)"},
1686 {"GetThemeAccentColors", (PyCFunction
)App_GetThemeAccentColors
, 1,
1687 "() -> (CTabHandle outColors)"},
1688 {"DrawThemeMenuBarBackground", (PyCFunction
)App_DrawThemeMenuBarBackground
, 1,
1689 "(Rect inBounds, ThemeMenuBarState inState, UInt32 inAttributes) -> None"},
1690 {"GetThemeMenuBarHeight", (PyCFunction
)App_GetThemeMenuBarHeight
, 1,
1691 "() -> (SInt16 outHeight)"},
1692 {"DrawThemeMenuBackground", (PyCFunction
)App_DrawThemeMenuBackground
, 1,
1693 "(Rect inMenuRect, ThemeMenuType inMenuType) -> None"},
1694 {"GetThemeMenuBackgroundRegion", (PyCFunction
)App_GetThemeMenuBackgroundRegion
, 1,
1695 "(Rect inMenuRect, ThemeMenuType menuType) -> None"},
1696 {"DrawThemeMenuSeparator", (PyCFunction
)App_DrawThemeMenuSeparator
, 1,
1697 "(Rect inItemRect) -> None"},
1698 {"GetThemeMenuSeparatorHeight", (PyCFunction
)App_GetThemeMenuSeparatorHeight
, 1,
1699 "() -> (SInt16 outHeight)"},
1700 {"GetThemeMenuItemExtra", (PyCFunction
)App_GetThemeMenuItemExtra
, 1,
1701 "(ThemeMenuItemType inItemType) -> (SInt16 outHeight, SInt16 outWidth)"},
1702 {"GetThemeMenuTitleExtra", (PyCFunction
)App_GetThemeMenuTitleExtra
, 1,
1703 "(Boolean inIsSquished) -> (SInt16 outWidth)"},
1704 {"DrawThemeTabPane", (PyCFunction
)App_DrawThemeTabPane
, 1,
1705 "(Rect inRect, ThemeDrawState inState) -> None"},
1706 {"GetThemeTabRegion", (PyCFunction
)App_GetThemeTabRegion
, 1,
1707 "(Rect inRect, ThemeTabStyle inStyle, ThemeTabDirection inDirection) -> None"},
1708 {"SetThemeCursor", (PyCFunction
)App_SetThemeCursor
, 1,
1709 "(ThemeCursor inCursor) -> None"},
1710 {"SetAnimatedThemeCursor", (PyCFunction
)App_SetAnimatedThemeCursor
, 1,
1711 "(ThemeCursor inCursor, UInt32 inAnimationStep) -> None"},
1712 {"GetThemeScrollBarThumbStyle", (PyCFunction
)App_GetThemeScrollBarThumbStyle
, 1,
1713 "() -> (ThemeScrollBarThumbStyle outStyle)"},
1714 {"GetThemeScrollBarArrowStyle", (PyCFunction
)App_GetThemeScrollBarArrowStyle
, 1,
1715 "() -> (ThemeScrollBarArrowStyle outStyle)"},
1716 {"GetThemeCheckBoxStyle", (PyCFunction
)App_GetThemeCheckBoxStyle
, 1,
1717 "() -> (ThemeCheckBoxStyle outStyle)"},
1718 {"UseThemeFont", (PyCFunction
)App_UseThemeFont
, 1,
1719 "(ThemeFontID inFontID, ScriptCode inScript) -> None"},
1721 #if TARGET_API_MAC_CARBON
1722 {"DrawThemeTextBox", (PyCFunction
)App_DrawThemeTextBox
, 1,
1723 "(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Rect inBoundingBox, SInt16 inJust) -> None"},
1726 #if TARGET_API_MAC_CARBON
1727 {"TruncateThemeText", (PyCFunction
)App_TruncateThemeText
, 1,
1728 "(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)"},
1731 #if TARGET_API_MAC_CARBON
1732 {"GetThemeTextDimensions", (PyCFunction
)App_GetThemeTextDimensions
, 1,
1733 "(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Point ioBounds) -> (Point ioBounds, SInt16 outBaseline)"},
1736 #if TARGET_API_MAC_CARBON
1737 {"GetThemeTextShadowOutset", (PyCFunction
)App_GetThemeTextShadowOutset
, 1,
1738 "(ThemeFontID inFontID, ThemeDrawState inState) -> (Rect outOutset)"},
1740 {"DrawThemeScrollBarArrows", (PyCFunction
)App_DrawThemeScrollBarArrows
, 1,
1741 "(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)"},
1742 {"GetThemeScrollBarTrackRect", (PyCFunction
)App_GetThemeScrollBarTrackRect
, 1,
1743 "(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)"},
1744 {"HitTestThemeScrollBarArrows", (PyCFunction
)App_HitTestThemeScrollBarArrows
, 1,
1745 "(Rect scrollBarBounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz, Point ptHit) -> (Boolean _rv, Rect trackBounds, ControlPartCode partcode)"},
1746 {"DrawThemeScrollBarDelimiters", (PyCFunction
)App_DrawThemeScrollBarDelimiters
, 1,
1747 "(ThemeWindowType flavor, Rect inContRect, ThemeDrawState state, ThemeWindowAttributes attributes) -> None"},
1748 {"DrawThemeButton", (PyCFunction
)App_DrawThemeButton
, 1,
1749 "(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo, ThemeButtonDrawInfo inPrevInfo, UInt32 inUserData) -> None"},
1750 {"GetThemeButtonRegion", (PyCFunction
)App_GetThemeButtonRegion
, 1,
1751 "(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inNewInfo) -> None"},
1752 {"GetThemeButtonContentBounds", (PyCFunction
)App_GetThemeButtonContentBounds
, 1,
1753 "(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)"},
1754 {"GetThemeButtonBackgroundBounds", (PyCFunction
)App_GetThemeButtonBackgroundBounds
, 1,
1755 "(Rect inBounds, UInt16 inKind, ThemeButtonDrawInfo inDrawInfo) -> (Rect outBounds)"},
1756 {"PlayThemeSound", (PyCFunction
)App_PlayThemeSound
, 1,
1757 "(ThemeSoundKind kind) -> None"},
1758 {"BeginThemeDragSound", (PyCFunction
)App_BeginThemeDragSound
, 1,
1759 "(ThemeDragSoundKind kind) -> None"},
1760 {"EndThemeDragSound", (PyCFunction
)App_EndThemeDragSound
, 1,
1762 {"DrawThemeTickMark", (PyCFunction
)App_DrawThemeTickMark
, 1,
1763 "(Rect bounds, ThemeDrawState state) -> None"},
1764 {"DrawThemeChasingArrows", (PyCFunction
)App_DrawThemeChasingArrows
, 1,
1765 "(Rect bounds, UInt32 index, ThemeDrawState state, UInt32 eraseData) -> None"},
1766 {"DrawThemePopupArrow", (PyCFunction
)App_DrawThemePopupArrow
, 1,
1767 "(Rect bounds, ThemeArrowOrientation orientation, ThemePopupArrowSize size, ThemeDrawState state, UInt32 eraseData) -> None"},
1768 {"DrawThemeStandaloneGrowBox", (PyCFunction
)App_DrawThemeStandaloneGrowBox
, 1,
1769 "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None"},
1770 {"DrawThemeStandaloneNoGrowBox", (PyCFunction
)App_DrawThemeStandaloneNoGrowBox
, 1,
1771 "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None"},
1772 {"GetThemeStandaloneGrowBoxBounds", (PyCFunction
)App_GetThemeStandaloneGrowBoxBounds
, 1,
1773 "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall) -> (Rect bounds)"},
1774 {"NormalizeThemeDrawingState", (PyCFunction
)App_NormalizeThemeDrawingState
, 1,
1776 {"GetThemeDrawingState", (PyCFunction
)App_GetThemeDrawingState
, 1,
1777 "() -> (ThemeDrawingState outState)"},
1778 {"ApplyThemeBackground", (PyCFunction
)App_ApplyThemeBackground
, 1,
1779 "(ThemeBackgroundKind inKind, Rect bounds, ThemeDrawState inState, SInt16 inDepth, Boolean inColorDev) -> None"},
1780 {"SetThemeTextColorForWindow", (PyCFunction
)App_SetThemeTextColorForWindow
, 1,
1781 "(WindowPtr window, Boolean isActive, SInt16 depth, Boolean isColorDev) -> None"},
1782 {"IsValidAppearanceFileType", (PyCFunction
)App_IsValidAppearanceFileType
, 1,
1783 "(OSType fileType) -> (Boolean _rv)"},
1784 {"GetThemeBrushAsColor", (PyCFunction
)App_GetThemeBrushAsColor
, 1,
1785 "(ThemeBrush inBrush, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)"},
1786 {"GetThemeTextColor", (PyCFunction
)App_GetThemeTextColor
, 1,
1787 "(ThemeTextColor inColor, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)"},
1789 #if TARGET_API_MAC_CARBON
1790 {"GetThemeMetric", (PyCFunction
)App_GetThemeMetric
, 1,
1791 "(ThemeMetric inMetric) -> (SInt32 outMetric)"},
1807 m
= Py_InitModule("_App", App_methods
);
1808 d
= PyModule_GetDict(m
);
1809 App_Error
= PyMac_GetOSErrException();
1810 if (App_Error
== NULL
||
1811 PyDict_SetItemString(d
, "Error", App_Error
) != 0)
1813 ThemeDrawingState_Type
.ob_type
= &PyType_Type
;
1814 Py_INCREF(&ThemeDrawingState_Type
);
1815 if (PyDict_SetItemString(d
, "ThemeDrawingStateType", (PyObject
*)&ThemeDrawingState_Type
) != 0)
1816 Py_FatalError("can't initialize ThemeDrawingStateType");
1819 /* ======================== End module _App ========================= */