1 {
2      File:       HIToolbox/HITheme.h
3 
4      Contains:   HIToolbox HITheme interfaces.
5 
6      Version:    HIToolbox-624~3
7 
8      Copyright:  � 1994-2008 by Apple Computer, Inc., all rights reserved.
9 
10      Bugs?:      For bug reports, consult the following page on
11                  the World Wide Web:
12 
13                      http://bugs.freepascal.org
14 
15 }
16 {       Pascal Translation:  Peter N Lewis, <peter@stairways.com.au>, 2004 }
17 {       Pascal Translation Updated:  Peter N Lewis, <peter@stairways.com.au>, August 2005 }
18 {       Pascal Translation Updated:  Jonas Maebe, <jonas@freepascal.org>, October 2009 }
19 {       Pascal Translation Updated:  Jonas Maebe, <jonas@freepascal.org>, October 2012 }
20 {
21     Modified for use with Free Pascal
22     Version 308
23     Please report any bugs to <gpc@microbizz.nl>
24 }
25 
26 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
27 {$mode macpas}
28 {$modeswitch cblocks}
29 {$packenum 1}
30 {$macro on}
31 {$inline on}
32 {$calling mwpascal}
33 
34 unit HITheme;
35 interface
36 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
37 {$setc GAP_INTERFACES_VERSION := $0308}
38 
39 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
40     {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
41 {$endc}
42 
43 {$ifc defined CPUPOWERPC and defined CPUI386}
44 	{$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
45 {$endc}
46 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
47 	{$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
48 {$endc}
49 
50 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
51 	{$setc __ppc__ := 1}
52 {$elsec}
53 	{$setc __ppc__ := 0}
54 {$endc}
55 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
56 	{$setc __ppc64__ := 1}
57 {$elsec}
58 	{$setc __ppc64__ := 0}
59 {$endc}
60 {$ifc not defined __i386__ and defined CPUI386}
61 	{$setc __i386__ := 1}
62 {$elsec}
63 	{$setc __i386__ := 0}
64 {$endc}
65 {$ifc not defined __x86_64__ and defined CPUX86_64}
66 	{$setc __x86_64__ := 1}
67 {$elsec}
68 	{$setc __x86_64__ := 0}
69 {$endc}
70 {$ifc not defined __arm__ and defined CPUARM}
71 	{$setc __arm__ := 1}
72 {$elsec}
73 	{$setc __arm__ := 0}
74 {$endc}
75 {$ifc not defined __arm64__ and defined CPUAARCH64}
76   {$setc __arm64__ := 1}
77 {$elsec}
78   {$setc __arm64__ := 0}
79 {$endc}
80 
81 {$ifc defined cpu64}
82   {$setc __LP64__ := 1}
83 {$elsec}
84   {$setc __LP64__ := 0}
85 {$endc}
86 
87 
88 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
89 	{$error Conflicting definitions for __ppc__ and __i386__}
90 {$endc}
91 
92 {$ifc defined __ppc__ and __ppc__}
93 	{$setc TARGET_CPU_PPC := TRUE}
94 	{$setc TARGET_CPU_PPC64 := FALSE}
95 	{$setc TARGET_CPU_X86 := FALSE}
96 	{$setc TARGET_CPU_X86_64 := FALSE}
97 	{$setc TARGET_CPU_ARM := FALSE}
98 	{$setc TARGET_CPU_ARM64 := FALSE}
99 	{$setc TARGET_OS_MAC := TRUE}
100 	{$setc TARGET_OS_IPHONE := FALSE}
101 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
102 	{$setc TARGET_OS_EMBEDDED := FALSE}
103 {$elifc defined __ppc64__ and __ppc64__}
104 	{$setc TARGET_CPU_PPC := FALSE}
105 	{$setc TARGET_CPU_PPC64 := TRUE}
106 	{$setc TARGET_CPU_X86 := FALSE}
107 	{$setc TARGET_CPU_X86_64 := FALSE}
108 	{$setc TARGET_CPU_ARM := FALSE}
109 	{$setc TARGET_CPU_ARM64 := FALSE}
110 	{$setc TARGET_OS_MAC := TRUE}
111 	{$setc TARGET_OS_IPHONE := FALSE}
112 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
113 	{$setc TARGET_OS_EMBEDDED := FALSE}
114 {$elifc defined __i386__ and __i386__}
115 	{$setc TARGET_CPU_PPC := FALSE}
116 	{$setc TARGET_CPU_PPC64 := FALSE}
117 	{$setc TARGET_CPU_X86 := TRUE}
118 	{$setc TARGET_CPU_X86_64 := FALSE}
119 	{$setc TARGET_CPU_ARM := FALSE}
120 	{$setc TARGET_CPU_ARM64 := FALSE}
121 {$ifc defined iphonesim}
122  	{$setc TARGET_OS_MAC := FALSE}
123 	{$setc TARGET_OS_IPHONE := TRUE}
124 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
125 {$elsec}
126 	{$setc TARGET_OS_MAC := TRUE}
127 	{$setc TARGET_OS_IPHONE := FALSE}
128 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
129 {$endc}
130 	{$setc TARGET_OS_EMBEDDED := FALSE}
131 {$elifc defined __x86_64__ and __x86_64__}
132 	{$setc TARGET_CPU_PPC := FALSE}
133 	{$setc TARGET_CPU_PPC64 := FALSE}
134 	{$setc TARGET_CPU_X86 := FALSE}
135 	{$setc TARGET_CPU_X86_64 := TRUE}
136 	{$setc TARGET_CPU_ARM := FALSE}
137 	{$setc TARGET_CPU_ARM64 := FALSE}
138 {$ifc defined iphonesim}
139  	{$setc TARGET_OS_MAC := FALSE}
140 	{$setc TARGET_OS_IPHONE := TRUE}
141 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
142 {$elsec}
143 	{$setc TARGET_OS_MAC := TRUE}
144 	{$setc TARGET_OS_IPHONE := FALSE}
145 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
146 {$endc}
147 	{$setc TARGET_OS_EMBEDDED := FALSE}
148 {$elifc defined __arm__ and __arm__}
149 	{$setc TARGET_CPU_PPC := FALSE}
150 	{$setc TARGET_CPU_PPC64 := FALSE}
151 	{$setc TARGET_CPU_X86 := FALSE}
152 	{$setc TARGET_CPU_X86_64 := FALSE}
153 	{$setc TARGET_CPU_ARM := TRUE}
154 	{$setc TARGET_CPU_ARM64 := FALSE}
155 	{$setc TARGET_OS_MAC := FALSE}
156 	{$setc TARGET_OS_IPHONE := TRUE}
157 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
158 	{$setc TARGET_OS_EMBEDDED := TRUE}
159 {$elifc defined __arm64__ and __arm64__}
160 	{$setc TARGET_CPU_PPC := FALSE}
161 	{$setc TARGET_CPU_PPC64 := FALSE}
162 	{$setc TARGET_CPU_X86 := FALSE}
163 	{$setc TARGET_CPU_X86_64 := FALSE}
164 	{$setc TARGET_CPU_ARM := FALSE}
165 	{$setc TARGET_CPU_ARM64 := TRUE}
166 {$ifc defined ios}
167 	{$setc TARGET_OS_MAC := FALSE}
168 	{$setc TARGET_OS_IPHONE := TRUE}
169 	{$setc TARGET_OS_EMBEDDED := TRUE}
170 {$elsec}
171 	{$setc TARGET_OS_MAC := TRUE}
172 	{$setc TARGET_OS_IPHONE := FALSE}
173 	{$setc TARGET_OS_EMBEDDED := FALSE}
174 {$endc}
175 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
176 {$elsec}
177 	{$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
178 {$endc}
179 
180 {$ifc defined __LP64__ and __LP64__ }
181   {$setc TARGET_CPU_64 := TRUE}
182 {$elsec}
183   {$setc TARGET_CPU_64 := FALSE}
184 {$endc}
185 
186 {$ifc defined FPC_BIG_ENDIAN}
187 	{$setc TARGET_RT_BIG_ENDIAN := TRUE}
188 	{$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
189 {$elifc defined FPC_LITTLE_ENDIAN}
190 	{$setc TARGET_RT_BIG_ENDIAN := FALSE}
191 	{$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
192 {$elsec}
193 	{$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
194 {$endc}
195 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
196 {$setc CALL_NOT_IN_CARBON := FALSE}
197 {$setc OLDROUTINENAMES := FALSE}
198 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
199 {$setc OPAQUE_UPP_TYPES := TRUE}
200 {$setc OTCARBONAPPLICATION := TRUE}
201 {$setc OTKERNEL := FALSE}
202 {$setc PM_USE_SESSION_APIS := TRUE}
203 {$setc TARGET_API_MAC_CARBON := TRUE}
204 {$setc TARGET_API_MAC_OS8 := FALSE}
205 {$setc TARGET_API_MAC_OSX := TRUE}
206 {$setc TARGET_CARBON := TRUE}
207 {$setc TARGET_CPU_68K := FALSE}
208 {$setc TARGET_CPU_MIPS := FALSE}
209 {$setc TARGET_CPU_SPARC := FALSE}
210 {$setc TARGET_OS_UNIX := FALSE}
211 {$setc TARGET_OS_WIN32 := FALSE}
212 {$setc TARGET_RT_MAC_68881 := FALSE}
213 {$setc TARGET_RT_MAC_CFM := FALSE}
214 {$setc TARGET_RT_MAC_MACHO := TRUE}
215 {$setc TYPED_FUNCTION_POINTERS := TRUE}
216 {$setc TYPE_BOOL := FALSE}
217 {$setc TYPE_EXTENDED := FALSE}
218 {$setc TYPE_LONGLONG := TRUE}
219 uses MacTypes,CFBase,CGBase,Appearance,HIShape,HIGeometry,Drag,CFDate,CGContext,MacWindows,Controls,CTFont;
220 {$endc} {not MACOSALLINCLUDE}
221 
222 
223 
224 {$ifc TARGET_OS_MAC}
225 
226 {$ALIGN MAC68K}
227 
228 { -------------------------------------------------------------------------- }
229 {  HIThemeOrientation information                                            }
230 { -------------------------------------------------------------------------- }
231 
232 const
233 {
234    * The passed context has an origin at the top left. This is the
235    * default of a context passed to you by HIToolbox.
236    }
237 	kHIThemeOrientationNormal = 0;
238 
239   {
240    * The passed context has an origin at the bottom left. This is the
241    * default for a context you create.
242    }
243 	kHIThemeOrientationInverted = 1;
244 
245 type
246 	HIThemeOrientation = UInt32;
247 { -------------------------------------------------------------------------- }
248 {  Splitter types                                                            }
249 { -------------------------------------------------------------------------- }
250 
251 const
252 {
253    * Draw the splitter with its normal appearance.
254    }
255 	kHIThemeSplitterAdornmentNone = 0;
256 
257   {
258    * Draw the splitter with its metal appearance.
259    }
260 	kHIThemeSplitterAdornmentMetal = 1;
261 
262 type
263 	HIThemeSplitterAdornment = UInt32;
264 { -------------------------------------------------------------------------- }
265 {  Window Grow Box                                                           }
266 { -------------------------------------------------------------------------- }
267 
268 const
269 {
270    * The grow box corner for a window that has no scroll bars.
271    }
272 	kHIThemeGrowBoxKindNormal = 0;
273 
274   {
275    * The grow box corner for a window that has no grow box. This sounds
276    * paradoxical, but this type of grow box, formerly known as the
277    * "NoGrowBox" is used to fill in the corner left blank by the
278    * intersection of a horizontal and a vertical scroll bar.
279    }
280 	kHIThemeGrowBoxKindNone = 1;
281 
282 type
283 	HIThemeGrowBoxKind = UInt32;
284 
285 const
286 {
287    * Draw the grow box for normal windows.
288    }
289 	kHIThemeGrowBoxSizeNormal = 0;
290 
291   {
292    * Draw the smaller grow box for utility or floating windows.
293    }
294 	kHIThemeGrowBoxSizeSmall = 1;
295 
296 type
297 	HIThemeGrowBoxSize = UInt32;
298 
299 const
300 {
301    * The group box is drawn with the primary variant.
302    }
303 	kHIThemeGroupBoxKindPrimary = 0;
304 
305   {
306    * The group box is drawn with the secondary variant.
307    }
308 	kHIThemeGroupBoxKindSecondary = 1;
309 
310   {
311    * The group box is drawn with the primary variant. This group box
312    * draws opaque. This does not match the Mac OS X 10.3 appearance
313    * 100%, as the boxes should be transparent, but draws this way for
314    * the sake of compatibility. Please update to use the newer
315    * transparent variant.
316    }
317 	kHIThemeGroupBoxKindPrimaryOpaque = 3;
318 
319   {
320    * The group box is drawn with the secondary variant. This group box
321    * draws opaque. This does not match the Mac OS X 10.3 appearance
322    * 100%, as the boxes should be transparent, but draws this way for
323    * the sake of compatibility. Please update to use the newer
324    * transparent variant.
325    }
326 	kHIThemeGroupBoxKindSecondaryOpaque = 4;
327 
328 type
329 	HIThemeGroupBoxKind = UInt32;
330 
331 const
332 {
333    * A header drawn above window content that has no top border of its
334    * own. (i.e. the same as the status bar in an icon view Finder
335    * window).
336    }
337 	kHIThemeHeaderKindWindow = 0;
338 
339   {
340    * A header drawn above window content that has a top border of its
341    * own. (i.e. the same as the status bar in an list view Finder
342    * window).
343    }
344 	kHIThemeHeaderKindList = 1;
345 
346 type
347 	HIThemeHeaderKind = UInt32;
348 
349 const
350 {
351    * The default sized square text field (like Edit Text).
352    }
353 	kHIThemeFrameTextFieldSquare = 0;
354 	kHIThemeFrameListBox = 1;
355 
356   {
357    * The standard sized round text field, as typically used for search
358    * fields. Available on Mac OS X 10.3 and later.
359    }
360 	kHIThemeFrameTextFieldRound = 1000;
361 
362   {
363    * The small size round text field, as typically used for search
364    * fields. Available on Mac OS X 10.3 and later.
365    }
366 	kHIThemeFrameTextFieldRoundSmall = 1001;
367 
368   {
369    * The mini size round text field, as typically used for search
370    * fields. Available on Mac OS X 10.3 and later.
371    }
372 	kHIThemeFrameTextFieldRoundMini = 1002;
373 
374 type
375 	HIThemeFrameKind = UInt32;
376 
377 const
378 {
379    * Indicates that a menu title should be drawn in a condensed
380    * appearance. This constant is used in the
381    * HIThemeMenuTitleDrawInfo.attributes field.
382    }
383 	kHIThemeMenuTitleDrawCondensed = 1 shl 0;
384 
385 { -------------------------------------------------------------------------- }
386 {  DrawInfo                                                                  }
387 { -------------------------------------------------------------------------- }
388 
389 {
390  *  HIScrollBarTrackInfo
391  *
392  *  Summary:
393  *    Drawing parameters passed to scroll bar drawing and measuring
394  *    theme APIs.
395  *
396  *  Discussion:
397  *    New in Mac OS X 10.3.
398  }
399 type
400 	HIScrollBarTrackInfo = record
401 {
402    * The version of this data structure.  Currently, it is always 0.
403    }
404 		version: UInt32;
405 
406   {
407    * The ThemeTrackEnableState for the scroll bar to be drawn.
408    }
409 		enableState: SInt8 {ThemeTrackEnableState};
410 
411   {
412    * The ThemeTrackPressState for the scroll bar to be drawn.
413    }
414 		pressState: SInt8 {ThemeTrackPressState};
415 
416   {
417    * The view range size.
418    }
419 		viewsize: CGFloat;
420 	end;
421 	HIScrollBarTrackInfoPtr = ^HIScrollBarTrackInfo;
422 
423 {
424  *  HIThemeTrackDrawInfo
425  *
426  *  Summary:
427  *    Drawing parameters passed to track drawing and measuring theme
428  *    APIs.
429  *
430  *  Discussion:
431  *    New in Mac OS X 10.3, but based on legacy TrackDrawInfo.
432  }
433 type
434 	HIThemeTrackDrawInfo = record
435 {
436    * The version of this data structure.  Currently, it is always 0.
437    }
438 		version: UInt32;                { current version is 0 }
439 
440   {
441    * The ThemeTrackKind of the track being drawn or measured.
442    }
443 		kind: ThemeTrackKind;                   { what kind of track this info is for }
444 
445   {
446    * An HIRect describing the bounds of the track being drawn or
447    * measured.
448    }
449 		bounds: HIRect;                 { track basis rectangle }
450 
451   {
452    * The minimum allowable value for the track being drawn or measured.
453    }
454 		min: SInt32;                    { min track value }
455 
456   {
457    * The maximum allowable value for the track being drawn or measured.
458    }
459 		max: SInt32;                    { max track value }
460 
461   {
462    * The value for the track being drawn or measured.
463    }
464 		value: SInt32;                  { current thumb value }
465 
466   {
467    * Leave this reserved field set to 0.
468    }
469 		reserved: UInt32;
470 
471 
472   {
473    * A set of ThemeTrackAttributes for the track to be drawn or
474    * measured.
475    }
476 		attributes: ThemeTrackAttributes;           { various track attributes }
477 
478   {
479    * A ThemeTrackEnableState describing the state of the track to be
480    * drawn or measured.
481    }
482 		enableState: SInt8 {ThemeTrackEnableState};         { enable state }
483 
484   {
485    * Leave this reserved field set to 0.
486    }
487 		filler1: UInt8;
488 
489 		case SInt16 of
490 			0: (
491 				scrollbar: ScrollBarTrackInfo;
492 			   );
493 			1: (
494 				slider: SliderTrackInfo;
495 				);
496 			2: (
497 				progress: ProgressTrackInfo;
498 				);
499 	end;
500 	HIThemeTrackDrawInfoPtr = ^HIThemeTrackDrawInfo;
501 
502 {
503  *  HIThemeAnimationTimeInfo
504  *
505  *  Summary:
506  *    Time parameters passed to button drawing and measuring theme APIs.
507  *
508  *  Discussion:
509  *    New in Mac OS X 10.3.
510  }
511 type
512 	HIThemeAnimationTimeInfo = record
513 {
514    * The CFAbsoluteTime of the beginning of the animation of the
515    * button.  This only applies to buttons that animate -- currently
516    * only kThemePushButton.  All other buttons will ignore this field.
517    * If there is to be no animation, set this field to 0.
518    }
519 		start: CFAbsoluteTime;
520 
521   {
522    * The CFAbsoluteTime of the current animation frame of the button.
523    * This only applies to buttons that animate -- currently only
524    * kThemePushButton.  All other buttons will ignore this field.  If
525    * there is to be no animation, set this field to 0.
526    }
527 		current: CFAbsoluteTime;
528 	end;
529 	HIThemeAnimationTimeInfoPtr = ^HIThemeAnimationTimeInfo;
530 
531 {
532  *  HIThemeAnimationFrameInfo
533  *
534  *  Summary:
535  *    Frame parameters passed to button drawing and measuring theme
536  *    APIs.
537  *
538  *  Discussion:
539  *    New in Mac OS X 10.3.
540  }
541 type
542 	HIThemeAnimationFrameInfo = record
543 {
544    * The index of the frame of the animation to draw. If the index is
545    * greater that the maximum number of animation frames, it will be
546    * modded to calculate which frame to draw.
547    }
548 		index: UInt32;
549 	end;
550 	HIThemeAnimationFrameInfoPtr = ^HIThemeAnimationFrameInfo;
551 
552 {
553  *  HIThemeButtonDrawInfo
554  *
555  *  Summary:
556  *    Drawing parameters passed to button drawing and measuring theme
557  *    APIs.
558  *
559  *  Discussion:
560  *    New in Mac OS X 10.3.
561  }
562 type
563 	HIThemeButtonDrawInfo = record
564 {
565    * The version of this data structure.  Currently, it is always 0.
566    }
567 		version: UInt32;
568 
569   {
570    * The ThemeDrawState of the button being drawn or measured.
571    }
572 		state: ThemeDrawState;
573 
574   {
575    * A ThemeButtonKind indicating the type of button to be drawn.
576    }
577 		kind: ThemeButtonKind;
578 
579   {
580    * The ThemeButtonValue of the button being drawn or measured.
581    }
582 		value: ThemeButtonValue;
583 
584   {
585    * The ThemeButtonAdornment(s) with which the button is being drawn
586    * or measured.
587    }
588 		adornment: ThemeButtonAdornment;
589 		case SInt16 of
590 			0: (
591 					time: HIThemeAnimationTimeInfo;
592 			   );
593 			1: (
594 					frame: HIThemeAnimationFrameInfo;
595 				);
596 	end;
597 	HIThemeButtonDrawInfoPtr = ^HIThemeButtonDrawInfo;
598 
599 {
600  *  HIThemeSplitterDrawInfo
601  *
602  *  Summary:
603  *    Drawing parameters passed to splitter drawing and measuring theme
604  *    APIs.
605  *
606  *  Discussion:
607  *    New in Mac OS X 10.3.
608  }
609 type
610 	HIThemeSplitterDrawInfo = record
611 {
612    * The version of this data structure.  Currently, it is always 0.
613    }
614 		version: UInt32;
615 
616   {
617    * The ThemeDrawState of the splitter being drawn or measured.
618    }
619 		state: ThemeDrawState;
620 
621   {
622    * The HIThemeSplitterAdornments of the splitter being drawn or
623    * measured.
624    }
625 		adornment: HIThemeSplitterAdornment;
626 	end;
627 	HIThemeSplitterDrawInfoPtr = ^HIThemeSplitterDrawInfo;
628 
629 const
630 {
631    * No tab adornments are to be drawn.
632    }
633 	kHIThemeTabAdornmentNone = 0;
634 
635   {
636    * A focus ring is to be drawn around the tab.
637    }
638 	kHIThemeTabAdornmentFocus = 1 shl 2; { to match button focus adornment }
639 
640   {
641    * If available, a leading separator is to be drawn on the tab,
642    * either to the left or above, depending on orientation. Note that
643    * tabs overlap and if the separators are drawn over top each other,
644    * the shadows multiply undesirably. New in Mac OS X 10.4.
645    }
646 	kHIThemeTabAdornmentLeadingSeparator = 1 shl 3;
647 
648   {
649    * If available, a right separator is to be drawn on the tab, either
650    * to the right or below, depending on the orientation. Note that
651    * tabs overlap and if the separators are drawn over top each other,
652    * the shadows multiply undesirably. New in Mac OS X 10.4.
653    }
654 	kHIThemeTabAdornmentTrailingSeparator = 1 shl 4;
655 
656 type
657 	HIThemeTabAdornment = UInt32;
658 
659 {
660  *  Summary:
661  *    These values are similar to kControlSize constants for
662  *    convenience.
663  }
664 const
665 {
666    * The tabs are normal (large) sized.
667    }
668 	kHIThemeTabSizeNormal = 0;
669 
670   {
671    * The tabs are drawn as the small variant.
672    }
673 	kHIThemeTabSizeSmall = 1;
674 
675   {
676    * The tabs are drawn as the mini variant.
677    }
678 	kHIThemeTabSizeMini = 3;
679 
680 type
681 	HIThemeTabSize = UInt32;
682 
683 {
684  *  Summary:
685  *    Available values for HIThemeTabPosition. These are positions of
686  *    the tabs within the tab control. New in Mac OS X 10.4.
687  }
688 const
689 {
690    * The first position of a tab control. Left or top tab.
691    }
692 	kHIThemeTabPositionFirst = 0;
693 
694   {
695    * A middle tab.
696    }
697 	kHIThemeTabPositionMiddle = 1;
698 
699   {
700    * The last position of a tab control. Right or bottom tab.
701    }
702 	kHIThemeTabPositionLast = 2;
703 
704   {
705    * The only position of a tab control. It is simultaneously first and
706    * last. You know, only. There is only one tab. It looks pretty much
707    * like a button. Please don't use this if you can avoid it. It's
708    * ugly.
709    }
710 	kHIThemeTabPositionOnly = 3;
711 
712 type
713 	HIThemeTabPosition = UInt32;
714 
715 {
716  *  Summary:
717  *    Available values for HIThemeTabKind.
718  }
719 const
720 	kHIThemeTabKindNormal = 0;
721 
722 type
723 	HIThemeTabKind = UInt32;
724 
725 {
726  *  HIThemeTabDrawInfo
727  *
728  *  Summary:
729  *    Drawing parameters passed to tab drawing and measuring theme APIs.
730  *
731  *  Discussion:
732  *    In Mac OS X 10.4, added kind and position fields.
733  }
734 type
735 	HIThemeTabDrawInfo = record
736 {
737    * The version of this data structure.  Currently, it is always 1.
738    }
739 		version: UInt32;
740 
741   {
742    * A ThemeTabStyle describing the style of the tab to be drawn.
743    }
744 		style: ThemeTabStyle;
745 
746   {
747    * A ThemeTabDirection describing the side on which the tab is being
748    * drawn.
749    }
750 		direction: ThemeTabDirection;
751 
752   {
753    * An HIThemeTabSize indicating what size of tab to draw.
754    }
755 		size: HIThemeTabSize;
756 
757   {
758    * An HIThemeTabAdornment describing any additional adornments that
759    * are to be drawn on the tab.
760    }
761 		adornment: HIThemeTabAdornment;             { various tab attributes }
762 
763   {
764    * An HIThemeTabKind indicating what kind of tab to draw.
765    }
766 		kind: HIThemeTabKind;
767 
768   {
769    * The HIThemeTabPositions of the tab to be drawn or measured.
770    }
771 		position: HIThemeTabPosition;
772 	end;
773 	HIThemeTabDrawInfoPtr = ^HIThemeTabDrawInfo;
774 
775 {
776  *  HIThemeTabDrawInfoVersionZero
777  *
778  *  Summary:
779  *    This structure is left here as a reference to the previous
780  *    version of the tab drawing parameters. Please use the current
781  *    version.
782  *
783  *  Discussion:
784  *    Shipped with Mac OS X 10.3.
785  }
786 type
787 	HIThemeTabDrawInfoVersionZero = record
788 		version: UInt32;
789 		style: ThemeTabStyle;
790 		direction: ThemeTabDirection;
791 		size: HIThemeTabSize;
792 		adornment: HIThemeTabAdornment;             { various tab attributes }
793 	end;
794 
795 {
796  *  Summary:
797  *    Values for HIThemeTabPaneAdornment.
798  }
799 const
800 	kHIThemeTabPaneAdornmentNormal = 0;
801 
802 
803 type
804 	HIThemeTabPaneAdornment = UInt32;
805 
806 {
807  *  HIThemeTabPaneDrawInfo
808  *
809  *  Summary:
810  *    Drawing parameters passed to tab pane drawing and measuring theme
811  *    APIs.
812  *
813  *  Discussion:
814  *    In Mac OS X 10.4, added kind and adornment fields.
815  }
816 type
817 	HIThemeTabPaneDrawInfo = record
818 {
819    * The version of this data structure.  Currently, it is always 1.
820    }
821 		version: UInt32;
822 
823   {
824    * The ThemeDrawState for the tab pane to be drawn.
825    }
826 		state: ThemeDrawState;
827 
828   {
829    * A ThemeTabDirection describing on which side of the pane the tabs
830    * will be drawn.
831    }
832 		direction: ThemeTabDirection;
833 
834   {
835    * An HIThemeTabSize indicating what size of tab pane to draw.
836    }
837 		size: HIThemeTabSize;
838 
839   {
840    * An HIThemeTabKind indicating what kind of tab to draw this pane
841    * for.
842    }
843 		kind: HIThemeTabKind;
844 
845   {
846    * An HIThemeTabPaneAdornment describing any additional adornments
847    * that are to be drawn on the tab pane.
848    }
849 		adornment: HIThemeTabPaneAdornment;
850 	end;
851 
852 {
853  *  HIThemeTabPaneDrawInfoVersionZero
854  *
855  *  Summary:
856  *    This structure is left here as a reference to the previous
857  *    version of the tab pane drawing parameters. Please use the
858  *    current version.
859  *
860  *  Discussion:
861  *    Shipped with Mac OS X 10.3.
862  }
863 type
864 	HIThemeTabPaneDrawInfoVersionZero = record
865 		version: UInt32;
866 		state: ThemeDrawState;
867 		direction: ThemeTabDirection;
868 		size: HIThemeTabSize;
869 	end;
870 
871 const
872 {
873    * Available in Mac OS X 10.3 and later. Valid fields for this
874    * version are version and menuType.
875    }
876 	kHIThemeMenuDrawInfoVersionZero = 0;
877 
878   {
879    * Available in Mac OS X 10.5 and later. Valid fields for this
880    * version are all those in the zero version as well as the
881    * menuDirection field.
882    }
883 	kHIThemeMenuDrawInfoVersionOne = 1001;
884 
885 
886 {
887  *  HIThemeMenuDrawInfo
888  *
889  *  Summary:
890  *    Drawing parameters passed to menu drawing and measuring theme
891  *    APIs.
892  *
893  *  Discussion:
894  *    New in Mac OS X 10.3; revised in Mac OS X 10.5.
895  }
896 type
897 	HIThemeMenuDrawInfo = record
898 {
899    * The version of this data structure. Use
900    * kHIThemeMenuDrawInfoVersionZero or kHIThemeMenuDrawInfoVersionOne.
901    }
902 		version: UInt32;
903 
904   {
905    * A ThemeMenuType indicating which type of menu is to be drawn.
906    }
907 		menuType: ThemeMenuType;
908 
909   {
910    * Must be zero.
911    }
912 		reserved1: UNSIGNEDLONG;
913 
914   {
915    * Must be zero.
916    }
917 		reserved2: CGFloat;
918 
919   {
920    * kHIMenuRightDirection or kHIMenuLeftDirection as declared in
921    * <CarbonEvents.h>. Only interpreted if the version is
922    * kHIThemeMenuDrawInfoVersionOne and the menu type is hierarchical.
923    }
924 		menuDirection: UInt32;
925 
926   {
927    * Must be zero.
928    }
929 		reserved3: CGFloat;
930 
931   {
932    * Must be zero.
933    }
934 		reserved4: CGFloat;
935 	end;
936 	HIThemeMenuDrawInfoPtr = ^HIThemeMenuDrawInfo;
937 
938 {
939  *  HIThemeMenuDrawInfoVersionZero
940  *
941  *  Summary:
942  *    Drawing parameters passed to menu drawing and measuring theme
943  *    APIs.
944  *
945  *  Discussion:
946  *    New in Mac OS X 10.3.
947  }
948 type
949 	HIThemeMenuDrawInfoVersionZero = record
950 {
951    * The version of this data structure. Always 0.
952    }
953 		version: UInt32;
954 
955   {
956    * A ThemeMenuType indicating which type of menu is to be drawn.
957    }
958 		menuType: ThemeMenuType;
959 	end;
960 	HIThemeMenuDrawInfoVersionZeroPtr = ^HIThemeMenuDrawInfoVersionZero;
961 
962 {
963  *  HIThemeMenuItemDrawInfo
964  *
965  *  Summary:
966  *    Drawing parameters passed to menu item drawing and measuring
967  *    theme APIs.
968  *
969  *  Discussion:
970  *    New in Mac OS X 10.3.
971  }
972 type
973 	HIThemeMenuItemDrawInfo = record
974 {
975    * The version of this data structure.  Currently, it is always 0.
976    }
977 		version: UInt32;
978 
979   {
980    * A ThemeMenuItemType indicating what type of menu item is to be
981    * drawn.
982    }
983 		itemType: ThemeMenuItemType;
984 
985   {
986    * The ThemeMenuState of the menu item to be drawn.
987    }
988 		state: ThemeMenuState;
989 	end;
990 	HIThemeMenuItemDrawInfoPtr = ^HIThemeMenuItemDrawInfo;
991 
992 {
993  *  HIThemeFrameDrawInfo
994  *
995  *  Summary:
996  *    Drawing parameters passed to frame drawing and measuring theme
997  *    APIs.
998  *
999  *  Discussion:
1000  *    New in Mac OS X 10.3.
1001  }
1002 type
1003 	HIThemeFrameDrawInfo = record
1004 {
1005    * The version of this data structure.  Currently, it is always 0.
1006    }
1007 		version: UInt32;
1008 
1009   {
1010    * The HIThemeFrameKind of the frame to be drawn.
1011    }
1012 		kind: HIThemeFrameKind;
1013 
1014   {
1015    * The ThemeDrawState of the frame to be drawn.
1016    }
1017 		state: ThemeDrawState;
1018 
1019   {
1020    * A Boolean indicating whether the frame is to be drawn with focus
1021    * or without.
1022    }
1023 		isFocused: Boolean;
1024 	end;
1025 	HIThemeFrameDrawInfoPtr = ^HIThemeFrameDrawInfo;
1026 
1027 {
1028  *  HIThemeGroupBoxDrawInfo
1029  *
1030  *  Summary:
1031  *    Drawing parameters passed to group box drawing and measuring
1032  *    theme APIs.
1033  *
1034  *  Discussion:
1035  *    New in Mac OS X 10.3.
1036  }
1037 type
1038 	HIThemeGroupBoxDrawInfo = record
1039 {
1040    * The version of this data structure.  Currently, it is always 0.
1041    }
1042 		version: UInt32;
1043 
1044   {
1045    * The ThemeDrawState for the group box to be drawn.
1046    }
1047 		state: ThemeDrawState;
1048 
1049   {
1050    * An HIThemeGroupBoxKind indicating which type of group box is to be
1051    * drawn.
1052    }
1053 		kind: HIThemeGroupBoxKind;
1054 	end;
1055 	HIThemeGroupBoxDrawInfoPtr = ^HIThemeGroupBoxDrawInfo;
1056 
1057 {
1058  *  HIThemeGrabberDrawInfo
1059  *
1060  *  Summary:
1061  *    Drawing parameters passed to grabber drawing and measuring theme
1062  *    APIs.
1063  *
1064  *  Discussion:
1065  *    New in Mac OS X 10.3.
1066  }
1067 type
1068 	HIThemeGrabberDrawInfo = record
1069 {
1070    * The version of this data structure.  Currently, it is always 0.
1071    }
1072 		version: UInt32;
1073 
1074   {
1075    * The ThemeDrawState for the grabber to be drawn.
1076    }
1077 		state: ThemeDrawState;
1078 	end;
1079 	HIThemeGrabberDrawInfoPtr = ^HIThemeGrabberDrawInfo;
1080 
1081 {
1082  *  HIThemePlacardDrawInfo
1083  *
1084  *  Summary:
1085  *    Drawing parameters passed to placard drawing and measuring theme
1086  *    APIs.
1087  *
1088  *  Discussion:
1089  *    New in Mac OS X 10.3.
1090  }
1091 type
1092 	HIThemePlacardDrawInfo = record
1093 {
1094    * The version of this data structure.  Currently, it is always 0.
1095    }
1096 		version: UInt32;
1097 
1098   {
1099    * The ThemeDrawState for the placard to be drawn.
1100    }
1101 		state: ThemeDrawState;
1102 	end;
1103 	HIThemePlacardDrawInfoPtr = ^HIThemePlacardDrawInfo;
1104 
1105 {
1106  *  HIThemeHeaderDrawInfo
1107  *
1108  *  Summary:
1109  *    Drawing parameters passed to header drawing and measuring theme
1110  *    APIs.
1111  *
1112  *  Discussion:
1113  *    New in Mac OS X 10.3.
1114  }
1115 type
1116 	HIThemeHeaderDrawInfo = record
1117 {
1118    * The version of this data structure.  Currently, it is always 0.
1119    }
1120 		version: UInt32;
1121 
1122   {
1123    * The ThemeDrawState for the header to be drawn.
1124    }
1125 		state: ThemeDrawState;
1126 
1127   {
1128    * The HIThemeHeaderKind for the header to be drawn.
1129    }
1130 		kind: HIThemeHeaderKind;
1131 	end;
1132 	HIThemeHeaderDrawInfoPtr = ^HIThemeHeaderDrawInfo;
1133 
1134 {
1135  *  HIThemeMenuBarDrawInfo
1136  *
1137  *  Summary:
1138  *    Drawing parameters passed to HIThemeDrawMenuBarBackground.
1139  *
1140  *  Discussion:
1141  *    New in Mac OS X 10.3.
1142  }
1143 type
1144 	HIThemeMenuBarDrawInfo = record
1145 {
1146    * The version of this data structure.  Currently, it is always 0.
1147    }
1148 		version: UInt32;
1149 
1150   {
1151    * The ThemeMenuBarState for the menu bar to be drawn.
1152    }
1153 		state: ThemeMenuBarState;
1154 
1155   {
1156    * The attributes of the menu bar to be drawn.
1157    }
1158 		attributes: OptionBits;
1159 	end;
1160 	HIThemeMenuBarDrawInfoPtr = ^HIThemeMenuBarDrawInfo;
1161 
1162 {
1163  *  HIThemeMenuTitleDrawInfo
1164  *
1165  *  Summary:
1166  *    Drawing parameters passed to HIThemeDrawMenuTitle.
1167  *
1168  *  Discussion:
1169  *    New in Mac OS X 10.3.
1170  }
1171 type
1172 	HIThemeMenuTitleDrawInfo = record
1173 {
1174    * The version of this data structure.  Currently, it is always 0.
1175    }
1176 		version: UInt32;
1177 
1178   {
1179    * The ThemeMenuState for the menu title to be drawn.
1180    }
1181 		state: ThemeMenuState;
1182 
1183   {
1184    * The attributes of the menu title to be drawn. Must be either 0 or
1185    * kHIThemeMenuTitleDrawCondensed.
1186    }
1187 		attributes: OptionBits;
1188 
1189   {
1190    * The border space between the menu title rect and the menu title
1191    * text when the menu title spacing is being condensed. This field is
1192    * only observed by the Appearance Manager when the attributes field
1193    * contains kHIThemeMenuTitleDrawCondensed. The valid values for this
1194    * field range from the value returned by GetThemeMenuTitleExtra(
1195    * &extra, false ) to the value returned by GetThemeMenuTitleExtra(
1196    * &extra, true ). You may pass 0 in this field to use the minimum
1197    * condensed title extra.
1198    }
1199 		condensedTitleExtra: CGFloat;
1200 	end;
1201 	HIThemeMenuTitleDrawInfoPtr = ^HIThemeMenuTitleDrawInfo;
1202 
1203 {
1204  *  HIThemeTickMarkDrawInfo
1205  *
1206  *  Summary:
1207  *    Drawing parameters passed to tick mark drawing and measuring
1208  *    theme APIs.
1209  *
1210  *  Discussion:
1211  *    New in Mac OS X 10.3.
1212  }
1213 type
1214 	HIThemeTickMarkDrawInfo = record
1215 {
1216    * The version of this data structure.  Currently, it is always 0.
1217    }
1218 		version: UInt32;
1219 
1220   {
1221    * The ThemeDrawState for the tick mark to be drawn.
1222    }
1223 		state: ThemeDrawState;
1224 	end;
1225 	HIThemeTickMarkDrawInfoPtr = ^HIThemeTickMarkDrawInfo;
1226 
1227 {
1228  *  HIThemeWindowDrawInfo
1229  *
1230  *  Summary:
1231  *    Drawing parameters passed to window drawing and measuring theme
1232  *    APIs.
1233  *
1234  *  Discussion:
1235  *    New in Mac OS X 10.3, but based on legacy ThemeWindowMetrics.
1236  }
1237 type
1238 	HIThemeWindowDrawInfo = record
1239 {
1240    * The version of this data structure.  Currently, it is always 0.
1241    }
1242 		version: UInt32;
1243 
1244   {
1245    * A ThemeDrawState which describes the state of the window to be
1246    * drawn.
1247    }
1248 		state: ThemeDrawState;
1249 
1250   {
1251    * A ThemeWindowType specifying the type of window to be drawn.
1252    }
1253 		windowType: ThemeWindowType;
1254 
1255   {
1256    * The ThemeWindowAttributes describing the window to be drawn.
1257    }
1258 		attributes: ThemeWindowAttributes;
1259 
1260   {
1261    * The height of the title of the window.
1262    }
1263 		titleHeight: CGFloat;
1264 
1265   {
1266    * The width of the title of the window.
1267    }
1268 		titleWidth: CGFloat;
1269 	end;
1270 	HIThemeWindowDrawInfoPtr = ^HIThemeWindowDrawInfo;
1271 
1272 {
1273  *  HIThemeWindowWidgetDrawInfo
1274  *
1275  *  Summary:
1276  *    Drawing parameters passed to window widget drawing and measuring
1277  *    theme APIs.
1278  *
1279  *  Discussion:
1280  *    New in Mac OS X 10.3, but based on legacy ThemeWindowMetrics.
1281  }
1282 type
1283 	HIThemeWindowWidgetDrawInfo = record
1284 {
1285    * The version of this data structure.  Currently, it is always 0.
1286    }
1287 		version: UInt32;
1288 
1289   {
1290    * A ThemeDrawState which describes the state of the widget to be
1291    * drawn.
1292    }
1293 		widgetState: ThemeDrawState;
1294 
1295   {
1296    * A ThemeTitleBarWidget specifying the type of window widget to be
1297    * drawn.
1298    }
1299 		widgetType: ThemeTitleBarWidget;
1300 
1301   {
1302    * A ThemeDrawState which describes the state of the window for which
1303    * the widget is to be drawn.
1304    }
1305 		windowState: ThemeDrawState;
1306 
1307   {
1308    * A ThemeWindowType specifying the type of window to be drawn.
1309    }
1310 		windowType: ThemeWindowType;
1311 
1312   {
1313    * The ThemeWindowAttributes describing the window to be drawn.
1314    }
1315 		attributes: ThemeWindowAttributes;
1316 
1317   {
1318    * The height of the title of the window.
1319    }
1320 		titleHeight: CGFloat;
1321 
1322   {
1323    * The width of the title of the window.
1324    }
1325 		titleWidth: CGFloat;
1326 	end;
1327 	HIThemeWindowWidgetDrawInfoPtr = ^HIThemeWindowWidgetDrawInfo;
1328 
1329 {
1330  *  HIThemeSeparatorDrawInfo
1331  *
1332  *  Summary:
1333  *    Drawing parameters passed to separator drawing and measuring
1334  *    theme APIs.
1335  *
1336  *  Discussion:
1337  *    New in Mac OS X 10.3.
1338  }
1339 type
1340 	HIThemeSeparatorDrawInfo = record
1341 {
1342    * The version of this data structure.  Currently, it is always 0.
1343    }
1344 		version: UInt32;
1345 
1346   {
1347    * The ThemeDrawState for the separator to be drawn.
1348    }
1349 		state: ThemeDrawState;
1350 	end;
1351 	HIThemeSeparatorDrawInfoPtr = ^HIThemeSeparatorDrawInfo;
1352 
1353 {
1354  *  HIThemeScrollBarDelimitersDrawInfo
1355  *
1356  *  Summary:
1357  *    Drawing parameters passed to separator drawing and measuring
1358  *    theme APIs.
1359  *
1360  *  Discussion:
1361  *    New in Mac OS X 10.3.
1362  }
1363 type
1364 	HIThemeScrollBarDelimitersDrawInfo = record
1365 {
1366    * The version of this data structure.  Currently, it is always 0.
1367    }
1368 		version: UInt32;
1369 
1370   {
1371    * The ThemeDrawState for the separator to be drawn.
1372    }
1373 		state: ThemeDrawState;
1374 
1375   {
1376    * A ThemeWindowType specifying the type of window for which to draw
1377    * the delimiters.
1378    }
1379 		windowType: ThemeWindowType;
1380 
1381   {
1382    * The ThemeWindowAttributes of the window for which the scroll bar
1383    * delimters are to be drawn.
1384    }
1385 		attributes: ThemeWindowAttributes;
1386 	end;
1387 	HIThemeScrollBarDelimitersDrawInfoPtr = ^HIThemeScrollBarDelimitersDrawInfo;
1388 
1389 {
1390  *  HIThemeChasingArrowsDrawInfo
1391  *
1392  *  Summary:
1393  *    Drawing parameters passed to chasing arrows drawing and measuring
1394  *    theme APIs.
1395  *
1396  *  Discussion:
1397  *    New in Mac OS X 10.3.
1398  }
1399 type
1400 	HIThemeChasingArrowsDrawInfo = record
1401 {
1402    * The version of this data structure.  Currently, it is always 0.
1403    }
1404 		version: UInt32;
1405 
1406   {
1407    * The ThemeDrawState for the chasing arrows to be drawn.
1408    }
1409 		state: ThemeDrawState;
1410 
1411   {
1412    * A UInt32 used to calculate which frame of the chasing arrow
1413    * animation is to be drawn.
1414    }
1415 		index: UInt32;
1416 	end;
1417 	HIThemeChasingArrowsDrawInfoPtr = ^HIThemeChasingArrowsDrawInfo;
1418 
1419 {
1420  *  HIThemePopupArrowDrawInfo
1421  *
1422  *  Summary:
1423  *    Drawing parameters passed to popup arrow drawing and measuring
1424  *    theme APIs.
1425  *
1426  *  Discussion:
1427  *    New in Mac OS X 10.3.
1428  }
1429 type
1430 	HIThemePopupArrowDrawInfo = record
1431 {
1432    * The version of this data structure.  Currently, it is always 0.
1433    }
1434 		version: UInt32;
1435 
1436   {
1437    * The ThemeDrawState for the popup arrow to be drawn.
1438    }
1439 		state: ThemeDrawState;
1440 
1441   {
1442    * A ThemeArrowOrientation for the orientation of the popup arrow to
1443    * be drawn.
1444    }
1445 		orientation: ThemeArrowOrientation;
1446 
1447   {
1448    * A ThemePopupArrowSize for the size of the popup arrow to be drawn.
1449    }
1450 		size: ThemePopupArrowSize;
1451 	end;
1452 	HIThemePopupArrowDrawInfoPtr = ^HIThemePopupArrowDrawInfo;
1453 
1454 {
1455  *  HIThemeGrowBoxDrawInfo
1456  *
1457  *  Summary:
1458  *    Drawing parameters passed to grow box drawing and measuring theme
1459  *    APIs.
1460  *
1461  *  Discussion:
1462  *    New in Mac OS X 10.3.
1463  }
1464 type
1465 	HIThemeGrowBoxDrawInfo = record
1466 {
1467    * The version of this data structure.  Currently, it is always 0.
1468    }
1469 		version: UInt32;
1470 
1471   {
1472    * The ThemeDrawState for the grow box to be drawn.
1473    }
1474 		state: ThemeDrawState;
1475 
1476   {
1477    * A ThemeGrowBoxKind indicating in which kind of grow box to draw.
1478    }
1479 		kind: HIThemeGrowBoxKind;
1480 
1481   {
1482    * A ThemeGrowDirection indicating in which direction the window will
1483    * grow.
1484    }
1485 		direction: ThemeGrowDirection;
1486 
1487   {
1488    * An HIThemeGrowBoxSize describing the size of the grow box to draw.
1489    }
1490 		size: HIThemeGrowBoxSize;
1491 	end;
1492 	HIThemeGrowBoxDrawInfoPtr = ^HIThemeGrowBoxDrawInfo;
1493 
1494 {
1495  *  HIThemeBackgroundDrawInfo
1496  *
1497  *  Discussion:
1498  *    New in Mac OS X 10.3, but based on legacy TrackDrawInfo.
1499  }
1500 type
1501 	HIThemeBackgroundDrawInfo = record
1502 {
1503    * The version of this data structure.  Currently, it is always 0.
1504    }
1505 		version: UInt32;
1506 
1507   {
1508    * The ThemeDrawState of the background to be drawn.
1509    }
1510 		state: ThemeDrawState;
1511 
1512   {
1513    * The ThemeBackgroundKind with which to fill the background.
1514    }
1515 		kind: ThemeBackgroundKind;
1516 	end;
1517 	HIThemeBackgroundDrawInfoPtr = ^HIThemeBackgroundDrawInfo;
1518 { -------------------------------------------------------------------------- }
1519 {  Buttons                                                                   }
1520 { -------------------------------------------------------------------------- }
1521 {
1522  *  HIThemeDrawButton()
1523  *
1524  *  Summary:
1525  *    Draw a themed button.
1526  *
1527  *  Discussion:
1528  *    This generic button drawing theme primitive draws not just a push
1529  *    button, but all of the kinds of buttons described by
1530  *    ThemeButtonKind.
1531  *
1532  *  Mac OS X threading:
1533  *    Not thread safe
1534  *
1535  *  Parameters:
1536  *
1537  *    inBounds:
1538  *      The HIRect in which to draw.  Note that this API may draw
1539  *      outside of its bounds.
1540  *
1541  *    inDrawInfo:
1542  *      An HIThemeButtonDrawInfo describing the button that will be
1543  *      drawn.
1544  *
1545  *    inContext:
1546  *      The CG context in which the drawing is to be done.
1547  *
1548  *    inOrientation:
1549  *      An HIThemeOrientation that describes the orientation of the
1550  *      passed in context.
1551  *
1552  *    outLabelRect:
1553  *      A pointer to an HIRect into which to put the bounds of the
1554  *      label rect.
1555  *
1556  *  Availability:
1557  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1558  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1559  *    Non-Carbon CFM:   not available
1560  }
HIThemeDrawButtonnull1561 function HIThemeDrawButton( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outLabelRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawButton';
1562 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1563 
1564 
1565 {
1566  *  HIThemeGetButtonShape()
1567  *
1568  *  Summary:
1569  *    Get a shape of a themed button.
1570  *
1571  *  Discussion:
1572  *    This API was mistakenly named as a "Get" API. It behaves as
1573  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
1574  *    SHAPE.
1575  *
1576  *  Mac OS X threading:
1577  *    Not thread safe
1578  *
1579  *  Parameters:
1580  *
1581  *    inBounds:
1582  *      An HIRect indicating where the button would be drawn.
1583  *
1584  *    inDrawInfo:
1585  *      An HIThemeButtonDrawInfo describing the button that would be
1586  *      drawn.
1587  *
1588  *    outShape:
1589  *      A pointer to an HIShapeRef which will be set to the shape of
1590  *      the button that would be drawn. It needs to be released by the
1591  *      caller.
1592  *
1593  *  Availability:
1594  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1595  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1596  *    Non-Carbon CFM:   not available
1597  }
HIThemeGetButtonShapenull1598 function HIThemeGetButtonShape( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetButtonShape';
1599 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1600 
1601 
1602 {
1603  *  HIThemeGetButtonContentBounds()
1604  *
1605  *  Summary:
1606  *    Get the bounds of a themed button's content.
1607  *
1608  *  Mac OS X threading:
1609  *    Not thread safe
1610  *
1611  *  Parameters:
1612  *
1613  *    inBounds:
1614  *      An HIRect indicating where the button would be drawn.
1615  *
1616  *    inDrawInfo:
1617  *      An HIThemeButtonDrawInfo describing the button that would be
1618  *      drawn.
1619  *
1620  *    outBounds:
1621  *      A pointer to an HIRect in which will be returned the rectangle
1622  *      of the button content bounds.
1623  *
1624  *  Availability:
1625  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1626  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1627  *    Non-Carbon CFM:   not available
1628  }
HIThemeGetButtonContentBoundsnull1629 function HIThemeGetButtonContentBounds( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetButtonContentBounds';
1630 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1631 
1632 
1633 {
1634  *  HIThemeGetButtonBackgroundBounds()
1635  *
1636  *  Summary:
1637  *    Get the bounds of the background of a themed button.
1638  *
1639  *  Mac OS X threading:
1640  *    Not thread safe
1641  *
1642  *  Parameters:
1643  *
1644  *    inBounds:
1645  *      An HIRect indicating where the button would be drawn.
1646  *
1647  *    inDrawInfo:
1648  *      An HIThemeButtonDrawInfo describing the button that would be
1649  *      drawn.
1650  *
1651  *    outBounds:
1652  *      A pointer to an HIRect in which will be returned the rectangle
1653  *      of the button background bounds.
1654  *
1655  *  Availability:
1656  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1657  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1658  *    Non-Carbon CFM:   not available
1659  }
HIThemeGetButtonBackgroundBoundsnull1660 function HIThemeGetButtonBackgroundBounds( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetButtonBackgroundBounds';
1661 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1662 
1663 
1664 {
1665  *  HIThemeDrawChasingArrows()
1666  *
1667  *  Summary:
1668  *    Draw themed chasing arrows.
1669  *
1670  *  Discussion:
1671  *    Draw a frame from the chasing arrows animation.  The animation
1672  *    frame is based on a modulo value calculated from the index.
1673  *
1674  *  Mac OS X threading:
1675  *    Not thread safe
1676  *
1677  *  Parameters:
1678  *
1679  *    inBounds:
1680  *      An HIRect indicating where the chasing arrows are to be drawn.
1681  *
1682  *    inDrawInfo:
1683  *      An HIThemeChasingArrowsDrawInfo describing the chasing arrows
1684  *      to be drawn or measured.
1685  *
1686  *    inContext:
1687  *      The CG context in which the drawing is to be done.
1688  *
1689  *    inOrientation:
1690  *      An HIThemeOrientation that describes the orientation of the
1691  *      passed in context.
1692  *
1693  *  Availability:
1694  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1695  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1696  *    Non-Carbon CFM:   not available
1697  }
HIThemeDrawChasingArrowsnull1698 function HIThemeDrawChasingArrows( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeChasingArrowsDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawChasingArrows';
1699 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1700 
1701 
1702 {
1703  *  HIThemeDrawPopupArrow()
1704  *
1705  *  Summary:
1706  *    Draws a themed popup arrow.
1707  *
1708  *  Mac OS X threading:
1709  *    Not thread safe
1710  *
1711  *  Parameters:
1712  *
1713  *    inBounds:
1714  *      The HIRect in which to draw.
1715  *
1716  *    inDrawInfo:
1717  *      An HIThemePopupArrowDrawInfo describing the popup arrow to be
1718  *      drawn or measured.
1719  *
1720  *    inContext:
1721  *      The CG context in which the drawing is to be done.
1722  *
1723  *    inOrientation:
1724  *      An HIThemeOrientation that describes the orientation of the
1725  *      passed in context.
1726  *
1727  *  Availability:
1728  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1729  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1730  *    Non-Carbon CFM:   not available
1731  }
HIThemeDrawPopupArrownull1732 function HIThemeDrawPopupArrow( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemePopupArrowDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPopupArrow';
1733 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1734 
1735 
1736 { -------------------------------------------------------------------------- }
1737 {  Menus                                                                     }
1738 { -------------------------------------------------------------------------- }
1739 {
1740  *  HIThemeDrawMenuBarBackground()
1741  *
1742  *  Summary:
1743  *    Draws the menu bar background for a given area.
1744  *
1745  *  Mac OS X threading:
1746  *    Not thread safe
1747  *
1748  *  Parameters:
1749  *
1750  *    inBounds:
1751  *      The HIRect in which to draw.
1752  *
1753  *    inDrawInfo:
1754  *      The HIThemeMenuBarDrawInfo of the menu bar to be drawn.
1755  *
1756  *    inContext:
1757  *      The CG context in which the drawing is to be done.
1758  *
1759  *    inOrientation:
1760  *      An HIThemeOrientation that describes the orientation of the
1761  *      passed in context.
1762  *
1763  *  Availability:
1764  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1765  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1766  *    Non-Carbon CFM:   not available
1767  }
HIThemeDrawMenuBarBackgroundnull1768 function HIThemeDrawMenuBarBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeMenuBarDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuBarBackground';
1769 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1770 
1771 
1772 {
1773  *  HIThemeDrawMenuTitle()
1774  *
1775  *  Summary:
1776  *    Draws the menu title background for a menu.
1777  *
1778  *  Discussion:
1779  *    This API draws the background of a menu title. It does not draw
1780  *    the menu title text; it is the caller's responsibility to draw
1781  *    the text after this API has returned. The text should be drawn
1782  *    into the bounds returned in the outLabelRect parameter; the
1783  *    caller should ensure that the text is not drawn outside of those
1784  *    bounds, either by truncating or clipping the text.
1785  *
1786  *  Mac OS X threading:
1787  *    Not thread safe
1788  *
1789  *  Parameters:
1790  *
1791  *    inMenuBarRect:
1792  *      An HIRect indicating the bounds of the whole menu bar for which
1793  *      the menu title is to be drawn.
1794  *
1795  *    inTitleRect:
1796  *      An HIRect for the bounds of the menu title to be drawn.
1797  *
1798  *    inDrawInfo:
1799  *      The HIThemeMenuTitleDrawInfo of the menu title to be drawn.
1800  *
1801  *    inContext:
1802  *      The CG context in which the drawing is to be done.
1803  *
1804  *    inOrientation:
1805  *      An HIThemeOrientation that describes the orientation of the
1806  *      passed in context.
1807  *
1808  *    outLabelRect:
1809  *      On exit, contains the bounds in which the menu title text
1810  *      should be drawn. May be NULL if you don't need this information.
1811  *
1812  *  Availability:
1813  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1814  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1815  *    Non-Carbon CFM:   not available
1816  }
HIThemeDrawMenuTitlenull1817 function HIThemeDrawMenuTitle( const (*var*) inMenuBarRect: HIRect; const (*var*) inTitleRect: HIRect; const (*var*) inDrawInfo: HIThemeMenuTitleDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outLabelRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawMenuTitle';
1818 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1819 
1820 
1821 {
1822  *  HIThemeDrawMenuBackground()
1823  *
1824  *  Summary:
1825  *    Draws the theme menu background in a rectangle.  This API may
1826  *    draw outside of the specified rectangle.
1827  *
1828  *  Mac OS X threading:
1829  *    Not thread safe
1830  *
1831  *  Parameters:
1832  *
1833  *    inMenuRect:
1834  *      An HIRect indicating the bounds of the whole menu for which the
1835  *      background is to be drawn.
1836  *
1837  *    inMenuDrawInfo:
1838  *      An HIThemeMenuDrawInfo describing the menu to be drawn.
1839  *
1840  *    inContext:
1841  *      The CG context in which the drawing is to be done.
1842  *
1843  *    inOrientation:
1844  *      An HIThemeOrientation that describes the orientation of the
1845  *      passed in context.
1846  *
1847  *  Availability:
1848  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1849  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1850  *    Non-Carbon CFM:   not available
1851  }
HIThemeDrawMenuBackgroundnull1852 function HIThemeDrawMenuBackground( const (*var*) inMenuRect: HIRect; const (*var*) inMenuDrawInfo: HIThemeMenuDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuBackground';
1853 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1854 
1855 
1856 {
1857  *  HIThemeDrawMenuItem()
1858  *
1859  *  Summary:
1860  *    Draws a themed menu item.
1861  *
1862  *  Mac OS X threading:
1863  *    Not thread safe
1864  *
1865  *  Parameters:
1866  *
1867  *    inMenuRect:
1868  *      An HIRect indicating the bounds of the whole menu for which the
1869  *      menu item is to be drawn.
1870  *
1871  *    inItemRect:
1872  *      An HIRect for the bounds of the menu item to be drawn.
1873  *
1874  *    inItemDrawInfo:
1875  *      An HIThemeMenuItemDrawInfo describing the drawing
1876  *      characteristics of the menu item to be drawn.
1877  *
1878  *    inContext:
1879  *      The CG context in which the drawing is to be done.
1880  *
1881  *    inOrientation:
1882  *      An HIThemeOrientation that describes the orientation of the
1883  *      passed in context.
1884  *
1885  *    outContentRect:
1886  *      An HIRect that will be filled with the rectangle describing
1887  *      where the menu item content is to be drawn.
1888  *
1889  *  Availability:
1890  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1891  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1892  *    Non-Carbon CFM:   not available
1893  }
HIThemeDrawMenuItemnull1894 function HIThemeDrawMenuItem( const (*var*) inMenuRect: HIRect; const (*var*) inItemRect: HIRect; const (*var*) inItemDrawInfo: HIThemeMenuItemDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; var outContentRect: HIRect ): OSStatus; external name '_HIThemeDrawMenuItem';
1895 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1896 
1897 
1898 {
1899  *  HIThemeDrawMenuSeparator()
1900  *
1901  *  Summary:
1902  *    Draws a themed menu separator.
1903  *
1904  *  Mac OS X threading:
1905  *    Not thread safe
1906  *
1907  *  Parameters:
1908  *
1909  *    inMenuRect:
1910  *      An HIRect indicating the bounds of the whole menu for which the
1911  *      menu separator is to be drawn.
1912  *
1913  *    inItemRect:
1914  *      An HIRect for the bounds of the menu separator to be drawn.
1915  *
1916  *    inItemDrawInfo:
1917  *      An HIThemeMenuItemDrawInfo describing the drawing
1918  *      characteristics of the menu item to be drawn.
1919  *
1920  *    inContext:
1921  *      The CG context in which the drawing is to be done.
1922  *
1923  *    inOrientation:
1924  *      An HIThemeOrientation that describes the orientation of the
1925  *      passed in context.
1926  *
1927  *  Availability:
1928  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1929  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1930  *    Non-Carbon CFM:   not available
1931  }
HIThemeDrawMenuSeparatornull1932 function HIThemeDrawMenuSeparator( const (*var*) inMenuRect: HIRect; const (*var*) inItemRect: HIRect; const (*var*) inItemDrawInfo: HIThemeMenuItemDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuSeparator';
1933 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1934 
1935 
1936 {
1937  *  HIThemeGetMenuBackgroundShape()
1938  *
1939  *  Summary:
1940  *    Gets the shape of the background for a themed menu.
1941  *
1942  *  Discussion:
1943  *    This shape can extend outside of the bounds of the specified
1944  *    rectangle.
1945  *
1946  *  Mac OS X threading:
1947  *    Not thread safe
1948  *
1949  *  Parameters:
1950  *
1951  *    inMenuRect:
1952  *      An HIRect indicating the bounds of the menu for which the menu
1953  *      background is to be retrieved.
1954  *
1955  *    inMenuDrawInfo:
1956  *      An HIThemeMenuDrawInfo describing the menu to be measured.
1957  *
1958  *    outShape:
1959  *      A valid HIShape that will be cleared and filled with the shape
1960  *      of the menu background. It needs to be released by the caller.
1961  *
1962  *  Availability:
1963  *    Mac OS X:         in version 10.3 and later in Carbon.framework
1964  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
1965  *    Non-Carbon CFM:   not available
1966  }
HIThemeGetMenuBackgroundShapenull1967 function HIThemeGetMenuBackgroundShape( const (*var*) inMenuRect: HIRect; const (*var*) inMenuDrawInfo: HIThemeMenuDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetMenuBackgroundShape';
1968 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
1969 
1970 
1971 { -------------------------------------------------------------------------- }
1972 {  Segments                                                                  }
1973 { -------------------------------------------------------------------------- }
1974 
1975 {
1976  *  Summary:
1977  *    Available values for HIThemeSegmentPosition. These are positions
1978  *    of the segments within the segmented view.
1979  }
1980 const
1981 {
1982    * The first position of a segmented view.
1983    }
1984 	kHIThemeSegmentPositionFirst = 0;
1985 
1986   {
1987    * A middle segment.
1988    }
1989 	kHIThemeSegmentPositionMiddle = 1;
1990 
1991   {
1992    * The last position of a segmented view.
1993    }
1994 	kHIThemeSegmentPositionLast = 2;
1995 
1996   {
1997    * The only position of a segmented view. It is simultaneously first
1998    * and last. You know, only. There is only one segment. It looks
1999    * pretty much like a button. Please don't use this if you can avoid
2000    * it. It's ugly.
2001    }
2002 	kHIThemeSegmentPositionOnly = 3;
2003 
2004 type
2005 	HIThemeSegmentPosition = UInt32;
2006 
2007 {
2008  *  Summary:
2009  *    Available values for HIThemeSegmentKind available on Mac OS X
2010  *    10.4 a later.
2011  }
2012 const
2013 {
2014    * The segment to use on non-textured windows. Do not use on textured
2015    * windows.
2016    }
2017 	kHIThemeSegmentKindNormal = 0;
2018 
2019   {
2020    * The textured segment. Use on textured windows.
2021    }
2022 	kHIThemeSegmentKindTextured = 1;
2023 
2024   {
2025    * This is a synonym for kHIThemeSegmentKindTextured for code
2026    * compatibility. Please use kHIThemeSegmentKindTextured instead.
2027    }
2028 	kHIThemeSegmentKindInset = kHIThemeSegmentKindTextured;
2029 
2030 type
2031 	HIThemeSegmentKind = UInt32;
2032 
2033 {
2034  *  Summary:
2035  *    Available values for HIThemeSegmentSize.
2036  }
2037 const
2038 {
2039    * The normally sized segment.
2040    }
2041 	kHIThemeSegmentSizeNormal = 0;
2042 
2043   {
2044    * The small segment. Not available as textured.
2045    }
2046 	kHIThemeSegmentSizeSmall = 1;
2047 
2048   {
2049    * The mini segment. Not available as textured.
2050    }
2051 	kHIThemeSegmentSizeMini = 3;
2052 
2053 type
2054 	HIThemeSegmentSize = UInt32;
2055 
2056 const
2057 {
2058    * No segment adornments are to be drawn.
2059    }
2060 	kHIThemeSegmentAdornmentNone = 0;
2061 
2062   {
2063    * A focus ring is to be drawn around the segment.
2064    }
2065 	kHIThemeSegmentAdornmentFocus = 1 shl 2; { to match button focus adornment }
2066 
2067   {
2068    * If available, a leading separator is to be drawn on the segment.
2069    * Note that segments overlap and if the separators are drawn over
2070    * top each other, the shadows multiply undesirably.
2071    }
2072 	kHIThemeSegmentAdornmentLeadingSeparator = 1 shl 3;
2073 
2074   {
2075    * If available, a trailing separator is to be drawn on the segment.
2076    * Note that segments overlap and if the separators are drawn over
2077    * top each other, the shadows multiply undesirably.
2078    }
2079 	kHIThemeSegmentAdornmentTrailingSeparator = 1 shl 4;
2080 
2081 type
2082 	HIThemeSegmentAdornment = UInt32;
2083 
2084 {
2085  *  HIThemeSegmentDrawInfo
2086  *
2087  *  Summary:
2088  *    Drawing parameters passed to segment drawing and measuring theme
2089  *    APIs.
2090  *
2091  *  Discussion:
2092  *    New in Mac OS X 10.4.
2093  }
2094 type
2095 	HIThemeSegmentDrawInfo = record
2096 {
2097    * The version of this data structure.  Currently, it is always 0.
2098    }
2099 		version: UInt32;
2100 
2101   {
2102    * The ThemeDrawState for the segment to be drawn or measured.
2103    }
2104 		state: ThemeDrawState;
2105 
2106   {
2107    * The ThemeButtonValue of the segment to be drawn or measured.
2108    }
2109 		value: ThemeButtonValue;
2110 		size: HIThemeSegmentSize;
2111 
2112   {
2113    * The HIThemeSegmentKind of the segment to be drawn or measured.
2114    }
2115 		kind: HIThemeSegmentKind;
2116 
2117   {
2118    * The HIThemeSegmentPositions of the segment to be drawn or measured.
2119    }
2120 		position: HIThemeSegmentPosition;
2121 
2122   {
2123    * The HIThemeSegmentAdornment of the segment to be drawn or measured.
2124    }
2125 		adornment: HIThemeSegmentAdornment;
2126 	end;
2127 	HIThemeSegmentDrawInfoPtr = ^HIThemeSegmentDrawInfo;
2128 {
2129  *  HIThemeDrawSegment()
2130  *
2131  *  Summary:
2132  *    Draw a piece of a segmented view.
2133  *
2134  *  Discussion:
2135  *    New in Mac OS X 10.4. Please note that segments can draw a
2136  *    separator outside of the specified bounds and the adornments of
2137  *    the individual segments must coordinate their drawing of
2138  *    separators (with the adornment field of the passed in
2139  *    HIThemeSegmentDrawInfo) to avoid overdrawing.
2140  *
2141  *  Mac OS X threading:
2142  *    Not thread safe
2143  *
2144  *  Parameters:
2145  *
2146  *    inBounds:
2147  *      The bounds of the segment to be drawn.
2148  *
2149  *    inDrawInfo:
2150  *      A HIThemeSegmentDrawInfo describing the segment to be drawn.
2151  *
2152  *    inContext:
2153  *      The CG context in which the drawing is to be done.
2154  *
2155  *    inOrientation:
2156  *      An HIThemeOrientation that describes the orientation of the
2157  *      passed in context.
2158  *
2159  *  Availability:
2160  *    Mac OS X:         in version 10.4 and later in Carbon.framework
2161  *    CarbonLib:        not available in CarbonLib 1.x
2162  *    Non-Carbon CFM:   not available
2163  }
HIThemeDrawSegmentnull2164 function HIThemeDrawSegment( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeSegmentDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawSegment';
2165 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
2166 
2167 
2168 { -------------------------------------------------------------------------- }
2169 {  Tabs                                                                      }
2170 { -------------------------------------------------------------------------- }
2171 {
2172  *  HIThemeDrawTabPane()
2173  *
2174  *  Summary:
2175  *    Draws a themed tab pane.
2176  *
2177  *  Mac OS X threading:
2178  *    Not thread safe
2179  *
2180  *  Parameters:
2181  *
2182  *    inRect:
2183  *      The HIRect in which to draw the pane.
2184  *
2185  *    inDrawInfo:
2186  *      The HIThemeTabPaneDrawInfo of the tab pane to be drawn.
2187  *
2188  *    inContext:
2189  *      The CG context in which the drawing is to be done.
2190  *
2191  *    inOrientation:
2192  *      An HIThemeOrientation that describes the orientation of the
2193  *      passed in context.
2194  *
2195  *  Availability:
2196  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2197  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2198  *    Non-Carbon CFM:   not available
2199  }
HIThemeDrawTabPanenull2200 function HIThemeDrawTabPane( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabPaneDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTabPane';
2201 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2202 
2203 
2204 {
2205  *  HIThemeDrawTab()
2206  *
2207  *  Summary:
2208  *    Draw a themed tab.
2209  *
2210  *  Mac OS X threading:
2211  *    Not thread safe
2212  *
2213  *  Parameters:
2214  *
2215  *    inRect:
2216  *      The HIRect in which to draw.
2217  *
2218  *    inDrawInfo:
2219  *      An HIThemeTabDrawInfo describing the tab to be drawn.
2220  *
2221  *    inContext:
2222  *      The CG context in which the drawing is to be done.
2223  *
2224  *    inOrientation:
2225  *      An HIThemeOrientation that describes the orientation of the
2226  *      passed in context.
2227  *
2228  *    outLabelRect:
2229  *      An HIRect into which to put the bounds of the label rect.
2230  *
2231  *  Availability:
2232  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2233  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2234  *    Non-Carbon CFM:   not available
2235  }
HIThemeDrawTabnull2236 function HIThemeDrawTab( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outLabelRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawTab';
2237 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2238 
2239 
2240 {
2241  *  HIThemeGetTabPaneDrawShape()
2242  *
2243  *  Summary:
2244  *    Gets the shape of the draw area relative to the full bounds of
2245  *    the tab+pane.
2246  *
2247  *  Discussion:
2248  *    This API was mistakenly named as a "Get" API. It behaves as
2249  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
2250  *    SHAPE.
2251  *
2252  *  Mac OS X threading:
2253  *    Not thread safe
2254  *
2255  *  Parameters:
2256  *
2257  *    inRect:
2258  *      An HIRect indicating the entire tabs area for which the tab
2259  *      pane shape is to be retrieved.
2260  *
2261  *    inDirection:
2262  *      A ThemeTabDirection describing on which side of the pane the
2263  *      tabs would be drawn.
2264  *
2265  *    inTabSize:
2266  *      An HIThemeTabSize indicating the size of tab pane that would be
2267  *      drawn.
2268  *
2269  *    outShape:
2270  *      A pointer to an HIShapeRef which will be set to the shape of
2271  *      the draw area. It needs to be released by the caller.
2272  *
2273  *  Availability:
2274  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2275  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2276  *    Non-Carbon CFM:   not available
2277  }
HIThemeGetTabPaneDrawShapenull2278 function HIThemeGetTabPaneDrawShape( const (*var*) inRect: HIRect; inDirection: ThemeTabDirection; inTabSize: HIThemeTabSize; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabPaneDrawShape';
2279 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2280 
2281 
2282 {
2283  *  HIThemeGetTabPaneContentShape()
2284  *
2285  *  Summary:
2286  *    Gets the shape of the content area relative to the full bounds of
2287  *    the tab+pane.
2288  *
2289  *  Discussion:
2290  *    This API was mistakenly named as a "Get" API. It behaves as
2291  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
2292  *    SHAPE.
2293  *
2294  *  Mac OS X threading:
2295  *    Not thread safe
2296  *
2297  *  Parameters:
2298  *
2299  *    inRect:
2300  *      An HIRect indicating the entire tabs area for which the tab
2301  *      content shape is to be retrieved.
2302  *
2303  *    inDirection:
2304  *      A ThemeTabDirection describing on which side of the pane the
2305  *      tabs would be drawn.
2306  *
2307  *    inTabSize:
2308  *      An HIThemeTabSize indicating what size of tab pane that would
2309  *      be drawn.
2310  *
2311  *    outShape:
2312  *      A pointer to an HIShapeRef which will be set to the shape of
2313  *      the draw content. It needs to be released by the caller.
2314  *
2315  *  Availability:
2316  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2317  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2318  *    Non-Carbon CFM:   not available
2319  }
HIThemeGetTabPaneContentShapenull2320 function HIThemeGetTabPaneContentShape( const (*var*) inRect: HIRect; inDirection: ThemeTabDirection; inTabSize: HIThemeTabSize; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabPaneContentShape';
2321 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2322 
2323 
2324 {
2325  *  HIThemeGetTabDrawShape()
2326  *
2327  *  Summary:
2328  *    Gets the shape of the tab drawing area relative to the full
2329  *    bounds of the tab+pane.
2330  *
2331  *  Discussion:
2332  *    This API was mistakenly named as a "Get" API. It behaves as
2333  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
2334  *    SHAPE.
2335  *
2336  *  Mac OS X threading:
2337  *    Not thread safe
2338  *
2339  *  Parameters:
2340  *
2341  *    inRect:
2342  *      An HIRect indicating the entire tab+pane area for which the tab
2343  *      shape is to be retrieved.
2344  *
2345  *    inDrawInfo:
2346  *      An HIThemeTabDrawInfo describing the tab that would be drawn.
2347  *
2348  *    outShape:
2349  *      A pointer to an HIShapeRef which will be set to the shape of
2350  *      the tab drawing area. It needs to be released by the caller.
2351  *
2352  *  Availability:
2353  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2354  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2355  *    Non-Carbon CFM:   not available
2356  }
HIThemeGetTabDrawShapenull2357 function HIThemeGetTabDrawShape( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabDrawShape';
2358 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2359 
2360 
2361 {
2362  *  HIThemeGetTabShape()
2363  *
2364  *  Summary:
2365  *    Gets the shape for a themed tab.
2366  *
2367  *  Discussion:
2368  *    This API was mistakenly named as a "Get" API. It behaves as
2369  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
2370  *    SHAPE.
2371  *
2372  *  Mac OS X threading:
2373  *    Not thread safe
2374  *
2375  *  Parameters:
2376  *
2377  *    inRect:
2378  *      An HIRect indicating the entire tabs area for which the tab
2379  *      shape is to be retrieved.
2380  *
2381  *    inDrawInfo:
2382  *      An HIThemeTabDrawInfo describing the tab that would be drawn.
2383  *
2384  *    outShape:
2385  *      A pointer to an HIShapeRef which will be set to the shape of
2386  *      the tab. It needs to be released by the caller.
2387  *
2388  *  Availability:
2389  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2390  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2391  *    Non-Carbon CFM:   not available
2392  }
HIThemeGetTabShapenull2393 function HIThemeGetTabShape( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabShape';
2394 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2395 
2396 
2397 { -------------------------------------------------------------------------- }
2398 {  Text                                                                      }
2399 { -------------------------------------------------------------------------- }
2400 
2401 const
2402 {
2403    * Don't truncate the measured or drawn text.
2404    }
2405 	kHIThemeTextTruncationNone = 0;
2406 
2407   {
2408    * During measure or draw, if the text will not fit within the
2409    * available bounds, truncate the text in the middle of the last
2410    * visible line.
2411    }
2412 	kHIThemeTextTruncationMiddle = 1;
2413 
2414   {
2415    * During measure or draw, if the text will not fit within the
2416    * available bounds, truncate the text at the end of the last visible
2417    * line.
2418    }
2419 	kHIThemeTextTruncationEnd = 2;
2420 	kHIThemeTextTruncationDefault = 3;
2421 
2422 type
2423 	HIThemeTextTruncation = UInt32;
2424 
2425 const
2426 {
2427    * The text will be drawn flush with the left side of the bounding
2428    * box.
2429    }
2430 	kHIThemeTextHorizontalFlushLeft = 0;
2431 
2432   {
2433    * The text will be centered within the bounding box.
2434    }
2435 	kHIThemeTextHorizontalFlushCenter = 1;
2436 
2437   {
2438    * The text will be drawn flush with the right side of the bounding
2439    * box.
2440    }
2441 	kHIThemeTextHorizontalFlushRight = 2;
2442 	kHIThemeTextHorizontalFlushDefault = 3;
2443 
2444 type
2445 	HIThemeTextHorizontalFlush = UInt32;
2446 
2447 const
2448 {
2449    * Draw the text vertically flush with the top of the box
2450    }
2451 	kHIThemeTextVerticalFlushTop = 0;
2452 
2453   {
2454    * Vertically center the text
2455    }
2456 	kHIThemeTextVerticalFlushCenter = 1;
2457 
2458   {
2459    * Draw the text vertically flush with the bottom of the box
2460    }
2461 	kHIThemeTextVerticalFlushBottom = 2;
2462 	kHIThemeTextVerticalFlushDefault = 3;
2463 
2464 type
2465 	HIThemeTextVerticalFlush = UInt32;
2466 
2467 const
2468 	kHIThemeTextBoxOptionNone = 0;
2469 
2470   {
2471    * Is the text strongly vertical? This option bit is not correctly
2472    * respected and will have no effect if used.
2473    }
2474 	kHIThemeTextBoxOptionStronglyVertical = 1 shl 1;
2475 
2476   {
2477    * Draw the text with an engraved look, suitable for use on the Mac
2478    * OS X 10.5 dark window backgrounds or on the bodies of some
2479    * controls.
2480    }
2481 	kHIThemeTextBoxOptionEngraved = 1 shl 2;
2482 
2483   {
2484    * By default, HIThemeDrawTextBox will clip the text to the rectangle
2485    * specified by the inBounds parameter. With some fonts or styles,
2486    * text may draw outside of the drawing rectangle and will be
2487    * clipped. If this bit is set, HIThemeDrawTextBox will not clip
2488    * drawing to its inBounds parameter. Available in Mac OS X 10.4 and
2489    * later.
2490    }
2491 	kHIThemeTextBoxOptionDontClip = 1 shl 18;
2492 
2493 type
2494 	HIThemeTextBoxOptions = OptionBits;
2495 
2496 const
2497 {
2498    * Available in Mac OS X 10.3 and later. Valid fields for this
2499    * version are version, state, fontID, horizontalFlushness,
2500    * verticalFlushness, options, truncationPosition, truncationMaxLines
2501    * and truncationHappened.
2502    }
2503 	kHIThemeTextInfoVersionZero = 0;
2504 
2505   {
2506    * Available in Mac OS X 10.5 and later. Valid fields for this
2507    * version are all those in the zero version as well as the font
2508    * field.
2509    }
2510 	kHIThemeTextInfoVersionOne = 1;
2511 
2512 
2513 {
2514  *  HIThemeTextInfo
2515  *
2516  *  Summary:
2517  *    Drawing parameters passed to text drawing and measuring theme
2518  *    APIs.
2519  *
2520  *  Discussion:
2521  *    New in Mac OS X 10.3, this structure is used for measuring and
2522  *    drawing text with the HIThemeGetTextDimensions and
2523  *    HIThemeDrawTextBox APIs. If truncationPosition is
2524  *    kHIThemeTextTruncationNone, the other fields with the truncation
2525  *    prefix are ignored.
2526  }
2527 type
2528 	HIThemeTextInfo = record
2529 {
2530    * The version of this data structure. Currently, it is always 1.
2531    }
2532 		version: UInt32;
2533 
2534   {
2535    * The theme draw state in which to draw the string.
2536    }
2537 		state: ThemeDrawState;
2538 
2539   {
2540    * The font in which to draw the string.
2541    }
2542 		fontID: ThemeFontID;
2543 
2544   {
2545    * The horizontal flushness of the text. One of the
2546    * kHIThemeTextHorizontalFlush[Left/Center/Right] constants. When
2547    * this structure is used for HIThemeGetTextDimensions, this field
2548    * has no effect on the returned dimensions. However, providing the
2549    * same flushness that will be used with a subsequent draw will
2550    * trigger a performance optimization.
2551    }
2552 		horizontalFlushness: HIThemeTextHorizontalFlush;
2553 
2554   {
2555    * The vertical flushness of the text. One of the
2556    * kHIThemeTextVerticalFlush[Top/Center/Bottom] constants. When this
2557    * paramblock is used for HIThemeGetTextDimensions, this field has no
2558    * effect on the returned dimensions. However, providing the same
2559    * flushness that will be used with a subsequent draw will trigger a
2560    * performance optimization.
2561    }
2562 		verticalFlushness: HIThemeTextVerticalFlush;
2563 
2564   {
2565    * Currently, the only option available is for strongly vertical text
2566    * with the kThemeTextBoxOptionStronglyVertical option bit.
2567    }
2568 		options: HIThemeTextBoxOptions;
2569 
2570   {
2571    * Specifies where truncation should occur. If this field is
2572    * kHIThemeTextTruncationNone, no truncation will occur, and all
2573    * fields with the truncation prefix will be ignored.
2574    }
2575 		truncationPosition: HIThemeTextTruncation;
2576 
2577   {
2578    * The maximum number of lines to measure or draw before truncation
2579    * occurs. Ignored if truncationPosition is
2580    * kHIThemeTextTruncationNone.
2581    }
2582 		truncationMaxLines: UInt32;
2583 
2584   {
2585    * On output, if the text has been truncated, this is set to true. If
2586    * the text fit completely within the parameters specified and the
2587    * text was not truncated, this is set to false.
2588    }
2589 		truncationHappened: Boolean;
2590 		filler1: UInt8;
2591 
2592   {
2593    * If fontID is kThemeSpecifiedFont and the version is 1, this
2594    * CTFontRef will be used for measuring and rendering of the string.
2595    * If the fontID is anything other than kThemeSpecifiedFont or the
2596    * version is not 1, this field is ignored.
2597    }
2598 		font: CTFontRef;
2599 	end;
2600 	HIThemeTextInfoPtr = ^HIThemeTextInfo;
2601 {
2602  *  HIThemeGetTextDimensions()
2603  *
2604  *  Summary:
2605  *    Get text dimensions of a string
2606  *
2607  *  Discussion:
2608  *    This allows you to get various dimension characteristics of a
2609  *    string bound to certain criteria that you specify. It allows you
2610  *    to get the absolute bounds of a string laid out in a single line,
2611  *    or the bounds of a string constrained to a given width.
2612  *
2613  *  Mac OS X threading:
2614  *    Not thread safe
2615  *
2616  *  Parameters:
2617  *
2618  *    inString:
2619  *      A CFStringRef containing the unicode characters you wish to
2620  *      measure. You MUST NOT pass in a CFStringRef that was allocated
2621  *      with any of the "NoCopy" CFString creation APIs; a string
2622  *      created with a "NoCopy" API has transient storage which is
2623  *      incompatible with HIThemeGetTextDimensions's caches.
2624  *
2625  *      In Mac OS X 10.5 and later, this API may also be passed a
2626  *      CFAttributedStringRef.
2627  *
2628  *    inWidth:
2629  *      The width to constrain the text before wrapping. If inWidth is
2630  *      0, the text will not wrap and will be laid out as a single
2631  *      line, unless it contains embedded carriage return or linefeed
2632  *      characters; CR/LF will cause the text to wrap and the resulting
2633  *      measurements will include space for multiple lines of text. If
2634  *      inWidth is not 0, the text will wrap at the given width and the
2635  *      measurements will be returned from the multi-line layout.
2636  *
2637  *
2638  *      To force single-line layout even in the presence of embedded
2639  *      CR/LF characters, pass FLT_MAX for inWidth,
2640  *      kHIThemeTextTruncationEnd for inTextInfo.truncationPosition,
2641  *      and 1 for inTextInfo.truncationMaxLines.
2642  *
2643  *    inTextInfo:
2644  *      The HIThemeTextInfo parameter block specifying additional
2645  *      options for flushness and truncation. The truncationHappened
2646  *      field is the only field that will be written to by this API
2647  *      (and the reason for inTextInfo not being const).
2648  *
2649  *    outWidth:
2650  *      On output, will contain the width of the string. This width may
2651  *      be smaller than the constrain inWidth parameter if the text has
2652  *      wrapped. It will return the true bounding width of the layout.
2653  *      Can be NULL.
2654  *
2655  *    outHeight:
2656  *      On output, will contain the height of the string. Can be NULL.
2657  *
2658  *    outBaseline:
2659  *      On output, will contain the baseline of the string. This is the
2660  *      delta from the top of the text to the baseline of the first
2661  *      line. Can be NULL.
2662  *
2663  *  Availability:
2664  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2665  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2666  *    Non-Carbon CFM:   not available
2667  }
HIThemeGetTextDimensionsnull2668 function HIThemeGetTextDimensions( inString: CFStringRef; inWidth: CGFloat; var inTextInfo: HIThemeTextInfo; outWidth: CGFloatPtr { can be NULL }; outHeight: CGFloatPtr { can be NULL }; outBaseline: CGFloatPtr { can be NULL } ): OSStatus; external name '_HIThemeGetTextDimensions';
2669 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2670 
2671 
2672 {
2673  *  HIThemeDrawTextBox()
2674  *
2675  *  Summary:
2676  *    Draw the string into the given bounding box
2677  *
2678  *  Discussion:
2679  *    Draw the string into the bounding box given. You can specify
2680  *    options such as truncation and justification as well as
2681  *    determining whether the text was truncated when it was drawn.
2682  *
2683  *  Mac OS X threading:
2684  *    Not thread safe
2685  *
2686  *  Parameters:
2687  *
2688  *    inString:
2689  *      A CFStringRef containing the unicode characters you wish to
2690  *      render. You MUST NOT pass in a CFStringRef that was allocated
2691  *      with any of the "NoCopy" CFString creation APIs; a string
2692  *      created with a "NoCopy" API has transient storage which is
2693  *      incompatible with HIThemeDrawTextBox's caches.
2694  *
2695  *      In Mac OS X 10.5 and later, this API may also be passed a
2696  *      CFAttributedStringRef.
2697  *
2698  *    inBounds:
2699  *      The HIRect that bounds where the text is to be drawn
2700  *
2701  *    inTextInfo:
2702  *      The HIThemeTextInfo parameter block specifying additional
2703  *      options for truncation and flushness. You can control the
2704  *      number of lines drawn by specifying a truncation of
2705  *      kHIThemeTextTruncationMiddle or kHIThemeTextTruncationEnd for
2706  *      the truncationPosition field and then specifying a maximum
2707  *      number of lines to draw before truncation occurs in the
2708  *      truncationMaxLines field. The truncationHappened field is the
2709  *      only field that will be written to by this API (and the reason
2710  *      for inTextInfo not being const).
2711  *
2712  *    inContext:
2713  *      The CGContextRef into which to draw the text.
2714  *
2715  *    inOrientation:
2716  *      An HIThemeOrientation that describes the orientation of the
2717  *      passed in context.
2718  *
2719  *  Availability:
2720  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2721  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2722  *    Non-Carbon CFM:   not available
2723  }
HIThemeDrawTextBoxnull2724 function HIThemeDrawTextBox( inString: CFStringRef; const (*var*) inBounds: HIRect; var inTextInfo: HIThemeTextInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTextBox';
2725 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2726 
2727 
2728 {
2729  *  HIThemeGetUIFontType()
2730  *
2731  *  Summary:
2732  *    Returns the CTFontUIFontType for a ThemeFontID
2733  *
2734  *  Discussion:
2735  *    It is possible to create a CTFontRef that represents a
2736  *    ThemeFontID by using this API in conjunction with
2737  *    CTFontCreateUIFontForLanguage.
2738  *
2739  *    Suggested usage:
2740  *    CTFontRef font = CTFontCreateUIFontForLanguage(
2741  *    HIThemeGetUIFontType( inFontID ), 0, NULL );
2742  *
2743  *  Mac OS X threading:
2744  *    Not thread safe
2745  *
2746  *  Parameters:
2747  *
2748  *    inFontID:
2749  *      The ThemeFontID to map to a CTFontUIFontType.
2750  *
2751  *  Result:
2752  *    The CTFontUIFontType that represents the ThemeFontID or
2753  *    kCTFontNoFontType if there is an error.
2754  *
2755  *  Availability:
2756  *    Mac OS X:         in version 10.5 and later in Carbon.framework
2757  *    CarbonLib:        not available
2758  *    Non-Carbon CFM:   not available
2759  }
HIThemeGetUIFontTypenull2760 function HIThemeGetUIFontType( inFontID: ThemeFontID ): CTFontUIFontType; external name '_HIThemeGetUIFontType';
2761 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
2762 
2763 
2764 { -------------------------------------------------------------------------- }
2765 {  Tracks                                                                    }
2766 { -------------------------------------------------------------------------- }
2767 {
2768  *  HIThemeDrawTrack()
2769  *
2770  *  Summary:
2771  *    Draw a themed track item.
2772  *
2773  *  Discussion:
2774  *    Used to draw any tracked element including sliders and scroll
2775  *    bars.
2776  *
2777  *  Mac OS X threading:
2778  *    Not thread safe
2779  *
2780  *  Parameters:
2781  *
2782  *    inDrawInfo:
2783  *      An HIThemeTrackDrawInfo describing the track that will be drawn.
2784  *
2785  *    inGhostRect:
2786  *      An HIRect describing the location of the ghost indicator to be
2787  *      drawn. Generally, this should be NULL and the control using
2788  *      this primitive should support live feeback.
2789  *
2790  *    inContext:
2791  *      The CG context in which the drawing is to be done.
2792  *
2793  *    inOrientation:
2794  *      An HIThemeOrientation that describes the orientation of the
2795  *      passed in context.
2796  *
2797  *  Availability:
2798  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2799  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2800  *    Non-Carbon CFM:   not available
2801  }
HIThemeDrawTracknull2802 function HIThemeDrawTrack( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; {const} inGhostRect: HIRectPtr { can be NULL }; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTrack';
2803 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2804 
2805 
2806 {
2807  *  HIThemeDrawTrackTickMarks()
2808  *
2809  *  Summary:
2810  *    Draws the tick marks for a slider track.
2811  *
2812  *  Discussion:
2813  *    This primitive only draws evenly distributed tick marks.
2814  *    Internally, it calls HIThemeDrawTickMark to do the actual tick
2815  *    mark drawing, and any custom (non-even distribution) drawing of
2816  *    tick marks should be done with HIThemeDrawTickMark.
2817  *
2818  *  Mac OS X threading:
2819  *    Not thread safe
2820  *
2821  *  Parameters:
2822  *
2823  *    inDrawInfo:
2824  *      An HIThemeTrackDrawInfo describing the track tick marks that
2825  *      will be drawn.
2826  *
2827  *    inNumTicks:
2828  *      A value indicating the number of tick marks to be drawn.
2829  *
2830  *    inContext:
2831  *      The CG context in which the drawing is to be done.
2832  *
2833  *    inOrientation:
2834  *      An HIThemeOrientation that describes the orientation of the
2835  *      passed in context.
2836  *
2837  *  Availability:
2838  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2839  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2840  *    Non-Carbon CFM:   not available
2841  }
HIThemeDrawTrackTickMarksnull2842 function HIThemeDrawTrackTickMarks( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inNumTicks: ItemCount; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTrackTickMarks';
2843 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2844 
2845 
2846 {
2847  *  HIThemeDrawTickMark()
2848  *
2849  *  Summary:
2850  *    Draws a single tick mark.
2851  *
2852  *  Discussion:
2853  *    This primitive draws a single tick mark and can be used to draw
2854  *    custom tick marks that are not easily drawn by
2855  *    HIThemeDrawTrackTickMarks, which only draws evenly distributed
2856  *    tick marks.
2857  *
2858  *  Mac OS X threading:
2859  *    Not thread safe
2860  *
2861  *  Parameters:
2862  *
2863  *    inBounds:
2864  *      The HIRect in which to draw.
2865  *
2866  *    inDrawInfo:
2867  *      The HIThemeTickMarkDrawInfo of the tick mark to be drawn.
2868  *
2869  *    inContext:
2870  *      The CG context in which the drawing is to be done.
2871  *
2872  *    inOrientation:
2873  *      An HIThemeOrientation that describes the orientation of the
2874  *      passed in context.
2875  *
2876  *  Availability:
2877  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2878  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2879  *    Non-Carbon CFM:   not available
2880  }
HIThemeDrawTickMarknull2881 function HIThemeDrawTickMark( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeTickMarkDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTickMark';
2882 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2883 
2884 
2885 {
2886  *  HIThemeGetTrackThumbShape()
2887  *
2888  *  Summary:
2889  *    Get the thumb shape of a themed track.
2890  *
2891  *  Discussion:
2892  *    This API was mistakenly named as a "Get" API. It behaves as
2893  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
2894  *    SHAPE.
2895  *
2896  *  Mac OS X threading:
2897  *    Not thread safe
2898  *
2899  *  Parameters:
2900  *
2901  *    inDrawInfo:
2902  *      An HIThemeTrackDrawInfo describing the track to be measured.
2903  *
2904  *    outThumbShape:
2905  *      A pointer to an HIShapeRef which will be set to the shape of
2906  *      the themed track's thumb. It needs to be released by the caller.
2907  *
2908  *  Availability:
2909  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2910  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2911  *    Non-Carbon CFM:   not available
2912  }
HIThemeGetTrackThumbShapenull2913 function HIThemeGetTrackThumbShape( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outThumbShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTrackThumbShape';
2914 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2915 
2916 
2917 {
2918  *  HIThemeHitTestTrack()
2919  *
2920  *  Summary:
2921  *    Hit test the themed track.
2922  *
2923  *  Discussion:
2924  *    Returns true if the track was hit and fills in outPartHit.
2925  *    Otherwise, returns false.
2926  *
2927  *  Mac OS X threading:
2928  *    Not thread safe
2929  *
2930  *  Parameters:
2931  *
2932  *    inDrawInfo:
2933  *      An HIThemeTabDrawInfo describing the tab that will be drawn.
2934  *
2935  *    inMousePoint:
2936  *      An HIPoint which will be location basis for the test.
2937  *
2938  *    outPartHit:
2939  *      A pointer to a ControlPartCode that will be filled with the
2940  *      part hit by the incoming point.
2941  *
2942  *  Availability:
2943  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2944  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2945  *    Non-Carbon CFM:   not available
2946  }
HIThemeHitTestTracknull2947 function HIThemeHitTestTrack( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inMousePoint: HIPoint; var outPartHit: ControlPartCode ): Boolean; external name '_HIThemeHitTestTrack';
2948 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2949 
2950 
2951 {
2952  *  HIThemeGetTrackBounds()
2953  *
2954  *  Summary:
2955  *    Gets the track bounds of a themed track.
2956  *
2957  *  Mac OS X threading:
2958  *    Not thread safe
2959  *
2960  *  Parameters:
2961  *
2962  *    inDrawInfo:
2963  *      An HIThemeTrackDrawInfo describing the track that will be drawn.
2964  *
2965  *    outBounds:
2966  *      A pointer to an HIRect in which will be returned the rectangle
2967  *      of the track bounds.
2968  *
2969  *  Availability:
2970  *    Mac OS X:         in version 10.3 and later in Carbon.framework
2971  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
2972  *    Non-Carbon CFM:   not available
2973  }
HIThemeGetTrackBoundsnull2974 function HIThemeGetTrackBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetTrackBounds';
2975 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
2976 
2977 
2978 {
2979  *  HIThemeGetTrackPartBounds()
2980  *
2981  *  Summary:
2982  *    Returns measurements for the bounds of the a track part,
2983  *    according to the specifics of that track as specified in the
2984  *    incoming draw info record.
2985  *
2986  *  Discussion:
2987  *    HIThemeGetTrackPartBounds allows you to get the boundaries of
2988  *    individual pieces of a track's theme layout.
2989  *
2990  *  Mac OS X threading:
2991  *    Not thread safe
2992  *
2993  *  Parameters:
2994  *
2995  *    inDrawInfo:
2996  *      An HIThemeTrackDrawInfo describing the track to be measured.
2997  *
2998  *    inPartCode:
2999  *      A ControlPartCode describing which part to measure.  A list of
3000  *      available ControlPartCodes can be retrieved using
3001  *      HIThemeGetTrackParts.
3002  *
3003  *    outPartBounds:
3004  *      The bounds of the specified part relative to the start
3005  *      rectangle specified in inDrawInfo.
3006  *
3007  *  Availability:
3008  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3009  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3010  *    Non-Carbon CFM:   not available
3011  }
HIThemeGetTrackPartBoundsnull3012 function HIThemeGetTrackPartBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inPartCode: ControlPartCode; var outPartBounds: HIRect ): OSStatus; external name '_HIThemeGetTrackPartBounds';
3013 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3014 
3015 
3016 {
3017  *  HIThemeGetTrackParts()
3018  *
3019  *  Summary:
3020  *    Counts the number of parts that make up a track.  Optionally
3021  *    returns an array of ControlPartCodes that describe each of the
3022  *    counted parts.
3023  *
3024  *  Discussion:
3025  *    HIThemeGetTrackParts allows you to count the number of parts that
3026  *    make up a track.  This is useful if you need to iterate through
3027  *    the parts of a track and get information about them, i.e. using
3028  *    HIThemeGetTrackPartBounds.
3029  *
3030  *  Mac OS X threading:
3031  *    Not thread safe
3032  *
3033  *  Parameters:
3034  *
3035  *    inDrawInfo:
3036  *      An HIThemeTrackDrawInfo describing the track to be measured.
3037  *
3038  *    outNumberOfParts:
3039  *      A pointer to a UInt32 in which to return the number of counted
3040  *      parts.
3041  *
3042  *    inMaxParts:
3043  *      The maximum number of ControlPartCodes that can be copied into
3044  *      the supplied ioPartsBuffer.  This value is ignored if
3045  *      ioPartsBuffer is NULL.
3046  *
3047  *    ioPartsBuffer:
3048  *      An pointer to an array into which HIThemeGetTrackPartBounds
3049  *      will copy ControlPartCodes that describe each of the counted
3050  *      parts.  This pointer can be NULL if you are just counting parts.
3051  *
3052  *  Availability:
3053  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3054  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3055  *    Non-Carbon CFM:   not available
3056  }
HIThemeGetTrackPartsnull3057 function HIThemeGetTrackParts( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outNumberOfParts: UInt32; inMaxParts: UInt32; ioPartsBuffer: ControlPartCodePtr { can be NULL } ): OSStatus; external name '_HIThemeGetTrackParts';
3058 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3059 
3060 
3061 {
3062  *  HIThemeGetTrackDragRect()
3063  *
3064  *  Summary:
3065  *    Get the rectangle of the drag area of a themed track.
3066  *
3067  *  Mac OS X threading:
3068  *    Not thread safe
3069  *
3070  *  Parameters:
3071  *
3072  *    inDrawInfo:
3073  *      An HIThemeTrackDrawInfo describing the track to be measured.
3074  *
3075  *    outDragRect:
3076  *      A pointer to an HIRect in which will be returned the rectangle
3077  *      of the drag area of the track.
3078  *
3079  *  Availability:
3080  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3081  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3082  *    Non-Carbon CFM:   not available
3083  }
HIThemeGetTrackDragRectnull3084 function HIThemeGetTrackDragRect( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outDragRect: HIRect ): OSStatus; external name '_HIThemeGetTrackDragRect';
3085 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3086 
3087 
3088 {
3089  *  HIThemeGetTrackThumbPositionFromOffset()
3090  *
3091  *  Summary:
3092  *    Get the track's relative thumb position based on the offset.
3093  *
3094  *  Mac OS X threading:
3095  *    Not thread safe
3096  *
3097  *  Parameters:
3098  *
3099  *    inDrawInfo:
3100  *      An HIThemeTrackDrawInfo describing the track to be measured.
3101  *
3102  *    inThumbOffset:
3103  *      An HIPoint describing the position of the thumb as an offset
3104  *      from the track bounds.
3105  *
3106  *    outRelativePosition:
3107  *      On output, the track-relative position calculated from the
3108  *      thumb offset.
3109  *
3110  *  Availability:
3111  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3112  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3113  *    Non-Carbon CFM:   not available
3114  }
HIThemeGetTrackThumbPositionFromOffsetnull3115 function HIThemeGetTrackThumbPositionFromOffset( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inThumbOffset: HIPoint; var outRelativePosition: CGFloat ): OSStatus; external name '_HIThemeGetTrackThumbPositionFromOffset';
3116 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3117 
3118 
3119 {
3120  *  HIThemeGetTrackThumbPositionFromBounds()
3121  *
3122  *  Summary:
3123  *    Get the themed track thumb position from its bounds.
3124  *
3125  *  Mac OS X threading:
3126  *    Not thread safe
3127  *
3128  *  Parameters:
3129  *
3130  *    inDrawInfo:
3131  *      A pointer to an HIThemeTrackDrawInfo describing the track to be
3132  *      measured.
3133  *
3134  *    inThumbBounds:
3135  *      The bounds of the thumb from which the postion is to be
3136  *      calculated.
3137  *
3138  *    outRelativePosition:
3139  *      On output, the track-relative position calculated from the
3140  *      thumb location.
3141  *
3142  *  Availability:
3143  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3144  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3145  *    Non-Carbon CFM:   not available
3146  }
HIThemeGetTrackThumbPositionFromBoundsnull3147 function HIThemeGetTrackThumbPositionFromBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inThumbBounds: HIRect; var outRelativePosition: CGFloat ): OSStatus; external name '_HIThemeGetTrackThumbPositionFromBounds';
3148 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3149 
3150 
3151 {
3152  *  HIThemeGetTrackLiveValue()
3153  *
3154  *  Summary:
3155  *    Get the themed track live value.
3156  *
3157  *  Mac OS X threading:
3158  *    Not thread safe
3159  *
3160  *  Parameters:
3161  *
3162  *    inDrawInfo:
3163  *      An HIThemeTrackDrawInfo describing the track to be measured.
3164  *
3165  *    inRelativePosition:
3166  *      An HIPoint describing the position of the thumb as an offset
3167  *      from the track bounds.
3168  *
3169  *    outValue:
3170  *      On output, the track value as calculated from the relative
3171  *      postion of the thumb.
3172  *
3173  *  Availability:
3174  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3175  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3176  *    Non-Carbon CFM:   not available
3177  }
HIThemeGetTrackLiveValuenull3178 function HIThemeGetTrackLiveValue( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inRelativePosition: CGFloat; var outValue: SInt32 ): OSStatus; external name '_HIThemeGetTrackLiveValue';
3179 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3180 
3181 
3182 {
3183  *  HIThemeGetScrollBarTrackRect()
3184  *
3185  *  Summary:
3186  *    Gets the rectangle of the tracking area of a themed scroll bar.
3187  *
3188  *  Mac OS X threading:
3189  *    Not thread safe
3190  *
3191  *  Parameters:
3192  *
3193  *    inBounds:
3194  *      An HIRect indicating the area in which the scroll bar would be
3195  *      drawn.
3196  *
3197  *    inTrackInfo:
3198  *      An HIScrollBarTrackInfo for the scroll bar that would be drawn.
3199  *      Currently, only the pressState and enableState fields are used.
3200  *
3201  *    inIsHoriz:
3202  *      A Boolean where true means that the scroll bar would be
3203  *      horizontal and false means that the scroll bar would be
3204  *      vertical.
3205  *
3206  *    outTrackBounds:
3207  *      A pointer to an HIRect in which will be returned the rectangle
3208  *      of the track area of the scroll bar.
3209  *
3210  *  Availability:
3211  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3212  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3213  *    Non-Carbon CFM:   not available
3214  }
HIThemeGetScrollBarTrackRectnull3215 function HIThemeGetScrollBarTrackRect( const (*var*) inBounds: HIRect; const (*var*) inTrackInfo: HIScrollBarTrackInfo; inIsHoriz: Boolean; var outTrackBounds: HIRect ): OSStatus; external name '_HIThemeGetScrollBarTrackRect';
3216 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3217 
3218 
3219 {
3220  *  HIThemeHitTestScrollBarArrows()
3221  *
3222  *  Summary:
3223  *    Hit test the theme scroll bar arrows to determine where the hit
3224  *    occurred.
3225  *
3226  *  Mac OS X threading:
3227  *    Not thread safe
3228  *
3229  *  Parameters:
3230  *
3231  *    inScrollBarBounds:
3232  *      An HIRect indicating the bounds of the scroll bar that will be
3233  *      hit tested.
3234  *
3235  *    inTrackInfo:
3236  *      An HIScrollBarTrackInfo for the scroll bar to be drawn.
3237  *      Currently, only the version, pressState and enableState fields
3238  *      are used.
3239  *
3240  *    inIsHoriz:
3241  *      A Boolean where true means that the scroll bar is to be
3242  *      horizontal and false means that the scroll bar is to be
3243  *      vertical.
3244  *
3245  *    inPtHit:
3246  *      An HIPoint indicating where the control was hit and which will
3247  *      be used for hit testing.
3248  *
3249  *    outTrackBounds:
3250  *      A pointer to an HIRect in which will be returned the rectangle
3251  *      of the track area of the scroll bar.  Can be NULL.
3252  *
3253  *    outPartCode:
3254  *      A pointer to a ControlPartCode in which the part code of the
3255  *      hit part will be returned.
3256  *
3257  *  Availability:
3258  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3259  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3260  *    Non-Carbon CFM:   not available
3261  }
HIThemeHitTestScrollBarArrowsnull3262 function HIThemeHitTestScrollBarArrows( const (*var*) inScrollBarBounds: HIRect; const (*var*) inTrackInfo: HIScrollBarTrackInfo; inIsHoriz: Boolean; const (*var*) inPtHit: HIPoint; outTrackBounds: HIRectPtr { can be NULL }; var outPartCode: ControlPartCode ): Boolean; external name '_HIThemeHitTestScrollBarArrows';
3263 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3264 
3265 
3266 {
3267  *  HIThemeDrawScrollBarDelimiters()
3268  *
3269  *  Summary:
3270  *    Draw themed scroll bar delimiters.
3271  *
3272  *  Discussion:
3273  *    Draws the grow lines delimiting the scroll bar areas.  Does not
3274  *    draw the size box.
3275  *
3276  *  Mac OS X threading:
3277  *    Not thread safe
3278  *
3279  *  Parameters:
3280  *
3281  *    inContRect:
3282  *      An HIRect indicating the rectangle of the content area of the
3283  *      window to be drawn.
3284  *
3285  *    inDrawInfo:
3286  *      The HIThemeScrollBarDelimitersDrawInfo of the delimiters to be
3287  *      drawn.
3288  *
3289  *    inContext:
3290  *      The CG context in which the drawing is to be done.
3291  *
3292  *    inOrientation:
3293  *      An HIThemeOrientation that describes the orientation of the
3294  *      passed in context.
3295  *
3296  *  Availability:
3297  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3298  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3299  *    Non-Carbon CFM:   not available
3300  }
HIThemeDrawScrollBarDelimitersnull3301 function HIThemeDrawScrollBarDelimiters( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeScrollBarDelimitersDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawScrollBarDelimiters';
3302 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3303 
3304 
3305 { -------------------------------------------------------------------------- }
3306 {  Windows                                                                   }
3307 { -------------------------------------------------------------------------- }
3308 {
3309  *  HIThemeDrawWindowFrame()
3310  *
3311  *  Summary:
3312  *    Draws a themed window frame.
3313  *
3314  *  Mac OS X threading:
3315  *    Not thread safe
3316  *
3317  *  Parameters:
3318  *
3319  *    inContRect:
3320  *      An HIRect indicating the rectangle of the content area of the
3321  *      window to be drawn.
3322  *
3323  *    inDrawInfo:
3324  *      The HIThemeWindowDrawInfo of the window frame to be drawn.
3325  *
3326  *    inContext:
3327  *      The CG context in which the drawing is to be done.
3328  *
3329  *    inOrientation:
3330  *      An HIThemeOrientation that describes the orientation of the
3331  *      passed in context.
3332  *
3333  *    outTitleRect:
3334  *      A pointer to an HIRect into which to put the bounds of the
3335  *      title rect.
3336  *
3337  *  Availability:
3338  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3339  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3340  *    Non-Carbon CFM:   not available
3341  }
HIThemeDrawWindowFramenull3342 function HIThemeDrawWindowFrame( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outTitleRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawWindowFrame';
3343 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3344 
3345 
3346 {
3347  *  HIThemeDrawTitleBarWidget()
3348  *
3349  *  Summary:
3350  *    Draws the requested theme title bar widget.
3351  *
3352  *  Discussion:
3353  *    HIThemeDrawTitleBarWidget renders the requested theme title bar
3354  *    widget in the proper location of a window.  A common
3355  *    misconception when using this API is that the client must specify
3356  *    the exact location of the widget in the window. The widget will
3357  *    locate itself in the window based relative to the content rect
3358  *    passed in content rectangle -- the contRect parameter.  Another
3359  *    common problem is to ignore the window's attributes.  The
3360  *    attributes must be set up properly to describe the window for
3361  *    which the widget is to be drawn.
3362  *
3363  *  Mac OS X threading:
3364  *    Not thread safe
3365  *
3366  *  Parameters:
3367  *
3368  *    inContRect:
3369  *      A rectangle describing the window's content area.  The widget
3370  *      is drawn relative to the content rectangle of the window, so
3371  *      this parameter does not describe the actual widget bounds, it
3372  *      describes the window's content rectangle.
3373  *
3374  *    inDrawInfo:
3375  *      The HIThemeWindowWidgetDrawInfo of the window widget to be
3376  *      drawn.
3377  *
3378  *    inContext:
3379  *      The CG context in which the drawing is to be done.
3380  *
3381  *    inOrientation:
3382  *      An HIThemeOrientation that describes the orientation of the
3383  *      passed in context.
3384  *
3385  *  Availability:
3386  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3387  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3388  *    Non-Carbon CFM:   not available
3389  }
HIThemeDrawTitleBarWidgetnull3390 function HIThemeDrawTitleBarWidget( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowWidgetDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTitleBarWidget';
3391 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3392 
3393 
3394 {
3395  *  HIThemeDrawGrowBox()
3396  *
3397  *  Summary:
3398  *    Draws a theme grow box.
3399  *
3400  *  Mac OS X threading:
3401  *    Not thread safe
3402  *
3403  *  Parameters:
3404  *
3405  *    inOrigin:
3406  *      The origin from which to draw the grow box.
3407  *
3408  *    inDrawInfo:
3409  *      An HIThemeGrowBoxDrawInfo describing the grow box to be drawn
3410  *      or measured.
3411  *
3412  *    inContext:
3413  *      The CG context in which the drawing is to be done.
3414  *
3415  *    inOrientation:
3416  *      An HIThemeOrientation that describes the orientation of the
3417  *      passed in context.
3418  *
3419  *  Availability:
3420  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3421  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3422  *    Non-Carbon CFM:   not available
3423  }
HIThemeDrawGrowBoxnull3424 function HIThemeDrawGrowBox( const (*var*) inOrigin: HIPoint; const (*var*) inDrawInfo: HIThemeGrowBoxDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGrowBox';
3425 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3426 
3427 
3428 {
3429  *  HIThemeGetGrowBoxBounds()
3430  *
3431  *  Summary:
3432  *    Gets the bounds for a grow box.
3433  *
3434  *  Mac OS X threading:
3435  *    Not thread safe
3436  *
3437  *  Parameters:
3438  *
3439  *    inOrigin:
3440  *      The origin from which to draw the grow box.
3441  *
3442  *    inDrawInfo:
3443  *      An HIThemeGrowBoxDrawInfo describing the grow box to be
3444  *      measured. The state field is ignored.
3445  *
3446  *    outBounds:
3447  *      A pointer to an HIRect in which will be returned the rectangle
3448  *      of the standalone grow box bounds.
3449  *
3450  *  Availability:
3451  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3452  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3453  *    Non-Carbon CFM:   not available
3454  }
HIThemeGetGrowBoxBoundsnull3455 function HIThemeGetGrowBoxBounds( const (*var*) inOrigin: HIPoint; const (*var*) inDrawInfo: HIThemeGrowBoxDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetGrowBoxBounds';
3456 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3457 
3458 
3459 {
3460  *  HIThemeGetWindowShape()
3461  *
3462  *  Summary:
3463  *    Obtains the specified window shape.
3464  *
3465  *  Discussion:
3466  *    This API was mistakenly named as a "Get" API. It behaves as
3467  *    "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED
3468  *    SHAPE.
3469  *
3470  *  Mac OS X threading:
3471  *    Not thread safe
3472  *
3473  *  Parameters:
3474  *
3475  *    inContRect:
3476  *      An HIRect indicating the rectangle of the content area of the
3477  *      window that would be drawn.
3478  *
3479  *    inDrawInfo:
3480  *      The HIThemeWindowDrawInfo of the window frame to be measured.
3481  *
3482  *    inWinRegion:
3483  *      A WindowRegionCode indicating the desired region for which to
3484  *      return the shape.
3485  *
3486  *    outShape:
3487  *      A pointer to an HIShapeRef which will be set to the shape of
3488  *      the requested window region. It needs to be released by the
3489  *      caller.
3490  *
3491  *  Availability:
3492  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3493  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3494  *    Non-Carbon CFM:   not available
3495  }
HIThemeGetWindowShapenull3496 function HIThemeGetWindowShape( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; inWinRegion: WindowRegionCode; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetWindowShape';
3497 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3498 
3499 
3500 {
3501  *  HIThemeGetWindowRegionHit()
3502  *
3503  *  Summary:
3504  *    Get the window region hit in a themed window.
3505  *
3506  *  Discussion:
3507  *    Not that this call does not return a region, but a region code.
3508  *
3509  *  Mac OS X threading:
3510  *    Not thread safe
3511  *
3512  *  Parameters:
3513  *
3514  *    inContRect:
3515  *      An HIRect indicating the rectangle of the content area of the
3516  *      window that would be drawn.
3517  *
3518  *    inDrawInfo:
3519  *      The HIThemeWindowDrawInfo of the window frame to be measured.
3520  *
3521  *    inPoint:
3522  *      An HIPoint against which the test will occur.
3523  *
3524  *    outRegionHit:
3525  *      The output WindowRegionCode of hit window region.
3526  *
3527  *  Availability:
3528  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3529  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3530  *    Non-Carbon CFM:   not available
3531  }
HIThemeGetWindowRegionHitnull3532 function HIThemeGetWindowRegionHit( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; const (*var*) inPoint: HIPoint; var outRegionHit: WindowRegionCode ): Boolean; external name '_HIThemeGetWindowRegionHit';
3533 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3534 
3535 
3536 { -------------------------------------------------------------------------- }
3537 {  Miscellaneous                                                             }
3538 { -------------------------------------------------------------------------- }
3539 {
3540  *  HIThemeDrawFrame()
3541  *
3542  *  Summary:
3543  *    Draws a variety of frames.
3544  *
3545  *  Mac OS X threading:
3546  *    Not thread safe
3547  *
3548  *  Parameters:
3549  *
3550  *    inRect:
3551  *      The HIRect in which to draw.
3552  *
3553  *    inDrawInfo:
3554  *      An HIThemeFrameDrawInfo describing the frame to be drawn or
3555  *      measured.
3556  *
3557  *    inContext:
3558  *      The CG context in which the drawing is to be done.
3559  *
3560  *    inOrientation:
3561  *      An HIThemeOrientation that describes the orientation of the
3562  *      passed in context.
3563  *
3564  *  Availability:
3565  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3566  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3567  *    Non-Carbon CFM:   not available
3568  }
HIThemeDrawFramenull3569 function HIThemeDrawFrame( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeFrameDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawFrame';
3570 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3571 
3572 
3573 {
3574  *  HIThemeDrawGroupBox()
3575  *
3576  *  Summary:
3577  *    Draws a themed primary group box.
3578  *
3579  *  Mac OS X threading:
3580  *    Not thread safe
3581  *
3582  *  Parameters:
3583  *
3584  *    inRect:
3585  *      The HIRect in which to draw.
3586  *
3587  *    inDrawInfo:
3588  *      An HIThemeGroupBoxDrawInfo describing the group box to be drawn
3589  *      or measured.
3590  *
3591  *    inContext:
3592  *      The CG context in which the drawing is to be done.
3593  *
3594  *    inOrientation:
3595  *      An HIThemeOrientation that describes the orientation of the
3596  *      passed in context.
3597  *
3598  *  Availability:
3599  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3600  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3601  *    Non-Carbon CFM:   not available
3602  }
HIThemeDrawGroupBoxnull3603 function HIThemeDrawGroupBox( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeGroupBoxDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGroupBox';
3604 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3605 
3606 
3607 {
3608  *  HIThemeDrawGenericWell()
3609  *
3610  *  Summary:
3611  *    Draws a themed generic well.
3612  *
3613  *  Mac OS X threading:
3614  *    Not thread safe
3615  *
3616  *  Parameters:
3617  *
3618  *    inRect:
3619  *      The HIRect in which to draw.
3620  *
3621  *    inDrawInfo:
3622  *      An HIThemeButtonDrawInfo that describes attributes of the well
3623  *      to be drawn. Set the kThemeAdornmentDefault bit of the
3624  *      adornment field of this structure to also draw the center of
3625  *      the well.
3626  *
3627  *    inContext:
3628  *      The CG context in which the drawing is to be done.
3629  *
3630  *    inOrientation:
3631  *      An HIThemeOrientation that describes the orientation of the
3632  *      passed in context.
3633  *
3634  *  Availability:
3635  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3636  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3637  *    Non-Carbon CFM:   not available
3638  }
HIThemeDrawGenericWellnull3639 function HIThemeDrawGenericWell( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGenericWell';
3640 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3641 
3642 
3643 {
3644  *  HIThemeDrawPaneSplitter()
3645  *
3646  *  Summary:
3647  *    Draws a themed pane splitter.
3648  *
3649  *  Mac OS X threading:
3650  *    Not thread safe
3651  *
3652  *  Parameters:
3653  *
3654  *    inRect:
3655  *      The HIRect in which to draw.
3656  *
3657  *    inDrawInfo:
3658  *      The HIThemeSplitterDrawInfo of the pane splitter to be drawn.
3659  *
3660  *    inContext:
3661  *      The CG context in which the drawing is to be done.
3662  *
3663  *    inOrientation:
3664  *      An HIThemeOrientation that describes the orientation of the
3665  *      passed in context.
3666  *
3667  *  Availability:
3668  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3669  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3670  *    Non-Carbon CFM:   not available
3671  }
HIThemeDrawPaneSplitternull3672 function HIThemeDrawPaneSplitter( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeSplitterDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPaneSplitter';
3673 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3674 
3675 
3676 {
3677  *  HIThemeDrawGrabber()
3678  *
3679  *  Summary:
3680  *    Draws a themed grabber.
3681  *
3682  *  Mac OS X threading:
3683  *    Not thread safe
3684  *
3685  *  Parameters:
3686  *
3687  *    inRect:
3688  *      The HIRect in which to draw.
3689  *
3690  *    inDrawInfo:
3691  *      The HIThemeGrabberDrawInfo of the grabber to be drawn.
3692  *
3693  *    inContext:
3694  *      The CG context in which the drawing is to be done.
3695  *
3696  *    inOrientation:
3697  *      An HIThemeOrientation that describes the orientation of the
3698  *      passed in context.
3699  *
3700  *  Availability:
3701  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3702  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3703  *    Non-Carbon CFM:   not available
3704  }
HIThemeDrawGrabbernull3705 function HIThemeDrawGrabber( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeGrabberDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGrabber';
3706 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3707 
3708 
3709 {
3710  *  HIThemeDrawPlacard()
3711  *
3712  *  Summary:
3713  *    Draws a themed placard.
3714  *
3715  *  Mac OS X threading:
3716  *    Not thread safe
3717  *
3718  *  Parameters:
3719  *
3720  *    inRect:
3721  *      The HIRect in which to draw.
3722  *
3723  *    inDrawInfo:
3724  *      The HIThemePlacardDrawInfo of the placard to be drawn.
3725  *
3726  *    inContext:
3727  *      The CG context in which the drawing is to be done.
3728  *
3729  *    inOrientation:
3730  *      An HIThemeOrientation that describes the orientation of the
3731  *      passed in context.
3732  *
3733  *  Availability:
3734  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3735  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3736  *    Non-Carbon CFM:   not available
3737  }
HIThemeDrawPlacardnull3738 function HIThemeDrawPlacard( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemePlacardDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPlacard';
3739 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3740 
3741 
3742 {
3743  *  HIThemeDrawHeader()
3744  *
3745  *  Summary:
3746  *    Draws a themed window header in the specified rectangle.
3747  *
3748  *  Mac OS X threading:
3749  *    Not thread safe
3750  *
3751  *  Parameters:
3752  *
3753  *    inRect:
3754  *      The HIRect in which to draw.
3755  *
3756  *    inDrawInfo:
3757  *      The HIThemeHeaderDrawInfo of the window frame to be drawn.
3758  *
3759  *    inContext:
3760  *      The CG context in which the drawing is to be done.
3761  *
3762  *    inOrientation:
3763  *      An HIThemeOrientation that describes the orientation of the
3764  *      passed in context.
3765  *
3766  *  Availability:
3767  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3768  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3769  *    Non-Carbon CFM:   not available
3770  }
HIThemeDrawHeadernull3771 function HIThemeDrawHeader( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeHeaderDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawHeader';
3772 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3773 
3774 
3775 {
3776  *  HIThemeDrawFocusRect()
3777  *
3778  *  Summary:
3779  *    Draws a themed focus rectangle in the specified rectangle.
3780  *
3781  *  Mac OS X threading:
3782  *    Not thread safe
3783  *
3784  *  Parameters:
3785  *
3786  *    inRect:
3787  *      The HIRect in which to draw.
3788  *
3789  *    inHasFocus:
3790  *      Pass in true to draw focus. Passing false effectively makes
3791  *      this API a no-op.
3792  *
3793  *    inContext:
3794  *      The CG context in which the drawing is to be done.
3795  *
3796  *    inOrientation:
3797  *      An HIThemeOrientation that describes the orientation of the
3798  *      passed in context.
3799  *
3800  *  Availability:
3801  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3802  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3803  *    Non-Carbon CFM:   not available
3804  }
HIThemeDrawFocusRectnull3805 function HIThemeDrawFocusRect( const (*var*) inRect: HIRect; inHasFocus: Boolean; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawFocusRect';
3806 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3807 
3808 
3809 const
3810 {
3811    * Draw the visual focus only, and not any of the draw operations
3812    * that form its shape.
3813    }
3814 	kHIThemeFocusRingOnly = 0;
3815 
3816   {
3817    * Draw the visual focus above the results of the draw operations
3818    * that form its shape.
3819    }
3820 	kHIThemeFocusRingAbove = 1;
3821 
3822   {
3823    * Draw the visual focus below the results of the draw operations
3824    * that form its shape.
3825    }
3826 	kHIThemeFocusRingBelow = 2;
3827 
3828 
3829 type
3830 	HIThemeFocusRing = UInt32;
3831 {
3832  *  HIThemeBeginFocus()
3833  *
3834  *  Summary:
3835  *    Begin focus drawing.
3836  *
3837  *  Discussion:
3838  *    Call HIThemeBeginFocus to begin focus drawing. All drawing
3839  *    operations in the specified context after this call will be drawn
3840  *    with a visual representation of focus. Currently, this is a
3841  *    theme-tinted halo resembling a glow. Note that nothing will be
3842  *    drawn in the specified context until HIThemeEndFocus is called. A
3843  *    call to HIThemeBeginFocus must always be paired with an
3844  *    HIThemeEndFocus call. Nesting these calls will not crash but the
3845  *    results will be odd and is definitely not recommended.
3846  *    HIThemeBegin/EndFocus is designed to replace
3847  *    DrawThemeFocusRegion. For efficiency, clipping the context to the
3848  *    bounds that will be drawn into is highly desirable.
3849  *    HIThemeBeginFocus may do some allocations that are affected by
3850  *    the size of the context's clip at the time it is called -- so an
3851  *    extremely large clip or an unset clip may cause a large,
3852  *    inefficient allocation.
3853  *
3854  *  Mac OS X threading:
3855  *    Not thread safe
3856  *
3857  *  Parameters:
3858  *
3859  *    inContext:
3860  *      The CG context in which the focus is to be drawn.
3861  *
3862  *    inRing:
3863  *      An HIThemeFocusRing indicating which type of focus is to be
3864  *      drawn.
3865  *
3866  *    inReserved:
3867  *      Always pass NULL for this parameter.
3868  *
3869  *  Result:
3870  *    A result code indicating success or failure. Don't call
3871  *    HIThemeEndFocus on the context if HIThemeBeginFocus fails.
3872  *
3873  *  Availability:
3874  *    Mac OS X:         in version 10.5 and later in Carbon.framework
3875  *    CarbonLib:        not available
3876  *    Non-Carbon CFM:   not available
3877  }
HIThemeBeginFocusnull3878 function HIThemeBeginFocus( inContext: CGContextRef; inRing: HIThemeFocusRing; inReserved: UnivPtr ): OSStatus; external name '_HIThemeBeginFocus';
3879 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
3880 
3881 
3882 {
3883  *  HIThemeEndFocus()
3884  *
3885  *  Summary:
3886  *    End focus drawing.
3887  *
3888  *  Discussion:
3889  *    See HIThemeBeginFocus for focus drawing details. Calling
3890  *    HIThemeEndFocus indicates that the drawing operations to be
3891  *    focused are complete.
3892  *
3893  *  Mac OS X threading:
3894  *    Not thread safe
3895  *
3896  *  Parameters:
3897  *
3898  *    inContext:
3899  *      The CG context in which the focus is to be drawn. This needs to
3900  *      be the same context passed to the HIThemeBeginFocus call with
3901  *      which this call to HIThemeEndFocus is paired.
3902  *
3903  *  Result:
3904  *    A result code indicating success or failure.
3905  *
3906  *  Availability:
3907  *    Mac OS X:         in version 10.5 and later in Carbon.framework
3908  *    CarbonLib:        not available
3909  *    Non-Carbon CFM:   not available
3910  }
HIThemeEndFocusnull3911 function HIThemeEndFocus( inContext: CGContextRef ): OSStatus; external name '_HIThemeEndFocus';
3912 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
3913 
3914 
3915 {
3916  *  HIThemeDrawSeparator()
3917  *
3918  *  Summary:
3919  *    Draw a themed separator element.
3920  *
3921  *  Mac OS X threading:
3922  *    Not thread safe
3923  *
3924  *  Parameters:
3925  *
3926  *    inRect:
3927  *      The HIRect in which to draw.
3928  *
3929  *    inDrawInfo:
3930  *      The HIThemeSeparatorDrawInfo of the window frame to be drawn.
3931  *
3932  *    inContext:
3933  *      The CG context in which the drawing is to be done.
3934  *
3935  *    inOrientation:
3936  *      An HIThemeOrientation that describes the orientation of the
3937  *      passed in context.
3938  *
3939  *  Availability:
3940  *    Mac OS X:         in version 10.3 and later in Carbon.framework
3941  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
3942  *    Non-Carbon CFM:   not available
3943  }
HIThemeDrawSeparatornull3944 function HIThemeDrawSeparator( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeSeparatorDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawSeparator';
3945 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
3946 
3947 
3948 {
3949  *  HIThemeSetFill()
3950  *
3951  *  Summary:
3952  *    Set the context fill color to that specified by the requested
3953  *    brush.
3954  *
3955  *  Discussion:
3956  *    Note that this call does not actually draw anything. It sets the
3957  *    passed context's fill color to that of the specified theme brush.
3958  *    Subsequent fills in the context will be with the color specified
3959  *    by the theme brush.
3960  *
3961  *  Mac OS X threading:
3962  *    Not thread safe
3963  *
3964  *  Parameters:
3965  *
3966  *    inBrush:
3967  *      The ThemeBrush describing the requested fill color.
3968  *
3969  *    inInfo:
3970  *      Not used. Should always be NULL.
3971  *
3972  *    inContext:
3973  *      The CG context for which the fill color is to be set.
3974  *
3975  *    inOrientation:
3976  *      An HIThemeOrientation that describes the orientation of the
3977  *      passed in context.
3978  *
3979  *  Availability:
3980  *    Mac OS X:         in version 10.4 and later in Carbon.framework
3981  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
3982  *    Non-Carbon CFM:   not available
3983  }
HIThemeSetFillnull3984 function HIThemeSetFill( inBrush: ThemeBrush; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetFill';
3985 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
3986 
3987 
3988 {
3989  *  HIThemeSetStroke()
3990  *
3991  *  Summary:
3992  *    Set the context stroke color to that specified by the requested
3993  *    brush.
3994  *
3995  *  Discussion:
3996  *    Note that this call does not actually draw anything. It sets the
3997  *    passed context's stroke color to that of the specified theme
3998  *    brush. Subsequent strokes in the context will be with the color
3999  *    specified by the theme brush.
4000  *
4001  *  Mac OS X threading:
4002  *    Not thread safe
4003  *
4004  *  Parameters:
4005  *
4006  *    inBrush:
4007  *      The ThemeBrush describing the requested stroke color.
4008  *
4009  *    inInfo:
4010  *      Not used. Should always be NULL.
4011  *
4012  *    inContext:
4013  *      The CG context for which the stroke color is to be set.
4014  *
4015  *    inOrientation:
4016  *      An HIThemeOrientation that describes the orientation of the
4017  *      passed in context.
4018  *
4019  *  Availability:
4020  *    Mac OS X:         in version 10.4 and later in Carbon.framework
4021  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
4022  *    Non-Carbon CFM:   not available
4023  }
HIThemeSetStrokenull4024 function HIThemeSetStroke( inBrush: ThemeBrush; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetStroke';
4025 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
4026 
4027 
4028 {
4029  *  HIThemeSetTextFill()
4030  *
4031  *  Summary:
4032  *    Set the context text fill color to that specified by the
4033  *    requested brush.
4034  *
4035  *  Discussion:
4036  *    Note that this call does not actually draw anything. It sets the
4037  *    passed context's text fill color to that of the specified
4038  *    ThemeTextColor. Subsequent text drawing in the context will be
4039  *    with the color specified by the ThemeTextColor.
4040  *
4041  *  Mac OS X threading:
4042  *    Not thread safe
4043  *
4044  *  Parameters:
4045  *
4046  *    inColor:
4047  *      A ThemeTextColor describing the requested text fill color.
4048  *
4049  *    inInfo:
4050  *      Not used. Should always be NULL.
4051  *
4052  *    inContext:
4053  *      The CG context for which the fill color is to be set.
4054  *
4055  *    inOrientation:
4056  *      An HIThemeOrientation that describes the orientation of the
4057  *      passed in context.
4058  *
4059  *  Availability:
4060  *    Mac OS X:         in version 10.4 and later in Carbon.framework
4061  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
4062  *    Non-Carbon CFM:   not available
4063  }
HIThemeSetTextFillnull4064 function HIThemeSetTextFill( inColor: ThemeTextColor; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetTextFill';
4065 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
4066 
4067 
4068 {
4069  *  HIThemeApplyBackground()
4070  *
4071  *  Summary:
4072  *    Apply a themed background for a rectangle.
4073  *
4074  *  Discussion:
4075  *    Note that this call does not actually draw anything. It sets the
4076  *    passed context's fill color to the requested theme background.
4077  *    Subsequent fills in the context will fill with the theme
4078  *    background.
4079  *
4080  *  Mac OS X threading:
4081  *    Not thread safe
4082  *
4083  *  Parameters:
4084  *
4085  *    inBounds:
4086  *      An HIRect enclosing the whole background. This rectangle is
4087  *      used to calculate the pattern phase (if there is one) of the
4088  *      background as it is set up in the context.
4089  *
4090  *    inDrawInfo:
4091  *      An HIThemeBackgroundDrawInfo describing the background.
4092  *
4093  *    inContext:
4094  *      The CG context for which the background is to be set.
4095  *
4096  *    inOrientation:
4097  *      An HIThemeOrientation that describes the orientation of the
4098  *      passed in context.
4099  *
4100  *  Availability:
4101  *    Mac OS X:         in version 10.3 and later in Carbon.framework
4102  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
4103  *    Non-Carbon CFM:   not available
4104  }
HIThemeApplyBackgroundnull4105 function HIThemeApplyBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeBackgroundDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeApplyBackground';
4106 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
4107 
4108 
4109 {
4110  *  HIThemeDrawBackground()
4111  *
4112  *  Summary:
4113  *    Draw a themed background for a rectangle.
4114  *
4115  *  Discussion:
4116  *    Currently, this call only works with kThemeBackgroundMetal.
4117  *
4118  *  Mac OS X threading:
4119  *    Not thread safe
4120  *
4121  *  Parameters:
4122  *
4123  *    inBounds:
4124  *      An HIRect indicating the bounds to fill with the background.
4125  *      For backgrounds that need pattern continuity, such as
4126  *      kThemeBackgroundMetal, this rectangle is the full bounds of the
4127  *      rectangle for which the filling is to occur. If drawing a
4128  *      sub-rectangle of that background, set the clip and draw the
4129  *      full rectangle. This routine has been optimized to not perform
4130  *      calculations on the non-clip part of the drawing bounds.
4131  *
4132  *    inDrawInfo:
4133  *      An HIThemeBackgroundDrawInfo describing the background to be
4134  *      drawn.
4135  *
4136  *    inContext:
4137  *      The CG context in which the drawing is to be done.
4138  *
4139  *    inOrientation:
4140  *      An HIThemeOrientation that describes the orientation of the
4141  *      passed in context.
4142  *
4143  *  Availability:
4144  *    Mac OS X:         in version 10.3 and later in Carbon.framework
4145  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later
4146  *    Non-Carbon CFM:   not available
4147  }
HIThemeDrawBackgroundnull4148 function HIThemeDrawBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeBackgroundDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawBackground';
4149 (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
4150 
4151 
4152 {
4153  *  HIThemeBrushCreateCGColor()
4154  *
4155  *  Summary:
4156  *    Create a CGColor for a ThemeBrush.
4157  *
4158  *  Discussion:
4159  *    Color is an ambiguous term. The color may be a pattern.
4160  *
4161  *  Mac OS X threading:
4162  *    Not thread safe
4163  *
4164  *  Parameters:
4165  *
4166  *    inBrush:
4167  *      The ThemeBrush describing the requested color.
4168  *
4169  *    outColor:
4170  *      A pointer to a CGColorRef that will be set to the newly created
4171  *      CGColor.
4172  *
4173  *  Result:
4174  *    An operating system result code.
4175  *
4176  *  Availability:
4177  *    Mac OS X:         in version 10.4 and later in Carbon.framework
4178  *    CarbonLib:        not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
4179  *    Non-Carbon CFM:   not available
4180  }
HIThemeBrushCreateCGColornull4181 function HIThemeBrushCreateCGColor( inBrush: ThemeBrush; var outColor: CGColorRef ): OSStatus; external name '_HIThemeBrushCreateCGColor';
4182 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
4183 
4184 
4185 {
4186  *  HIThemeGetTextColorForThemeBrush()
4187  *
4188  *  Summary:
4189  *    Returns an appropriate ThemeTextColor that matches a ThemeBrush.
4190  *
4191  *  Discussion:
4192  *    Creates a ThemeTextColor for use with HIThemeSetTextFill.
4193  *    ThemeTextColors are currently availabe for these theme brushes:
4194  *
4195  *
4196  *    kThemeBrushDialogBackgroundActive/Inactive
4197  *
4198  *    kThemeBrushAlertBackgroundActive/Inactive
4199  *
4200  *    kThemeBrushModelessDialogBackgroundActive/Inactive
4201  *    <BR> kThemeBrushNotificationWindowBackground
4202  *
4203  *  Mac OS X threading:
4204  *    Not thread safe
4205  *
4206  *  Parameters:
4207  *
4208  *    inBrush:
4209  *      The ThemeBrush describing the requested color.
4210  *
4211  *    inWindowIsActive:
4212  *      Whether the text color should indicate an active or inactive
4213  *      state.
4214  *
4215  *    outColor:
4216  *      A pointer to a ThemeTextColor that will be set to the matched
4217  *      color.
4218  *
4219  *  Result:
4220  *    An operating system result code. themeNoAppropriateBrushErr will
4221  *    be returned if no matching ThemeTextColor exists.
4222  *
4223  *  Availability:
4224  *    Mac OS X:         in version 10.5 and later in Carbon.framework
4225  *    CarbonLib:        not available
4226  *    Non-Carbon CFM:   not available
4227  }
HIThemeGetTextColorForThemeBrushnull4228 function HIThemeGetTextColorForThemeBrush( inBrush: ThemeBrush; inWindowIsActive: Boolean; var outColor: ThemeTextColor ): OSStatus; external name '_HIThemeGetTextColorForThemeBrush';
4229 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
4230 
4231 
4232 { The following routines were in Appearance.h prior to 10.6 }
4233 {
4234  *  GetThemeMenuSeparatorHeight()
4235  *
4236  *  Summary:
4237  *    Returns the height of a menu item separator, in points.
4238  *
4239  *  Mac OS X threading:
4240  *    Not thread safe
4241  *
4242  *  Parameters:
4243  *
4244  *    outHeight:
4245  *      On exit, contains the height of a menu item separator, in
4246  *      points.
4247  *
4248  *  Availability:
4249  *    Mac OS X:         in version 10.0 and later in Carbon.framework
4250  *    CarbonLib:        in CarbonLib 1.0 and later
4251  *    Non-Carbon CFM:   in AppearanceLib 1.0 and later
4252  }
GetThemeMenuSeparatorHeightnull4253 function GetThemeMenuSeparatorHeight( var outHeight: SInt16 ): OSStatus; external name '_GetThemeMenuSeparatorHeight';
4254 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
4255 
4256 
4257 {
4258  *  GetThemeMenuItemExtra()
4259  *
4260  *  Summary:
4261  *    Returns the extra width and height required for a menu item
4262  *    beyond the height of the text.
4263  *
4264  *  Mac OS X threading:
4265  *    Not thread safe
4266  *
4267  *  Parameters:
4268  *
4269  *    inItemType:
4270  *      The type of menu item. These are defined in Appearance.h.
4271  *
4272  *    outHeight:
4273  *      Extra height, in points, for this item type.
4274  *
4275  *    outWidth:
4276  *      Extra width, in points, for this item type.
4277  *
4278  *  Availability:
4279  *    Mac OS X:         in version 10.0 and later in Carbon.framework
4280  *    CarbonLib:        in CarbonLib 1.0 and later
4281  *    Non-Carbon CFM:   in AppearanceLib 1.0 and later
4282  }
GetThemeMenuItemExtranull4283 function GetThemeMenuItemExtra( inItemType: ThemeMenuItemType; var outHeight: SInt16; var outWidth: SInt16 ): OSStatus; external name '_GetThemeMenuItemExtra';
4284 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
4285 
4286 
4287 {
4288  *  GetThemeMenuTitleExtra()
4289  *
4290  *  Summary:
4291  *    Returns the extra width for a menu title, in points.
4292  *
4293  *  Mac OS X threading:
4294  *    Not thread safe
4295  *
4296  *  Parameters:
4297  *
4298  *    outWidth:
4299  *      On exit, contains the extra menu title width, in points.
4300  *
4301  *    inIsSquished:
4302  *      Indicates whether the menu title is being drawn with a
4303  *      condensed appearance.
4304  *
4305  *  Availability:
4306  *    Mac OS X:         in version 10.0 and later in Carbon.framework
4307  *    CarbonLib:        in CarbonLib 1.0 and later
4308  *    Non-Carbon CFM:   in AppearanceLib 1.0 and later
4309  }
GetThemeMenuTitleExtranull4310 function GetThemeMenuTitleExtra( var outWidth: SInt16; inIsSquished: Boolean ): OSStatus; external name '_GetThemeMenuTitleExtra';
4311 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
4312 
4313 
4314 { The ThemeMetric values are defined in Appearance.h }
4315 
4316 {
4317  *  Summary:
4318  *    Theme metrics allow you to find out sizes of things in the
4319  *    current environment, such as how wide a scroll bar is, etc.
4320  *
4321  *  Discussion:
4322  *    ThemeMetrics
4323  }
4324 const
4325 {
4326    * The width (or height if horizontal) of a scroll bar.
4327    }
4328 	kThemeMetricScrollBarWidth = 0;
4329 
4330   {
4331    * The width (or height if horizontal) of a small scroll bar.
4332    }
4333 	kThemeMetricSmallScrollBarWidth = 1;
4334 
4335   {
4336    * The height of the non-label part of a check box control.
4337    }
4338 	kThemeMetricCheckBoxHeight = 2;
4339 
4340   {
4341    * The height of the non-label part of a radio button control.
4342    }
4343 	kThemeMetricRadioButtonHeight = 3;
4344 
4345   {
4346    * The amount of white space surrounding the text Rect of the text
4347    * inside of an Edit Text control.  If you select all of the text in
4348    * an Edit Text control, you can see the white space. The metric is
4349    * the number of pixels, per side, that the text Rect is outset to
4350    * create the whitespace Rect.
4351    }
4352 	kThemeMetricEditTextWhitespace = 4;
4353 
4354   {
4355    * The thickness of the Edit Text frame that surrounds the whitespace
4356    * Rect (that is surrounding the text Rect). The metric is the number
4357    * of pixels, per side, that the frame Rect is outset from the
4358    * whitespace Rect.
4359    }
4360 	kThemeMetricEditTextFrameOutset = 5;
4361 
4362   {
4363    * The number of pixels that the list box frame is outset from the
4364    * content of the list box.
4365    }
4366 	kThemeMetricListBoxFrameOutset = 6;
4367 
4368   {
4369    * Describes how far outside of the input rect DrawThemeFocusRect and
4370    * HIThemeDrawFocusRect APIs will draw the focus.
4371    }
4372 	kThemeMetricFocusRectOutset = 7;
4373 
4374   {
4375    * The thickness of the frame drawn by DrawThemeGenericWell.
4376    }
4377 	kThemeMetricImageWellThickness = 8;
4378 
4379   {
4380    * The number of pixels a scrollbar should overlap (actually
4381    * underlap) any bounding box which surrounds it and scrollable
4382    * content. This also includes the window frame when a scrolbar is
4383    * along an edge of the window.
4384    }
4385 	kThemeMetricScrollBarOverlap = 9;
4386 
4387   {
4388    * The height of the large tab of a tab control.
4389    }
4390 	kThemeMetricLargeTabHeight = 10;
4391 
4392   {
4393    * The width of the caps (end pieces) of the large tabs of a tab
4394    * control.
4395    }
4396 	kThemeMetricLargeTabCapsWidth = 11;
4397 
4398   {
4399    * The amount to add to the tab height (kThemeMetricLargeTabHeight)
4400    * to find out the rectangle height to use with the various Tab
4401    * drawing primitives. This amount is also the amount that each tab
4402    * overlaps the tab pane.
4403    }
4404 	kThemeMetricTabFrameOverlap = 12;
4405 
4406   {
4407    * If less than zero, this indicates that the text should be centered
4408    * on each tab. If greater than zero, the text should be justified
4409    * (according to the system script direction) and the amount is the
4410    * offset from the appropriate edge at which the text should start
4411    * drawing.
4412    }
4413 	kThemeMetricTabIndentOrStyle = 13;
4414 
4415   {
4416    * The amount of space that every tab's drawing rectangle overlaps
4417    * the one on either side of it.
4418    }
4419 	kThemeMetricTabOverlap = 14;
4420 
4421   {
4422    * The height of the small tab of a tab control.  This includes the
4423    * pixels that overlap the tab pane and/or tab pane bar.
4424    }
4425 	kThemeMetricSmallTabHeight = 15;
4426 
4427   {
4428    * The width of the caps (end pieces) of the small tabs of a tab
4429    * control.
4430    }
4431 	kThemeMetricSmallTabCapsWidth = 16;
4432 
4433   {
4434    * The height of the push button control.
4435    }
4436 	kThemeMetricPushButtonHeight = 19;
4437 
4438   {
4439    * The height of the list header field of the data browser control.
4440    }
4441 	kThemeMetricListHeaderHeight = 20;
4442 
4443   {
4444    * The height of a disclosure triangle control.  This triangle is the
4445    * not the center of the disclosure button, but its own control.
4446    }
4447 	kThemeMetricDisclosureTriangleHeight = 25;
4448 
4449   {
4450    * The width of a disclosure triangle control.
4451    }
4452 	kThemeMetricDisclosureTriangleWidth = 26;
4453 
4454   {
4455    * The height of a little arrows control.
4456    }
4457 	kThemeMetricLittleArrowsHeight = 27;
4458 
4459   {
4460    * The width of a little arrows control.
4461    }
4462 	kThemeMetricLittleArrowsWidth = 28;
4463 
4464   {
4465    * The height of a popup button control.
4466    }
4467 	kThemeMetricPopupButtonHeight = 30;
4468 
4469   {
4470    * The height of a small popup button control.
4471    }
4472 	kThemeMetricSmallPopupButtonHeight = 31;
4473 
4474   {
4475    * The height of the large progress bar, not including its shadow.
4476    }
4477 	kThemeMetricLargeProgressBarThickness = 32;
4478 
4479   {
4480    * This metric is not used.
4481    }
4482 	kThemeMetricPullDownHeight = 33;
4483 
4484   {
4485    * This metric is not used.
4486    }
4487 	kThemeMetricSmallPullDownHeight = 34;
4488 
4489   {
4490    * The height of the window grow box control.
4491    }
4492 	kThemeMetricResizeControlHeight = 38;
4493 
4494   {
4495    * The height of the small grow box control, such as on utility
4496    * windows.
4497    }
4498 	kThemeMetricSmallResizeControlHeight = 39;
4499 
4500   {
4501    * The height of the horizontal slider control.
4502    }
4503 	kThemeMetricHSliderHeight = 41;
4504 
4505   {
4506    * The height of the tick marks for a horizontal slider control.
4507    }
4508 	kThemeMetricHSliderTickHeight = 42;
4509 
4510   {
4511    * The width of the vertical slider control.
4512    }
4513 	kThemeMetricVSliderWidth = 45;
4514 
4515   {
4516    * The width of the tick marks for a vertical slider control.
4517    }
4518 	kThemeMetricVSliderTickWidth = 46;
4519 
4520   {
4521    * The height of the title bar widgets (grow, close, and zoom boxes)
4522    * for a document window.
4523    }
4524 	kThemeMetricTitleBarControlsHeight = 49;
4525 
4526   {
4527    * The width of the non-label part of a check box control.
4528    }
4529 	kThemeMetricCheckBoxWidth = 50;
4530 
4531   {
4532    * The width of the non-label part of a radio button control.
4533    }
4534 	kThemeMetricRadioButtonWidth = 52;
4535 
4536   {
4537    * The height of the normal bar, not including its shadow.
4538    }
4539 	kThemeMetricNormalProgressBarThickness = 58;
4540 
4541   {
4542    * The number of pixels of shadow depth drawn below the progress bar.
4543    }
4544 	kThemeMetricProgressBarShadowOutset = 59;
4545 
4546   {
4547    * The number of pixels of shadow depth drawn below the small
4548    * progress bar.
4549    }
4550 	kThemeMetricSmallProgressBarShadowOutset = 60;
4551 
4552   {
4553    * The number of pixels that the content of a primary group box is
4554    * from the bounds of the control.
4555    }
4556 	kThemeMetricPrimaryGroupBoxContentInset = 61;
4557 
4558   {
4559    * The number of pixels that the content of a secondary group box is
4560    * from the bounds of the control.
4561    }
4562 	kThemeMetricSecondaryGroupBoxContentInset = 62;
4563 
4564   {
4565    * Width allocated to draw the mark character in a menu.
4566    }
4567 	kThemeMetricMenuMarkColumnWidth = 63;
4568 
4569   {
4570    * Width allocated for the mark character in a menu item when the
4571    * menu has kMenuAttrExcludesMarkColumn.
4572    }
4573 	kThemeMetricMenuExcludedMarkColumnWidth = 64;
4574 
4575   {
4576    * Indent into the interior of the mark column at which the mark
4577    * character is drawn.
4578    }
4579 	kThemeMetricMenuMarkIndent = 65;
4580 
4581   {
4582    * Whitespace at the leading edge of menu item text.
4583    }
4584 	kThemeMetricMenuTextLeadingEdgeMargin = 66;
4585 
4586   {
4587    * Whitespace at the trailing edge of menu item text.
4588    }
4589 	kThemeMetricMenuTextTrailingEdgeMargin = 67;
4590 
4591   {
4592    * Width per indent level (set by SetMenuItemIndent) of a menu item.
4593    }
4594 	kThemeMetricMenuIndentWidth = 68;
4595 
4596   {
4597    * Whitespace at the trailing edge of a menu icon (if the item also
4598    * has text).
4599    }
4600 	kThemeMetricMenuIconTrailingEdgeMargin = 69;
4601 
4602 
4603 {
4604  *  Discussion:
4605  *    The following metrics are only available in OS X.
4606  }
4607 const
4608 {
4609    * The height of a disclosure button.
4610    }
4611 	kThemeMetricDisclosureButtonHeight = 17;
4612 
4613   {
4614    * The height and the width of the round button control.
4615    }
4616 	kThemeMetricRoundButtonSize = 18;
4617 
4618   {
4619    * The height of the non-label part of a small check box control.
4620    }
4621 	kThemeMetricSmallCheckBoxHeight = 21;
4622 
4623   {
4624    * The width of a disclosure button.
4625    }
4626 	kThemeMetricDisclosureButtonWidth = 22;
4627 
4628   {
4629    * The height of a small disclosure button.
4630    }
4631 	kThemeMetricSmallDisclosureButtonHeight = 23;
4632 
4633   {
4634    * The width of a small disclosure button.
4635    }
4636 	kThemeMetricSmallDisclosureButtonWidth = 24;
4637 
4638   {
4639    * The height (or width if vertical) of a pane splitter.
4640    }
4641 	kThemeMetricPaneSplitterHeight = 29;
4642 
4643   {
4644    * The height of the small push button control.
4645    }
4646 	kThemeMetricSmallPushButtonHeight = 35;
4647 
4648   {
4649    * The height of the non-label part of a small radio button control.
4650    }
4651 	kThemeMetricSmallRadioButtonHeight = 36;
4652 
4653   {
4654    * The height of the relevance indicator control.
4655    }
4656 	kThemeMetricRelevanceIndicatorHeight = 37;
4657 
4658   {
4659    * The height and the width of the large round button control.
4660    }
4661 	kThemeMetricLargeRoundButtonSize = 40;
4662 
4663   {
4664    * The height of the small, horizontal slider control.
4665    }
4666 	kThemeMetricSmallHSliderHeight = 43;
4667 
4668   {
4669    * The height of the tick marks for a small, horizontal slider
4670    * control.
4671    }
4672 	kThemeMetricSmallHSliderTickHeight = 44;
4673 
4674   {
4675    * The width of the small, vertical slider control.
4676    }
4677 	kThemeMetricSmallVSliderWidth = 47;
4678 
4679   {
4680    * The width of the tick marks for a small, vertical slider control.
4681    }
4682 	kThemeMetricSmallVSliderTickWidth = 48;
4683 
4684   {
4685    * The width of the non-label part of a small check box control.
4686    }
4687 	kThemeMetricSmallCheckBoxWidth = 51;
4688 
4689   {
4690    * The width of the non-label part of a small radio button control.
4691    }
4692 	kThemeMetricSmallRadioButtonWidth = 53;
4693 
4694   {
4695    * The minimum width of the thumb of a small, horizontal slider
4696    * control.
4697    }
4698 	kThemeMetricSmallHSliderMinThumbWidth = 54;
4699 
4700   {
4701    * The minimum width of the thumb of a small, vertical slider control.
4702    }
4703 	kThemeMetricSmallVSliderMinThumbHeight = 55;
4704 
4705   {
4706    * The offset of the tick marks from the appropriate side of a small
4707    * horizontal slider control.
4708    }
4709 	kThemeMetricSmallHSliderTickOffset = 56;
4710 
4711   {
4712    * The offset of the tick marks from the appropriate side of a small
4713    * vertical slider control.
4714    }
4715 	kThemeMetricSmallVSliderTickOffset = 57;
4716 
4717 
4718 {
4719  *  Discussion:
4720  *    The following metrics are only available in Mac OS X 10.3 and
4721  *    later.
4722  }
4723 const
4724 	kThemeMetricComboBoxLargeBottomShadowOffset = 70;
4725 	kThemeMetricComboBoxLargeRightShadowOffset = 71;
4726 	kThemeMetricComboBoxSmallBottomShadowOffset = 72;
4727 	kThemeMetricComboBoxSmallRightShadowOffset = 73;
4728 	kThemeMetricComboBoxLargeDisclosureWidth = 74;
4729 	kThemeMetricComboBoxSmallDisclosureWidth = 75;
4730 	kThemeMetricRoundTextFieldContentInsetLeft = 76;
4731 	kThemeMetricRoundTextFieldContentInsetRight = 77;
4732 	kThemeMetricRoundTextFieldContentInsetBottom = 78;
4733 	kThemeMetricRoundTextFieldContentInsetTop = 79;
4734 	kThemeMetricRoundTextFieldContentHeight = 80;
4735 	kThemeMetricComboBoxMiniBottomShadowOffset = 81;
4736 	kThemeMetricComboBoxMiniDisclosureWidth = 82;
4737 	kThemeMetricComboBoxMiniRightShadowOffset = 83;
4738 	kThemeMetricLittleArrowsMiniHeight = 84;
4739 	kThemeMetricLittleArrowsMiniWidth = 85;
4740 	kThemeMetricLittleArrowsSmallHeight = 86;
4741 	kThemeMetricLittleArrowsSmallWidth = 87;
4742 	kThemeMetricMiniCheckBoxHeight = 88;
4743 	kThemeMetricMiniCheckBoxWidth = 89;
4744 	kThemeMetricMiniDisclosureButtonHeight = 90;
4745 	kThemeMetricMiniDisclosureButtonWidth = 91;
4746 	kThemeMetricMiniHSliderHeight = 92;
4747 	kThemeMetricMiniHSliderMinThumbWidth = 93;
4748 	kThemeMetricMiniHSliderTickHeight = 94;
4749 	kThemeMetricMiniHSliderTickOffset = 95;
4750 	kThemeMetricMiniPopupButtonHeight = 96;
4751 	kThemeMetricMiniPullDownHeight = 97;
4752 	kThemeMetricMiniPushButtonHeight = 98;
4753 	kThemeMetricMiniRadioButtonHeight = 99;
4754 	kThemeMetricMiniRadioButtonWidth = 100;
4755 	kThemeMetricMiniTabCapsWidth = 101;
4756 	kThemeMetricMiniTabFrameOverlap = 102;
4757 	kThemeMetricMiniTabHeight = 103;
4758 	kThemeMetricMiniTabOverlap = 104;
4759 	kThemeMetricMiniVSliderMinThumbHeight = 105;
4760 	kThemeMetricMiniVSliderTickOffset = 106;
4761 	kThemeMetricMiniVSliderTickWidth = 107;
4762 	kThemeMetricMiniVSliderWidth = 108;
4763 	kThemeMetricRoundTextFieldContentInsetWithIconLeft = 109;
4764 	kThemeMetricRoundTextFieldContentInsetWithIconRight = 110;
4765 	kThemeMetricRoundTextFieldMiniContentHeight = 111;
4766 	kThemeMetricRoundTextFieldMiniContentInsetBottom = 112;
4767 	kThemeMetricRoundTextFieldMiniContentInsetLeft = 113;
4768 	kThemeMetricRoundTextFieldMiniContentInsetRight = 114;
4769 	kThemeMetricRoundTextFieldMiniContentInsetTop = 115;
4770 	kThemeMetricRoundTextFieldMiniContentInsetWithIconLeft = 116;
4771 	kThemeMetricRoundTextFieldMiniContentInsetWithIconRight = 117;
4772 	kThemeMetricRoundTextFieldSmallContentHeight = 118;
4773 	kThemeMetricRoundTextFieldSmallContentInsetBottom = 119;
4774 	kThemeMetricRoundTextFieldSmallContentInsetLeft = 120;
4775 	kThemeMetricRoundTextFieldSmallContentInsetRight = 121;
4776 	kThemeMetricRoundTextFieldSmallContentInsetTop = 122;
4777 	kThemeMetricRoundTextFieldSmallContentInsetWithIconLeft = 123;
4778 	kThemeMetricRoundTextFieldSmallContentInsetWithIconRight = 124;
4779 	kThemeMetricSmallTabFrameOverlap = 125;
4780 	kThemeMetricSmallTabOverlap = 126;
4781 
4782   {
4783    * The height of a small pane splitter. Should only be used in a
4784    * window with thick borders, like a metal window.
4785    }
4786 	kThemeMetricSmallPaneSplitterHeight = 127;
4787 
4788 
4789 {
4790  *  Discussion:
4791  *    The following metrics are only available in Mac OS X 10.4 and
4792  *    later.
4793  }
4794 const
4795 {
4796    * The horizontal start offset for the first tick mark on a
4797    * horizontal slider.
4798    }
4799 	kThemeMetricHSliderTickOffset = 128;
4800 
4801   {
4802    * The vertical start offset for the first tick mark on a vertical
4803    * slider.
4804    }
4805 	kThemeMetricVSliderTickOffset = 129;
4806 
4807   {
4808    * The minimum thumb height for a thumb on a slider.
4809    }
4810 	kThemeMetricSliderMinThumbHeight = 130;
4811 	kThemeMetricSliderMinThumbWidth = 131;
4812 
4813   {
4814    * The minimum thumb height for a thumb on a scroll bar.
4815    }
4816 	kThemeMetricScrollBarMinThumbHeight = 132;
4817 
4818   {
4819    * The minimum thumb width for a thumb on a scroll bar.
4820    }
4821 	kThemeMetricScrollBarMinThumbWidth = 133;
4822 
4823   {
4824    * The minimum thumb height for a thumb on a small scroll bar.
4825    }
4826 	kThemeMetricSmallScrollBarMinThumbHeight = 134;
4827 
4828   {
4829    * The minimum thumb width for a thumb on a small scroll bar.
4830    }
4831 	kThemeMetricSmallScrollBarMinThumbWidth = 135;
4832 
4833   {
4834    * The height of the round-ended button. (For example, the Kind
4835    * button in a Finder Search query.)
4836    }
4837 	kThemeMetricButtonRoundedHeight = 136;
4838 
4839   {
4840    * The height of the inset round-ended button. (For example, the
4841    * Servers button in a Finder Search query.)
4842    }
4843 	kThemeMetricButtonRoundedRecessedHeight = 137;
4844 
4845 
4846 {
4847  *  Discussion:
4848  *    The following metrics are only available in Mac OS X 10.5 and
4849  *    later.
4850  }
4851 const
4852 {
4853    * This metric refers to the appearance of the separator control.
4854    * That separator is drawn with the HIThemeDrawSeparator theme
4855    * primitive. This metric is the height of a horizontal separator or
4856    * the width of a vertical separator.
4857    }
4858 	kThemeMetricSeparatorSize = 138;
4859 
4860   {
4861    * The height of the push button control variant that is designed to
4862    * be used in a textured window.
4863    }
4864 	kThemeMetricTexturedPushButtonHeight = 139;
4865 
4866   {
4867    * The height of the small push button control variant that is
4868    * designed to be used in a textured window.
4869    }
4870 	kThemeMetricTexturedSmallPushButtonHeight = 140;
4871 
4872 type
4873 	ThemeMetric = UInt32;
4874 {
4875  *  GetThemeMetric()
4876  *
4877  *  Summary:
4878  *    Returns a measurement in points for a specified type of user
4879  *    interface element.
4880  *
4881  *  Mac OS X threading:
4882  *    Not thread safe
4883  *
4884  *  Parameters:
4885  *
4886  *    inMetric:
4887  *      The metric to retrieve.
4888  *
4889  *    outMetric:
4890  *      The size of the specified user interface element, in points.
4891  *
4892  *  Availability:
4893  *    Mac OS X:         in version 10.0 and later in Carbon.framework
4894  *    CarbonLib:        in CarbonLib 1.0 and later
4895  *    Non-Carbon CFM:   not available
4896  }
GetThemeMetricnull4897 function GetThemeMetric( inMetric: ThemeMetric; var outMetric: SInt32 ): OSStatus; external name '_GetThemeMetric';
4898 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
4899 
4900 
4901 {
4902  *  CopyThemeIdentifier()
4903  *
4904  *  Summary:
4905  *    Retrieves a string identifying the current theme variant, which
4906  *    may be Aqua or Graphite.
4907  *
4908  *  Mac OS X threading:
4909  *    Not thread safe
4910  *
4911  *  Parameters:
4912  *
4913  *    outIdentifier:
4914  *      On exit, contains the theme variant identifier. This string
4915  *      must be released by the caller.
4916  *
4917  *  Availability:
4918  *    Mac OS X:         in version 10.1 and later in Carbon.framework
4919  *    CarbonLib:        in CarbonLib 1.4 and later
4920  *    Non-Carbon CFM:   not available
4921  }
CopyThemeIdentifiernull4922 function CopyThemeIdentifier( var outIdentifier: CFStringRef ): OSStatus; external name '_CopyThemeIdentifier';
4923 (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
4924 
4925 
4926 {��������������������������������������������������������������������������������������������������}
4927 { Obsolete symbolic names                                                                          }
4928 {��������������������������������������������������������������������������������������������������}
4929 const
4930 	kThemeMetricCheckBoxGlyphHeight = kThemeMetricCheckBoxHeight;
4931 	kThemeMetricRadioButtonGlyphHeight = kThemeMetricRadioButtonHeight;
4932 	kThemeMetricDisclosureButtonSize = kThemeMetricDisclosureButtonHeight;
4933 	kThemeMetricBestListHeaderHeight = kThemeMetricListHeaderHeight;
4934 	kThemeMetricSmallProgressBarThickness = kThemeMetricNormalProgressBarThickness; { obsolete }
4935 	kThemeMetricProgressBarThickness = kThemeMetricLargeProgressBarThickness; { obsolete }
4936 
4937 {$endc} {TARGET_OS_MAC}
4938 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
4939 
4940 end.
4941 {$endc} {not MACOSALLINCLUDE}
4942