Issue #7466: segmentation fault when the garbage collector is called
[python.git] / Mac / Modules / app / _Appmodule.c
blob52d17f5301318250ed8339dc9df8aed286463a44
2 /* ========================== Module _App =========================== */
4 #include "Python.h"
6 #ifndef __LP64__
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"); \
16 return NULL; \
17 }} while(0)
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 {
38 PyObject_HEAD
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");
56 return 0;
58 *p_itself = ((ThemeDrawingStateObject *)v)->ob_itself;
59 return 1;
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;
71 OSStatus _rv;
72 Boolean inDisposeNow;
73 #ifndef SetThemeDrawingState
74 PyMac_PRECHECK(SetThemeDrawingState);
75 #endif
76 if (!PyArg_ParseTuple(_args, "b",
77 &inDisposeNow))
78 return NULL;
79 _rv = SetThemeDrawingState(_self->ob_itself,
80 inDisposeNow);
81 _res = Py_BuildValue("l",
82 _rv);
83 return _res;
86 static PyObject *ThemeDrawingStateObj_DisposeThemeDrawingState(ThemeDrawingStateObject *_self, PyObject *_args)
88 PyObject *_res = NULL;
89 OSStatus _rv;
90 #ifndef DisposeThemeDrawingState
91 PyMac_PRECHECK(DisposeThemeDrawingState);
92 #endif
93 if (!PyArg_ParseTuple(_args, ""))
94 return NULL;
95 _rv = DisposeThemeDrawingState(_self->ob_itself);
96 _res = Py_BuildValue("l",
97 _rv);
98 return _res;
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)")},
106 {NULL, NULL, 0}
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)
123 PyObject *_self;
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;
130 return _self;
133 #define ThemeDrawingStateObj_tp_free PyObject_Del
136 PyTypeObject ThemeDrawingState_Type = {
137 PyObject_HEAD_INIT(NULL)
138 0, /*ob_size*/
139 "_App.ThemeDrawingState", /*tp_name*/
140 sizeof(ThemeDrawingStateObject), /*tp_basicsize*/
141 0, /*tp_itemsize*/
142 /* methods */
143 (destructor) ThemeDrawingStateObj_dealloc, /*tp_dealloc*/
144 0, /*tp_print*/
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*/
153 0, /*tp_call*/
154 0, /*tp_str*/
155 PyObject_GenericGetAttr, /*tp_getattro*/
156 PyObject_GenericSetAttr, /*tp_setattro */
157 0, /*tp_as_buffer*/
158 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
159 0, /*tp_doc*/
160 0, /*tp_traverse*/
161 0, /*tp_clear*/
162 0, /*tp_richcompare*/
163 0, /*tp_weaklistoffset*/
164 0, /*tp_iter*/
165 0, /*tp_iternext*/
166 ThemeDrawingStateObj_methods, /* tp_methods */
167 0, /*tp_members*/
168 ThemeDrawingStateObj_getsetlist, /*tp_getset*/
169 0, /*tp_base*/
170 0, /*tp_dict*/
171 0, /*tp_descr_get*/
172 0, /*tp_descr_set*/
173 0, /*tp_dictoffset*/
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;
186 OSStatus _err;
187 #ifndef RegisterAppearanceClient
188 PyMac_PRECHECK(RegisterAppearanceClient);
189 #endif
190 if (!PyArg_ParseTuple(_args, ""))
191 return NULL;
192 _err = RegisterAppearanceClient();
193 if (_err != noErr) return PyMac_Error(_err);
194 Py_INCREF(Py_None);
195 _res = Py_None;
196 return _res;
199 static PyObject *App_UnregisterAppearanceClient(PyObject *_self, PyObject *_args)
201 PyObject *_res = NULL;
202 OSStatus _err;
203 #ifndef UnregisterAppearanceClient
204 PyMac_PRECHECK(UnregisterAppearanceClient);
205 #endif
206 if (!PyArg_ParseTuple(_args, ""))
207 return NULL;
208 _err = UnregisterAppearanceClient();
209 if (_err != noErr) return PyMac_Error(_err);
210 Py_INCREF(Py_None);
211 _res = Py_None;
212 return _res;
215 static PyObject *App_SetThemePen(PyObject *_self, PyObject *_args)
217 PyObject *_res = NULL;
218 OSStatus _err;
219 ThemeBrush inBrush;
220 SInt16 inDepth;
221 Boolean inIsColorDevice;
222 #ifndef SetThemePen
223 PyMac_PRECHECK(SetThemePen);
224 #endif
225 if (!PyArg_ParseTuple(_args, "hhb",
226 &inBrush,
227 &inDepth,
228 &inIsColorDevice))
229 return NULL;
230 _err = SetThemePen(inBrush,
231 inDepth,
232 inIsColorDevice);
233 if (_err != noErr) return PyMac_Error(_err);
234 Py_INCREF(Py_None);
235 _res = Py_None;
236 return _res;
239 static PyObject *App_SetThemeBackground(PyObject *_self, PyObject *_args)
241 PyObject *_res = NULL;
242 OSStatus _err;
243 ThemeBrush inBrush;
244 SInt16 inDepth;
245 Boolean inIsColorDevice;
246 #ifndef SetThemeBackground
247 PyMac_PRECHECK(SetThemeBackground);
248 #endif
249 if (!PyArg_ParseTuple(_args, "hhb",
250 &inBrush,
251 &inDepth,
252 &inIsColorDevice))
253 return NULL;
254 _err = SetThemeBackground(inBrush,
255 inDepth,
256 inIsColorDevice);
257 if (_err != noErr) return PyMac_Error(_err);
258 Py_INCREF(Py_None);
259 _res = Py_None;
260 return _res;
263 static PyObject *App_SetThemeTextColor(PyObject *_self, PyObject *_args)
265 PyObject *_res = NULL;
266 OSStatus _err;
267 ThemeTextColor inColor;
268 SInt16 inDepth;
269 Boolean inIsColorDevice;
270 #ifndef SetThemeTextColor
271 PyMac_PRECHECK(SetThemeTextColor);
272 #endif
273 if (!PyArg_ParseTuple(_args, "hhb",
274 &inColor,
275 &inDepth,
276 &inIsColorDevice))
277 return NULL;
278 _err = SetThemeTextColor(inColor,
279 inDepth,
280 inIsColorDevice);
281 if (_err != noErr) return PyMac_Error(_err);
282 Py_INCREF(Py_None);
283 _res = Py_None;
284 return _res;
287 static PyObject *App_SetThemeWindowBackground(PyObject *_self, PyObject *_args)
289 PyObject *_res = NULL;
290 OSStatus _err;
291 WindowPtr inWindow;
292 ThemeBrush inBrush;
293 Boolean inUpdate;
294 #ifndef SetThemeWindowBackground
295 PyMac_PRECHECK(SetThemeWindowBackground);
296 #endif
297 if (!PyArg_ParseTuple(_args, "O&hb",
298 WinObj_Convert, &inWindow,
299 &inBrush,
300 &inUpdate))
301 return NULL;
302 _err = SetThemeWindowBackground(inWindow,
303 inBrush,
304 inUpdate);
305 if (_err != noErr) return PyMac_Error(_err);
306 Py_INCREF(Py_None);
307 _res = Py_None;
308 return _res;
311 static PyObject *App_DrawThemeWindowHeader(PyObject *_self, PyObject *_args)
313 PyObject *_res = NULL;
314 OSStatus _err;
315 Rect inRect;
316 ThemeDrawState inState;
317 #ifndef DrawThemeWindowHeader
318 PyMac_PRECHECK(DrawThemeWindowHeader);
319 #endif
320 if (!PyArg_ParseTuple(_args, "O&l",
321 PyMac_GetRect, &inRect,
322 &inState))
323 return NULL;
324 _err = DrawThemeWindowHeader(&inRect,
325 inState);
326 if (_err != noErr) return PyMac_Error(_err);
327 Py_INCREF(Py_None);
328 _res = Py_None;
329 return _res;
332 static PyObject *App_DrawThemeWindowListViewHeader(PyObject *_self, PyObject *_args)
334 PyObject *_res = NULL;
335 OSStatus _err;
336 Rect inRect;
337 ThemeDrawState inState;
338 #ifndef DrawThemeWindowListViewHeader
339 PyMac_PRECHECK(DrawThemeWindowListViewHeader);
340 #endif
341 if (!PyArg_ParseTuple(_args, "O&l",
342 PyMac_GetRect, &inRect,
343 &inState))
344 return NULL;
345 _err = DrawThemeWindowListViewHeader(&inRect,
346 inState);
347 if (_err != noErr) return PyMac_Error(_err);
348 Py_INCREF(Py_None);
349 _res = Py_None;
350 return _res;
353 static PyObject *App_DrawThemePlacard(PyObject *_self, PyObject *_args)
355 PyObject *_res = NULL;
356 OSStatus _err;
357 Rect inRect;
358 ThemeDrawState inState;
359 #ifndef DrawThemePlacard
360 PyMac_PRECHECK(DrawThemePlacard);
361 #endif
362 if (!PyArg_ParseTuple(_args, "O&l",
363 PyMac_GetRect, &inRect,
364 &inState))
365 return NULL;
366 _err = DrawThemePlacard(&inRect,
367 inState);
368 if (_err != noErr) return PyMac_Error(_err);
369 Py_INCREF(Py_None);
370 _res = Py_None;
371 return _res;
374 static PyObject *App_DrawThemeEditTextFrame(PyObject *_self, PyObject *_args)
376 PyObject *_res = NULL;
377 OSStatus _err;
378 Rect inRect;
379 ThemeDrawState inState;
380 #ifndef DrawThemeEditTextFrame
381 PyMac_PRECHECK(DrawThemeEditTextFrame);
382 #endif
383 if (!PyArg_ParseTuple(_args, "O&l",
384 PyMac_GetRect, &inRect,
385 &inState))
386 return NULL;
387 _err = DrawThemeEditTextFrame(&inRect,
388 inState);
389 if (_err != noErr) return PyMac_Error(_err);
390 Py_INCREF(Py_None);
391 _res = Py_None;
392 return _res;
395 static PyObject *App_DrawThemeListBoxFrame(PyObject *_self, PyObject *_args)
397 PyObject *_res = NULL;
398 OSStatus _err;
399 Rect inRect;
400 ThemeDrawState inState;
401 #ifndef DrawThemeListBoxFrame
402 PyMac_PRECHECK(DrawThemeListBoxFrame);
403 #endif
404 if (!PyArg_ParseTuple(_args, "O&l",
405 PyMac_GetRect, &inRect,
406 &inState))
407 return NULL;
408 _err = DrawThemeListBoxFrame(&inRect,
409 inState);
410 if (_err != noErr) return PyMac_Error(_err);
411 Py_INCREF(Py_None);
412 _res = Py_None;
413 return _res;
416 static PyObject *App_DrawThemeFocusRect(PyObject *_self, PyObject *_args)
418 PyObject *_res = NULL;
419 OSStatus _err;
420 Rect inRect;
421 Boolean inHasFocus;
422 #ifndef DrawThemeFocusRect
423 PyMac_PRECHECK(DrawThemeFocusRect);
424 #endif
425 if (!PyArg_ParseTuple(_args, "O&b",
426 PyMac_GetRect, &inRect,
427 &inHasFocus))
428 return NULL;
429 _err = DrawThemeFocusRect(&inRect,
430 inHasFocus);
431 if (_err != noErr) return PyMac_Error(_err);
432 Py_INCREF(Py_None);
433 _res = Py_None;
434 return _res;
437 static PyObject *App_DrawThemePrimaryGroup(PyObject *_self, PyObject *_args)
439 PyObject *_res = NULL;
440 OSStatus _err;
441 Rect inRect;
442 ThemeDrawState inState;
443 #ifndef DrawThemePrimaryGroup
444 PyMac_PRECHECK(DrawThemePrimaryGroup);
445 #endif
446 if (!PyArg_ParseTuple(_args, "O&l",
447 PyMac_GetRect, &inRect,
448 &inState))
449 return NULL;
450 _err = DrawThemePrimaryGroup(&inRect,
451 inState);
452 if (_err != noErr) return PyMac_Error(_err);
453 Py_INCREF(Py_None);
454 _res = Py_None;
455 return _res;
458 static PyObject *App_DrawThemeSecondaryGroup(PyObject *_self, PyObject *_args)
460 PyObject *_res = NULL;
461 OSStatus _err;
462 Rect inRect;
463 ThemeDrawState inState;
464 #ifndef DrawThemeSecondaryGroup
465 PyMac_PRECHECK(DrawThemeSecondaryGroup);
466 #endif
467 if (!PyArg_ParseTuple(_args, "O&l",
468 PyMac_GetRect, &inRect,
469 &inState))
470 return NULL;
471 _err = DrawThemeSecondaryGroup(&inRect,
472 inState);
473 if (_err != noErr) return PyMac_Error(_err);
474 Py_INCREF(Py_None);
475 _res = Py_None;
476 return _res;
479 static PyObject *App_DrawThemeSeparator(PyObject *_self, PyObject *_args)
481 PyObject *_res = NULL;
482 OSStatus _err;
483 Rect inRect;
484 ThemeDrawState inState;
485 #ifndef DrawThemeSeparator
486 PyMac_PRECHECK(DrawThemeSeparator);
487 #endif
488 if (!PyArg_ParseTuple(_args, "O&l",
489 PyMac_GetRect, &inRect,
490 &inState))
491 return NULL;
492 _err = DrawThemeSeparator(&inRect,
493 inState);
494 if (_err != noErr) return PyMac_Error(_err);
495 Py_INCREF(Py_None);
496 _res = Py_None;
497 return _res;
500 static PyObject *App_DrawThemeModelessDialogFrame(PyObject *_self, PyObject *_args)
502 PyObject *_res = NULL;
503 OSStatus _err;
504 Rect inRect;
505 ThemeDrawState inState;
506 #ifndef DrawThemeModelessDialogFrame
507 PyMac_PRECHECK(DrawThemeModelessDialogFrame);
508 #endif
509 if (!PyArg_ParseTuple(_args, "O&l",
510 PyMac_GetRect, &inRect,
511 &inState))
512 return NULL;
513 _err = DrawThemeModelessDialogFrame(&inRect,
514 inState);
515 if (_err != noErr) return PyMac_Error(_err);
516 Py_INCREF(Py_None);
517 _res = Py_None;
518 return _res;
521 static PyObject *App_DrawThemeGenericWell(PyObject *_self, PyObject *_args)
523 PyObject *_res = NULL;
524 OSStatus _err;
525 Rect inRect;
526 ThemeDrawState inState;
527 Boolean inFillCenter;
528 #ifndef DrawThemeGenericWell
529 PyMac_PRECHECK(DrawThemeGenericWell);
530 #endif
531 if (!PyArg_ParseTuple(_args, "O&lb",
532 PyMac_GetRect, &inRect,
533 &inState,
534 &inFillCenter))
535 return NULL;
536 _err = DrawThemeGenericWell(&inRect,
537 inState,
538 inFillCenter);
539 if (_err != noErr) return PyMac_Error(_err);
540 Py_INCREF(Py_None);
541 _res = Py_None;
542 return _res;
545 static PyObject *App_DrawThemeFocusRegion(PyObject *_self, PyObject *_args)
547 PyObject *_res = NULL;
548 OSStatus _err;
549 Boolean inHasFocus;
550 #ifndef DrawThemeFocusRegion
551 PyMac_PRECHECK(DrawThemeFocusRegion);
552 #endif
553 if (!PyArg_ParseTuple(_args, "b",
554 &inHasFocus))
555 return NULL;
556 _err = DrawThemeFocusRegion((RgnHandle)0,
557 inHasFocus);
558 if (_err != noErr) return PyMac_Error(_err);
559 Py_INCREF(Py_None);
560 _res = Py_None;
561 return _res;
564 static PyObject *App_IsThemeInColor(PyObject *_self, PyObject *_args)
566 PyObject *_res = NULL;
567 Boolean _rv;
568 SInt16 inDepth;
569 Boolean inIsColorDevice;
570 #ifndef IsThemeInColor
571 PyMac_PRECHECK(IsThemeInColor);
572 #endif
573 if (!PyArg_ParseTuple(_args, "hb",
574 &inDepth,
575 &inIsColorDevice))
576 return NULL;
577 _rv = IsThemeInColor(inDepth,
578 inIsColorDevice);
579 _res = Py_BuildValue("b",
580 _rv);
581 return _res;
584 static PyObject *App_GetThemeAccentColors(PyObject *_self, PyObject *_args)
586 PyObject *_res = NULL;
587 OSStatus _err;
588 CTabHandle outColors;
589 #ifndef GetThemeAccentColors
590 PyMac_PRECHECK(GetThemeAccentColors);
591 #endif
592 if (!PyArg_ParseTuple(_args, ""))
593 return NULL;
594 _err = GetThemeAccentColors(&outColors);
595 if (_err != noErr) return PyMac_Error(_err);
596 _res = Py_BuildValue("O&",
597 ResObj_New, outColors);
598 return _res;
601 static PyObject *App_DrawThemeMenuBarBackground(PyObject *_self, PyObject *_args)
603 PyObject *_res = NULL;
604 OSStatus _err;
605 Rect inBounds;
606 ThemeMenuBarState inState;
607 UInt32 inAttributes;
608 #ifndef DrawThemeMenuBarBackground
609 PyMac_PRECHECK(DrawThemeMenuBarBackground);
610 #endif
611 if (!PyArg_ParseTuple(_args, "O&Hl",
612 PyMac_GetRect, &inBounds,
613 &inState,
614 &inAttributes))
615 return NULL;
616 _err = DrawThemeMenuBarBackground(&inBounds,
617 inState,
618 inAttributes);
619 if (_err != noErr) return PyMac_Error(_err);
620 Py_INCREF(Py_None);
621 _res = Py_None;
622 return _res;
625 static PyObject *App_GetThemeMenuBarHeight(PyObject *_self, PyObject *_args)
627 PyObject *_res = NULL;
628 OSStatus _err;
629 SInt16 outHeight;
630 #ifndef GetThemeMenuBarHeight
631 PyMac_PRECHECK(GetThemeMenuBarHeight);
632 #endif
633 if (!PyArg_ParseTuple(_args, ""))
634 return NULL;
635 _err = GetThemeMenuBarHeight(&outHeight);
636 if (_err != noErr) return PyMac_Error(_err);
637 _res = Py_BuildValue("h",
638 outHeight);
639 return _res;
642 static PyObject *App_DrawThemeMenuBackground(PyObject *_self, PyObject *_args)
644 PyObject *_res = NULL;
645 OSStatus _err;
646 Rect inMenuRect;
647 ThemeMenuType inMenuType;
648 #ifndef DrawThemeMenuBackground
649 PyMac_PRECHECK(DrawThemeMenuBackground);
650 #endif
651 if (!PyArg_ParseTuple(_args, "O&H",
652 PyMac_GetRect, &inMenuRect,
653 &inMenuType))
654 return NULL;
655 _err = DrawThemeMenuBackground(&inMenuRect,
656 inMenuType);
657 if (_err != noErr) return PyMac_Error(_err);
658 Py_INCREF(Py_None);
659 _res = Py_None;
660 return _res;
663 static PyObject *App_GetThemeMenuBackgroundRegion(PyObject *_self, PyObject *_args)
665 PyObject *_res = NULL;
666 OSStatus _err;
667 Rect inMenuRect;
668 ThemeMenuType menuType;
669 #ifndef GetThemeMenuBackgroundRegion
670 PyMac_PRECHECK(GetThemeMenuBackgroundRegion);
671 #endif
672 if (!PyArg_ParseTuple(_args, "O&H",
673 PyMac_GetRect, &inMenuRect,
674 &menuType))
675 return NULL;
676 _err = GetThemeMenuBackgroundRegion(&inMenuRect,
677 menuType,
678 (RgnHandle)0);
679 if (_err != noErr) return PyMac_Error(_err);
680 Py_INCREF(Py_None);
681 _res = Py_None;
682 return _res;
685 static PyObject *App_DrawThemeMenuSeparator(PyObject *_self, PyObject *_args)
687 PyObject *_res = NULL;
688 OSStatus _err;
689 Rect inItemRect;
690 #ifndef DrawThemeMenuSeparator
691 PyMac_PRECHECK(DrawThemeMenuSeparator);
692 #endif
693 if (!PyArg_ParseTuple(_args, "O&",
694 PyMac_GetRect, &inItemRect))
695 return NULL;
696 _err = DrawThemeMenuSeparator(&inItemRect);
697 if (_err != noErr) return PyMac_Error(_err);
698 Py_INCREF(Py_None);
699 _res = Py_None;
700 return _res;
703 static PyObject *App_GetThemeMenuSeparatorHeight(PyObject *_self, PyObject *_args)
705 PyObject *_res = NULL;
706 OSStatus _err;
707 SInt16 outHeight;
708 #ifndef GetThemeMenuSeparatorHeight
709 PyMac_PRECHECK(GetThemeMenuSeparatorHeight);
710 #endif
711 if (!PyArg_ParseTuple(_args, ""))
712 return NULL;
713 _err = GetThemeMenuSeparatorHeight(&outHeight);
714 if (_err != noErr) return PyMac_Error(_err);
715 _res = Py_BuildValue("h",
716 outHeight);
717 return _res;
720 static PyObject *App_GetThemeMenuItemExtra(PyObject *_self, PyObject *_args)
722 PyObject *_res = NULL;
723 OSStatus _err;
724 ThemeMenuItemType inItemType;
725 SInt16 outHeight;
726 SInt16 outWidth;
727 #ifndef GetThemeMenuItemExtra
728 PyMac_PRECHECK(GetThemeMenuItemExtra);
729 #endif
730 if (!PyArg_ParseTuple(_args, "H",
731 &inItemType))
732 return NULL;
733 _err = GetThemeMenuItemExtra(inItemType,
734 &outHeight,
735 &outWidth);
736 if (_err != noErr) return PyMac_Error(_err);
737 _res = Py_BuildValue("hh",
738 outHeight,
739 outWidth);
740 return _res;
743 static PyObject *App_GetThemeMenuTitleExtra(PyObject *_self, PyObject *_args)
745 PyObject *_res = NULL;
746 OSStatus _err;
747 SInt16 outWidth;
748 Boolean inIsSquished;
749 #ifndef GetThemeMenuTitleExtra
750 PyMac_PRECHECK(GetThemeMenuTitleExtra);
751 #endif
752 if (!PyArg_ParseTuple(_args, "b",
753 &inIsSquished))
754 return NULL;
755 _err = GetThemeMenuTitleExtra(&outWidth,
756 inIsSquished);
757 if (_err != noErr) return PyMac_Error(_err);
758 _res = Py_BuildValue("h",
759 outWidth);
760 return _res;
763 static PyObject *App_DrawThemeTabPane(PyObject *_self, PyObject *_args)
765 PyObject *_res = NULL;
766 OSStatus _err;
767 Rect inRect;
768 ThemeDrawState inState;
769 #ifndef DrawThemeTabPane
770 PyMac_PRECHECK(DrawThemeTabPane);
771 #endif
772 if (!PyArg_ParseTuple(_args, "O&l",
773 PyMac_GetRect, &inRect,
774 &inState))
775 return NULL;
776 _err = DrawThemeTabPane(&inRect,
777 inState);
778 if (_err != noErr) return PyMac_Error(_err);
779 Py_INCREF(Py_None);
780 _res = Py_None;
781 return _res;
784 static PyObject *App_GetThemeTabRegion(PyObject *_self, PyObject *_args)
786 PyObject *_res = NULL;
787 OSStatus _err;
788 Rect inRect;
789 ThemeTabStyle inStyle;
790 ThemeTabDirection inDirection;
791 #ifndef GetThemeTabRegion
792 PyMac_PRECHECK(GetThemeTabRegion);
793 #endif
794 if (!PyArg_ParseTuple(_args, "O&HH",
795 PyMac_GetRect, &inRect,
796 &inStyle,
797 &inDirection))
798 return NULL;
799 _err = GetThemeTabRegion(&inRect,
800 inStyle,
801 inDirection,
802 (RgnHandle)0);
803 if (_err != noErr) return PyMac_Error(_err);
804 Py_INCREF(Py_None);
805 _res = Py_None;
806 return _res;
809 static PyObject *App_SetThemeCursor(PyObject *_self, PyObject *_args)
811 PyObject *_res = NULL;
812 OSStatus _err;
813 ThemeCursor inCursor;
814 #ifndef SetThemeCursor
815 PyMac_PRECHECK(SetThemeCursor);
816 #endif
817 if (!PyArg_ParseTuple(_args, "l",
818 &inCursor))
819 return NULL;
820 _err = SetThemeCursor(inCursor);
821 if (_err != noErr) return PyMac_Error(_err);
822 Py_INCREF(Py_None);
823 _res = Py_None;
824 return _res;
827 static PyObject *App_SetAnimatedThemeCursor(PyObject *_self, PyObject *_args)
829 PyObject *_res = NULL;
830 OSStatus _err;
831 ThemeCursor inCursor;
832 UInt32 inAnimationStep;
833 #ifndef SetAnimatedThemeCursor
834 PyMac_PRECHECK(SetAnimatedThemeCursor);
835 #endif
836 if (!PyArg_ParseTuple(_args, "ll",
837 &inCursor,
838 &inAnimationStep))
839 return NULL;
840 _err = SetAnimatedThemeCursor(inCursor,
841 inAnimationStep);
842 if (_err != noErr) return PyMac_Error(_err);
843 Py_INCREF(Py_None);
844 _res = Py_None;
845 return _res;
848 static PyObject *App_GetThemeScrollBarThumbStyle(PyObject *_self, PyObject *_args)
850 PyObject *_res = NULL;
851 OSStatus _err;
852 ThemeScrollBarThumbStyle outStyle;
853 #ifndef GetThemeScrollBarThumbStyle
854 PyMac_PRECHECK(GetThemeScrollBarThumbStyle);
855 #endif
856 if (!PyArg_ParseTuple(_args, ""))
857 return NULL;
858 _err = GetThemeScrollBarThumbStyle(&outStyle);
859 if (_err != noErr) return PyMac_Error(_err);
860 _res = Py_BuildValue("H",
861 outStyle);
862 return _res;
865 static PyObject *App_GetThemeScrollBarArrowStyle(PyObject *_self, PyObject *_args)
867 PyObject *_res = NULL;
868 OSStatus _err;
869 ThemeScrollBarArrowStyle outStyle;
870 #ifndef GetThemeScrollBarArrowStyle
871 PyMac_PRECHECK(GetThemeScrollBarArrowStyle);
872 #endif
873 if (!PyArg_ParseTuple(_args, ""))
874 return NULL;
875 _err = GetThemeScrollBarArrowStyle(&outStyle);
876 if (_err != noErr) return PyMac_Error(_err);
877 _res = Py_BuildValue("H",
878 outStyle);
879 return _res;
882 static PyObject *App_GetThemeCheckBoxStyle(PyObject *_self, PyObject *_args)
884 PyObject *_res = NULL;
885 OSStatus _err;
886 ThemeCheckBoxStyle outStyle;
887 #ifndef GetThemeCheckBoxStyle
888 PyMac_PRECHECK(GetThemeCheckBoxStyle);
889 #endif
890 if (!PyArg_ParseTuple(_args, ""))
891 return NULL;
892 _err = GetThemeCheckBoxStyle(&outStyle);
893 if (_err != noErr) return PyMac_Error(_err);
894 _res = Py_BuildValue("H",
895 outStyle);
896 return _res;
899 static PyObject *App_UseThemeFont(PyObject *_self, PyObject *_args)
901 PyObject *_res = NULL;
902 OSStatus _err;
903 ThemeFontID inFontID;
904 ScriptCode inScript;
905 #ifndef UseThemeFont
906 PyMac_PRECHECK(UseThemeFont);
907 #endif
908 if (!PyArg_ParseTuple(_args, "Hh",
909 &inFontID,
910 &inScript))
911 return NULL;
912 _err = UseThemeFont(inFontID,
913 inScript);
914 if (_err != noErr) return PyMac_Error(_err);
915 Py_INCREF(Py_None);
916 _res = Py_None;
917 return _res;
920 static PyObject *App_DrawThemeTextBox(PyObject *_self, PyObject *_args)
922 PyObject *_res = NULL;
923 OSStatus _err;
924 CFStringRef inString;
925 ThemeFontID inFontID;
926 ThemeDrawState inState;
927 Boolean inWrapToWidth;
928 Rect inBoundingBox;
929 SInt16 inJust;
930 #ifndef DrawThemeTextBox
931 PyMac_PRECHECK(DrawThemeTextBox);
932 #endif
933 if (!PyArg_ParseTuple(_args, "O&HlbO&h",
934 CFStringRefObj_Convert, &inString,
935 &inFontID,
936 &inState,
937 &inWrapToWidth,
938 PyMac_GetRect, &inBoundingBox,
939 &inJust))
940 return NULL;
941 _err = DrawThemeTextBox(inString,
942 inFontID,
943 inState,
944 inWrapToWidth,
945 &inBoundingBox,
946 inJust,
947 NULL);
948 if (_err != noErr) return PyMac_Error(_err);
949 Py_INCREF(Py_None);
950 _res = Py_None;
951 return _res;
954 static PyObject *App_TruncateThemeText(PyObject *_self, PyObject *_args)
956 PyObject *_res = NULL;
957 OSStatus _err;
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);
966 #endif
967 if (!PyArg_ParseTuple(_args, "O&Hlhh",
968 CFMutableStringRefObj_Convert, &inString,
969 &inFontID,
970 &inState,
971 &inPixelWidthLimit,
972 &inTruncWhere))
973 return NULL;
974 _err = TruncateThemeText(inString,
975 inFontID,
976 inState,
977 inPixelWidthLimit,
978 inTruncWhere,
979 &outTruncated);
980 if (_err != noErr) return PyMac_Error(_err);
981 _res = Py_BuildValue("b",
982 outTruncated);
983 return _res;
986 static PyObject *App_GetThemeTextDimensions(PyObject *_self, PyObject *_args)
988 PyObject *_res = NULL;
989 OSStatus _err;
990 CFStringRef inString;
991 ThemeFontID inFontID;
992 ThemeDrawState inState;
993 Boolean inWrapToWidth;
994 Point ioBounds;
995 SInt16 outBaseline;
996 #ifndef GetThemeTextDimensions
997 PyMac_PRECHECK(GetThemeTextDimensions);
998 #endif
999 if (!PyArg_ParseTuple(_args, "O&HlbO&",
1000 CFStringRefObj_Convert, &inString,
1001 &inFontID,
1002 &inState,
1003 &inWrapToWidth,
1004 PyMac_GetPoint, &ioBounds))
1005 return NULL;
1006 _err = GetThemeTextDimensions(inString,
1007 inFontID,
1008 inState,
1009 inWrapToWidth,
1010 &ioBounds,
1011 &outBaseline);
1012 if (_err != noErr) return PyMac_Error(_err);
1013 _res = Py_BuildValue("O&h",
1014 PyMac_BuildPoint, ioBounds,
1015 outBaseline);
1016 return _res;
1019 static PyObject *App_GetThemeTextShadowOutset(PyObject *_self, PyObject *_args)
1021 PyObject *_res = NULL;
1022 OSStatus _err;
1023 ThemeFontID inFontID;
1024 ThemeDrawState inState;
1025 Rect outOutset;
1026 #ifndef GetThemeTextShadowOutset
1027 PyMac_PRECHECK(GetThemeTextShadowOutset);
1028 #endif
1029 if (!PyArg_ParseTuple(_args, "Hl",
1030 &inFontID,
1031 &inState))
1032 return NULL;
1033 _err = GetThemeTextShadowOutset(inFontID,
1034 inState,
1035 &outOutset);
1036 if (_err != noErr) return PyMac_Error(_err);
1037 _res = Py_BuildValue("O&",
1038 PyMac_BuildRect, &outOutset);
1039 return _res;
1042 static PyObject *App_DrawThemeScrollBarArrows(PyObject *_self, PyObject *_args)
1044 PyObject *_res = NULL;
1045 OSStatus _err;
1046 Rect bounds;
1047 ThemeTrackEnableState enableState;
1048 ThemeTrackPressState pressState;
1049 Boolean isHoriz;
1050 Rect trackBounds;
1051 #ifndef DrawThemeScrollBarArrows
1052 PyMac_PRECHECK(DrawThemeScrollBarArrows);
1053 #endif
1054 if (!PyArg_ParseTuple(_args, "O&bbb",
1055 PyMac_GetRect, &bounds,
1056 &enableState,
1057 &pressState,
1058 &isHoriz))
1059 return NULL;
1060 _err = DrawThemeScrollBarArrows(&bounds,
1061 enableState,
1062 pressState,
1063 isHoriz,
1064 &trackBounds);
1065 if (_err != noErr) return PyMac_Error(_err);
1066 _res = Py_BuildValue("O&",
1067 PyMac_BuildRect, &trackBounds);
1068 return _res;
1071 static PyObject *App_GetThemeScrollBarTrackRect(PyObject *_self, PyObject *_args)
1073 PyObject *_res = NULL;
1074 OSStatus _err;
1075 Rect bounds;
1076 ThemeTrackEnableState enableState;
1077 ThemeTrackPressState pressState;
1078 Boolean isHoriz;
1079 Rect trackBounds;
1080 #ifndef GetThemeScrollBarTrackRect
1081 PyMac_PRECHECK(GetThemeScrollBarTrackRect);
1082 #endif
1083 if (!PyArg_ParseTuple(_args, "O&bbb",
1084 PyMac_GetRect, &bounds,
1085 &enableState,
1086 &pressState,
1087 &isHoriz))
1088 return NULL;
1089 _err = GetThemeScrollBarTrackRect(&bounds,
1090 enableState,
1091 pressState,
1092 isHoriz,
1093 &trackBounds);
1094 if (_err != noErr) return PyMac_Error(_err);
1095 _res = Py_BuildValue("O&",
1096 PyMac_BuildRect, &trackBounds);
1097 return _res;
1100 static PyObject *App_HitTestThemeScrollBarArrows(PyObject *_self, PyObject *_args)
1102 PyObject *_res = NULL;
1103 Boolean _rv;
1104 Rect scrollBarBounds;
1105 ThemeTrackEnableState enableState;
1106 ThemeTrackPressState pressState;
1107 Boolean isHoriz;
1108 Point ptHit;
1109 Rect trackBounds;
1110 ControlPartCode partcode;
1111 #ifndef HitTestThemeScrollBarArrows
1112 PyMac_PRECHECK(HitTestThemeScrollBarArrows);
1113 #endif
1114 if (!PyArg_ParseTuple(_args, "O&bbbO&",
1115 PyMac_GetRect, &scrollBarBounds,
1116 &enableState,
1117 &pressState,
1118 &isHoriz,
1119 PyMac_GetPoint, &ptHit))
1120 return NULL;
1121 _rv = HitTestThemeScrollBarArrows(&scrollBarBounds,
1122 enableState,
1123 pressState,
1124 isHoriz,
1125 ptHit,
1126 &trackBounds,
1127 &partcode);
1128 _res = Py_BuildValue("bO&h",
1129 _rv,
1130 PyMac_BuildRect, &trackBounds,
1131 partcode);
1132 return _res;
1135 static PyObject *App_DrawThemeScrollBarDelimiters(PyObject *_self, PyObject *_args)
1137 PyObject *_res = NULL;
1138 OSStatus _err;
1139 ThemeWindowType flavor;
1140 Rect inContRect;
1141 ThemeDrawState state;
1142 ThemeWindowAttributes attributes;
1143 #ifndef DrawThemeScrollBarDelimiters
1144 PyMac_PRECHECK(DrawThemeScrollBarDelimiters);
1145 #endif
1146 if (!PyArg_ParseTuple(_args, "HO&ll",
1147 &flavor,
1148 PyMac_GetRect, &inContRect,
1149 &state,
1150 &attributes))
1151 return NULL;
1152 _err = DrawThemeScrollBarDelimiters(flavor,
1153 &inContRect,
1154 state,
1155 attributes);
1156 if (_err != noErr) return PyMac_Error(_err);
1157 Py_INCREF(Py_None);
1158 _res = Py_None;
1159 return _res;
1162 static PyObject *App_DrawThemeButton(PyObject *_self, PyObject *_args)
1164 PyObject *_res = NULL;
1165 OSStatus _err;
1166 Rect inBounds;
1167 UInt16 inKind;
1168 ThemeButtonDrawInfo inNewInfo;
1169 ThemeButtonDrawInfo inPrevInfo;
1170 UInt32 inUserData;
1171 #ifndef DrawThemeButton
1172 PyMac_PRECHECK(DrawThemeButton);
1173 #endif
1174 if (!PyArg_ParseTuple(_args, "O&HO&O&l",
1175 PyMac_GetRect, &inBounds,
1176 &inKind,
1177 ThemeButtonDrawInfo_Convert, &inNewInfo,
1178 ThemeButtonDrawInfo_Convert, &inPrevInfo,
1179 &inUserData))
1180 return NULL;
1181 _err = DrawThemeButton(&inBounds,
1182 inKind,
1183 &inNewInfo,
1184 &inPrevInfo,
1185 NULL,
1186 NULL,
1187 inUserData);
1188 if (_err != noErr) return PyMac_Error(_err);
1189 Py_INCREF(Py_None);
1190 _res = Py_None;
1191 return _res;
1194 static PyObject *App_GetThemeButtonRegion(PyObject *_self, PyObject *_args)
1196 PyObject *_res = NULL;
1197 OSStatus _err;
1198 Rect inBounds;
1199 UInt16 inKind;
1200 ThemeButtonDrawInfo inNewInfo;
1201 #ifndef GetThemeButtonRegion
1202 PyMac_PRECHECK(GetThemeButtonRegion);
1203 #endif
1204 if (!PyArg_ParseTuple(_args, "O&HO&",
1205 PyMac_GetRect, &inBounds,
1206 &inKind,
1207 ThemeButtonDrawInfo_Convert, &inNewInfo))
1208 return NULL;
1209 _err = GetThemeButtonRegion(&inBounds,
1210 inKind,
1211 &inNewInfo,
1212 (RgnHandle)0);
1213 if (_err != noErr) return PyMac_Error(_err);
1214 Py_INCREF(Py_None);
1215 _res = Py_None;
1216 return _res;
1219 static PyObject *App_GetThemeButtonContentBounds(PyObject *_self, PyObject *_args)
1221 PyObject *_res = NULL;
1222 OSStatus _err;
1223 Rect inBounds;
1224 UInt16 inKind;
1225 ThemeButtonDrawInfo inDrawInfo;
1226 Rect outBounds;
1227 #ifndef GetThemeButtonContentBounds
1228 PyMac_PRECHECK(GetThemeButtonContentBounds);
1229 #endif
1230 if (!PyArg_ParseTuple(_args, "O&HO&",
1231 PyMac_GetRect, &inBounds,
1232 &inKind,
1233 ThemeButtonDrawInfo_Convert, &inDrawInfo))
1234 return NULL;
1235 _err = GetThemeButtonContentBounds(&inBounds,
1236 inKind,
1237 &inDrawInfo,
1238 &outBounds);
1239 if (_err != noErr) return PyMac_Error(_err);
1240 _res = Py_BuildValue("O&",
1241 PyMac_BuildRect, &outBounds);
1242 return _res;
1245 static PyObject *App_GetThemeButtonBackgroundBounds(PyObject *_self, PyObject *_args)
1247 PyObject *_res = NULL;
1248 OSStatus _err;
1249 Rect inBounds;
1250 UInt16 inKind;
1251 ThemeButtonDrawInfo inDrawInfo;
1252 Rect outBounds;
1253 #ifndef GetThemeButtonBackgroundBounds
1254 PyMac_PRECHECK(GetThemeButtonBackgroundBounds);
1255 #endif
1256 if (!PyArg_ParseTuple(_args, "O&HO&",
1257 PyMac_GetRect, &inBounds,
1258 &inKind,
1259 ThemeButtonDrawInfo_Convert, &inDrawInfo))
1260 return NULL;
1261 _err = GetThemeButtonBackgroundBounds(&inBounds,
1262 inKind,
1263 &inDrawInfo,
1264 &outBounds);
1265 if (_err != noErr) return PyMac_Error(_err);
1266 _res = Py_BuildValue("O&",
1267 PyMac_BuildRect, &outBounds);
1268 return _res;
1271 static PyObject *App_PlayThemeSound(PyObject *_self, PyObject *_args)
1273 PyObject *_res = NULL;
1274 OSStatus _err;
1275 ThemeSoundKind kind;
1276 #ifndef PlayThemeSound
1277 PyMac_PRECHECK(PlayThemeSound);
1278 #endif
1279 if (!PyArg_ParseTuple(_args, "O&",
1280 PyMac_GetOSType, &kind))
1281 return NULL;
1282 _err = PlayThemeSound(kind);
1283 if (_err != noErr) return PyMac_Error(_err);
1284 Py_INCREF(Py_None);
1285 _res = Py_None;
1286 return _res;
1289 static PyObject *App_BeginThemeDragSound(PyObject *_self, PyObject *_args)
1291 PyObject *_res = NULL;
1292 OSStatus _err;
1293 ThemeDragSoundKind kind;
1294 #ifndef BeginThemeDragSound
1295 PyMac_PRECHECK(BeginThemeDragSound);
1296 #endif
1297 if (!PyArg_ParseTuple(_args, "O&",
1298 PyMac_GetOSType, &kind))
1299 return NULL;
1300 _err = BeginThemeDragSound(kind);
1301 if (_err != noErr) return PyMac_Error(_err);
1302 Py_INCREF(Py_None);
1303 _res = Py_None;
1304 return _res;
1307 static PyObject *App_EndThemeDragSound(PyObject *_self, PyObject *_args)
1309 PyObject *_res = NULL;
1310 OSStatus _err;
1311 #ifndef EndThemeDragSound
1312 PyMac_PRECHECK(EndThemeDragSound);
1313 #endif
1314 if (!PyArg_ParseTuple(_args, ""))
1315 return NULL;
1316 _err = EndThemeDragSound();
1317 if (_err != noErr) return PyMac_Error(_err);
1318 Py_INCREF(Py_None);
1319 _res = Py_None;
1320 return _res;
1323 static PyObject *App_DrawThemeTickMark(PyObject *_self, PyObject *_args)
1325 PyObject *_res = NULL;
1326 OSStatus _err;
1327 Rect bounds;
1328 ThemeDrawState state;
1329 #ifndef DrawThemeTickMark
1330 PyMac_PRECHECK(DrawThemeTickMark);
1331 #endif
1332 if (!PyArg_ParseTuple(_args, "O&l",
1333 PyMac_GetRect, &bounds,
1334 &state))
1335 return NULL;
1336 _err = DrawThemeTickMark(&bounds,
1337 state);
1338 if (_err != noErr) return PyMac_Error(_err);
1339 Py_INCREF(Py_None);
1340 _res = Py_None;
1341 return _res;
1344 static PyObject *App_DrawThemeChasingArrows(PyObject *_self, PyObject *_args)
1346 PyObject *_res = NULL;
1347 OSStatus _err;
1348 Rect bounds;
1349 UInt32 index;
1350 ThemeDrawState state;
1351 UInt32 eraseData;
1352 #ifndef DrawThemeChasingArrows
1353 PyMac_PRECHECK(DrawThemeChasingArrows);
1354 #endif
1355 if (!PyArg_ParseTuple(_args, "O&lll",
1356 PyMac_GetRect, &bounds,
1357 &index,
1358 &state,
1359 &eraseData))
1360 return NULL;
1361 _err = DrawThemeChasingArrows(&bounds,
1362 index,
1363 state,
1364 NULL,
1365 eraseData);
1366 if (_err != noErr) return PyMac_Error(_err);
1367 Py_INCREF(Py_None);
1368 _res = Py_None;
1369 return _res;
1372 static PyObject *App_DrawThemePopupArrow(PyObject *_self, PyObject *_args)
1374 PyObject *_res = NULL;
1375 OSStatus _err;
1376 Rect bounds;
1377 ThemeArrowOrientation orientation;
1378 ThemePopupArrowSize size;
1379 ThemeDrawState state;
1380 UInt32 eraseData;
1381 #ifndef DrawThemePopupArrow
1382 PyMac_PRECHECK(DrawThemePopupArrow);
1383 #endif
1384 if (!PyArg_ParseTuple(_args, "O&HHll",
1385 PyMac_GetRect, &bounds,
1386 &orientation,
1387 &size,
1388 &state,
1389 &eraseData))
1390 return NULL;
1391 _err = DrawThemePopupArrow(&bounds,
1392 orientation,
1393 size,
1394 state,
1395 NULL,
1396 eraseData);
1397 if (_err != noErr) return PyMac_Error(_err);
1398 Py_INCREF(Py_None);
1399 _res = Py_None;
1400 return _res;
1403 static PyObject *App_DrawThemeStandaloneGrowBox(PyObject *_self, PyObject *_args)
1405 PyObject *_res = NULL;
1406 OSStatus _err;
1407 Point origin;
1408 ThemeGrowDirection growDirection;
1409 Boolean isSmall;
1410 ThemeDrawState state;
1411 #ifndef DrawThemeStandaloneGrowBox
1412 PyMac_PRECHECK(DrawThemeStandaloneGrowBox);
1413 #endif
1414 if (!PyArg_ParseTuple(_args, "O&Hbl",
1415 PyMac_GetPoint, &origin,
1416 &growDirection,
1417 &isSmall,
1418 &state))
1419 return NULL;
1420 _err = DrawThemeStandaloneGrowBox(origin,
1421 growDirection,
1422 isSmall,
1423 state);
1424 if (_err != noErr) return PyMac_Error(_err);
1425 Py_INCREF(Py_None);
1426 _res = Py_None;
1427 return _res;
1430 static PyObject *App_DrawThemeStandaloneNoGrowBox(PyObject *_self, PyObject *_args)
1432 PyObject *_res = NULL;
1433 OSStatus _err;
1434 Point origin;
1435 ThemeGrowDirection growDirection;
1436 Boolean isSmall;
1437 ThemeDrawState state;
1438 #ifndef DrawThemeStandaloneNoGrowBox
1439 PyMac_PRECHECK(DrawThemeStandaloneNoGrowBox);
1440 #endif
1441 if (!PyArg_ParseTuple(_args, "O&Hbl",
1442 PyMac_GetPoint, &origin,
1443 &growDirection,
1444 &isSmall,
1445 &state))
1446 return NULL;
1447 _err = DrawThemeStandaloneNoGrowBox(origin,
1448 growDirection,
1449 isSmall,
1450 state);
1451 if (_err != noErr) return PyMac_Error(_err);
1452 Py_INCREF(Py_None);
1453 _res = Py_None;
1454 return _res;
1457 static PyObject *App_GetThemeStandaloneGrowBoxBounds(PyObject *_self, PyObject *_args)
1459 PyObject *_res = NULL;
1460 OSStatus _err;
1461 Point origin;
1462 ThemeGrowDirection growDirection;
1463 Boolean isSmall;
1464 Rect bounds;
1465 #ifndef GetThemeStandaloneGrowBoxBounds
1466 PyMac_PRECHECK(GetThemeStandaloneGrowBoxBounds);
1467 #endif
1468 if (!PyArg_ParseTuple(_args, "O&Hb",
1469 PyMac_GetPoint, &origin,
1470 &growDirection,
1471 &isSmall))
1472 return NULL;
1473 _err = GetThemeStandaloneGrowBoxBounds(origin,
1474 growDirection,
1475 isSmall,
1476 &bounds);
1477 if (_err != noErr) return PyMac_Error(_err);
1478 _res = Py_BuildValue("O&",
1479 PyMac_BuildRect, &bounds);
1480 return _res;
1483 static PyObject *App_NormalizeThemeDrawingState(PyObject *_self, PyObject *_args)
1485 PyObject *_res = NULL;
1486 OSStatus _err;
1487 #ifndef NormalizeThemeDrawingState
1488 PyMac_PRECHECK(NormalizeThemeDrawingState);
1489 #endif
1490 if (!PyArg_ParseTuple(_args, ""))
1491 return NULL;
1492 _err = NormalizeThemeDrawingState();
1493 if (_err != noErr) return PyMac_Error(_err);
1494 Py_INCREF(Py_None);
1495 _res = Py_None;
1496 return _res;
1499 static PyObject *App_GetThemeDrawingState(PyObject *_self, PyObject *_args)
1501 PyObject *_res = NULL;
1502 OSStatus _err;
1503 ThemeDrawingState outState;
1504 #ifndef GetThemeDrawingState
1505 PyMac_PRECHECK(GetThemeDrawingState);
1506 #endif
1507 if (!PyArg_ParseTuple(_args, ""))
1508 return NULL;
1509 _err = GetThemeDrawingState(&outState);
1510 if (_err != noErr) return PyMac_Error(_err);
1511 _res = Py_BuildValue("O&",
1512 ThemeDrawingStateObj_New, outState);
1513 return _res;
1516 static PyObject *App_ApplyThemeBackground(PyObject *_self, PyObject *_args)
1518 PyObject *_res = NULL;
1519 OSStatus _err;
1520 ThemeBackgroundKind inKind;
1521 Rect bounds;
1522 ThemeDrawState inState;
1523 SInt16 inDepth;
1524 Boolean inColorDev;
1525 #ifndef ApplyThemeBackground
1526 PyMac_PRECHECK(ApplyThemeBackground);
1527 #endif
1528 if (!PyArg_ParseTuple(_args, "lO&lhb",
1529 &inKind,
1530 PyMac_GetRect, &bounds,
1531 &inState,
1532 &inDepth,
1533 &inColorDev))
1534 return NULL;
1535 _err = ApplyThemeBackground(inKind,
1536 &bounds,
1537 inState,
1538 inDepth,
1539 inColorDev);
1540 if (_err != noErr) return PyMac_Error(_err);
1541 Py_INCREF(Py_None);
1542 _res = Py_None;
1543 return _res;
1546 static PyObject *App_SetThemeTextColorForWindow(PyObject *_self, PyObject *_args)
1548 PyObject *_res = NULL;
1549 OSStatus _err;
1550 WindowPtr window;
1551 Boolean isActive;
1552 SInt16 depth;
1553 Boolean isColorDev;
1554 #ifndef SetThemeTextColorForWindow
1555 PyMac_PRECHECK(SetThemeTextColorForWindow);
1556 #endif
1557 if (!PyArg_ParseTuple(_args, "O&bhb",
1558 WinObj_Convert, &window,
1559 &isActive,
1560 &depth,
1561 &isColorDev))
1562 return NULL;
1563 _err = SetThemeTextColorForWindow(window,
1564 isActive,
1565 depth,
1566 isColorDev);
1567 if (_err != noErr) return PyMac_Error(_err);
1568 Py_INCREF(Py_None);
1569 _res = Py_None;
1570 return _res;
1573 static PyObject *App_IsValidAppearanceFileType(PyObject *_self, PyObject *_args)
1575 PyObject *_res = NULL;
1576 Boolean _rv;
1577 OSType fileType;
1578 #ifndef IsValidAppearanceFileType
1579 PyMac_PRECHECK(IsValidAppearanceFileType);
1580 #endif
1581 if (!PyArg_ParseTuple(_args, "O&",
1582 PyMac_GetOSType, &fileType))
1583 return NULL;
1584 _rv = IsValidAppearanceFileType(fileType);
1585 _res = Py_BuildValue("b",
1586 _rv);
1587 return _res;
1590 static PyObject *App_GetThemeBrushAsColor(PyObject *_self, PyObject *_args)
1592 PyObject *_res = NULL;
1593 OSStatus _err;
1594 ThemeBrush inBrush;
1595 SInt16 inDepth;
1596 Boolean inColorDev;
1597 RGBColor outColor;
1598 #ifndef GetThemeBrushAsColor
1599 PyMac_PRECHECK(GetThemeBrushAsColor);
1600 #endif
1601 if (!PyArg_ParseTuple(_args, "hhb",
1602 &inBrush,
1603 &inDepth,
1604 &inColorDev))
1605 return NULL;
1606 _err = GetThemeBrushAsColor(inBrush,
1607 inDepth,
1608 inColorDev,
1609 &outColor);
1610 if (_err != noErr) return PyMac_Error(_err);
1611 _res = Py_BuildValue("O&",
1612 QdRGB_New, &outColor);
1613 return _res;
1616 static PyObject *App_GetThemeTextColor(PyObject *_self, PyObject *_args)
1618 PyObject *_res = NULL;
1619 OSStatus _err;
1620 ThemeTextColor inColor;
1621 SInt16 inDepth;
1622 Boolean inColorDev;
1623 RGBColor outColor;
1624 #ifndef GetThemeTextColor
1625 PyMac_PRECHECK(GetThemeTextColor);
1626 #endif
1627 if (!PyArg_ParseTuple(_args, "hhb",
1628 &inColor,
1629 &inDepth,
1630 &inColorDev))
1631 return NULL;
1632 _err = GetThemeTextColor(inColor,
1633 inDepth,
1634 inColorDev,
1635 &outColor);
1636 if (_err != noErr) return PyMac_Error(_err);
1637 _res = Py_BuildValue("O&",
1638 QdRGB_New, &outColor);
1639 return _res;
1642 static PyObject *App_GetThemeMetric(PyObject *_self, PyObject *_args)
1644 PyObject *_res = NULL;
1645 OSStatus _err;
1646 ThemeMetric inMetric;
1647 SInt32 outMetric;
1648 #ifndef GetThemeMetric
1649 PyMac_PRECHECK(GetThemeMetric);
1650 #endif
1651 if (!PyArg_ParseTuple(_args, "l",
1652 &inMetric))
1653 return NULL;
1654 _err = GetThemeMetric(inMetric,
1655 &outMetric);
1656 if (_err != noErr) return PyMac_Error(_err);
1657 _res = Py_BuildValue("l",
1658 outMetric);
1659 return _res;
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)")},
1793 {NULL, NULL, 0}
1797 #else /* __LP64__ */
1799 static PyMethodDef App_methods[] = {
1800 {NULL, NULL, 0}
1803 #endif /* __LP64__ */
1806 void init_App(void)
1808 PyObject *m;
1809 #ifndef __LP64__
1810 PyObject *d;
1811 #endif /* !__LP64__ */
1814 m = Py_InitModule("_App", App_methods);
1815 #ifndef __LP64__
1816 d = PyModule_GetDict(m);
1817 App_Error = PyMac_GetOSErrException();
1818 if (App_Error == NULL ||
1819 PyDict_SetItemString(d, "Error", App_Error) != 0)
1820 return;
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 ========================= */