diff options
Diffstat (limited to 'packages/univint/src/HITheme.pas')
-rw-r--r-- | packages/univint/src/HITheme.pas | 3774 |
1 files changed, 3774 insertions, 0 deletions
diff --git a/packages/univint/src/HITheme.pas b/packages/univint/src/HITheme.pas new file mode 100644 index 0000000000..49c6bf1565 --- /dev/null +++ b/packages/univint/src/HITheme.pas @@ -0,0 +1,3774 @@ +{ + File: HIToolbox/HITheme.h + + Contains: HIToolbox HITheme interfaces. + + Version: HIToolbox-219.4.81~2 + + Copyright: © 1994-2005 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://www.freepascal.org/bugs.html + +} +{ Pascal Translation: Peter N Lewis, <peter@stairways.com.au>, 2004 } +{ Pascal Translation Updated: Peter N Lewis, <peter@stairways.com.au>, August 2005 } +{ + Modified for use with Free Pascal + Version 200 + Please report any bugs to <gpc@microbizz.nl> +} + +{$mode macpas} +{$packenum 1} +{$macro on} +{$inline on} +{$CALLING MWPASCAL} + +unit HITheme; +interface +{$setc UNIVERSAL_INTERFACES_VERSION := $0342} +{$setc GAP_INTERFACES_VERSION := $0200} + +{$ifc not defined USE_CFSTR_CONSTANT_MACROS} + {$setc USE_CFSTR_CONSTANT_MACROS := TRUE} +{$endc} + +{$ifc defined CPUPOWERPC and defined CPUI386} + {$error Conflicting initial definitions for CPUPOWERPC and CPUI386} +{$endc} +{$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN} + {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN} +{$endc} + +{$ifc not defined __ppc__ and defined CPUPOWERPC} + {$setc __ppc__ := 1} +{$elsec} + {$setc __ppc__ := 0} +{$endc} +{$ifc not defined __i386__ and defined CPUI386} + {$setc __i386__ := 1} +{$elsec} + {$setc __i386__ := 0} +{$endc} + +{$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__} + {$error Conflicting definitions for __ppc__ and __i386__} +{$endc} + +{$ifc defined __ppc__ and __ppc__} + {$setc TARGET_CPU_PPC := TRUE} + {$setc TARGET_CPU_X86 := FALSE} +{$elifc defined __i386__ and __i386__} + {$setc TARGET_CPU_PPC := FALSE} + {$setc TARGET_CPU_X86 := TRUE} +{$elsec} + {$error Neither __ppc__ nor __i386__ is defined.} +{$endc} +{$setc TARGET_CPU_PPC_64 := FALSE} + +{$ifc defined FPC_BIG_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := TRUE} + {$setc TARGET_RT_LITTLE_ENDIAN := FALSE} +{$elifc defined FPC_LITTLE_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := FALSE} + {$setc TARGET_RT_LITTLE_ENDIAN := TRUE} +{$elsec} + {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.} +{$endc} +{$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE} +{$setc CALL_NOT_IN_CARBON := FALSE} +{$setc OLDROUTINENAMES := FALSE} +{$setc OPAQUE_TOOLBOX_STRUCTS := TRUE} +{$setc OPAQUE_UPP_TYPES := TRUE} +{$setc OTCARBONAPPLICATION := TRUE} +{$setc OTKERNEL := FALSE} +{$setc PM_USE_SESSION_APIS := TRUE} +{$setc TARGET_API_MAC_CARBON := TRUE} +{$setc TARGET_API_MAC_OS8 := FALSE} +{$setc TARGET_API_MAC_OSX := TRUE} +{$setc TARGET_CARBON := TRUE} +{$setc TARGET_CPU_68K := FALSE} +{$setc TARGET_CPU_MIPS := FALSE} +{$setc TARGET_CPU_SPARC := FALSE} +{$setc TARGET_OS_MAC := TRUE} +{$setc TARGET_OS_UNIX := FALSE} +{$setc TARGET_OS_WIN32 := FALSE} +{$setc TARGET_RT_MAC_68881 := FALSE} +{$setc TARGET_RT_MAC_CFM := FALSE} +{$setc TARGET_RT_MAC_MACHO := TRUE} +{$setc TYPED_FUNCTION_POINTERS := TRUE} +{$setc TYPE_BOOL := FALSE} +{$setc TYPE_EXTENDED := FALSE} +{$setc TYPE_LONGLONG := TRUE} +uses MacTypes,CFBase,CGBase,Appearance,HIShape,HIGeometry,Drag,CFDate,CGContext,MacWindows,Controls; + + +{$ALIGN MAC68K} + +{ -------------------------------------------------------------------------- } +{ HIThemeOrientation information } +{ -------------------------------------------------------------------------- } + +const +{ + * The passed context has an origin at the top left. This is the + * default of a context passed to you by HIToolbox. + } + kHIThemeOrientationNormal = 0; + + { + * The passed context has an origin at the bottom left. This is the + * default for a context you create. + } + kHIThemeOrientationInverted = 1; + +type + HIThemeOrientation = UInt32; +{ -------------------------------------------------------------------------- } +{ Splitter types } +{ -------------------------------------------------------------------------- } + +const +{ + * Draw the splitter with its normal appearance. + } + kHIThemeSplitterAdornmentNone = 0; + + { + * Draw the splitter with its metal appearance. + } + kHIThemeSplitterAdornmentMetal = 1; + +type + HIThemeSplitterAdornment = UInt32; +{ -------------------------------------------------------------------------- } +{ Window Grow Box } +{ -------------------------------------------------------------------------- } + +const +{ + * The grow box corner for a window that has no scroll bars. + } + kHIThemeGrowBoxKindNormal = 0; + + { + * The grow box corner for a window that has no grow box. This sounds + * paradoxical, but this type of grow box, formerly known as the + * "NoGrowBox" is used to fill in the corner left blank by the + * intersection of a horizontal and a vertical scroll bar. + } + kHIThemeGrowBoxKindNone = 1; + +type + HIThemeGrowBoxKind = UInt32; + +const +{ + * Draw the grow box for normal windows. + } + kHIThemeGrowBoxSizeNormal = 0; + + { + * Draw the smaller grow box for utility or floating windows. + } + kHIThemeGrowBoxSizeSmall = 1; + +type + HIThemeGrowBoxSize = UInt32; + +const +{ + * The group box is drawn with the primary variant. + } + kHIThemeGroupBoxKindPrimary = 0; + + { + * The group box is drawn with the secondary variant. + } + kHIThemeGroupBoxKindSecondary = 1; + + { + * The group box is drawn with the primary variant. This group box + * draws opaque. This does not match the Mac OS X 10.3 appearance + * 100%, as the boxes should be transparent, but draws this way for + * the sake of compatibility. Please update to use the newer + * transparent variant. + } + kHIThemeGroupBoxKindPrimaryOpaque = 3; + + { + * The group box is drawn with the secondary variant. This group box + * draws opaque. This does not match the Mac OS X 10.3 appearance + * 100%, as the boxes should be transparent, but draws this way for + * the sake of compatibility. Please update to use the newer + * transparent variant. + } + kHIThemeGroupBoxKindSecondaryOpaque = 4; + +type + HIThemeGroupBoxKind = UInt32; + +const +{ + * A header drawn above window content that has no top border of its + * own. (i.e. the same as the status bar in an icon view Finder + * window). + } + kHIThemeHeaderKindWindow = 0; + + { + * A header drawn above window content that has a top border of its + * own. (i.e. the same as the status bar in an list view Finder + * window). + } + kHIThemeHeaderKindList = 1; + +type + HIThemeHeaderKind = UInt32; + +const +{ + * The default sized square text field (like Edit Text). + } + kHIThemeFrameTextFieldSquare = 0; + kHIThemeFrameListBox = 1; + +type + HIThemeFrameKind = UInt32; + +const +{ + * Indicates that a menu title should be drawn in a condensed + * appearance. This constant is used in the + * HIThemeMenuTitleDrawInfo.attributes field. + } + kHIThemeMenuTitleDrawCondensed = 1 shl 0; + +{ -------------------------------------------------------------------------- } +{ DrawInfo } +{ -------------------------------------------------------------------------- } + +{ + * HIScrollBarTrackInfo + * + * Summary: + * Drawing parameters passed to scroll bar drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIScrollBarTrackInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeTrackEnableState for the scroll bar to be drawn. + } + enableState: SInt8 {ThemeTrackEnableState}; + + { + * The ThemeTrackPressState for the scroll bar to be drawn. + } + pressState: SInt8 {ThemeTrackPressState}; + + { + * The view range size. + } + viewsize: Float32; + end; + HIScrollBarTrackInfoPtr = ^HIScrollBarTrackInfo; + +{ + * HIThemeTrackDrawInfo + * + * Summary: + * Drawing parameters passed to track drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3, but based on legacy TrackDrawInfo. + } +type + HIThemeTrackDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; { current version is 0 } + + { + * The ThemeTrackKind of the track being drawn or measured. + } + kind: ThemeTrackKind; { what kind of track this info is for } + + { + * An HIRect describing the bounds of the track being drawn or + * measured. + } + bounds: HIRect; { track basis rectangle } + + { + * The minimum allowable value for the track being drawn or measured. + } + min: SInt32; { min track value } + + { + * The maximum allowable value for the track being drawn or measured. + } + max: SInt32; { max track value } + + { + * The value for the track being drawn or measured. + } + value: SInt32; { current thumb value } + + { + * Leave this reserved field set to 0. + } + reserved: UInt32; + + + { + * A set of ThemeTrackAttributes for the track to be drawn or + * measured. + } + attributes: ThemeTrackAttributes; { various track attributes } + + { + * A ThemeTrackEnableState describing the state of the track to be + * drawn or measured. + } + enableState: SInt8 {ThemeTrackEnableState}; { enable state } + + { + * Leave this reserved field set to 0. + } + filler1: SInt8; + + case SInt16 of + 0: ( + scrollbar: ScrollBarTrackInfo; + ); + 1: ( + slider: SliderTrackInfo; + ); + 2: ( + progress: ProgressTrackInfo; + ); + end; + HIThemeTrackDrawInfoPtr = ^HIThemeTrackDrawInfo; + +{ + * HIThemeAnimationTimeInfo + * + * Summary: + * Time parameters passed to button drawing and measuring theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeAnimationTimeInfo = record +{ + * The CFAbsoluteTime of the beginning of the animation of the + * button. This only applies to buttons that animate -- currently + * only kThemePushButton. All other buttons will ignore this field. + * If there is to be no animation, set this field to 0. + } + start: CFAbsoluteTime; + + { + * The CFAbsoluteTime of the current animation frame of the button. + * This only applies to buttons that animate -- currently only + * kThemePushButton. All other buttons will ignore this field. If + * there is to be no animation, set this field to 0. + } + current: CFAbsoluteTime; + end; + HIThemeAnimationTimeInfoPtr = ^HIThemeAnimationTimeInfo; + +{ + * HIThemeAnimationFrameInfo + * + * Summary: + * Frame parameters passed to button drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeAnimationFrameInfo = record +{ + * The index of the frame of the animation to draw. If the index is + * greater that the maximum number of animation frames, it will be + * modded to calculate which frame to draw. + } + index: UInt32; + end; + HIThemeAnimationFrameInfoPtr = ^HIThemeAnimationFrameInfo; + +{ + * HIThemeButtonDrawInfo + * + * Summary: + * Drawing parameters passed to button drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeButtonDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState of the button being drawn or measured. + } + state: ThemeDrawState; + + { + * A ThemeButtonKind indicating the type of button to be drawn. + } + kind: ThemeButtonKind; + + { + * The ThemeButtonValue of the button being drawn or measured. + } + value: ThemeButtonValue; + + { + * The ThemeButtonAdornment(s) with which the button is being drawn + * or measured. + } + adornment: ThemeButtonAdornment; + case SInt16 of + 0: ( + time: HIThemeAnimationTimeInfo; + ); + 1: ( + frame: HIThemeAnimationFrameInfo; + ); + end; + HIThemeButtonDrawInfoPtr = ^HIThemeButtonDrawInfo; + +{ + * HIThemeSplitterDrawInfo + * + * Summary: + * Drawing parameters passed to splitter drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeSplitterDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState of the splitter being drawn or measured. + } + state: ThemeDrawState; + + { + * The HIThemeSplitterAdornments of the splitter being drawn or + * measured. + } + adornment: HIThemeSplitterAdornment; + end; + HIThemeSplitterDrawInfoPtr = ^HIThemeSplitterDrawInfo; + +const +{ + * No tab adornments are to be drawn. + } + kHIThemeTabAdornmentNone = 0; + + { + * A focus ring is to be drawn around the tab. + } + kHIThemeTabAdornmentFocus = 1 shl 2; { to match button focus adornment } + + { + * If available, a leading separator is to be drawn on the tab, + * either to the left or above, depending on orientation. Note that + * tabs overlap and if the separators are drawn over top each other, + * the shadows multiply undesirably. New in Mac OS X 10.4. + } + kHIThemeTabAdornmentLeadingSeparator = 1 shl 3; + + { + * If available, a right separator is to be drawn on the tab, either + * to the right or below, depending on the orientation. Note that + * tabs overlap and if the separators are drawn over top each other, + * the shadows multiply undesirably. New in Mac OS X 10.4. + } + kHIThemeTabAdornmentTrailingSeparator = 1 shl 4; + +type + HIThemeTabAdornment = UInt32; + +{ + * Summary: + * These values are similar to kControlSize constants for + * convenience. + } +const +{ + * The tabs are normal (large) sized. + } + kHIThemeTabSizeNormal = 0; + + { + * The tabs are drawn as the small variant. + } + kHIThemeTabSizeSmall = 1; + + { + * The tabs are drawn as the mini variant. + } + kHIThemeTabSizeMini = 3; + +type + HIThemeTabSize = UInt32; + +{ + * Summary: + * Available values for HIThemeTabPosition. These are positions of + * the tabs within the tab control. New in Mac OS X 10.4. + } +const +{ + * The first position of a tab control. Left or top tab. + } + kHIThemeTabPositionFirst = 0; + + { + * A middle tab. + } + kHIThemeTabPositionMiddle = 1; + + { + * The last position of a tab control. Right or bottom tab. + } + kHIThemeTabPositionLast = 2; + + { + * The only position of a tab control. It is simultaneously first and + * last. You know, only. There is only one tab. It looks pretty much + * like a button. Please don't use this if you can avoid it. It's + * ugly. + } + kHIThemeTabPositionOnly = 3; + +type + HIThemeTabPosition = UInt32; + +{ + * Summary: + * Available values for HIThemeTabKind. + } +const + kHIThemeTabKindNormal = 0; + +type + HIThemeTabKind = UInt32; + +{ + * HIThemeTabDrawInfo + * + * Summary: + * Drawing parameters passed to tab drawing and measuring theme APIs. + * + * Discussion: + * In Mac OS X 10.4, added kind and position fields. + } +type + HIThemeTabDrawInfo = record +{ + * The version of this data structure. Currently, it is always 1. + } + version: UInt32; + + { + * A ThemeTabStyle describing the style of the tab to be drawn. + } + style: ThemeTabStyle; + + { + * A ThemeTabDirection describing the side on which the tab is being + * drawn. + } + direction: ThemeTabDirection; + + { + * An HIThemeTabSize indicating what size of tab to draw. + } + size: HIThemeTabSize; + + { + * An HIThemeTabAdornment describing any additional adornments that + * are to be drawn on the tab. + } + adornment: HIThemeTabAdornment; { various tab attributes } + + { + * An HIThemeTabKind indicating what kind of tab to draw. + } + kind: HIThemeTabKind; + + { + * The HIThemeTabPositions of the tab to be drawn or measured. + } + position: HIThemeTabPosition; + end; + HIThemeTabDrawInfoPtr = ^HIThemeTabDrawInfo; + +{ + * HIThemeTabDrawInfoVersionZero + * + * Summary: + * This structure is left here as a reference to the previous + * version of the tab drawing parameters. Please use the current + * version. + * + * Discussion: + * Shipped with Mac OS X 10.3. + } +type + HIThemeTabDrawInfoVersionZero = record + version: UInt32; + style: ThemeTabStyle; + direction: ThemeTabDirection; + size: HIThemeTabSize; + adornment: HIThemeTabAdornment; { various tab attributes } + end; + +{ + * Summary: + * Values for HIThemeTabPaneAdornment. + } +const + kHIThemeTabPaneAdornmentNormal = 0; + + +type + HIThemeTabPaneAdornment = UInt32; + +{ + * HIThemeTabPaneDrawInfo + * + * Summary: + * Drawing parameters passed to tab pane drawing and measuring theme + * APIs. + * + * Discussion: + * In Mac OS X 10.4, added kind and adornment fields. + } +type + HIThemeTabPaneDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the tab pane to be drawn. + } + state: ThemeDrawState; + + { + * A ThemeTabDirection describing on which side of the pane the tabs + * will be drawn. + } + direction: ThemeTabDirection; + + { + * An HIThemeTabSize indicating what size of tab pane to draw. + } + size: HIThemeTabSize; + + { + * An HIThemeTabKind indicating what kind of tab to draw this pane + * for. + } + kind: HIThemeTabKind; + + { + * An HIThemeTabPaneAdornment describing any additional adornments + * that are to be drawn on the tab pane. + } + adornment: HIThemeTabPaneAdornment; + end; + +{ + * HIThemeTabPaneDrawInfoVersionZero + * + * Summary: + * This structure is left here as a reference to the previous + * version of the tab pane drawing parameters. Please use the + * current version. + * + * Discussion: + * Shipped with Mac OS X 10.3. + } +type + HIThemeTabPaneDrawInfoVersionZero = record + version: UInt32; + state: ThemeDrawState; + direction: ThemeTabDirection; + size: HIThemeTabSize; + end; + +{ + * HIThemeMenuDrawInfo + * + * Summary: + * Drawing parameters passed to menu drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeMenuDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * A ThemeMenuType indicating which type of menu is to be drawn. + } + menuType: ThemeMenuType; + end; + HIThemeMenuDrawInfoPtr = ^HIThemeMenuDrawInfo; + +{ + * HIThemeMenuItemDrawInfo + * + * Summary: + * Drawing parameters passed to menu item drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeMenuItemDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * A ThemeMenuItemType indicating what type of menu item is to be + * drawn. + } + itemType: ThemeMenuItemType; + + { + * The ThemeMenuState of the menu item to be drawn. + } + state: ThemeMenuState; + end; + HIThemeMenuItemDrawInfoPtr = ^HIThemeMenuItemDrawInfo; + +{ + * HIThemeFrameDrawInfo + * + * Summary: + * Drawing parameters passed to frame drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeFrameDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The HIThemeFrameKind of the frame to be drawn. + } + kind: HIThemeFrameKind; + + { + * The ThemeDrawState of the frame to be drawn. + } + state: ThemeDrawState; + + { + * A Boolean indicating whether the frame is to be drawn with focus + * or without. + } + isFocused: Boolean; + end; + HIThemeFrameDrawInfoPtr = ^HIThemeFrameDrawInfo; + +{ + * HIThemeGroupBoxDrawInfo + * + * Summary: + * Drawing parameters passed to group box drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeGroupBoxDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the group box to be drawn. + } + state: ThemeDrawState; + + { + * An HIThemeGroupBoxKind indicating which type of group box is to be + * drawn. + } + kind: HIThemeGroupBoxKind; + end; + HIThemeGroupBoxDrawInfoPtr = ^HIThemeGroupBoxDrawInfo; + +{ + * HIThemeGrabberDrawInfo + * + * Summary: + * Drawing parameters passed to grabber drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeGrabberDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the grabber to be drawn. + } + state: ThemeDrawState; + end; + HIThemeGrabberDrawInfoPtr = ^HIThemeGrabberDrawInfo; + +{ + * HIThemePlacardDrawInfo + * + * Summary: + * Drawing parameters passed to placard drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemePlacardDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the placard to be drawn. + } + state: ThemeDrawState; + end; + HIThemePlacardDrawInfoPtr = ^HIThemePlacardDrawInfo; + +{ + * HIThemeHeaderDrawInfo + * + * Summary: + * Drawing parameters passed to header drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeHeaderDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the header to be drawn. + } + state: ThemeDrawState; + + { + * The HIThemeHeaderKind for the header to be drawn. + } + kind: HIThemeHeaderKind; + end; + HIThemeHeaderDrawInfoPtr = ^HIThemeHeaderDrawInfo; + +{ + * HIThemeMenuBarDrawInfo + * + * Summary: + * Drawing parameters passed to HIThemeDrawMenuBarBackground. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeMenuBarDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeMenuBarState for the menu bar to be drawn. + } + state: ThemeMenuBarState; + + { + * The attributes of the menu bar to be drawn. + } + attributes: UInt32; + end; + HIThemeMenuBarDrawInfoPtr = ^HIThemeMenuBarDrawInfo; + +{ + * HIThemeMenuTitleDrawInfo + * + * Summary: + * Drawing parameters passed to HIThemeDrawMenuTitle. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeMenuTitleDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeMenuState for the menu title to be drawn. + } + state: ThemeMenuState; + + { + * The attributes of the menu title to be drawn. Must be either 0 or + * kHIThemeMenuTitleDrawCondensed. + } + attributes: UInt32; + + { + * The border space between the menu title rect and the menu title + * text when the menu title spacing is being condensed. This field is + * only observed by the Appearance Manager when the attributes field + * contains kHIThemeMenuTitleDrawCondensed. The valid values for this + * field range from the value returned by GetThemeMenuTitleExtra( + * &extra, false ) to the value returned by GetThemeMenuTitleExtra( + * &extra, true ). You may pass 0 in this field to use the minimum + * condensed title extra. + } + condensedTitleExtra: Float32; + end; + HIThemeMenuTitleDrawInfoPtr = ^HIThemeMenuTitleDrawInfo; + +{ + * HIThemeTickMarkDrawInfo + * + * Summary: + * Drawing parameters passed to tick mark drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeTickMarkDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the tick mark to be drawn. + } + state: ThemeDrawState; + end; + HIThemeTickMarkDrawInfoPtr = ^HIThemeTickMarkDrawInfo; + +{ + * HIThemeWindowDrawInfo + * + * Summary: + * Drawing parameters passed to window drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3, but based on legacy ThemeWindowMetrics. + } +type + HIThemeWindowDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * A ThemeDrawState which describes the state of the window to be + * drawn. + } + state: ThemeDrawState; + + { + * A ThemeWindowType specifying the type of window to be drawn. + } + windowType: ThemeWindowType; + + { + * The ThemeWindowAttributes describing the window to be drawn. + } + attributes: ThemeWindowAttributes; + + { + * The height of the title of the window. + } + titleHeight: Float32; + + { + * The width of the title of the window. + } + titleWidth: Float32; + end; + HIThemeWindowDrawInfoPtr = ^HIThemeWindowDrawInfo; + +{ + * HIThemeWindowWidgetDrawInfo + * + * Summary: + * Drawing parameters passed to window widget drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3, but based on legacy ThemeWindowMetrics. + } +type + HIThemeWindowWidgetDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * A ThemeDrawState which describes the state of the widget to be + * drawn. + } + widgetState: ThemeDrawState; + + { + * A ThemeTitleBarWidget specifying the type of window widget to be + * drawn. + } + widgetType: ThemeTitleBarWidget; + + { + * A ThemeDrawState which describes the state of the window for which + * the widget is to be drawn. + } + windowState: ThemeDrawState; + + { + * A ThemeWindowType specifying the type of window to be drawn. + } + windowType: ThemeWindowType; + + { + * The ThemeWindowAttributes describing the window to be drawn. + } + attributes: ThemeWindowAttributes; + + { + * The height of the title of the window. + } + titleHeight: Float32; + + { + * The width of the title of the window. + } + titleWidth: Float32; + end; + HIThemeWindowWidgetDrawInfoPtr = ^HIThemeWindowWidgetDrawInfo; + +{ + * HIThemeSeparatorDrawInfo + * + * Summary: + * Drawing parameters passed to separator drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeSeparatorDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the separator to be drawn. + } + state: ThemeDrawState; + end; + HIThemeSeparatorDrawInfoPtr = ^HIThemeSeparatorDrawInfo; + +{ + * HIThemeScrollBarDelimitersDrawInfo + * + * Summary: + * Drawing parameters passed to separator drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeScrollBarDelimitersDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the separator to be drawn. + } + state: ThemeDrawState; + + { + * A ThemeWindowType specifying the type of window for which to draw + * the delimiters. + } + windowType: ThemeWindowType; + + { + * The ThemeWindowAttributes of the window for which the scroll bar + * delimters are to be drawn. + } + attributes: ThemeWindowAttributes; + end; + HIThemeScrollBarDelimitersDrawInfoPtr = ^HIThemeScrollBarDelimitersDrawInfo; + +{ + * HIThemeChasingArrowsDrawInfo + * + * Summary: + * Drawing parameters passed to chasing arrows drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeChasingArrowsDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the chasing arrows to be drawn. + } + state: ThemeDrawState; + + { + * A UInt32 used to calculate which frame of the chasing arrow + * animation is to be drawn. + } + index: UInt32; + end; + HIThemeChasingArrowsDrawInfoPtr = ^HIThemeChasingArrowsDrawInfo; + +{ + * HIThemePopupArrowDrawInfo + * + * Summary: + * Drawing parameters passed to popup arrow drawing and measuring + * theme APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemePopupArrowDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the popup arrow to be drawn. + } + state: ThemeDrawState; + + { + * A ThemeArrowOrientation for the orientation of the popup arrow to + * be drawn. + } + orientation: ThemeArrowOrientation; + + { + * A ThemePopupArrowSize for the size of the popup arrow to be drawn. + } + size: ThemePopupArrowSize; + end; + HIThemePopupArrowDrawInfoPtr = ^HIThemePopupArrowDrawInfo; + +{ + * HIThemeGrowBoxDrawInfo + * + * Summary: + * Drawing parameters passed to grow box drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3. + } +type + HIThemeGrowBoxDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the grow box to be drawn. + } + state: ThemeDrawState; + + { + * A ThemeGrowBoxKind indicating in which kind of grow box to draw. + } + kind: HIThemeGrowBoxKind; + + { + * A ThemeGrowDirection indicating in which direction the window will + * grow. + } + direction: ThemeGrowDirection; + + { + * An HIThemeGrowBoxSize describing the size of the grow box to draw. + } + size: HIThemeGrowBoxSize; + end; + HIThemeGrowBoxDrawInfoPtr = ^HIThemeGrowBoxDrawInfo; + +{ + * HIThemeBackgroundDrawInfo + * + * Discussion: + * New in Mac OS X 10.3, but based on legacy TrackDrawInfo. + } +type + HIThemeBackgroundDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState of the background to be drawn. Currently, + * HIThemeDrawBackground backgrounds do not have state, so this field + * has no meaning. Set it to kThemeStateActive. + } + state: ThemeDrawState; + + { + * The ThemeBackgroundKind with which to fill the background. + } + kind: ThemeBackgroundKind; + end; + HIThemeBackgroundDrawInfoPtr = ^HIThemeBackgroundDrawInfo; +{ -------------------------------------------------------------------------- } +{ Buttons } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawButton() + * + * Summary: + * Draw a themed button. + * + * Discussion: + * This generic button drawing theme primitive draws not just a push + * button, but all of the kinds of buttons described by + * ThemeButtonKind. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The HIRect in which to draw. Note that this API may draw + * outside of its bounds. + * + * inDrawInfo: + * An HIThemeButtonDrawInfo describing the button that will be + * drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * outLabelRect: + * A pointer to an HIRect into which to put the bounds of the + * label rect. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawButton( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outLabelRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawButton'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetButtonShape() + * + * Summary: + * Get a shape of a themed button. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemeButtonDrawInfo describing the button that will be + * drawn. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the button. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetButtonShape( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetButtonShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetButtonContentBounds() + * + * Summary: + * Get the bounds of a themed button's content. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect indicating where the button is to be drawn. + * + * inDrawInfo: + * An HIThemeButtonDrawInfo describing the button that will be + * drawn. + * + * outBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the button content bounds. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetButtonContentBounds( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetButtonContentBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetButtonBackgroundBounds() + * + * Summary: + * Get the bounds of the background of a themed button. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect indicating where the button is to be drawn. + * + * inDrawInfo: + * An HIThemeButtonDrawInfo describing the button that will be + * drawn. + * + * outBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the button background bounds. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetButtonBackgroundBounds( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetButtonBackgroundBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawChasingArrows() + * + * Summary: + * Draw themed chasing arrows. + * + * Discussion: + * Draw a frame from the chasing arrows animation. The animation + * frame is based on a modulo value calculated from the index. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect indicating where the chasing arrows are to be drawn. + * + * inDrawInfo: + * An HIThemeChasingArrowsDrawInfo describing the chasing arrows + * to be drawn or measured. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawChasingArrows( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeChasingArrowsDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawChasingArrows'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawPopupArrow() + * + * Summary: + * Draws a themed popup arrow. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemePopupArrowDrawInfo describing the popup arrow to be + * drawn or measured. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawPopupArrow( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemePopupArrowDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPopupArrow'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Menus } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawMenuBarBackground() + * + * Summary: + * Draws the menu bar background for a given area. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeMenuBarDrawInfo of the menu bar to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawMenuBarBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeMenuBarDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuBarBackground'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawMenuTitle() + * + * Summary: + * Draws the menu title background for a menu. + * + * Discussion: + * This API draws the background of a menu title. It does not draw + * the menu title text; it is the caller's responsibility to draw + * the text after this API has returned. The text should be drawn + * into the bounds returned in the outLabelRect parameter; the + * caller should ensure that the text is not drawn outside of those + * bounds, either by truncating or clipping the text. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inMenuBarRect: + * An HIRect indicating the bounds of the whole menu bar for which + * the menu title is to be drawn. + * + * inTitleRect: + * An HIRect for the bounds of the menu title to be drawn. + * + * inDrawInfo: + * The HIThemeMenuTitleDrawInfo of the menu title to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * outLabelRect: + * On exit, contains the bounds in which the menu title text + * should be drawn. May be NULL if you don't need this information. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +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'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawMenuBackground() + * + * Summary: + * Draws the theme menu background in a rectangle. This API may + * draw outside of the specified rectangle. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inMenuRect: + * An HIRect indicating the bounds of the whole menu for which the + * background is to be drawn. + * + * inMenuDrawInfo: + * An HIThemeMenuDrawInfo describing the menu to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawMenuBackground( const (*var*) inMenuRect: HIRect; const (*var*) inMenuDrawInfo: HIThemeMenuDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuBackground'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawMenuItem() + * + * Summary: + * Draws a themed menu item. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inMenuRect: + * An HIRect indicating the bounds of the whole menu for which the + * menu item is to be drawn. + * + * inItemRect: + * An HIRect for the bounds of the menu item to be drawn. + * + * inItemDrawInfo: + * An HIThemeMenuItemDrawInfo describing the drawing + * characteristics of the menu item to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * outContentRect: + * An HIRect that will be filled with the rectangle describing + * where the menu item content is to be drawn. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +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'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawMenuSeparator() + * + * Summary: + * Draws a themed menu separator. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inMenuRect: + * An HIRect indicating the bounds of the whole menu for which the + * menu separator is to be drawn. + * + * inItemRect: + * An HIRect for the bounds of the menu separator to be drawn. + * + * inItemDrawInfo: + * An HIThemeMenuItemDrawInfo describing the drawing + * characteristics of the menu item to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawMenuSeparator( const (*var*) inMenuRect: HIRect; const (*var*) inItemRect: HIRect; const (*var*) inItemDrawInfo: HIThemeMenuItemDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawMenuSeparator'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetMenuBackgroundShape() + * + * Summary: + * Gets the shape of the background for a themed menu. + * + * Discussion: + * This shape can extend outside of the bounds of the specified + * rectangle. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inMenuRect: + * An HIRect indicating the bounds of the menu for which the menu + * background is to be drawn. + * + * inMenuDrawInfo: + * An HIThemeMenuDrawInfo describing the menu to be measured. + * + * outShape: + * A valid HIShape that will be cleared and filled with the shape + * of the menu background. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetMenuBackgroundShape( const (*var*) inMenuRect: HIRect; const (*var*) inMenuDrawInfo: HIThemeMenuDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetMenuBackgroundShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Segments } +{ -------------------------------------------------------------------------- } + +{ + * Summary: + * Available values for HIThemeSegmentPosition. These are positions + * of the segments within the segmented view. + } +const +{ + * The first position of a segmented view. + } + kHIThemeSegmentPositionFirst = 0; + + { + * A middle segment. + } + kHIThemeSegmentPositionMiddle = 1; + + { + * The last position of a segmented view. + } + kHIThemeSegmentPositionLast = 2; + + { + * The only position of a segmented view. It is simultaneously first + * and last. You know, only. There is only one segment. It looks + * pretty much like a button. Please don't use this if you can avoid + * it. It's ugly. + } + kHIThemeSegmentPositionOnly = 3; + +type + HIThemeSegmentPosition = UInt32; + +{ + * Summary: + * Available values for HIThemeSegmentKind. + } +const +{ + * The outset looking segment. Do not use on metal or metal-like + * windows. + } + kHIThemeSegmentKindNormal = 0; + + { + * The inset segment. Use on metal or metal-like windows. + } + kHIThemeSegmentKindInset = 1; + +type + HIThemeSegmentKind = UInt32; + +{ + * Summary: + * Available values for HIThemeSegmentSize. + } +const +{ + * The normally sized segment. + } + kHIThemeSegmentSizeNormal = 0; + + { + * The small segment. Not available with as inset. + } + kHIThemeSegmentSizeSmall = 1; + + { + * The mini segment. Not available with as inset. + } + kHIThemeSegmentSizeMini = 3; + +type + HIThemeSegmentSize = UInt32; + +const +{ + * No segment adornments are to be drawn. + } + kHIThemeSegmentAdornmentNone = 0; + + { + * A focus ring is to be drawn around the segment. + } + kHIThemeSegmentAdornmentFocus = 1 shl 2; { to match button focus adornment } + + { + * If available, a leading separator is to be drawn on the segment. + * Note that segments overlap and if the separators are drawn over + * top each other, the shadows multiply undesirably. + } + kHIThemeSegmentAdornmentLeadingSeparator = 1 shl 3; + + { + * If available, a trailing separator is to be drawn on the segment. + * Note that segments overlap and if the separators are drawn over + * top each other, the shadows multiply undesirably. + } + kHIThemeSegmentAdornmentTrailingSeparator = 1 shl 4; + +type + HIThemeSegmentAdornment = UInt32; + +{ + * HIThemeSegmentDrawInfo + * + * Summary: + * Drawing parameters passed to segment drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.4. + } +type + HIThemeSegmentDrawInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; + + { + * The ThemeDrawState for the segment to be drawn or measured. + } + state: ThemeDrawState; + + { + * The ThemeButtonValue of the segment to be drawn or measured. + } + value: ThemeButtonValue; + size: HIThemeSegmentSize; + + { + * The HIThemeSegmentKind of the segment to be drawn or measured. + } + kind: HIThemeSegmentKind; + + { + * The HIThemeSegmentPositions of the segment to be drawn or measured. + } + position: HIThemeSegmentPosition; + + { + * The HIThemeSegmentAdornment of the segment to be drawn or measured. + } + adornment: HIThemeSegmentAdornment; + end; + HIThemeSegmentDrawInfoPtr = ^HIThemeSegmentDrawInfo; +{ + * HIThemeDrawSegment() + * + * Summary: + * Draw a piece of a segmented view. + * + * Discussion: + * New in Mac OS X 10.4. Please note that segments can draw a + * separator outside of the specified bounds and the adornments of + * the individual segments must coordinate their drawing of + * separators (with the adornment field of the passed in + * HIThemeSegmentDrawInfo) to avoid overdrawing. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The bounds of the segment to be drawn. + * + * inDrawInfo: + * A HIThemeSegmentDrawInfo describing the segment to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.4 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x + * Non-Carbon CFM: not available + } +function HIThemeDrawSegment( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeSegmentDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawSegment'; +(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Tabs } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawTabPane() + * + * Summary: + * Draws a themed tab pane. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw the pane. + * + * inDrawInfo: + * The HIThemeTabPaneDrawInfo of the tab pane to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTabPane( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabPaneDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTabPane'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawTab() + * + * Summary: + * Draw a themed tab. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemeTabDrawInfo describing the tab to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * outLabelRect: + * An HIRect into which to put the bounds of the label rect. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTab( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outLabelRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawTab'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTabPaneDrawShape() + * + * Summary: + * Gets the shape of the draw area relative to the full bounds of + * the tab+pane. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect for which to get the shape. + * + * inDirection: + * A ThemeTabDirection describing on which side of the pane the + * tabs will be drawn. + * + * inTabSize: + * An HIThemeTabSize indicating what size of tab pane to draw. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the draw area. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTabPaneDrawShape( const (*var*) inRect: HIRect; inDirection: ThemeTabDirection; inTabSize: HIThemeTabSize; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabPaneDrawShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTabPaneContentShape() + * + * Summary: + * Gets the shape of the content area relative to the full bounds of + * the tab+pane. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect for which to get the shape. + * + * inDirection: + * A ThemeTabDirection describing on which side of the pane the + * tabs will be drawn. + * + * inTabSize: + * An HIThemeTabSize indicating what size of tab pane to draw. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the draw content. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTabPaneContentShape( const (*var*) inRect: HIRect; inDirection: ThemeTabDirection; inTabSize: HIThemeTabSize; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabPaneContentShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTabDrawShape() + * + * Summary: + * Gets the shape of the tab drawing area relative to the full + * bounds of the tab+pane. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect for which to get the shape. + * + * inDrawInfo: + * An HIThemeTabDrawInfo describing the tab that will be drawn. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the tab drawing area. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTabDrawShape( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabDrawShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTabShape() + * + * Summary: + * Gets the shape for a themed tab. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * An HIRect indicating the entire tabs area for which the tab + * shape is to be retrieved. + * + * inDrawInfo: + * An HIThemeTabDrawInfo describing the tab that will be drawn. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the tab. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTabShape( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeTabDrawInfo; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTabShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Text } +{ -------------------------------------------------------------------------- } + +const +{ + * Don't truncate the measured or drawn text. + } + kHIThemeTextTruncationNone = 0; + + { + * During measure or draw, if the text will not fit within the + * available bounds, truncate the text in the middle of the last + * visible line. + } + kHIThemeTextTruncationMiddle = 1; + + { + * During measure or draw, if the text will not fit within the + * available bounds, truncate the text at the end of the last visible + * line. + } + kHIThemeTextTruncationEnd = 2; + +type + HIThemeTextTruncation = UInt32; + +const +{ + * The text will be drawn flush with the left side of the bounding + * box. + } + kHIThemeTextHorizontalFlushLeft = 0; + + { + * The text will be centered within the bounding box. + } + kHIThemeTextHorizontalFlushCenter = 1; + + { + * The text will be drawn flush with the right side of the bounding + * box. + } + kHIThemeTextHorizontalFlushRight = 2; + +type + HIThemeTextHorizontalFlush = UInt32; + +const +{ + * Draw the text vertically flush with the top of the box + } + kHIThemeTextVerticalFlushTop = 0; + + { + * Vertically center the text + } + kHIThemeTextVerticalFlushCenter = 1; + + { + * Draw the text vertically flush with the bottom of the box + } + kHIThemeTextVerticalFlushBottom = 2; + +type + HIThemeTextVerticalFlush = UInt32; + +const + kHIThemeTextBoxOptionNone = 0; + kHIThemeTextBoxOptionStronglyVertical = 1 shl 1; + +type + HIThemeTextBoxOptions = OptionBits; +const + kHIThemeTextInfoVersionZero = 0; + + +{ + * HIThemeTextInfo + * + * Summary: + * Drawing parameters passed to text drawing and measuring theme + * APIs. + * + * Discussion: + * New in Mac OS X 10.3, this structure is used for measuring and + * drawing text with the HIThemeGetTextDimensions and + * HIThemeDrawTextBox APIs. If truncationPosition is + * kHIThemeTextTruncationNone, the other fields with the truncation + * prefix are ignored. + } +type + HIThemeTextInfo = record +{ + * The version of this data structure. Currently, it is always 0. + } + version: UInt32; { current version is 0 } + + { + * The theme draw state in which to draw the string. + } + state: ThemeDrawState; + + { + * The font in which to draw the string. + } + fontID: ThemeFontID; + + { + * The horizontal flushness of the text. One of the + * kHIThemeTextHorizontalFlush[Left/Center/Right] constants. When + * this structure is used for HIThemeGetTextDimensions, this field + * has no effect on the returned dimensions. However, providing the + * same flushness that will be used with a subsequent draw will + * trigger a performance optimization. + } + horizontalFlushness: HIThemeTextHorizontalFlush; { kHIThemeTextHorizontalFlush[Left/Center/Right] } + + { + * The vertical flushness of the text. One of the + * kHIThemeTextVerticalFlush[Top/Center/Bottom] constants. When this + * paramblock is used for HIThemeGetTextDimensions, this field has no + * effect on the returned dimensions. However, providing the same + * flushness that will be used with a subsequent draw will trigger a + * performance optimization. + } + verticalFlushness: HIThemeTextVerticalFlush; { kHIThemeTextVerticalFlush[Top/Center/Bottom] } + + { + * Currently, the only option available is for strongly vertical text + * with the kThemeTextBoxOptionStronglyVertical option bit. + } + options: HIThemeTextBoxOptions; { includes kHIThemeTextBoxOptionStronglyVertical } + + { + * Specifies where truncation should occur. If this field is + * kHIThemeTruncationNone, no truncation will occur, and all fields + * with the truncation prefix will be ignored. + } + truncationPosition: HIThemeTextTruncation; { kHIThemeTextTruncation[None/Middle/End], If none the following field is ignored } + + { + * The maximum number of lines to measure or draw before truncation + * occurs. Ignored if truncationPosition is kHIThemeTruncationNone. + } + truncationMaxLines: UInt32; { the maximum number of lines before truncation occurs } + + { + * On output, if the text has been truncated, this is set to true. If + * the text fit completely within the parameters specified and the + * text was not truncated, this is set to false. + } + truncationHappened: Boolean; { on output, whether truncation needed to happen } + end; + HIThemeTextInfoPtr = ^HIThemeTextInfo; +{ + * HIThemeGetTextDimensions() + * + * Summary: + * Get text dimensions of a string + * + * Discussion: + * This allows you to get various dimension characteristics of a + * string bound to certain criteria that you specify. It allows you + * to get the absolute bounds of a string laid out in a single line, + * or the bounds of a string constrained to a given width. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inString: + * A CFStringRef containing the unicode characters you wish to + * measure. You MUST NOT pass in a CFStringRef that was allocated + * with any of the "NoCopy" CFString creation APIs; a string + * created with a "NoCopy" API has transient storage which is + * incompatible with HIThemeGetTextDimensions's caches. + * + * inWidth: + * The width to constrain the text before wrapping. If inWidth is + * 0, the text will not wrap and will be laid out as a single + * line, unless it contains embedded carriage return or linefeed + * characters; CR/LF will cause the text to wrap and the resulting + * measurements will include space for multiple lines of text. If + * inWidth is not 0, the text will wrap at the given width and the + * measurements will be returned from the multi-line layout. + * + * + * To force single-line layout even in the presence of embedded + * CR/LF characters, pass FLT_MAX for inWidth, + * kHIThemeTextTruncationEnd for inTextInfo.truncationPosition, + * and 1 for inTextInfo.truncationMaxLines. + * + * inTextInfo: + * The HIThemeTextInfo parameter block specifying additional + * options for flushness and truncation. The truncationHappened + * field is the only field that will be written to by this API + * (and the reason for inTextInfo not being const). + * + * outWidth: + * On output, will contain the width of the string. This width may + * be smaller than the constrain inWidth parameter if the text has + * wrapped. It will return the true bounding width of the layout. + * Can be NULL. + * + * outHeight: + * On output, will contain the height of the string. Can be NULL. + * + * outBaseline: + * On output, will contain the baseline of the string. This is the + * delta from the top of the text to the baseline of the first + * line. Can be NULL. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTextDimensions( inString: CFStringRef; inWidth: Float32; var inTextInfo: HIThemeTextInfo; outWidth: Float32Ptr { can be NULL }; outHeight: Float32Ptr { can be NULL }; outBaseline: Float32Ptr { can be NULL } ): OSStatus; external name '_HIThemeGetTextDimensions'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawTextBox() + * + * Summary: + * Draw the string into the given bounding box + * + * Discussion: + * Draw the string into the bounding box given. You can specify + * options such as truncation and justification as well as + * determining whether the text was truncated when it was drawn. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inString: + * A CFStringRef containing the unicode characters you wish to + * render. You MUST NOT pass in a CFStringRef that was allocated + * with any of the "NoCopy" CFString creation APIs; a string + * created with a "NoCopy" API has transient storage which is + * incompatible with HIThemeDrawTextBox's caches. + * + * inBounds: + * The HIRect that bounds where the text is to be drawn + * + * inTextInfo: + * The HIThemeTextInfo parameter block specifying additional + * options for truncation and flushness. You can control the + * number of lines drawn by specifying a truncation of + * kHIThemeTextTruncationMiddle or kHIThemeTextTruncationEnd for + * the truncationPosition field and then specifying a maximum + * number of lines to draw before truncation occurs in the + * truncationMaxLines field. The truncationHappened field is the + * only field that will be written to by this API (and the reason + * for inTextInfo not being const). + * + * inContext: + * The CGContextRef into which to draw the text. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTextBox( inString: CFStringRef; const (*var*) inBounds: HIRect; var inTextInfo: HIThemeTextInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTextBox'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Tracks } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawTrack() + * + * Summary: + * Draw a themed track item. + * + * Discussion: + * Used to draw any tracked element including sliders and scroll + * bars. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track that will be drawn. + * + * inGhostRect: + * An HIRect describing the location of the ghost indicator to be + * drawn. Generally, this should be NULL and the control using + * this primitive should support live feeback. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTrack( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; {const} inGhostRect: HIRectPtr { can be NULL }; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTrack'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawTrackTickMarks() + * + * Summary: + * Draws the tick marks for a slider track. + * + * Discussion: + * This primitive only draws evenly distributed tick marks. + * Internally, it calls HIThemeDrawTickMark to do the actual tick + * mark drawing, and any custom (non-even distribution) drawing of + * tick marks should be done with HIThemeDrawTickMark. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track tick marks that + * will be drawn. + * + * inNumTicks: + * A value indicating the number of tick marks to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTrackTickMarks( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inNumTicks: ItemCount; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTrackTickMarks'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawTickMark() + * + * Summary: + * Draws a single tick mark. + * + * Discussion: + * This primitive draws a single tick mark and can be used to draw + * custom tick marks that are not easily drawn by + * HIThemeDrawTrackTickMarks, which only draws evenly distributed + * tick marks. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeTickMarkDrawInfo of the tick mark to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTickMark( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeTickMarkDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTickMark'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackThumbShape() + * + * Summary: + * Get the thumb shape of a themed track. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * outThumbShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the themed track's thumb. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackThumbShape( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outThumbShape: HIShapeRef ): OSStatus; external name '_HIThemeGetTrackThumbShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeHitTestTrack() + * + * Summary: + * Hit test the themed track. + * + * Discussion: + * Returns true if the track was hit and fills in outPartHit. + * Otherwise, returns false. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTabDrawInfo describing the tab that will be drawn. + * + * inMousePoint: + * An HIPoint which will be location basis for the test. + * + * outPartHit: + * A pointer to a ControlPartCode that will be filled with the + * part hit by the incoming point. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeHitTestTrack( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inMousePoint: HIPoint; var outPartHit: ControlPartCode ): Boolean; external name '_HIThemeHitTestTrack'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackBounds() + * + * Summary: + * Gets the track bounds of a themed track. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track that will be drawn. + * + * outBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the track bounds. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetTrackBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackPartBounds() + * + * Summary: + * Returns measurements for the bounds of the a track part, + * according to the specifics of that track as specified in the + * incoming draw info record. + * + * Discussion: + * HIThemeGetTrackPartBounds allows you to get the boundaries of + * individual pieces of a track's theme layout. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * inPartCode: + * A ControlPartCode describing which part to measure. A list of + * available ControlPartCodes can be retrieved using + * HIThemeGetTrackParts. + * + * outPartBounds: + * The bounds of the specified part relative to the start + * rectangle specified in inDrawInfo. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackPartBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inPartCode: ControlPartCode; var outPartBounds: HIRect ): OSStatus; external name '_HIThemeGetTrackPartBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackParts() + * + * Summary: + * Counts the number of parts that make up a track. Optionally + * returns an array of ControlPartCodes that describe each of the + * counted parts. + * + * Discussion: + * HIThemeGetTrackParts allows you to count the number of parts that + * make up a track. This is useful if you need to iterate through + * the parts of a track and get information about them, i.e. using + * HIThemeGetTrackPartBounds. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * outNumberOfParts: + * A pointer to a UInt32 in which to return the number of counted + * parts. + * + * inMaxParts: + * The maximum number of ControlPartCodes that can be copied into + * the supplied ioPartsBuffer. This value is ignored if + * ioPartsBuffer is NULL. + * + * ioPartsBuffer: + * An pointer to an array into which HIThemeGetTrackPartBounds + * will copy ControlPartCodes that describe each of the counted + * parts. This pointer can be NULL if you are just counting parts. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackParts( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outNumberOfParts: UInt32; inMaxParts: UInt32; ioPartsBuffer: ControlPartCodePtr { can be NULL } ): OSStatus; external name '_HIThemeGetTrackParts'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackDragRect() + * + * Summary: + * Get the rectangle of the drag area of a themed track. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * outDragRect: + * A pointer to an HIRect in which will be returned the rectangle + * of the drag area of the track. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackDragRect( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; var outDragRect: HIRect ): OSStatus; external name '_HIThemeGetTrackDragRect'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackThumbPositionFromOffset() + * + * Summary: + * Get the track's relative thumb position based on the offset. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * inThumbOffset: + * An HIPoint describing the position of the thumb as an offset + * from the track bounds. + * + * outRelativePosition: + * On output, the track-relative position calculated from the + * thumb offset. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackThumbPositionFromOffset( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inThumbOffset: HIPoint; var outRelativePosition: Float32 ): OSStatus; external name '_HIThemeGetTrackThumbPositionFromOffset'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackThumbPositionFromBounds() + * + * Summary: + * Get the themed track thumb position from its bounds. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * A pointer to an HIThemeTrackDrawInfo describing the track to be + * measured. + * + * inThumbBounds: + * The bounds of the thumb from which the postion is to be + * calculated. + * + * outRelativePosition: + * On output, the track-relative position calculated from the + * thumb location. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackThumbPositionFromBounds( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; const (*var*) inThumbBounds: HIRect; var outRelativePosition: Float32 ): OSStatus; external name '_HIThemeGetTrackThumbPositionFromBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetTrackLiveValue() + * + * Summary: + * Get the themed track live value. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inDrawInfo: + * An HIThemeTrackDrawInfo describing the track to be measured. + * + * inRelativePosition: + * An HIPoint describing the position of the thumb as an offset + * from the track bounds. + * + * outValue: + * On output, the track value as calculated from the relative + * postion of the thumb. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetTrackLiveValue( const (*var*) inDrawInfo: HIThemeTrackDrawInfo; inRelativePosition: Float32; var outValue: SInt32 ): OSStatus; external name '_HIThemeGetTrackLiveValue'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetScrollBarTrackRect() + * + * Summary: + * Gets the rectangle of the tracking area of a themed scroll bar. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect indicating the area in which the scroll bar will be + * drawn. + * + * inTrackInfo: + * An HIScrollBarTrackInfo for the scroll bar to be drawn. + * Currently, only the pressState and enableState fields are used. + * + * inIsHoriz: + * A Boolean where true means that the scroll bar is to be + * horizontal and false means that the scroll bar is to be + * vertical. + * + * outTrackBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the track area of the scroll bar. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetScrollBarTrackRect( const (*var*) inBounds: HIRect; const (*var*) inTrackInfo: HIScrollBarTrackInfo; inIsHoriz: Boolean; var outTrackBounds: HIRect ): OSStatus; external name '_HIThemeGetScrollBarTrackRect'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeHitTestScrollBarArrows() + * + * Summary: + * Hit test the theme scroll bar arrows to determine where the hit + * occurred. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inScrollBarBounds: + * An HIRect indicating the bounds of the scroll bar that will be + * hit tested. + * + * inTrackInfo: + * An HIScrollBarTrackInfo for the scroll bar to be drawn. + * Currently, only the version, pressState and enableState fields + * are used. + * + * inIsHoriz: + * A Boolean where true means that the scroll bar is to be + * horizontal and false means that the scroll bar is to be + * vertical. + * + * inPtHit: + * An HIPoint indicating where the control was hit and which will + * be used for hit testing. + * + * outTrackBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the track area of the scroll bar. Can be NULL. + * + * outPartCode: + * A pointer to a ControlPartCode in which the part code of the + * hit part will be returned. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +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'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawScrollBarDelimiters() + * + * Summary: + * Draw themed scroll bar delimiters. + * + * Discussion: + * Draws the grow lines delimiting the scroll bar areas. Does not + * draw the size box. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inContRect: + * An HIRect indicating the rectangle of the content area of the + * window to be drawn. + * + * inDrawInfo: + * The HIThemeScrollBarDelimitersDrawInfo of the delimiters to be + * drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawScrollBarDelimiters( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeScrollBarDelimitersDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawScrollBarDelimiters'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Windows } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawWindowFrame() + * + * Summary: + * Draws a themed window frame. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inContRect: + * An HIRect indicating the rectangle of the content area of the + * window to be drawn. + * + * inDrawInfo: + * The HIThemeWindowDrawInfo of the window frame to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * outTitleRect: + * A pointer to an HIRect into which to put the bounds of the + * title rect. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawWindowFrame( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation; outTitleRect: HIRectPtr { can be NULL } ): OSStatus; external name '_HIThemeDrawWindowFrame'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawTitleBarWidget() + * + * Summary: + * Draws the requested theme title bar widget. + * + * Discussion: + * HIThemeDrawTitleBarWidget renders the requested theme title bar + * widget in the proper location of a window. A common + * misconception when using this API is that the client must specify + * the exact location of the widget in the window. The widget will + * locate itself in the window based relative to the content rect + * passed in content rectangle -- the contRect parameter. Another + * common problem is to ignore the window's attributes. The + * attributes must be set up properly to describe the window for + * which the widget is to be drawn. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inContRect: + * A rectangle describing the window's content area. The widget + * is drawn relative to the content rectangle of the window, so + * this parameter does not describe the actual widget bounds, it + * describes the window's content rectangle. + * + * inDrawInfo: + * The HIThemeWindowWidgetDrawInfo of the window widget to be + * drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawTitleBarWidget( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowWidgetDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawTitleBarWidget'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawGrowBox() + * + * Summary: + * Draws a theme grow box. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inOrigin: + * The origin from which to draw the grow box. + * + * inDrawInfo: + * An HIThemeGrowBoxDrawInfo describing the grow box to be drawn + * or measured. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawGrowBox( const (*var*) inOrigin: HIPoint; const (*var*) inDrawInfo: HIThemeGrowBoxDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGrowBox'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetGrowBoxBounds() + * + * Summary: + * Gets the bounds for a grow box. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inOrigin: + * The origin from which to draw the grow box. + * + * inDrawInfo: + * An HIThemeGrowBoxDrawInfo describing the grow box to be drawn + * or measured. The state field is ignored. + * + * outBounds: + * A pointer to an HIRect in which will be returned the rectangle + * of the standalone grow box bounds. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetGrowBoxBounds( const (*var*) inOrigin: HIPoint; const (*var*) inDrawInfo: HIThemeGrowBoxDrawInfo; var outBounds: HIRect ): OSStatus; external name '_HIThemeGetGrowBoxBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetWindowShape() + * + * Summary: + * Obtains the specified window shape. + * + * Discussion: + * This API was mistakenly named as a "Get" API. It behaves as + * "Copy" API. THE CALLER IS RESPONSIBLE FOR RELEASING THE RETURNED + * SHAPE. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inContRect: + * An HIRect indicating the rectangle of the content area of the + * window to be drawn. + * + * inDrawInfo: + * The HIThemeWindowDrawInfo of the window frame to be measured. + * + * inWinRegion: + * A WindowRegionCode indicating the desired region for which to + * return the shape. + * + * outShape: + * A pointer to an HIShapeRef which will be set to the shape of + * the requested window region. Needs to be released by caller. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetWindowShape( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; inWinRegion: WindowRegionCode; var outShape: HIShapeRef ): OSStatus; external name '_HIThemeGetWindowShape'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeGetWindowRegionHit() + * + * Summary: + * Get the window region hit in a themed window. + * + * Discussion: + * Not that this call does not return a region, but a region code. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inContRect: + * An HIRect indicating the rectangle of the content area of the + * window to be drawn. + * + * inDrawInfo: + * The HIThemeWindowDrawInfo of the window frame to be measured. + * + * inPoint: + * An HIPoint against which the test will occur. + * + * outRegionHit: + * The output WindowRegionCode of hit window region. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeGetWindowRegionHit( const (*var*) inContRect: HIRect; const (*var*) inDrawInfo: HIThemeWindowDrawInfo; const (*var*) inPoint: HIPoint; var outRegionHit: WindowRegionCode ): Boolean; external name '_HIThemeGetWindowRegionHit'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ -------------------------------------------------------------------------- } +{ Miscellaneous } +{ -------------------------------------------------------------------------- } +{ + * HIThemeDrawFrame() + * + * Summary: + * Draws a variety of frames frame. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemeFrameDrawInfo describing the frame to be drawn or + * measured. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawFrame( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeFrameDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawFrame'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawGroupBox() + * + * Summary: + * Draws a themed primary group box. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemeGroupBoxDrawInfo describing the group box to be drawn + * or measured. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawGroupBox( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeGroupBoxDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGroupBox'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawGenericWell() + * + * Summary: + * Draws a themed generic well. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * An HIThemeButtonDrawInfo that describes attributes of the well + * to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawGenericWell( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeButtonDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGenericWell'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawPaneSplitter() + * + * Summary: + * Draws a themed pane splitter. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeSplitterDrawInfo of the pane splitter to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawPaneSplitter( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeSplitterDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPaneSplitter'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawGrabber() + * + * Summary: + * Draws a themed grabber. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeGrabberDrawInfo of the grabber to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawGrabber( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeGrabberDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawGrabber'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawPlacard() + * + * Summary: + * Draws a themed placard. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemePlacardDrawInfo of the placard to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawPlacard( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemePlacardDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawPlacard'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawHeader() + * + * Summary: + * Draws a themed window header in the specified rectangle. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeHeaderDrawInfo of the window frame to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawHeader( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeHeaderDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawHeader'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawFocusRect() + * + * Summary: + * Draws a themed focus rectangle in the specified rectangle. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inHasFocus: + * Pass in true to draw focus. Passing false effectively makes + * this API a no-op. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawFocusRect( const (*var*) inRect: HIRect; inHasFocus: Boolean; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawFocusRect'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawSeparator() + * + * Summary: + * Draw a themed separator element. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inRect: + * The HIRect in which to draw. + * + * inDrawInfo: + * The HIThemeSeparatorDrawInfo of the window frame to be drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawSeparator( const (*var*) inRect: HIRect; const (*var*) inDrawInfo: HIThemeSeparatorDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawSeparator'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeSetFill() + * + * Summary: + * Set the context fill color to that specified by the requested + * brush. + * + * Discussion: + * Note that this call does not actually draw anything. It sets the + * passed context's fill color to that of the specified theme brush. + * Subsequent fills in the context will be with the color specified + * by the theme brush. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBrush: + * The ThemeBrush describing the requested fill color. + * + * inInfo: + * Not used. Should always be NULL. + * + * inContext: + * The CG context for which the fill color is to be set. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.4 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later + * Non-Carbon CFM: not available + } +function HIThemeSetFill( inBrush: ThemeBrush; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetFill'; +(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *) + + +{ + * HIThemeSetStroke() + * + * Summary: + * Set the context stroke color to that specified by the requested + * brush. + * + * Discussion: + * Note that this call does not actually draw anything. It sets the + * passed context's stroke color to that of the specified theme + * brush. Subsequent strokes in the context will be with the color + * specified by the theme brush. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBrush: + * The ThemeBrush describing the requested stroke color. + * + * inInfo: + * Not used. Should always be NULL. + * + * inContext: + * The CG context for which the stroke color is to be set. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.4 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later + * Non-Carbon CFM: not available + } +function HIThemeSetStroke( inBrush: ThemeBrush; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetStroke'; +(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *) + + +{ + * HIThemeSetTextFill() + * + * Summary: + * Set the context text fill color to that specified by the + * requested brush. + * + * Discussion: + * Note that this call does not actually draw anything. It sets the + * passed context's text fill color to that of the specified + * ThemeTextColor. Subsequent text drawing in the context will be + * with the color specified by the ThemeTextColor. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inColor: + * A ThemeTextColor describing the requested text fill color. + * + * inInfo: + * Not used. Should always be NULL. + * + * inContext: + * The CG context for which the fill color is to be set. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.4 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later + * Non-Carbon CFM: not available + } +function HIThemeSetTextFill( inColor: ThemeTextColor; inInfo: UnivPtr; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeSetTextFill'; +(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *) + + +{ + * HIThemeApplyBackground() + * + * Summary: + * Apply a themed background for a rectangle. + * + * Discussion: + * Note that this call does not actually draw anything. It sets the + * passed context's fill color to the requested theme background. + * Subsequent fills in the context will fill with the theme + * background. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect enclosing the whole background. This rectangle is + * used to calculate the pattern phase (if there is one) of the + * background as it is set up in the context. + * + * inDrawInfo: + * An HIThemeBackgroundDrawInfo describing the background. + * + * inContext: + * The CG context for which the background is to be set. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeApplyBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeBackgroundDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeApplyBackground'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeDrawBackground() + * + * Summary: + * Draw a themed background for a rectangle. + * + * Discussion: + * Currently, this call only works with kThemeBackgroundMetal. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBounds: + * An HIRect indicating the bounds to fill with the background. + * For backgrounds that need pattern continuity, such as + * kThemeBackgroundMetal, this rectangle is the full bounds of the + * rectangle for which the filling is to occur. If drawing a + * sub-rectangle of that background, set the clip and draw the + * full rectangle. This routine has been optimized to not perform + * calculations on the non-clip part of the drawing bounds. + * + * inDrawInfo: + * An HIThemeBackgroundDrawInfo describing the background to be + * drawn. + * + * inContext: + * The CG context in which the drawing is to be done. + * + * inOrientation: + * An HIThemeOrientation that describes the orientation of the + * passed in context. + * + * Availability: + * Mac OS X: in version 10.3 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.3 and later + * Non-Carbon CFM: not available + } +function HIThemeDrawBackground( const (*var*) inBounds: HIRect; const (*var*) inDrawInfo: HIThemeBackgroundDrawInfo; inContext: CGContextRef; inOrientation: HIThemeOrientation ): OSStatus; external name '_HIThemeDrawBackground'; +(* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *) + + +{ + * HIThemeBrushCreateCGColor() + * + * Summary: + * Create a CGColor for a ThemeBrush. + * + * Discussion: + * Color is an ambiguous term. The color may be a pattern. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inBrush: + * The ThemeBrush describing the requested color. + * + * outColor: + * A pointer to a CGColorRef that will be set to the newly created + * CGColor. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.4 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later + * Non-Carbon CFM: not available + } +function HIThemeBrushCreateCGColor( inBrush: ThemeBrush; var outColor: CGColorRef ): OSStatus; external name '_HIThemeBrushCreateCGColor'; +(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *) + + + + +end. |