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