hl2_src-leak-2017/src/common/quicktime_win32/Appearance.h

3835 lines
144 KiB
C

/*
File: Appearance.h
Contains: Appearance Manager Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1994-2001 by Apple Computer, Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __APPEARANCE__
#define __APPEARANCE__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __MACERRORS__
#include <MacErrors.h>
#endif
#ifndef __TEXTUTILS__
#include <TextUtils.h>
#endif
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
#ifndef __QDOFFSCREEN__
#include <QDOffscreen.h>
#endif
#ifndef __TEXTEDIT__
#include <TextEdit.h>
#endif
#ifndef __MACWINDOWS__
#include <MacWindows.h>
#endif
#ifndef __CONTROLS__
#include <Controls.h>
#endif
/*----------------------------------------------------------------------------------*/
/* Appearance Manager constants, etc. */
/*----------------------------------------------------------------------------------*/
/* Appearance Manager Apple Events (1.1 and later) */
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
enum {
kAppearanceEventClass = FOUR_CHAR_CODE('appr'), /* Event Class */
kAEAppearanceChanged = FOUR_CHAR_CODE('thme'), /* Appearance changed (e.g. platinum to hi-tech) */
kAESystemFontChanged = FOUR_CHAR_CODE('sysf'), /* system font changed */
kAESmallSystemFontChanged = FOUR_CHAR_CODE('ssfn'), /* small system font changed */
kAEViewsFontChanged = FOUR_CHAR_CODE('vfnt') /* views font changed */
};
/*----------------------------------------------------------------------------------*/
/* Appearance Manager file types */
/*----------------------------------------------------------------------------------*/
enum {
kThemeDataFileType = FOUR_CHAR_CODE('thme'), /* file type for theme files */
kThemePlatinumFileType = FOUR_CHAR_CODE('pltn'), /* file type for platinum appearance */
kThemeCustomThemesFileType = FOUR_CHAR_CODE('scen'), /* file type for user themes */
kThemeSoundTrackFileType = FOUR_CHAR_CODE('tsnd')
};
/*----------------------------------------------------------------------------------*/
/* Appearance Manager Supported Themes */
/* Use CopyThemeIdentifier to get the current theme ID */
/*----------------------------------------------------------------------------------*/
#define kThemeAppearancePlatinum CFSTR( "com.apple.theme.appearance.platinum" )
#define kThemeAppearanceAqua CFSTR( "com.apple.theme.appearance.aqua" )
#define kThemeAppearanceAquaBlue CFSTR( "com.apple.theme.appearance.aqua.blue" )
#define kThemeAppearanceAquaGraphite CFSTR( "com.apple.theme.appearance.aqua.graphite" )
enum {
kThemeBrushDialogBackgroundActive = 1, /* use with kModalWindowClass */
kThemeBrushDialogBackgroundInactive = 2, /* use with kModalWindowClass */
kThemeBrushAlertBackgroundActive = 3, /* use with kAlertWindowClass and kMovableAlertWindowClass */
kThemeBrushAlertBackgroundInactive = 4, /* use with kAlertWindowClass and kMovableAlertWindowClass */
kThemeBrushModelessDialogBackgroundActive = 5, /* use with kDocumentWindowClass */
kThemeBrushModelessDialogBackgroundInactive = 6, /* use with kDocumentWindowClass */
kThemeBrushUtilityWindowBackgroundActive = 7, /* use with kFloatingWindowClass and kUtilityWindowClass */
kThemeBrushUtilityWindowBackgroundInactive = 8, /* use with kFloatingWindowClass and kUtilityWindowClass */
kThemeBrushListViewSortColumnBackground = 9, /* Finder list views */
kThemeBrushListViewBackground = 10,
kThemeBrushIconLabelBackground = 11,
kThemeBrushListViewSeparator = 12,
kThemeBrushChasingArrows = 13,
kThemeBrushDragHilite = 14,
kThemeBrushDocumentWindowBackground = 15, /* use with kDocumentWindowClass */
kThemeBrushFinderWindowBackground = 16
};
/* Brushes introduced in Appearance 1.1 (Mac OS 8.5) and later */
enum {
kThemeBrushScrollBarDelimiterActive = 17,
kThemeBrushScrollBarDelimiterInactive = 18,
kThemeBrushFocusHighlight = 19,
kThemeBrushPopupArrowActive = 20,
kThemeBrushPopupArrowPressed = 21,
kThemeBrushPopupArrowInactive = 22,
kThemeBrushAppleGuideCoachmark = 23,
kThemeBrushIconLabelBackgroundSelected = 24,
kThemeBrushStaticAreaFill = 25,
kThemeBrushActiveAreaFill = 26,
kThemeBrushButtonFrameActive = 27,
kThemeBrushButtonFrameInactive = 28,
kThemeBrushButtonFaceActive = 29,
kThemeBrushButtonFaceInactive = 30,
kThemeBrushButtonFacePressed = 31,
kThemeBrushButtonActiveDarkShadow = 32,
kThemeBrushButtonActiveDarkHighlight = 33,
kThemeBrushButtonActiveLightShadow = 34,
kThemeBrushButtonActiveLightHighlight = 35,
kThemeBrushButtonInactiveDarkShadow = 36,
kThemeBrushButtonInactiveDarkHighlight = 37,
kThemeBrushButtonInactiveLightShadow = 38,
kThemeBrushButtonInactiveLightHighlight = 39,
kThemeBrushButtonPressedDarkShadow = 40,
kThemeBrushButtonPressedDarkHighlight = 41,
kThemeBrushButtonPressedLightShadow = 42,
kThemeBrushButtonPressedLightHighlight = 43,
kThemeBrushBevelActiveLight = 44,
kThemeBrushBevelActiveDark = 45,
kThemeBrushBevelInactiveLight = 46,
kThemeBrushBevelInactiveDark = 47
};
/* Brushes introduced in Appearance 1.1.1 (Mac OS 9.0) and later */
enum {
kThemeBrushNotificationWindowBackground = 48
};
/* Brushes introduced in Carbon */
enum {
kThemeBrushMovableModalBackground = 49, /* use with kMovableModalWindowClass; available in Mac OS X, and CarbonLib 1.3 and later */
kThemeBrushSheetBackgroundOpaque = 50, /* use with kSheetWindowClass and kSheetAlertWindowClass; available in Mac OS X, and CarbonLib 1.3 and later */
kThemeBrushDrawerBackground = 51, /* use with kDrawerWindowClass; available in Mac OS X, and CarbonLib 1.3 and later */
kThemeBrushToolbarBackground = 52, /* use with kToolbarWindowClass; available in Mac OS X, and CarbonLib 1.6 and later */
kThemeBrushSheetBackgroundTransparent = 53, /* use with kSheetWindowClass and kSheetAlertWindowClass; available in Mac OS X 10.1 and CarbonLib 1.6, and later */
kThemeBrushMenuBackground = 54, /* available in Mac OS X 10.1 and CarbonLib 1.6, and later */
kThemeBrushMenuBackgroundSelected = 55 /* available in Mac OS X 10.1 and CarbonLib 1.6, and later */
};
/* Appearance X or later theme brush compatibility synonyms */
enum {
kThemeBrushSheetBackground = kThemeBrushSheetBackgroundOpaque
};
/* These values are meta-brushes, specific colors that do not */
/* change from theme to theme. You can use them instead of using */
/* direct RGB values. */
enum {
kThemeBrushBlack = -1,
kThemeBrushWhite = -2,
kThemeBrushPrimaryHighlightColor = -3, /* available in Mac OS 10.1 and CarbonLib 1.6, and later*/
kThemeBrushSecondaryHighlightColor = -4 /* available in Mac OS 10.1 and CarbonLib 1.6, and later*/
};
typedef SInt16 ThemeBrush;
enum {
kThemeTextColorDialogActive = 1,
kThemeTextColorDialogInactive = 2,
kThemeTextColorAlertActive = 3,
kThemeTextColorAlertInactive = 4,
kThemeTextColorModelessDialogActive = 5,
kThemeTextColorModelessDialogInactive = 6,
kThemeTextColorWindowHeaderActive = 7,
kThemeTextColorWindowHeaderInactive = 8,
kThemeTextColorPlacardActive = 9,
kThemeTextColorPlacardInactive = 10,
kThemeTextColorPlacardPressed = 11,
kThemeTextColorPushButtonActive = 12,
kThemeTextColorPushButtonInactive = 13,
kThemeTextColorPushButtonPressed = 14,
kThemeTextColorBevelButtonActive = 15,
kThemeTextColorBevelButtonInactive = 16,
kThemeTextColorBevelButtonPressed = 17,
kThemeTextColorPopupButtonActive = 18,
kThemeTextColorPopupButtonInactive = 19,
kThemeTextColorPopupButtonPressed = 20,
kThemeTextColorIconLabel = 21,
kThemeTextColorListView = 22
};
/* Text Colors available in Appearance 1.0.1 or later */
enum {
kThemeTextColorDocumentWindowTitleActive = 23,
kThemeTextColorDocumentWindowTitleInactive = 24,
kThemeTextColorMovableModalWindowTitleActive = 25,
kThemeTextColorMovableModalWindowTitleInactive = 26,
kThemeTextColorUtilityWindowTitleActive = 27,
kThemeTextColorUtilityWindowTitleInactive = 28,
kThemeTextColorPopupWindowTitleActive = 29,
kThemeTextColorPopupWindowTitleInactive = 30,
kThemeTextColorRootMenuActive = 31,
kThemeTextColorRootMenuSelected = 32,
kThemeTextColorRootMenuDisabled = 33,
kThemeTextColorMenuItemActive = 34,
kThemeTextColorMenuItemSelected = 35,
kThemeTextColorMenuItemDisabled = 36,
kThemeTextColorPopupLabelActive = 37,
kThemeTextColorPopupLabelInactive = 38
};
/* Text colors available in Appearance 1.1 or later */
enum {
kThemeTextColorTabFrontActive = 39,
kThemeTextColorTabNonFrontActive = 40,
kThemeTextColorTabNonFrontPressed = 41,
kThemeTextColorTabFrontInactive = 42,
kThemeTextColorTabNonFrontInactive = 43,
kThemeTextColorIconLabelSelected = 44,
kThemeTextColorBevelButtonStickyActive = 45,
kThemeTextColorBevelButtonStickyInactive = 46
};
/* Text colors available in Appearance 1.1.1 or later */
enum {
kThemeTextColorNotification = 47
};
/* Text colors only available later than OS X 10.1.3 */
enum {
kThemeTextColorSystemDetail = 48
};
/* These values are specific colors that do not change from */
/* theme to theme. You can use them instead of using direct RGB values. */
enum {
kThemeTextColorBlack = -1,
kThemeTextColorWhite = -2
};
typedef SInt16 ThemeTextColor;
/* States to draw primitives: disabled, active, and pressed (hilited) */
enum {
kThemeStateInactive = 0,
kThemeStateActive = 1,
kThemeStatePressed = 2,
kThemeStateRollover = 6,
kThemeStateUnavailable = 7,
kThemeStateUnavailableInactive = 8
};
/* obsolete name */
enum {
kThemeStateDisabled = 0
};
enum {
kThemeStatePressedUp = 2, /* draw with up pressed (increment/decrement buttons) */
kThemeStatePressedDown = 3 /* draw with down pressed (increment/decrement buttons) */
};
typedef UInt32 ThemeDrawState;
/*----------------------------------------------------------------------------------*/
/* Theme cursor selectors available in Appearance 1.1 or later */
/*----------------------------------------------------------------------------------*/
enum {
kThemeArrowCursor = 0,
kThemeCopyArrowCursor = 1,
kThemeAliasArrowCursor = 2,
kThemeContextualMenuArrowCursor = 3,
kThemeIBeamCursor = 4,
kThemeCrossCursor = 5,
kThemePlusCursor = 6,
kThemeWatchCursor = 7, /* Can Animate */
kThemeClosedHandCursor = 8,
kThemeOpenHandCursor = 9,
kThemePointingHandCursor = 10,
kThemeCountingUpHandCursor = 11, /* Can Animate */
kThemeCountingDownHandCursor = 12, /* Can Animate */
kThemeCountingUpAndDownHandCursor = 13, /* Can Animate */
kThemeSpinningCursor = 14, /* Can Animate */
kThemeResizeLeftCursor = 15,
kThemeResizeRightCursor = 16,
kThemeResizeLeftRightCursor = 17,
kThemeNotAllowedCursor = 18 /* Jaguar or Later */
};
typedef UInt32 ThemeCursor;
/*----------------------------------------------------------------------------------*/
/* Theme menu bar drawing states */
/*----------------------------------------------------------------------------------*/
enum {
kThemeMenuBarNormal = 0,
kThemeMenuBarSelected = 1
};
typedef UInt16 ThemeMenuBarState;
/* attributes */
enum {
kThemeMenuSquareMenuBar = (1 << 0)
};
/*----------------------------------------------------------------------------------*/
/* Theme menu drawing states */
/*----------------------------------------------------------------------------------*/
enum {
kThemeMenuActive = 0,
kThemeMenuSelected = 1,
kThemeMenuDisabled = 3
};
typedef UInt16 ThemeMenuState;
/*------------------------------------------------------------------------------------------*/
/* MenuType: add kThemeMenuTypeInactive to menu type for DrawThemeMenuBackground if entire */
/* menu is inactive */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeMenuTypePullDown = 0,
kThemeMenuTypePopUp = 1,
kThemeMenuTypeHierarchical = 2,
kThemeMenuTypeInactive = 0x0100
};
typedef UInt16 ThemeMenuType;
enum {
kThemeMenuItemPlain = 0,
kThemeMenuItemHierarchical = 1, /* item has hierarchical arrow*/
kThemeMenuItemScrollUpArrow = 2, /* for scrollable menus, indicates item is scroller*/
kThemeMenuItemScrollDownArrow = 3,
kThemeMenuItemAtTop = 0x0100, /* indicates item is being drawn at top of menu*/
kThemeMenuItemAtBottom = 0x0200, /* indicates item is being drawn at bottom of menu*/
kThemeMenuItemHierBackground = 0x0400, /* item is within a hierarchical menu*/
kThemeMenuItemPopUpBackground = 0x0800, /* item is within a popped up menu*/
kThemeMenuItemHasIcon = 0x8000, /* add into non-arrow type when icon present*/
kThemeMenuItemNoBackground = 0x4000 /* don't draw the menu background while drawing this item (Mac OS X only)*/
};
typedef UInt16 ThemeMenuItemType;
/*------------------------------------------------------------------------------------------*/
/* Theme Backgrounds */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeBackgroundTabPane = 1,
kThemeBackgroundPlacard = 2,
kThemeBackgroundWindowHeader = 3,
kThemeBackgroundListViewWindowHeader = 4,
kThemeBackgroundSecondaryGroupBox = 5
};
typedef UInt32 ThemeBackgroundKind;
/*------------------------------------------------------------------------------------------*/
/* Theme Collection tags for Get/SetTheme */
/* */
/* X ALERT: Please note that Get/SetTheme are severely neutered under Mac OS X at present. */
/* The first group of tags below are available to get under both 9 and X. The */
/* second group is 9 only. None of the tags can be used in SetTheme on X, as it */
/* is completely inert on X, and will return unimpErr. */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeNameTag = FOUR_CHAR_CODE('name'), /* Str255*/
kThemeVariantNameTag = FOUR_CHAR_CODE('varn'), /* Str255*/
kThemeVariantBaseTintTag = FOUR_CHAR_CODE('tint'), /* RGBColor (10.1 and later)*/
kThemeHighlightColorTag = FOUR_CHAR_CODE('hcol'), /* RGBColor*/
kThemeScrollBarArrowStyleTag = FOUR_CHAR_CODE('sbar'), /* ThemeScrollBarArrowStyle*/
kThemeScrollBarThumbStyleTag = FOUR_CHAR_CODE('sbth'), /* ThemeScrollBarThumbStyle*/
kThemeSoundsEnabledTag = FOUR_CHAR_CODE('snds'), /* Boolean*/
kThemeDblClickCollapseTag = FOUR_CHAR_CODE('coll') /* Boolean*/
};
enum {
kThemeAppearanceFileNameTag = FOUR_CHAR_CODE('thme'), /* Str255*/
kThemeSystemFontTag = FOUR_CHAR_CODE('lgsf'), /* Str255*/
kThemeSmallSystemFontTag = FOUR_CHAR_CODE('smsf'), /* Str255*/
kThemeViewsFontTag = FOUR_CHAR_CODE('vfnt'), /* Str255*/
kThemeViewsFontSizeTag = FOUR_CHAR_CODE('vfsz'), /* SInt16*/
kThemeDesktopPatternNameTag = FOUR_CHAR_CODE('patn'), /* Str255*/
kThemeDesktopPatternTag = FOUR_CHAR_CODE('patt'), /* <variable-length data> (flattened pattern)*/
kThemeDesktopPictureNameTag = FOUR_CHAR_CODE('dpnm'), /* Str255*/
kThemeDesktopPictureAliasTag = FOUR_CHAR_CODE('dpal'), /* <alias handle>*/
kThemeDesktopPictureAlignmentTag = FOUR_CHAR_CODE('dpan'), /* UInt32 (see the Picture Alignments below)*/
kThemeHighlightColorNameTag = FOUR_CHAR_CODE('hcnm'), /* Str255*/
kThemeExamplePictureIDTag = FOUR_CHAR_CODE('epic'), /* SInt16*/
kThemeSoundTrackNameTag = FOUR_CHAR_CODE('sndt'), /* Str255*/
kThemeSoundMaskTag = FOUR_CHAR_CODE('smsk'), /* UInt32*/
kThemeUserDefinedTag = FOUR_CHAR_CODE('user'), /* Boolean (this should _always_ be true if present - used by Control Panel).*/
kThemeSmoothFontEnabledTag = FOUR_CHAR_CODE('smoo'), /* Boolean*/
kThemeSmoothFontMinSizeTag = FOUR_CHAR_CODE('smos') /* UInt16 (must be >= 12 and <= 24)*/
};
/* Picture Aligmnents that might be reported in the data for kThemeDesktopPictureAlignmentTag*/
enum {
kTiledOnScreen = 1, /* draws picture repeatedly*/
kCenterOnScreen = 2, /* "actual size", shows pattern on sides or clips picture if necessary*/
kFitToScreen = 3, /* shrinks if necessary*/
kFillScreen = 4, /* messes up aspect ratio if necessary*/
kUseBestGuess = 5 /* heuristically determines the best way to display the picture based on picture and monitor sizes*/
};
/*------------------------------------------------------------------------------------------*/
/* Theme Control Settings */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeCheckBoxClassicX = 0, /* check box with an 'X'*/
kThemeCheckBoxCheckMark = 1 /* check box with a real check mark*/
};
typedef UInt16 ThemeCheckBoxStyle;
enum {
kThemeScrollBarArrowsSingle = 0, /* single arrow on each end*/
kThemeScrollBarArrowsLowerRight = 1 /* double arrows only on right or bottom*/
};
typedef UInt16 ThemeScrollBarArrowStyle;
enum {
kThemeScrollBarThumbNormal = 0, /* normal, classic thumb size*/
kThemeScrollBarThumbProportional = 1 /* proportional thumbs*/
};
typedef UInt16 ThemeScrollBarThumbStyle;
/*------------------------------------------------------------------------------------------*/
/* Font constants */
/*------------------------------------------------------------------------------------------*/
/*
* Summary:
* A ThemeFontID value is a virtual font ID which can be passed to
* one of the Appearance Manager's text-related routines. Within
* those routines, the ThemeFontID is mapped into the appropriate
* real font (or fonts), size, and style based on the system
* appearance (Platinum on Mac OS 9, Aqua on Mac OS X), the string
* to be rendered (if any), the language/ script that the app is
* running in, and possibly other factors. The ThemeFontIDs allow
* you to get the correct text appearance for the platform your app
* is currently running on.
*/
enum {
/*
* The font used to draw most interface elements. If you can't find a
* more appropriate font from the list below, you should use this
* one. This font is suitable for drawing titles on most custom
* widgets/buttons, as well as most static text in dialogs and
* windows.
*/
kThemeSystemFont = 0,
/*
* The font used to draw interface elements when space is at a
* premium. It draws a slightly smaller font compared to
* kThemeSystemFont.
*/
kThemeSmallSystemFont = 1,
/*
* Identical to kThemeSmallSystemFont, except it draws bolded (or
* otherwise emphasized in some fashion appropriate to your
* application's language/script).
*/
kThemeSmallEmphasizedSystemFont = 2,
/*
* The font used to draw file and folder names in Finder windows or
* other browsable lists.
*/
kThemeViewsFont = 3, /* The following ID's are only available with MacOS X or CarbonLib 1.3 and later*/
/*
* Identical to kThemeSystemFont, except it draws bolded (or
* otherwise emphasized in some fashion appropriate to your
* application's language/script). Only available on Mac OS X or
* CarbonLib 1.3 or later.
*/
kThemeEmphasizedSystemFont = 4,
/*
* An analog to the Script Manager's notion of the Application Font.
* This font is a suitable default choice for your application's
* document-style text editing areas. Only available on Mac OS X or
* CarbonLib 1.3 or later.
*/
kThemeApplicationFont = 5,
/*
* Generally smaller than kThemeSmallSystemFont, this font is
* appropriate for drawing text labels next to image content that
* reinforces the text's meaning (such as on a bevel button). Only
* available on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeLabelFont = 6,
/*
* The font used to draw menu titles in the menu bar. Only available
* on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeMenuTitleFont = 100,
/*
* The font used to draw menu items in the menus. Only available on
* Mac OS X or CarbonLib 1.3 or later.
*/
kThemeMenuItemFont = 101,
/*
* The font used to draw menu item marks in the menus. Only available
* on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeMenuItemMarkFont = 102,
/*
* The font used to draw menu item command key equivalents in the
* menus. Only available on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeMenuItemCmdKeyFont = 103,
/*
* The font used to draw text in most window title bars. Only
* available on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeWindowTitleFont = 104,
/*
* The font used to draw text labels on push buttons. Only available
* on Mac OS X or CarbonLib 1.3 or later.
*/
kThemePushButtonFont = 105,
/*
* The font used to draw text in utility window title bars. Only
* available on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeUtilityWindowTitleFont = 106,
/*
* The font used to draw the first (and most important) message of an
* alert window. Only available on Mac OS X or CarbonLib 1.3 or later.
*/
kThemeAlertHeaderFont = 107,
kThemeSystemFontDetail = 7,
kThemeSystemFontDetailEmphasized = 8,
/*
* Unlike the other ThemeFontIDs, this one doesn't map to a font
* appropriate to your application's language or script. It maps
* directly to the font, size, and style of the current Quickdraw
* port. This allows you to get somewhat customized behavior out of
* the APIs which take ThemeFontIDs. Note, however, that
* kThemeCurrentPortFont does not (and will never) support all
* Quickdraw styles on all platforms; in particular, outline and
* shadow style are not supported on Mac OS X. Additionally,
* kThemeCurrentPortFont is not (and will never be) completely
* unicode savvy; use of kThemeCurrentPortFont may result in errors
* having to do with the current port's font not being appropriate
* for rendering or measuring all glyphs in a given unicode string.
* Because of overhead associated with gathering Quickdraw font
* information and converting it to the native font format on Mac OS
* X, use of kThemeCurrentPortFont may slow down your text drawing
* and measuring significantly compared to other ThemeFontIDs.
* Instead of using kThemeCurrentPortFont, your application will
* probably be better served by using one of the other ThemeFontIDs;
* use kThemeCurrentPortFont only as a last resort. Only available on
* Mac OS X or CarbonLib 1.3 or later.
*/
kThemeCurrentPortFont = 200, /* Available in JAGUAR or later*/
/*
* The font used to draw the label of a toolbar item. Available in
* Mac OS X 10.2 or later.
*/
kThemeToolbarFont = 108
};
/* This is the total of the PUBLIC ThemeFontIDs!*/
enum {
kPublicThemeFontCount = 17
};
typedef UInt16 ThemeFontID;
/*------------------------------------------------------------------------------------------*/
/* Tab constants */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeTabNonFront = 0,
kThemeTabNonFrontPressed = 1,
kThemeTabNonFrontInactive = 2,
kThemeTabFront = 3,
kThemeTabFrontInactive = 4,
kThemeTabNonFrontUnavailable = 5,
kThemeTabFrontUnavailable = 6
};
typedef UInt16 ThemeTabStyle;
enum {
kThemeTabNorth = 0,
kThemeTabSouth = 1,
kThemeTabEast = 2,
kThemeTabWest = 3
};
typedef UInt16 ThemeTabDirection;
/* NOTE ON TAB HEIGHT */
/* Use the kThemeSmallTabHeightMax and kThemeLargeTabHeightMax when calculating the rects */
/* to draw tabs into. This height includes the tab frame overlap. Tabs that are not in the */
/* front are only drawn down to where they meet the frame, as if the height was just */
/* kThemeLargeTabHeight, for example, as opposed to the ...Max constant. Remember that for */
/* East and West tabs, the height referred to below is actually the width. */
enum {
kThemeSmallTabHeight = 16, /* amount small tabs protrude from frame.*/
kThemeLargeTabHeight = 21, /* amount large tabs protrude from frame.*/
kThemeTabPaneOverlap = 3, /* amount tabs overlap frame.*/
kThemeSmallTabHeightMax = 19, /* small tab height + overlap*/
kThemeLargeTabHeightMax = 24 /* large tab height + overlap*/
};
/*------------------------------------------------------------------------------------------*/
/* Track kinds */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeMediumScrollBar = 0,
kThemeSmallScrollBar = 1,
kThemeMediumSlider = 2,
kThemeMediumProgressBar = 3,
kThemeMediumIndeterminateBar = 4,
kThemeRelevanceBar = 5,
kThemeSmallSlider = 6,
kThemeLargeProgressBar = 7,
kThemeLargeIndeterminateBar = 8
};
typedef UInt16 ThemeTrackKind;
/*------------------------------------------------------------------------------------------*/
/* Track enable states */
/*------------------------------------------------------------------------------------------*/
enum {
/* track states */
kThemeTrackActive = 0,
kThemeTrackDisabled = 1,
kThemeTrackNothingToScroll = 2,
kThemeTrackInactive = 3
};
typedef UInt8 ThemeTrackEnableState;
/*------------------------------------------------------------------------------------------*/
/* Track pressed states */
/*------------------------------------------------------------------------------------------*/
enum {
/* press states (ignored unless track is active) */
kThemeLeftOutsideArrowPressed = 0x01,
kThemeLeftInsideArrowPressed = 0x02,
kThemeLeftTrackPressed = 0x04,
kThemeThumbPressed = 0x08,
kThemeRightTrackPressed = 0x10,
kThemeRightInsideArrowPressed = 0x20,
kThemeRightOutsideArrowPressed = 0x40,
kThemeTopOutsideArrowPressed = kThemeLeftOutsideArrowPressed,
kThemeTopInsideArrowPressed = kThemeLeftInsideArrowPressed,
kThemeTopTrackPressed = kThemeLeftTrackPressed,
kThemeBottomTrackPressed = kThemeRightTrackPressed,
kThemeBottomInsideArrowPressed = kThemeRightInsideArrowPressed,
kThemeBottomOutsideArrowPressed = kThemeRightOutsideArrowPressed
};
typedef UInt8 ThemeTrackPressState;
/*------------------------------------------------------------------------------------------*/
/* Thumb directions */
/*------------------------------------------------------------------------------------------*/
enum {
/* thumb direction */
kThemeThumbPlain = 0,
kThemeThumbUpward = 1,
kThemeThumbDownward = 2
};
typedef UInt8 ThemeThumbDirection;
/*------------------------------------------------------------------------------------------*/
/* Track attributes */
/*------------------------------------------------------------------------------------------*/
/*
* Discussion:
* Theme track attributes control the look of the track elements as
* drawn by the DrawThemeTrackFoo as well as the region returned by
* GetThemeTrackFoo.
*/
enum {
/*
* The track is drawn horizontally.
*/
kThemeTrackHorizontal = (1 << 0),
/*
* The track progresses from right to left.
*/
kThemeTrackRightToLeft = (1 << 1),
/*
* The track's thumb should be drawn.
*/
kThemeTrackShowThumb = (1 << 2),
/*
* The provided thumbRgn should be drawn opaque, not as a ghost.
*/
kThemeTrackThumbRgnIsNotGhost = (1 << 3),
/*
* The track scroll bar doesn't have arrows. This attribute
* currently has no effect
*/
kThemeTrackNoScrollBarArrows = (1 << 4),
/*
* The thumb has focus. This attribute currently has effect only on
* sliders. Available only in Mac OS X after 10.1.
*/
kThemeTrackHasFocus = (1 << 5)
};
typedef UInt16 ThemeTrackAttributes;
/*------------------------------------------------------------------------------------------*/
/* Track info block */
/*------------------------------------------------------------------------------------------*/
struct ScrollBarTrackInfo {
SInt32 viewsize; /* current view range size */
ThemeTrackPressState pressState; /* pressed parts state */
};
typedef struct ScrollBarTrackInfo ScrollBarTrackInfo;
struct SliderTrackInfo {
ThemeThumbDirection thumbDir; /* thumb direction */
ThemeTrackPressState pressState; /* pressed parts state */
};
typedef struct SliderTrackInfo SliderTrackInfo;
struct ProgressTrackInfo {
UInt8 phase; /* phase for indeterminate progress */
};
typedef struct ProgressTrackInfo ProgressTrackInfo;
struct ThemeTrackDrawInfo {
ThemeTrackKind kind; /* what kind of track this info is for */
Rect bounds; /* track basis rectangle */
SInt32 min; /* min track value */
SInt32 max; /* max track value */
SInt32 value; /* current thumb value */
UInt32 reserved;
ThemeTrackAttributes attributes; /* various track attributes */
ThemeTrackEnableState enableState; /* enable state */
UInt8 filler1;
union {
ScrollBarTrackInfo scrollbar;
SliderTrackInfo slider;
ProgressTrackInfo progress;
} trackInfo;
};
typedef struct ThemeTrackDrawInfo ThemeTrackDrawInfo;
/*------------------------------------------------------------------------------------------*/
/* ThemeWindowAttributes */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeWindowHasGrow = (1 << 0), /* can the size of the window be changed by the user? */
kThemeWindowHasHorizontalZoom = (1 << 3), /* window can zoom only horizontally */
kThemeWindowHasVerticalZoom = (1 << 4), /* window can zoom only vertically */
kThemeWindowHasFullZoom = kThemeWindowHasHorizontalZoom + kThemeWindowHasVerticalZoom, /* window zooms in all directions */
kThemeWindowHasCloseBox = (1 << 5), /* window has a close box */
kThemeWindowHasCollapseBox = (1 << 6), /* window has a collapse box */
kThemeWindowHasTitleText = (1 << 7), /* window has a title/title icon */
kThemeWindowIsCollapsed = (1 << 8), /* window is in the collapsed state */
kThemeWindowHasDirty = (1 << 9)
};
typedef UInt32 ThemeWindowAttributes;
/*------------------------------------------------------------------------------------------*/
/* Window Types Supported by the Appearance Manager */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeDocumentWindow = 0,
kThemeDialogWindow = 1,
kThemeMovableDialogWindow = 2,
kThemeAlertWindow = 3,
kThemeMovableAlertWindow = 4,
kThemePlainDialogWindow = 5,
kThemeShadowDialogWindow = 6,
kThemePopupWindow = 7,
kThemeUtilityWindow = 8,
kThemeUtilitySideWindow = 9,
kThemeSheetWindow = 10,
kThemeDrawerWindow = 11
};
typedef UInt16 ThemeWindowType;
/*------------------------------------------------------------------------------------------*/
/* Window Widgets Supported by the Appearance Manager */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeWidgetCloseBox = 0,
kThemeWidgetZoomBox = 1,
kThemeWidgetCollapseBox = 2,
kThemeWidgetDirtyCloseBox = 6
};
typedef UInt16 ThemeTitleBarWidget;
/*------------------------------------------------------------------------------------------*/
/* Popup arrow orientations */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeArrowLeft = 0,
kThemeArrowDown = 1,
kThemeArrowRight = 2,
kThemeArrowUp = 3
};
typedef UInt16 ThemeArrowOrientation;
/*------------------------------------------------------------------------------------------*/
/* Popup arrow sizes */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeArrow3pt = 0,
kThemeArrow5pt = 1,
kThemeArrow7pt = 2,
kThemeArrow9pt = 3
};
typedef UInt16 ThemePopupArrowSize;
/*------------------------------------------------------------------------------------------*/
/* Grow box directions */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeGrowLeft = (1 << 0), /* can grow to the left */
kThemeGrowRight = (1 << 1), /* can grow to the right */
kThemeGrowUp = (1 << 2), /* can grow up */
kThemeGrowDown = (1 << 3) /* can grow down */
};
typedef UInt16 ThemeGrowDirection;
/*------------------------------------------------------------------------------------------*/
/* Button kinds */
/*------------------------------------------------------------------------------------------*/
enum {
kThemePushButton = 0,
kThemeCheckBox = 1,
kThemeRadioButton = 2,
kThemeBevelButton = 3, /* bevel button (obsolete) */
kThemeArrowButton = 4, /* popup button without text (no label). See ThemeButtonAdornment for glyphs. */
kThemePopupButton = 5, /* popup button */
kThemeDisclosureButton = 6,
kThemeIncDecButton = 7, /* increment/decrement buttons (no label) */
kThemeSmallBevelButton = 8, /* small-shadow bevel button */
kThemeMediumBevelButton = 3, /* med-shadow bevel button */
kThemeLargeBevelButton = 9, /* large-shadow bevel button */
kThemeListHeaderButton = 10, /* sort button for top of list */
kThemeRoundButton = 11, /* round button */
kThemeLargeRoundButton = 12, /* large round button */
kThemeSmallCheckBox = 13, /* small checkbox */
kThemeSmallRadioButton = 14, /* small radio button */
kThemeRoundedBevelButton = 15, /* rounded bevel button */
kThemeNormalCheckBox = kThemeCheckBox,
kThemeNormalRadioButton = kThemeRadioButton
};
typedef UInt16 ThemeButtonKind;
/*------------------------------------------------------------------------------------------*/
/* Common button values */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeButtonOff = 0,
kThemeButtonOn = 1,
kThemeButtonMixed = 2,
kThemeDisclosureRight = 0,
kThemeDisclosureDown = 1,
kThemeDisclosureLeft = 2
};
typedef UInt16 ThemeButtonValue;
/*------------------------------------------------------------------------------------------*/
/* Button adornment types */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeAdornmentNone = 0,
kThemeAdornmentDefault = (1 << 0), /* if set, draw default ornamentation ( for push button and generic well ) */
kThemeAdornmentFocus = (1 << 2), /* if set, draw focus */
kThemeAdornmentRightToLeft = (1 << 4), /* if set, draw right to left label */
kThemeAdornmentDrawIndicatorOnly = (1 << 5), /* if set, don't draw or erase label ( radio, check, disclosure ) */
kThemeAdornmentHeaderButtonLeftNeighborSelected = (1 << 6), /* if set, draw the left border of the button as selected ( list header button only ) */
kThemeAdornmentHeaderButtonRightNeighborSelected = (1 << 7), /* if set, draw the right border of the button ( list header button only ) */
kThemeAdornmentHeaderButtonSortUp = (1 << 8), /* if set, draw the sort indicator pointing upward ( list header button only ) */
kThemeAdornmentHeaderMenuButton = (1 << 9), /* if set, draw as a header menu button ( list header button only ) */
kThemeAdornmentHeaderButtonNoShadow = (1 << 10), /* if set, draw the non-shadow area of the button ( list header button only ) */
kThemeAdornmentHeaderButtonShadowOnly = (1 << 11), /* if set, draw the only the shadow area of the button ( list header button only ) */
kThemeAdornmentNoShadow = kThemeAdornmentHeaderButtonNoShadow, /* old name */
kThemeAdornmentShadowOnly = kThemeAdornmentHeaderButtonShadowOnly, /* old name */
kThemeAdornmentArrowLeftArrow = (1 << 6), /* If set, draw a left arrow on the arrow button */
kThemeAdornmentArrowDownArrow = (1 << 7), /* If set, draw a down arrow on the arrow button */
kThemeAdornmentArrowDoubleArrow = (1 << 8), /* If set, draw a double arrow on the arrow button */
kThemeAdornmentArrowUpArrow = (1 << 9) /* If set, draw a up arrow on the arrow button */
};
typedef UInt16 ThemeButtonAdornment;
/*------------------------------------------------------------------------------------------*/
/* Button drawing info block */
/*------------------------------------------------------------------------------------------*/
struct ThemeButtonDrawInfo {
ThemeDrawState state;
ThemeButtonValue value;
ThemeButtonAdornment adornment;
};
typedef struct ThemeButtonDrawInfo ThemeButtonDrawInfo;
typedef ThemeButtonDrawInfo * ThemeButtonDrawInfoPtr;
/*------------------------------------------------------------------------------------------*/
/* Sound Support */
/* */
/* X ALERT: Please note that none of the theme sound APIs currently function on X. */
/*------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------*/
/* Sound classes */
/* */
/* You can use the constants below to set what sounds are active using the SetTheme API. */
/* Use these with the kThemeSoundMask tag. */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeNoSounds = 0,
kThemeWindowSoundsMask = (1 << 0),
kThemeMenuSoundsMask = (1 << 1),
kThemeControlSoundsMask = (1 << 2),
kThemeFinderSoundsMask = (1 << 3)
};
/*------------------------------------------------------------------------------------------*/
/* Drag Sounds */
/* */
/* Drag sounds are looped for the duration of the drag. */
/* */
/* Call BeginThemeDragSound at the start of the drag. */
/* Call EndThemeDragSound when the drag has finished. */
/* */
/* Note that in order to maintain a consistent user experience, only one drag sound may */
/* occur at a time. The sound should be attached to a mouse action, start after the */
/* mouse goes down and stop when the mouse is released. */
/*------------------------------------------------------------------------------------------*/
enum {
kThemeDragSoundNone = 0,
kThemeDragSoundMoveWindow = FOUR_CHAR_CODE('wmov'),
kThemeDragSoundGrowWindow = FOUR_CHAR_CODE('wgro'),
kThemeDragSoundMoveUtilWindow = FOUR_CHAR_CODE('umov'),
kThemeDragSoundGrowUtilWindow = FOUR_CHAR_CODE('ugro'),
kThemeDragSoundMoveDialog = FOUR_CHAR_CODE('dmov'),
kThemeDragSoundMoveAlert = FOUR_CHAR_CODE('amov'),
kThemeDragSoundMoveIcon = FOUR_CHAR_CODE('imov'),
kThemeDragSoundSliderThumb = FOUR_CHAR_CODE('slth'),
kThemeDragSoundSliderGhost = FOUR_CHAR_CODE('slgh'),
kThemeDragSoundScrollBarThumb = FOUR_CHAR_CODE('sbth'),
kThemeDragSoundScrollBarGhost = FOUR_CHAR_CODE('sbgh'),
kThemeDragSoundScrollBarArrowDecreasing = FOUR_CHAR_CODE('sbad'),
kThemeDragSoundScrollBarArrowIncreasing = FOUR_CHAR_CODE('sbai'),
kThemeDragSoundDragging = FOUR_CHAR_CODE('drag')
};
typedef OSType ThemeDragSoundKind;
/*--------------------------------------------------------------------------*/
/* State-change sounds */
/* */
/* State-change sounds are played asynchonously as a one-shot. */
/* */
/* Call PlayThemeSound to play the sound. The sound will play */
/* asynchronously until complete, then stop automatically. */
/*--------------------------------------------------------------------------*/
enum {
kThemeSoundNone = 0,
kThemeSoundMenuOpen = FOUR_CHAR_CODE('mnuo'), /* menu sounds */
kThemeSoundMenuClose = FOUR_CHAR_CODE('mnuc'),
kThemeSoundMenuItemHilite = FOUR_CHAR_CODE('mnui'),
kThemeSoundMenuItemRelease = FOUR_CHAR_CODE('mnus'),
kThemeSoundWindowClosePress = FOUR_CHAR_CODE('wclp'), /* window sounds */
kThemeSoundWindowCloseEnter = FOUR_CHAR_CODE('wcle'),
kThemeSoundWindowCloseExit = FOUR_CHAR_CODE('wclx'),
kThemeSoundWindowCloseRelease = FOUR_CHAR_CODE('wclr'),
kThemeSoundWindowZoomPress = FOUR_CHAR_CODE('wzmp'),
kThemeSoundWindowZoomEnter = FOUR_CHAR_CODE('wzme'),
kThemeSoundWindowZoomExit = FOUR_CHAR_CODE('wzmx'),
kThemeSoundWindowZoomRelease = FOUR_CHAR_CODE('wzmr'),
kThemeSoundWindowCollapsePress = FOUR_CHAR_CODE('wcop'),
kThemeSoundWindowCollapseEnter = FOUR_CHAR_CODE('wcoe'),
kThemeSoundWindowCollapseExit = FOUR_CHAR_CODE('wcox'),
kThemeSoundWindowCollapseRelease = FOUR_CHAR_CODE('wcor'),
kThemeSoundWindowDragBoundary = FOUR_CHAR_CODE('wdbd'),
kThemeSoundUtilWinClosePress = FOUR_CHAR_CODE('uclp'), /* utility window sounds */
kThemeSoundUtilWinCloseEnter = FOUR_CHAR_CODE('ucle'),
kThemeSoundUtilWinCloseExit = FOUR_CHAR_CODE('uclx'),
kThemeSoundUtilWinCloseRelease = FOUR_CHAR_CODE('uclr'),
kThemeSoundUtilWinZoomPress = FOUR_CHAR_CODE('uzmp'),
kThemeSoundUtilWinZoomEnter = FOUR_CHAR_CODE('uzme'),
kThemeSoundUtilWinZoomExit = FOUR_CHAR_CODE('uzmx'),
kThemeSoundUtilWinZoomRelease = FOUR_CHAR_CODE('uzmr'),
kThemeSoundUtilWinCollapsePress = FOUR_CHAR_CODE('ucop'),
kThemeSoundUtilWinCollapseEnter = FOUR_CHAR_CODE('ucoe'),
kThemeSoundUtilWinCollapseExit = FOUR_CHAR_CODE('ucox'),
kThemeSoundUtilWinCollapseRelease = FOUR_CHAR_CODE('ucor'),
kThemeSoundUtilWinDragBoundary = FOUR_CHAR_CODE('udbd'),
kThemeSoundWindowOpen = FOUR_CHAR_CODE('wopn'), /* window close and zoom action */
kThemeSoundWindowClose = FOUR_CHAR_CODE('wcls'),
kThemeSoundWindowZoomIn = FOUR_CHAR_CODE('wzmi'),
kThemeSoundWindowZoomOut = FOUR_CHAR_CODE('wzmo'),
kThemeSoundWindowCollapseUp = FOUR_CHAR_CODE('wcol'),
kThemeSoundWindowCollapseDown = FOUR_CHAR_CODE('wexp'),
kThemeSoundWindowActivate = FOUR_CHAR_CODE('wact'),
kThemeSoundUtilWindowOpen = FOUR_CHAR_CODE('uopn'),
kThemeSoundUtilWindowClose = FOUR_CHAR_CODE('ucls'),
kThemeSoundUtilWindowZoomIn = FOUR_CHAR_CODE('uzmi'),
kThemeSoundUtilWindowZoomOut = FOUR_CHAR_CODE('uzmo'),
kThemeSoundUtilWindowCollapseUp = FOUR_CHAR_CODE('ucol'),
kThemeSoundUtilWindowCollapseDown = FOUR_CHAR_CODE('uexp'),
kThemeSoundUtilWindowActivate = FOUR_CHAR_CODE('uact'),
kThemeSoundDialogOpen = FOUR_CHAR_CODE('dopn'),
kThemeSoundDialogClose = FOUR_CHAR_CODE('dlgc'),
kThemeSoundAlertOpen = FOUR_CHAR_CODE('aopn'),
kThemeSoundAlertClose = FOUR_CHAR_CODE('altc'),
kThemeSoundPopupWindowOpen = FOUR_CHAR_CODE('pwop'),
kThemeSoundPopupWindowClose = FOUR_CHAR_CODE('pwcl'),
kThemeSoundButtonPress = FOUR_CHAR_CODE('btnp'), /* button */
kThemeSoundButtonEnter = FOUR_CHAR_CODE('btne'),
kThemeSoundButtonExit = FOUR_CHAR_CODE('btnx'),
kThemeSoundButtonRelease = FOUR_CHAR_CODE('btnr'),
kThemeSoundDefaultButtonPress = FOUR_CHAR_CODE('dbtp'), /* default button */
kThemeSoundDefaultButtonEnter = FOUR_CHAR_CODE('dbte'),
kThemeSoundDefaultButtonExit = FOUR_CHAR_CODE('dbtx'),
kThemeSoundDefaultButtonRelease = FOUR_CHAR_CODE('dbtr'),
kThemeSoundCancelButtonPress = FOUR_CHAR_CODE('cbtp'), /* cancel button */
kThemeSoundCancelButtonEnter = FOUR_CHAR_CODE('cbte'),
kThemeSoundCancelButtonExit = FOUR_CHAR_CODE('cbtx'),
kThemeSoundCancelButtonRelease = FOUR_CHAR_CODE('cbtr'),
kThemeSoundCheckboxPress = FOUR_CHAR_CODE('chkp'), /* checkboxes */
kThemeSoundCheckboxEnter = FOUR_CHAR_CODE('chke'),
kThemeSoundCheckboxExit = FOUR_CHAR_CODE('chkx'),
kThemeSoundCheckboxRelease = FOUR_CHAR_CODE('chkr'),
kThemeSoundRadioPress = FOUR_CHAR_CODE('radp'), /* radio buttons */
kThemeSoundRadioEnter = FOUR_CHAR_CODE('rade'),
kThemeSoundRadioExit = FOUR_CHAR_CODE('radx'),
kThemeSoundRadioRelease = FOUR_CHAR_CODE('radr'),
kThemeSoundScrollArrowPress = FOUR_CHAR_CODE('sbap'), /* scroll bars */
kThemeSoundScrollArrowEnter = FOUR_CHAR_CODE('sbae'),
kThemeSoundScrollArrowExit = FOUR_CHAR_CODE('sbax'),
kThemeSoundScrollArrowRelease = FOUR_CHAR_CODE('sbar'),
kThemeSoundScrollEndOfTrack = FOUR_CHAR_CODE('sbte'),
kThemeSoundScrollTrackPress = FOUR_CHAR_CODE('sbtp'),
kThemeSoundSliderEndOfTrack = FOUR_CHAR_CODE('slte'), /* sliders */
kThemeSoundSliderTrackPress = FOUR_CHAR_CODE('sltp'),
kThemeSoundBalloonOpen = FOUR_CHAR_CODE('blno'), /* help balloons */
kThemeSoundBalloonClose = FOUR_CHAR_CODE('blnc'),
kThemeSoundBevelPress = FOUR_CHAR_CODE('bevp'), /* Bevel buttons */
kThemeSoundBevelEnter = FOUR_CHAR_CODE('beve'),
kThemeSoundBevelExit = FOUR_CHAR_CODE('bevx'),
kThemeSoundBevelRelease = FOUR_CHAR_CODE('bevr'),
kThemeSoundLittleArrowUpPress = FOUR_CHAR_CODE('laup'), /* Little Arrows */
kThemeSoundLittleArrowDnPress = FOUR_CHAR_CODE('ladp'),
kThemeSoundLittleArrowEnter = FOUR_CHAR_CODE('lare'),
kThemeSoundLittleArrowExit = FOUR_CHAR_CODE('larx'),
kThemeSoundLittleArrowUpRelease = FOUR_CHAR_CODE('laur'),
kThemeSoundLittleArrowDnRelease = FOUR_CHAR_CODE('ladr'),
kThemeSoundPopupPress = FOUR_CHAR_CODE('popp'), /* Popup Buttons */
kThemeSoundPopupEnter = FOUR_CHAR_CODE('pope'),
kThemeSoundPopupExit = FOUR_CHAR_CODE('popx'),
kThemeSoundPopupRelease = FOUR_CHAR_CODE('popr'),
kThemeSoundDisclosurePress = FOUR_CHAR_CODE('dscp'), /* Disclosure Buttons */
kThemeSoundDisclosureEnter = FOUR_CHAR_CODE('dsce'),
kThemeSoundDisclosureExit = FOUR_CHAR_CODE('dscx'),
kThemeSoundDisclosureRelease = FOUR_CHAR_CODE('dscr'),
kThemeSoundTabPressed = FOUR_CHAR_CODE('tabp'), /* Tabs */
kThemeSoundTabEnter = FOUR_CHAR_CODE('tabe'),
kThemeSoundTabExit = FOUR_CHAR_CODE('tabx'),
kThemeSoundTabRelease = FOUR_CHAR_CODE('tabr'),
kThemeSoundDragTargetHilite = FOUR_CHAR_CODE('dthi'), /* drag manager */
kThemeSoundDragTargetUnhilite = FOUR_CHAR_CODE('dtuh'),
kThemeSoundDragTargetDrop = FOUR_CHAR_CODE('dtdr'),
kThemeSoundEmptyTrash = FOUR_CHAR_CODE('ftrs'), /* finder */
kThemeSoundSelectItem = FOUR_CHAR_CODE('fsel'),
kThemeSoundNewItem = FOUR_CHAR_CODE('fnew'),
kThemeSoundReceiveDrop = FOUR_CHAR_CODE('fdrp'),
kThemeSoundCopyDone = FOUR_CHAR_CODE('fcpd'),
kThemeSoundResolveAlias = FOUR_CHAR_CODE('fral'),
kThemeSoundLaunchApp = FOUR_CHAR_CODE('flap'),
kThemeSoundDiskInsert = FOUR_CHAR_CODE('dski'),
kThemeSoundDiskEject = FOUR_CHAR_CODE('dske'),
kThemeSoundFinderDragOnIcon = FOUR_CHAR_CODE('fdon'),
kThemeSoundFinderDragOffIcon = FOUR_CHAR_CODE('fdof')
};
typedef OSType ThemeSoundKind;
/*------------------------------------------------------------------------------------------*/
/* Window Metrics */
/*------------------------------------------------------------------------------------------*/
/* Window metrics are used by the Appearance manager to fill in the blanks necessary to */
/* draw windows. If a value is not appropriate for the type of window, be sure to fill in */
/* the slot in the structure with zero. For the popupTabOffset parameter, you can pass a*/
/* real value based on the left edge of the window. This value might be interpreted in a */
/* different manner when depending on the value of the popupTabPosition field. The values */
/* you can pass into popupTabPosition are: */
/* */
/* kThemePopupTabNormalPosition */
/* Starts the tab left edge at the position indicated by the popupTabOffset field. */
/* */
/* kThemePopupTabCenterOnWindow */
/* tells us to ignore the offset field and instead simply center the width of the */
/* handle on the window. */
/* */
/* kThemePopupTabCenterOnOffset */
/* tells us to center the width of the handle around the value passed in offset. */
/* */
/* The Appearance Manager will try its best to accomodate the requested placement, but may */
/* move the handle slightly to make it fit correctly. */
/* */
enum {
kThemePopupTabNormalPosition = 0,
kThemePopupTabCenterOnWindow = 1,
kThemePopupTabCenterOnOffset = 2
};
struct ThemeWindowMetrics {
UInt16 metricSize; /* should be always be sizeof( ThemeWindowMetrics )*/
SInt16 titleHeight;
SInt16 titleWidth;
SInt16 popupTabOffset;
SInt16 popupTabWidth;
UInt16 popupTabPosition;
};
typedef struct ThemeWindowMetrics ThemeWindowMetrics;
typedef ThemeWindowMetrics * ThemeWindowMetricsPtr;
/*------------------------------------------------------------------------------------------*/
/* Theme Metrics */
/*------------------------------------------------------------------------------------------*/
/*
* Discussion:
* Theme metrics allow you to find out sizes of things in the
* current environment, such as how wide a scroll bar is, etc.
*/
enum {
/*
* The width (or height if horizontal) of a scroll bar.
*/
kThemeMetricScrollBarWidth = 0,
/*
* The width (or height if horizontal) of a small scroll bar.
*/
kThemeMetricSmallScrollBarWidth = 1,
/*
* The height of the non-label part of a check box control.
*/
kThemeMetricCheckBoxHeight = 2,
/*
* The height of the non-label part of a radio button control.
*/
kThemeMetricRadioButtonHeight = 3,
/*
* The amount of white space surrounding the text Rect of the text
* inside of an Edit Text control. If you select all of the text in
* an Edit Text control, you can see the white space. The metric is
* the number of pixels, per side, that the text Rect is outset to
* create the whitespace Rect.
*/
kThemeMetricEditTextWhitespace = 4,
/*
* The thickness of the Edit Text frame that surrounds the whitespace
* Rect (that is surrounding the text Rect). The metric is the number
* of pixels, per side, that the frame Rect is outset from the
* whitespace Rect.
*/
kThemeMetricEditTextFrameOutset = 5,
/*
* The number of pixels that the list box frame is outset from the
* content of the list box.
*/
kThemeMetricListBoxFrameOutset = 6,
/*
* This is a deprecated metric. Don't use it. It used to describe
* how far the focus rect used to draw from a control, but control
* focus drawing no longer uses this information to draw its focus.
*/
kThemeMetricFocusRectOutset = 7,
/*
* The thickness of the frame drawn by DrawThemeGenericWell.
*/
kThemeMetricImageWellThickness = 8,
/*
* The number of pixels a scrollbar should overlap (actually
* underlap) any bounding box which surrounds it and scrollable
* content. This also includes the window frame when a scrolbar is
* along an edge of the window.
*/
kThemeMetricScrollBarOverlap = 9,
/*
* The height of the large tab of a tab control.
*/
kThemeMetricLargeTabHeight = 10,
/*
* The width of the caps (end pieces) of the large tabs of a tab
* control.
*/
kThemeMetricLargeTabCapsWidth = 11,
/*
* The amount to add to the tab height (kThemeMetricLargeTabHeight)
* to find out the rectangle height to use with the various Tab
* drawing primitives. This amount is also the amount that each tab
* overlaps the tab pane.
*/
kThemeMetricTabFrameOverlap = 12,
/*
* If less than zero, this indicates that the text should be centered
* on each tab. If greater than zero, the text should be justified
* (according to the system script direction) and the amount is the
* offset from the appropriate edge at which the text should start
* drawing.
*/
kThemeMetricTabIndentOrStyle = 13,
/*
* The amount of space that every tab's drawing rectangle overlaps
* the one on either side of it.
*/
kThemeMetricTabOverlap = 14,
/*
* The height of the small tab of a tab control. This includes the
* pixels that overlap the tab pane and/or tab pane bar.
*/
kThemeMetricSmallTabHeight = 15,
/*
* The width of the caps (end pieces) of the small tabs of a tab
* control.
*/
kThemeMetricSmallTabCapsWidth = 16,
/*
* The height and the width of the push button control.
*/
kThemeMetricPushButtonHeight = 19,
/*
* The height of the list header field of the data browser control.
*/
kThemeMetricListHeaderHeight = 20,
/*
* The height of a disclosure triangle control. This triangle is the
* not the center of the disclosure button, but its own control.
*/
kThemeMetricDisclosureTriangleHeight = 25,
/*
* The width of a disclosure triangle control.
*/
kThemeMetricDisclosureTriangleWidth = 26,
/*
* The height of a little arrows control.
*/
kThemeMetricLittleArrowsHeight = 27,
/*
* The width of a little arrows control.
*/
kThemeMetricLittleArrowsWidth = 28,
/*
* The height of a popup button control.
*/
kThemeMetricPopupButtonHeight = 30,
/*
* The height of a small popup button control.
*/
kThemeMetricSmallPopupButtonHeight = 31,
/*
* The height of the large progress bar, not including its shadow.
*/
kThemeMetricLargeProgressBarThickness = 32,
/*
* This metric is not used.
*/
kThemeMetricPullDownHeight = 33,
/*
* This metric is not used.
*/
kThemeMetricSmallPullDownHeight = 34,
/*
* The height of the window grow box control.
*/
kThemeMetricResizeControlHeight = 38,
/*
* The width of the window grow box control.
*/
kThemeMetricSmallResizeControlHeight = 39,
/*
* The height of the horizontal slider control.
*/
kThemeMetricHSliderHeight = 41,
/*
* The height of the tick marks for a horizontal slider control.
*/
kThemeMetricHSliderTickHeight = 42,
/*
* The width of the vertical slider control.
*/
kThemeMetricVSliderWidth = 45,
/*
* The width of the tick marks for a vertical slider control.
*/
kThemeMetricVSliderTickWidth = 46,
/*
* The height of the title bar widgets (grow, close, and zoom boxes)
* for a document window.
*/
kThemeMetricTitleBarControlsHeight = 49,
/*
* The width of the non-label part of a check box control.
*/
kThemeMetricCheckBoxWidth = 50,
/*
* The width of the non-label part of a radio button control.
*/
kThemeMetricRadioButtonWidth = 52,
/*
* The height of the normal bar, not including its shadow.
*/
kThemeMetricNormalProgressBarThickness = 58,
/*
* The number of pixels of shadow depth drawn below the progress bar.
*/
kThemeMetricProgressBarShadowOutset = 59,
/*
* The number of pixels of shadow depth drawn below the small
* progress bar.
*/
kThemeMetricSmallProgressBarShadowOutset = 60,
/*
* The number of pixels that the content of a primary group box is
* from the bounds of the control.
*/
kThemeMetricPrimaryGroupBoxContentInset = 61,
/*
* The number of pixels that the content of a secondary group box is
* from the bounds of the control.
*/
kThemeMetricSecondaryGroupBoxContentInset = 62,
/*
* Width allocated to draw the mark character in a menu.
*/
kThemeMetricMenuMarkColumnWidth = 63,
/*
* Width allocated for the mark character in a menu item when the
* menu has kMenuAttrExcludesMarkColumn.
*/
kThemeMetricMenuExcludedMarkColumnWidth = 64,
/*
* Indent into the interior of the mark column at which the mark
* character is drawn.
*/
kThemeMetricMenuMarkIndent = 65,
/*
* Whitespace at the leading edge of menu item text.
*/
kThemeMetricMenuTextLeadingEdgeMargin = 66,
/*
* Whitespace at the trailing edge of menu item text.
*/
kThemeMetricMenuTextTrailingEdgeMargin = 67,
/*
* Width per indent level (set by SetMenuItemIndent) of a menu item.
*/
kThemeMetricMenuIndentWidth = 68,
/*
* Whitespace at the trailing edge of a menu icon (if the item also
* has text).
*/
kThemeMetricMenuIconTrailingEdgeMargin = 69
};
/*
* Discussion:
* The following metrics are only available in OS X.
*/
enum {
/*
* The height of a disclosure button.
*/
kThemeMetricDisclosureButtonHeight = 17,
/*
* The height and the width of the round button control.
*/
kThemeMetricRoundButtonSize = 18,
/*
* The height of the non-label part of a small check box control.
*/
kThemeMetricSmallCheckBoxHeight = 21,
/*
* The width of a disclosure button.
*/
kThemeMetricDisclosureButtonWidth = 22,
/*
* The height of a small disclosure button.
*/
kThemeMetricSmallDisclosureButtonHeight = 23,
/*
* The width of a small disclosure button.
*/
kThemeMetricSmallDisclosureButtonWidth = 24,
/*
* The height (or width if vertical) of a pane splitter.
*/
kThemeMetricPaneSplitterHeight = 29,
/*
* The height of the small push button control.
*/
kThemeMetricSmallPushButtonHeight = 35,
/*
* The height of the non-label part of a small radio button control.
*/
kThemeMetricSmallRadioButtonHeight = 36,
/*
* The height of the relevance indicator control.
*/
kThemeMetricRelevanceIndicatorHeight = 37,
/*
* The height and the width of the large round button control.
*/
kThemeMetricLargeRoundButtonSize = 40,
/*
* The height of the small, horizontal slider control.
*/
kThemeMetricSmallHSliderHeight = 43,
/*
* The height of the tick marks for a small, horizontal slider
* control.
*/
kThemeMetricSmallHSliderTickHeight = 44,
/*
* The width of the small, vertical slider control.
*/
kThemeMetricSmallVSliderWidth = 47,
/*
* The width of the tick marks for a small, vertical slider control.
*/
kThemeMetricSmallVSliderTickWidth = 48,
/*
* The width of the non-label part of a small check box control.
*/
kThemeMetricSmallCheckBoxWidth = 51,
/*
* The width of the non-label part of a small radio button control.
*/
kThemeMetricSmallRadioButtonWidth = 53,
/*
* The minimum width of the thumb of a small, horizontal slider
* control.
*/
kThemeMetricSmallHSliderMinThumbWidth = 54,
/*
* The minimum width of the thumb of a small, vertical slider control.
*/
kThemeMetricSmallVSliderMinThumbHeight = 55,
/*
* The offset of the tick marks from the appropriate side of a small
* horizontal slider control.
*/
kThemeMetricSmallHSliderTickOffset = 56,
/*
* The offset of the tick marks from the appropriate side of a small
* vertical slider control.
*/
kThemeMetricSmallVSliderTickOffset = 57
};
typedef UInt32 ThemeMetric;
/*------------------------------------------------------------------------------------------*/
/* Drawing State */
/*------------------------------------------------------------------------------------------*/
typedef struct OpaqueThemeDrawingState* ThemeDrawingState;
/*------------------------------------------------------------------------------------------*/
/* Callback procs */
/*------------------------------------------------------------------------------------------*/
typedef CALLBACK_API( void , ThemeTabTitleDrawProcPtr )(const Rect *bounds, ThemeTabStyle style, ThemeTabDirection direction, SInt16 depth, Boolean isColorDev, UInt32 userData);
typedef CALLBACK_API( void , ThemeEraseProcPtr )(const Rect *bounds, UInt32 eraseData, SInt16 depth, Boolean isColorDev);
typedef CALLBACK_API( void , ThemeButtonDrawProcPtr )(const Rect *bounds, ThemeButtonKind kind, const ThemeButtonDrawInfo *info, UInt32 userData, SInt16 depth, Boolean isColorDev);
typedef CALLBACK_API( void , WindowTitleDrawingProcPtr )(const Rect *bounds, SInt16 depth, Boolean colorDevice, UInt32 userData);
typedef CALLBACK_API( Boolean , ThemeIteratorProcPtr )(ConstStr255Param inFileName, SInt16 resID, Collection inThemeSettings, void *inUserData);
typedef STACK_UPP_TYPE(ThemeTabTitleDrawProcPtr) ThemeTabTitleDrawUPP;
typedef STACK_UPP_TYPE(ThemeEraseProcPtr) ThemeEraseUPP;
typedef STACK_UPP_TYPE(ThemeButtonDrawProcPtr) ThemeButtonDrawUPP;
typedef STACK_UPP_TYPE(WindowTitleDrawingProcPtr) WindowTitleDrawingUPP;
typedef STACK_UPP_TYPE(ThemeIteratorProcPtr) ThemeIteratorUPP;
/*
* NewThemeTabTitleDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( ThemeTabTitleDrawUPP )
NewThemeTabTitleDrawUPP(ThemeTabTitleDrawProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppThemeTabTitleDrawProcInfo = 0x00036AC0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 2_bytes, 2_bytes, 1_byte, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(ThemeTabTitleDrawUPP) NewThemeTabTitleDrawUPP(ThemeTabTitleDrawProcPtr userRoutine) { return (ThemeTabTitleDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeTabTitleDrawProcInfo, GetCurrentArchitecture()); }
#else
#define NewThemeTabTitleDrawUPP(userRoutine) (ThemeTabTitleDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeTabTitleDrawProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewThemeEraseUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( ThemeEraseUPP )
NewThemeEraseUPP(ThemeEraseProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppThemeEraseProcInfo = 0x00001BC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 1_byte) */
#ifdef __cplusplus
inline DEFINE_API_C(ThemeEraseUPP) NewThemeEraseUPP(ThemeEraseProcPtr userRoutine) { return (ThemeEraseUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeEraseProcInfo, GetCurrentArchitecture()); }
#else
#define NewThemeEraseUPP(userRoutine) (ThemeEraseUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeEraseProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewThemeButtonDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( ThemeButtonDrawUPP )
NewThemeButtonDrawUPP(ThemeButtonDrawProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppThemeButtonDrawProcInfo = 0x0001BEC0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 2_bytes, 1_byte) */
#ifdef __cplusplus
inline DEFINE_API_C(ThemeButtonDrawUPP) NewThemeButtonDrawUPP(ThemeButtonDrawProcPtr userRoutine) { return (ThemeButtonDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeButtonDrawProcInfo, GetCurrentArchitecture()); }
#else
#define NewThemeButtonDrawUPP(userRoutine) (ThemeButtonDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeButtonDrawProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewWindowTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( WindowTitleDrawingUPP )
NewWindowTitleDrawingUPP(WindowTitleDrawingProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppWindowTitleDrawingProcInfo = 0x000036C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 1_byte, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(WindowTitleDrawingUPP) NewWindowTitleDrawingUPP(WindowTitleDrawingProcPtr userRoutine) { return (WindowTitleDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowTitleDrawingProcInfo, GetCurrentArchitecture()); }
#else
#define NewWindowTitleDrawingUPP(userRoutine) (WindowTitleDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowTitleDrawingProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewThemeIteratorUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( ThemeIteratorUPP )
NewThemeIteratorUPP(ThemeIteratorProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppThemeIteratorProcInfo = 0x00003ED0 }; /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(ThemeIteratorUPP) NewThemeIteratorUPP(ThemeIteratorProcPtr userRoutine) { return (ThemeIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeIteratorProcInfo, GetCurrentArchitecture()); }
#else
#define NewThemeIteratorUPP(userRoutine) (ThemeIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppThemeIteratorProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeThemeTabTitleDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeThemeTabTitleDrawUPP(ThemeTabTitleDrawUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeThemeTabTitleDrawUPP(ThemeTabTitleDrawUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeThemeTabTitleDrawUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeThemeEraseUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeThemeEraseUPP(ThemeEraseUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeThemeEraseUPP(ThemeEraseUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeThemeEraseUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeThemeButtonDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeThemeButtonDrawUPP(ThemeButtonDrawUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeThemeButtonDrawUPP(ThemeButtonDrawUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeThemeButtonDrawUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeWindowTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeWindowTitleDrawingUPP(WindowTitleDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeWindowTitleDrawingUPP(WindowTitleDrawingUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeWindowTitleDrawingUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeThemeIteratorUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeThemeIteratorUPP(ThemeIteratorUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeThemeIteratorUPP(ThemeIteratorUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeThemeIteratorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeThemeTabTitleDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeThemeTabTitleDrawUPP(
const Rect * bounds,
ThemeTabStyle style,
ThemeTabDirection direction,
SInt16 depth,
Boolean isColorDev,
UInt32 userData,
ThemeTabTitleDrawUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeThemeTabTitleDrawUPP(const Rect * bounds, ThemeTabStyle style, ThemeTabDirection direction, SInt16 depth, Boolean isColorDev, UInt32 userData, ThemeTabTitleDrawUPP userUPP) { CALL_SIX_PARAMETER_UPP(userUPP, uppThemeTabTitleDrawProcInfo, bounds, style, direction, depth, isColorDev, userData); }
#else
#define InvokeThemeTabTitleDrawUPP(bounds, style, direction, depth, isColorDev, userData, userUPP) CALL_SIX_PARAMETER_UPP((userUPP), uppThemeTabTitleDrawProcInfo, (bounds), (style), (direction), (depth), (isColorDev), (userData))
#endif
#endif
/*
* InvokeThemeEraseUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeThemeEraseUPP(
const Rect * bounds,
UInt32 eraseData,
SInt16 depth,
Boolean isColorDev,
ThemeEraseUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeThemeEraseUPP(const Rect * bounds, UInt32 eraseData, SInt16 depth, Boolean isColorDev, ThemeEraseUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppThemeEraseProcInfo, bounds, eraseData, depth, isColorDev); }
#else
#define InvokeThemeEraseUPP(bounds, eraseData, depth, isColorDev, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppThemeEraseProcInfo, (bounds), (eraseData), (depth), (isColorDev))
#endif
#endif
/*
* InvokeThemeButtonDrawUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeThemeButtonDrawUPP(
const Rect * bounds,
ThemeButtonKind kind,
const ThemeButtonDrawInfo * info,
UInt32 userData,
SInt16 depth,
Boolean isColorDev,
ThemeButtonDrawUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeThemeButtonDrawUPP(const Rect * bounds, ThemeButtonKind kind, const ThemeButtonDrawInfo * info, UInt32 userData, SInt16 depth, Boolean isColorDev, ThemeButtonDrawUPP userUPP) { CALL_SIX_PARAMETER_UPP(userUPP, uppThemeButtonDrawProcInfo, bounds, kind, info, userData, depth, isColorDev); }
#else
#define InvokeThemeButtonDrawUPP(bounds, kind, info, userData, depth, isColorDev, userUPP) CALL_SIX_PARAMETER_UPP((userUPP), uppThemeButtonDrawProcInfo, (bounds), (kind), (info), (userData), (depth), (isColorDev))
#endif
#endif
/*
* InvokeWindowTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeWindowTitleDrawingUPP(
const Rect * bounds,
SInt16 depth,
Boolean colorDevice,
UInt32 userData,
WindowTitleDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeWindowTitleDrawingUPP(const Rect * bounds, SInt16 depth, Boolean colorDevice, UInt32 userData, WindowTitleDrawingUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppWindowTitleDrawingProcInfo, bounds, depth, colorDevice, userData); }
#else
#define InvokeWindowTitleDrawingUPP(bounds, depth, colorDevice, userData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppWindowTitleDrawingProcInfo, (bounds), (depth), (colorDevice), (userData))
#endif
#endif
/*
* InvokeThemeIteratorUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( Boolean )
InvokeThemeIteratorUPP(
ConstStr255Param inFileName,
SInt16 resID,
Collection inThemeSettings,
void * inUserData,
ThemeIteratorUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(Boolean) InvokeThemeIteratorUPP(ConstStr255Param inFileName, SInt16 resID, Collection inThemeSettings, void * inUserData, ThemeIteratorUPP userUPP) { return (Boolean)CALL_FOUR_PARAMETER_UPP(userUPP, uppThemeIteratorProcInfo, inFileName, resID, inThemeSettings, inUserData); }
#else
#define InvokeThemeIteratorUPP(inFileName, resID, inThemeSettings, inUserData, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppThemeIteratorProcInfo, (inFileName), (resID), (inThemeSettings), (inUserData))
#endif
#endif
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
#define NewThemeTabTitleDrawProc(userRoutine) NewThemeTabTitleDrawUPP(userRoutine)
#define NewThemeEraseProc(userRoutine) NewThemeEraseUPP(userRoutine)
#define NewThemeButtonDrawProc(userRoutine) NewThemeButtonDrawUPP(userRoutine)
#define NewWindowTitleDrawingProc(userRoutine) NewWindowTitleDrawingUPP(userRoutine)
#define NewThemeIteratorProc(userRoutine) NewThemeIteratorUPP(userRoutine)
#define CallThemeTabTitleDrawProc(userRoutine, bounds, style, direction, depth, isColorDev, userData) InvokeThemeTabTitleDrawUPP(bounds, style, direction, depth, isColorDev, userData, userRoutine)
#define CallThemeEraseProc(userRoutine, bounds, eraseData, depth, isColorDev) InvokeThemeEraseUPP(bounds, eraseData, depth, isColorDev, userRoutine)
#define CallThemeButtonDrawProc(userRoutine, bounds, kind, info, userData, depth, isColorDev) InvokeThemeButtonDrawUPP(bounds, kind, info, userData, depth, isColorDev, userRoutine)
#define CallWindowTitleDrawingProc(userRoutine, bounds, depth, colorDevice, userData) InvokeWindowTitleDrawingUPP(bounds, depth, colorDevice, userData, userRoutine)
#define CallThemeIteratorProc(userRoutine, inFileName, resID, inThemeSettings, inUserData) InvokeThemeIteratorUPP(inFileName, resID, inThemeSettings, inUserData, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
/*----------------------------------------------------------------------------------*/
/* Menu Drawing callbacks */
/*----------------------------------------------------------------------------------*/
typedef CALLBACK_API( void , MenuTitleDrawingProcPtr )(const Rect *inBounds, SInt16 inDepth, Boolean inIsColorDevice, SInt32 inUserData);
typedef CALLBACK_API( void , MenuItemDrawingProcPtr )(const Rect *inBounds, SInt16 inDepth, Boolean inIsColorDevice, SInt32 inUserData);
typedef STACK_UPP_TYPE(MenuTitleDrawingProcPtr) MenuTitleDrawingUPP;
typedef STACK_UPP_TYPE(MenuItemDrawingProcPtr) MenuItemDrawingUPP;
/*
* NewMenuTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( MenuTitleDrawingUPP )
NewMenuTitleDrawingUPP(MenuTitleDrawingProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppMenuTitleDrawingProcInfo = 0x000036C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 1_byte, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(MenuTitleDrawingUPP) NewMenuTitleDrawingUPP(MenuTitleDrawingProcPtr userRoutine) { return (MenuTitleDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMenuTitleDrawingProcInfo, GetCurrentArchitecture()); }
#else
#define NewMenuTitleDrawingUPP(userRoutine) (MenuTitleDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMenuTitleDrawingProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewMenuItemDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( MenuItemDrawingUPP )
NewMenuItemDrawingUPP(MenuItemDrawingProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppMenuItemDrawingProcInfo = 0x000036C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 1_byte, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(MenuItemDrawingUPP) NewMenuItemDrawingUPP(MenuItemDrawingProcPtr userRoutine) { return (MenuItemDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMenuItemDrawingProcInfo, GetCurrentArchitecture()); }
#else
#define NewMenuItemDrawingUPP(userRoutine) (MenuItemDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMenuItemDrawingProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeMenuTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeMenuTitleDrawingUPP(MenuTitleDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeMenuTitleDrawingUPP(MenuTitleDrawingUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeMenuTitleDrawingUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeMenuItemDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeMenuItemDrawingUPP(MenuItemDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeMenuItemDrawingUPP(MenuItemDrawingUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeMenuItemDrawingUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeMenuTitleDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeMenuTitleDrawingUPP(
const Rect * inBounds,
SInt16 inDepth,
Boolean inIsColorDevice,
SInt32 inUserData,
MenuTitleDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeMenuTitleDrawingUPP(const Rect * inBounds, SInt16 inDepth, Boolean inIsColorDevice, SInt32 inUserData, MenuTitleDrawingUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppMenuTitleDrawingProcInfo, inBounds, inDepth, inIsColorDevice, inUserData); }
#else
#define InvokeMenuTitleDrawingUPP(inBounds, inDepth, inIsColorDevice, inUserData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppMenuTitleDrawingProcInfo, (inBounds), (inDepth), (inIsColorDevice), (inUserData))
#endif
#endif
/*
* InvokeMenuItemDrawingUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
InvokeMenuItemDrawingUPP(
const Rect * inBounds,
SInt16 inDepth,
Boolean inIsColorDevice,
SInt32 inUserData,
MenuItemDrawingUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeMenuItemDrawingUPP(const Rect * inBounds, SInt16 inDepth, Boolean inIsColorDevice, SInt32 inUserData, MenuItemDrawingUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppMenuItemDrawingProcInfo, inBounds, inDepth, inIsColorDevice, inUserData); }
#else
#define InvokeMenuItemDrawingUPP(inBounds, inDepth, inIsColorDevice, inUserData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppMenuItemDrawingProcInfo, (inBounds), (inDepth), (inIsColorDevice), (inUserData))
#endif
#endif
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
#define NewMenuTitleDrawingProc(userRoutine) NewMenuTitleDrawingUPP(userRoutine)
#define NewMenuItemDrawingProc(userRoutine) NewMenuItemDrawingUPP(userRoutine)
#define CallMenuTitleDrawingProc(userRoutine, inBounds, inDepth, inIsColorDevice, inUserData) InvokeMenuTitleDrawingUPP(inBounds, inDepth, inIsColorDevice, inUserData, userRoutine)
#define CallMenuItemDrawingProc(userRoutine, inBounds, inDepth, inIsColorDevice, inUserData) InvokeMenuItemDrawingUPP(inBounds, inDepth, inIsColorDevice, inUserData, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
/*----------------------------------------------------------------------------------*/
/* Appearance Manager APIs */
/*----------------------------------------------------------------------------------*/
/* Registering Appearance-Savvy Applications */
/*
* RegisterAppearanceClient()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
RegisterAppearanceClient(void) THREEWORDINLINE(0x303C, 0x0015, 0xAA74);
/*
* UnregisterAppearanceClient()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
UnregisterAppearanceClient(void) THREEWORDINLINE(0x303C, 0x0016, 0xAA74);
/*
* IsAppearanceClient()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
IsAppearanceClient(const ProcessSerialNumber * process) THREEWORDINLINE(0x303C, 0xFFFF, 0xAA74);
/*****************************************************************************
NOTES ON THEME BRUSHES
Theme brushes can be either colors or patterns, depending on the theme.
Because of this, you should be prepared to handle the case where a brush
is a pattern and save and restore the pnPixPat and bkPixPat fields of
your GrafPorts when saving the fore and back colors. Also, since patterns
in bkPixPat override the background color of the window, you should use
BackPat to set your background pattern to a normal white pattern. This
will ensure that you can use RGBBackColor to set your back color to white,
call EraseRect and get the expected results.
*****************************************************************************/
/*
* SetThemePen()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemePen(
ThemeBrush inBrush,
SInt16 inDepth,
Boolean inIsColorDevice) THREEWORDINLINE(0x303C, 0x0001, 0xAA74);
/*
* SetThemeBackground()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeBackground(
ThemeBrush inBrush,
SInt16 inDepth,
Boolean inIsColorDevice) THREEWORDINLINE(0x303C, 0x0002, 0xAA74);
/*
* SetThemeTextColor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeTextColor(
ThemeTextColor inColor,
SInt16 inDepth,
Boolean inIsColorDevice) THREEWORDINLINE(0x303C, 0x0003, 0xAA74);
/*
* SetThemeWindowBackground()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeWindowBackground(
WindowRef inWindow,
ThemeBrush inBrush,
Boolean inUpdate) THREEWORDINLINE(0x303C, 0x0004, 0xAA74);
/* Window Placards, Headers and Frames */
/*
* DrawThemeWindowHeader()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeWindowHeader(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x0005, 0xAA74);
/*
* DrawThemeWindowListViewHeader()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeWindowListViewHeader(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x0006, 0xAA74);
/*
* DrawThemePlacard()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemePlacard(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x0007, 0xAA74);
/*
* DrawThemeEditTextFrame()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeEditTextFrame(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x0009, 0xAA74);
/*
* DrawThemeListBoxFrame()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeListBoxFrame(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x000A, 0xAA74);
/* Keyboard Focus Drawing */
/*
* DrawThemeFocusRect()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeFocusRect(
const Rect * inRect,
Boolean inHasFocus) THREEWORDINLINE(0x303C, 0x000B, 0xAA74);
/* Dialog Group Boxes and Separators */
/*
* DrawThemePrimaryGroup()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemePrimaryGroup(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x000C, 0xAA74);
/*
* DrawThemeSecondaryGroup()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeSecondaryGroup(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x000D, 0xAA74);
/*
* DrawThemeSeparator()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeSeparator(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x000E, 0xAA74);
/*------------------------------ BEGIN APPEARANCE 1.0.1 --------------------------------------------*/
/* The following Appearance Manager APIs are only available */
/* in Appearance 1.0.1 or later */
/*
* DrawThemeModelessDialogFrame()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeModelessDialogFrame(
const Rect * inRect,
ThemeDrawState inState) THREEWORDINLINE(0x303C, 0x0008, 0xAA74);
/*
* DrawThemeGenericWell()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeGenericWell(
const Rect * inRect,
ThemeDrawState inState,
Boolean inFillCenter) THREEWORDINLINE(0x303C, 0x0022, 0xAA74);
/*
* DrawThemeFocusRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeFocusRegion(
RgnHandle inRegion,
Boolean inHasFocus) THREEWORDINLINE(0x303C, 0x0023, 0xAA74);
/*
* IsThemeInColor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
IsThemeInColor(
SInt16 inDepth,
Boolean inIsColorDevice) THREEWORDINLINE(0x303C, 0x0024, 0xAA74);
/* IMPORTANT: GetThemeAccentColors will only work in the platinum theme. Any other theme will */
/* most likely return an error */
/*
* GetThemeAccentColors()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeAccentColors(CTabHandle * outColors) THREEWORDINLINE(0x303C, 0x0025, 0xAA74);
/*
* DrawThemeMenuBarBackground()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeMenuBarBackground(
const Rect * inBounds,
ThemeMenuBarState inState,
UInt32 inAttributes) THREEWORDINLINE(0x303C, 0x0018, 0xAA74);
/*
* DrawThemeMenuTitle()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeMenuTitle(
const Rect * inMenuBarRect,
const Rect * inTitleRect,
ThemeMenuState inState,
UInt32 inAttributes,
MenuTitleDrawingUPP inTitleProc, /* can be NULL */
UInt32 inTitleData) THREEWORDINLINE(0x303C, 0x0019, 0xAA74);
/*
* GetThemeMenuBarHeight()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMenuBarHeight(SInt16 * outHeight) THREEWORDINLINE(0x303C, 0x001A, 0xAA74);
/*
* DrawThemeMenuBackground()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeMenuBackground(
const Rect * inMenuRect,
ThemeMenuType inMenuType) THREEWORDINLINE(0x303C, 0x001B, 0xAA74);
/*
* GetThemeMenuBackgroundRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMenuBackgroundRegion(
const Rect * inMenuRect,
ThemeMenuType menuType,
RgnHandle region) THREEWORDINLINE(0x303C, 0x001C, 0xAA74);
/*
* DrawThemeMenuItem()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeMenuItem(
const Rect * inMenuRect,
const Rect * inItemRect,
SInt16 inVirtualMenuTop,
SInt16 inVirtualMenuBottom,
ThemeMenuState inState,
ThemeMenuItemType inItemType,
MenuItemDrawingUPP inDrawProc, /* can be NULL */
UInt32 inUserData) THREEWORDINLINE(0x303C, 0x001D, 0xAA74);
/*
* DrawThemeMenuSeparator()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeMenuSeparator(const Rect * inItemRect) THREEWORDINLINE(0x303C, 0x001E, 0xAA74);
/*
* GetThemeMenuSeparatorHeight()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMenuSeparatorHeight(SInt16 * outHeight) THREEWORDINLINE(0x303C, 0x001F, 0xAA74);
/*
* GetThemeMenuItemExtra()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMenuItemExtra(
ThemeMenuItemType inItemType,
SInt16 * outHeight,
SInt16 * outWidth) THREEWORDINLINE(0x303C, 0x0020, 0xAA74);
/*
* GetThemeMenuTitleExtra()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMenuTitleExtra(
SInt16 * outWidth,
Boolean inIsSquished) THREEWORDINLINE(0x303C, 0x0021, 0xAA74);
/*------------------------------- BEGIN APPEARANCE 1.1 ---------------------------------------------*/
/*---------------------------------- THEME SWITCHING -----------------------------------------------*/
/* */
/* X ALERT: Please note that Get/SetTheme are severely neutered under Mac OS X at present. */
/* See the note above regarding what collection tags are supported under X. */
/*
* GetTheme()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetTheme(Collection ioCollection);
/*
* SetTheme()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetTheme(Collection ioCollection);
/*
* IterateThemes()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
IterateThemes(
ThemeIteratorUPP inProc,
void * inUserData); /* can be NULL */
/*---------------------------------------- TABS ----------------------------------------------------*/
/*
* DrawThemeTabPane()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTabPane(
const Rect * inRect,
ThemeDrawState inState);
/*
* DrawThemeTab()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTab(
const Rect * inRect,
ThemeTabStyle inStyle,
ThemeTabDirection inDirection,
ThemeTabTitleDrawUPP labelProc, /* can be NULL */
UInt32 userData);
/*
* GetThemeTabRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTabRegion(
const Rect * inRect,
ThemeTabStyle inStyle,
ThemeTabDirection inDirection,
RgnHandle ioRgn);
/*--------------------------------------- CURSORS --------------------------------------------------*/
/*
* SetThemeCursor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeCursor(ThemeCursor inCursor);
/*
* SetAnimatedThemeCursor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetAnimatedThemeCursor(
ThemeCursor inCursor,
UInt32 inAnimationStep);
/*-------------------------------- CONTROL STYLE SETTINGS ------------------------------------------*/
/*
* GetThemeScrollBarThumbStyle()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeScrollBarThumbStyle(ThemeScrollBarThumbStyle * outStyle);
/*
* GetThemeScrollBarArrowStyle()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeScrollBarArrowStyle(ThemeScrollBarArrowStyle * outStyle);
/*
* GetThemeCheckBoxStyle()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeCheckBoxStyle(ThemeCheckBoxStyle * outStyle);
/*---------------------------------------- FONTS/TEXT ----------------------------------------------*/
/*
* UseThemeFont()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
UseThemeFont(
ThemeFontID inFontID,
ScriptCode inScript);
/*
* GetThemeFont()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeFont(
ThemeFontID inFontID,
ScriptCode inScript,
Str255 outFontName, /* can be NULL */
SInt16 * outFontSize,
Style * outStyle);
/*
* DrawThemeTextBox()
*
* Summary:
* Draws text into the area you specify.
*
* Discussion:
* DrawThemeTextBox allows you to draw theme-savvy (ie. Aqua-savvy
* on Mac OS X) text. It is unicode savvy (although only partially
* so under CarbonLib), and allows you to customize certain text
* rendering characteristics such as the font, wrapping behavior,
* and justification. The text is drawn into the CGContextRef you
* provide, or into the current Quickdraw port if no CGContextRef is
* provided. None of DrawThemeTextBox's parameters imply a color, so
* you must set up the desired text color separately before calling
* DrawThemeTextBox. If you provide a CGContextRef, its fill color
* will be used to draw the text. If you do not provide a
* CGContextRef, a color based on the current Quickdraw port's
* foreground color and the grayishTextOr mode (if set) will be used
* to draw the text.
*
* 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 DrawThemeTextBox's caches.
*
* inFontID:
* The ThemeFontID describing the font you'd like to render the
* text with. See the discussion of ThemeFontIDs elsewhere in this
* header.
*
* inState:
* The ThemeDrawState describing the the state of the interface
* element you are drawing the text for. If, for example, you are
* drawing text for an inactive window, you would pass
* kThemeStateInactive. The ThemeDrawState is generally only used
* to determine the shadow characteristics for the text on Mac OS
* X. Note that the ThemeDrawState does NOT imply a color. It is
* NOT used as a mechanism for graying the text. If you wish to
* draw grayed text, you must set up the desired gray color and
* apply it to either the current Quickdraw port or the
* CGContextRef as appropriate.
*
* inWrapToWidth:
* A Boolean indicating whether you want to draw multiple lines of
* text wrapped to a bounding box. False indicates that only one
* line of text should be drawn without any sort of wrapping.
*
* inBoundingBox:
* The rectangle (in coordinates relative to the current Quickdraw
* port) describing the area to draw the text within. The first
* line of text will be top-justified to this rectangle. Wrapping
* (if desired) will happen at the horizontal extent of this
* rectangle. Regardless of the amount of text in your
* CFStringRef, all drawn text will be clipped to this rectangle.
*
* inJust:
* The horizontal justification you would like for your text. You
* can use one of the standard justification constants from
* TextEdit.h.
*
* inContext:
* The CGContextRef into which you would like to draw the text. On
* Mac OS X, all text drawing happens in CGContextRefs; if you
* pass NULL, a transient CGContextRef will be allocated and
* deallocated for use within the single API call. Relying on the
* system behavior if transiently createing CGContextRefs may
* result in performance problems. On Mac OS 9, the CGContextRef
* parameter is ignored.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTextBox(
CFStringRef inString,
ThemeFontID inFontID,
ThemeDrawState inState,
Boolean inWrapToWidth,
const Rect * inBoundingBox,
SInt16 inJust,
void * inContext);
/*
* TruncateThemeText()
*
* Summary:
* Truncates text to fit within the width you specify.
*
* Discussion:
* TruncateThemeText alters a unicode string to fit within a width
* that you specify. It is unicode savvy (although only partially so
* under CarbonLib), and makes its calculations (and any subsequent
* string alteration) based on the font and state you specify. If
* the string needs to be truncated, it will be reduced to the
* maximum number of characters which (with the addition of an
* ellipsis character) fits within the specified width.
*
* Parameters:
*
* inString:
* A CFMutableStringRef containing the unicode characters you wish
* to truncate. On output, inString may have been altered to fit
* within the specified width. You MUST NOT pass in a CFStringRef
* that was allocated with any of the "NoCopy" CFString creation
* APIs (see note in DrawThemeTextBox above).
*
* inFontID:
* The ThemeFontID to use for text measurements. See the
* discussion of ThemeFontIDs elsewhere in this header.
*
* inState:
* The ThemeDrawState which matches the state you will ultimately
* render the string width. This may affect text measurement
* during truncation, so you should be sure the value you pass to
* TruncateThemeText matches the value you will eventually use for
* drawing.
*
* inPixelWidthLimit:
* The maximum width (in pixels) that the resulting truncated
* string may have.
*
* inTruncWhere:
* A TruncCode indicating where you would like truncation to occur.
*
* outTruncated:
* On output, this Boolean value indicates whether the string was
* truncated. True means the string was truncated. False means the
* string was not (and did not need to be) truncated.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
TruncateThemeText(
CFMutableStringRef inString,
ThemeFontID inFontID,
ThemeDrawState inState,
SInt16 inPixelWidthLimit,
TruncCode inTruncWhere,
Boolean * outTruncated); /* can be NULL */
/*
* GetThemeTextDimensions()
*
* Summary:
* Tells you the height, width, and baseline for a string.
*
* Discussion:
* GetThemeTextDimensions measures the given string using a font and
* state you specify. It always reports the actual height and
* baseline. It sometimes reports the actual width (see below). It
* can measure a string that wraps. It is unicode savvy (although
* only partially so under CarbonLib).
*
* 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 (see note in
* DrawThemeTextBox above).
*
* inFontID:
* The ThemeFontID describing the font you'd like to measure the
* text with. See the discussion of ThemeFontIDs elsewhere in this
* header.
*
* inState:
* The ThemeDrawState which matches the state you will ultimately
* render the string width. This may affect text measurement, so
* you should be sure the value you pass to TruncateThemeText
* matches the value you will eventually use for drawing.
*
* inWrapToWidth:
* A Boolean indicating whether you want the measurements based on
* wrapping the text to a specific width. If you pass true, you
* must specify the desired width in ioBounds->h.
*
* ioBounds:
* On output, ioBounds->v contains the height of the text. If you
* pass false to inWrapToWidth, ioBounds->h will contain the width
* of the text on output. If you pass true to inWrapToWidth,
* ioBounds->h must (on input) contain the desired width for
* wrapping; on output, ioBounds->h contains the same value you
* specified on input.
*
* outBaseline:
* On output, outBaseline contains the offset (in Quickdraw space)
* from the bottom edge of the last line of text to the baseline
* of the first line of text. outBaseline will generally be a
* negative value.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTextDimensions(
CFStringRef inString,
ThemeFontID inFontID,
ThemeDrawState inState,
Boolean inWrapToWidth,
Point * ioBounds,
SInt16 * outBaseline);
/*
* GetThemeTextShadowOutset()
*
* Summary:
* Tells you the amount of space taken up by the shadow for a given
* font/state combination.
*
* Discussion:
* GetThemeTextShadowOutset passes back the maximum amount of space
* the shadow will take up for text drawn in the specified font and
* state. While GetThemeTextDimensions tells you how much space is
* taken up by the character glyphs themselves, it does not
* incorporate the font/state shadow into its calculations. If you
* need to know how much total space including the shadow will be
* taken up, call GetThemeTextDimensions followed by
* GetThemeTextShadowOutset.
*
* Parameters:
*
* inFontID:
* The ThemeFontID describing the font you'd like the shadow
* characteristics of. Font and state both determine the amount of
* shadow that will be used on rendered text. See the discussion
* of ThemeFontIDs elsewhere in this header.
*
* inState:
* The ThemeDrawState which matches the state you'd like the
* shadow characteristics of. Font and state both determine the
* amount of shadow that will be used on rendered text.
*
* outOutset:
* On output, outOutset contains the amount of space the shadow
* will take up beyond each edge of the text bounding rectangle
* returned by GetThemeTextDimensions. The fields of outOutset
* will either be positive values or zero.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTextShadowOutset(
ThemeFontID inFontID,
ThemeDrawState inState,
Rect * outOutset);
/*---------------------------------------- TRACKS --------------------------------------------------*/
/*
* DrawThemeTrack()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTrack(
const ThemeTrackDrawInfo * drawInfo,
RgnHandle rgnGhost, /* can be NULL */
ThemeEraseUPP eraseProc, /* can be NULL */
UInt32 eraseData);
/*
* HitTestThemeTrack()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
HitTestThemeTrack(
const ThemeTrackDrawInfo * drawInfo,
Point mousePoint,
ControlPartCode * partHit);
/*
* GetThemeTrackBounds()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackBounds(
const ThemeTrackDrawInfo * drawInfo,
Rect * bounds);
/*
* GetThemeTrackThumbRgn()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackThumbRgn(
const ThemeTrackDrawInfo * drawInfo,
RgnHandle thumbRgn);
/*
* GetThemeTrackDragRect()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackDragRect(
const ThemeTrackDrawInfo * drawInfo,
Rect * dragRect);
/*
* DrawThemeTrackTickMarks()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTrackTickMarks(
const ThemeTrackDrawInfo * drawInfo,
ItemCount numTicks,
ThemeEraseUPP eraseProc, /* can be NULL */
UInt32 eraseData);
/*
* GetThemeTrackThumbPositionFromOffset()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackThumbPositionFromOffset(
const ThemeTrackDrawInfo * drawInfo,
Point thumbOffset,
SInt32 * relativePosition);
/*
* GetThemeTrackThumbPositionFromRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackThumbPositionFromRegion(
const ThemeTrackDrawInfo * drawInfo,
RgnHandle thumbRgn,
SInt32 * relativePosition);
/*
* GetThemeTrackLiveValue()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTrackLiveValue(
const ThemeTrackDrawInfo * drawInfo,
SInt32 relativePosition,
SInt32 * value);
/*----------------------------------- SCROLLBAR ARROWS ---------------------------------------------*/
/*
* DrawThemeScrollBarArrows()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeScrollBarArrows(
const Rect * bounds,
ThemeTrackEnableState enableState,
ThemeTrackPressState pressState,
Boolean isHoriz,
Rect * trackBounds);
/*
* GetThemeScrollBarTrackRect()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeScrollBarTrackRect(
const Rect * bounds,
ThemeTrackEnableState enableState,
ThemeTrackPressState pressState,
Boolean isHoriz,
Rect * trackBounds);
/*
* HitTestThemeScrollBarArrows()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
HitTestThemeScrollBarArrows(
const Rect * scrollBarBounds,
ThemeTrackEnableState enableState,
ThemeTrackPressState pressState,
Boolean isHoriz,
Point ptHit,
Rect * trackBounds,
ControlPartCode * partcode);
/*---------------------------------------- WINDOWS -------------------------------------------------*/
/*
* GetThemeWindowRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeWindowRegion(
ThemeWindowType flavor,
const Rect * contRect,
ThemeDrawState state,
const ThemeWindowMetrics * metrics,
ThemeWindowAttributes attributes,
WindowRegionCode winRegion,
RgnHandle rgn);
/*
* DrawThemeWindowFrame()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeWindowFrame(
ThemeWindowType flavor,
const Rect * contRect,
ThemeDrawState state,
const ThemeWindowMetrics * metrics,
ThemeWindowAttributes attributes,
WindowTitleDrawingUPP titleProc, /* can be NULL */
UInt32 titleData);
/*
* DrawThemeTitleBarWidget()
*
* Summary:
* Draws the requested theme title bar widget.
*
* Discussion:
* DrawThemeTitleBarWidget 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.
*
* Parameters:
*
* flavor:
* A valid ThemeWindowtype describing the type of theme window for
* which you would like to draw a widget.
*
* contRect:
* 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.
*
* state:
* A valid ThemeDrawState which describes the state of the window
* for which the widget is to be drawn.
*
* metrics:
* A pointer to a set of valid ThemeWindowMetrics. At this time,
* none of the fields of the metrics are pertinent to the widgets,
* so the only important field is the metricSize field to mark the
* structure as valid.
*
* attributes:
* A valid ThemeWindowAttributes set which describes the window
* for which the widget is to be drawn.
*
* widget:
* A valid ThemeTitleBarWidget set which describes which widget to
* draw.
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTitleBarWidget(
ThemeWindowType flavor,
const Rect * contRect,
ThemeDrawState state,
const ThemeWindowMetrics * metrics,
ThemeWindowAttributes attributes,
ThemeTitleBarWidget widget);
/*
* GetThemeWindowRegionHit()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
GetThemeWindowRegionHit(
ThemeWindowType flavor,
const Rect * inContRect,
ThemeDrawState state,
const ThemeWindowMetrics * metrics,
ThemeWindowAttributes inAttributes,
Point inPoint,
WindowRegionCode * outRegionHit);
/*
* DrawThemeScrollBarDelimiters()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeScrollBarDelimiters(
ThemeWindowType flavor,
const Rect * inContRect,
ThemeDrawState state,
ThemeWindowAttributes attributes);
/*---------------------------------------- BUTTONS -------------------------------------------------*/
/*
* DrawThemeButton()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeButton(
const Rect * inBounds,
ThemeButtonKind inKind,
const ThemeButtonDrawInfo * inNewInfo,
const ThemeButtonDrawInfo * inPrevInfo, /* can be NULL */
ThemeEraseUPP inEraseProc, /* can be NULL */
ThemeButtonDrawUPP inLabelProc, /* can be NULL */
UInt32 inUserData);
/*
* GetThemeButtonRegion()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeButtonRegion(
const Rect * inBounds,
ThemeButtonKind inKind,
const ThemeButtonDrawInfo * inNewInfo,
RgnHandle outRegion);
/*
* GetThemeButtonContentBounds()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeButtonContentBounds(
const Rect * inBounds,
ThemeButtonKind inKind,
const ThemeButtonDrawInfo * inDrawInfo,
Rect * outBounds);
/*
* GetThemeButtonBackgroundBounds()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeButtonBackgroundBounds(
const Rect * inBounds,
ThemeButtonKind inKind,
const ThemeButtonDrawInfo * inDrawInfo,
Rect * outBounds);
/*------------------------------------- INTERFACE SOUNDS -------------------------------------------*/
/* */
/* X ALERT: Please note that the sound APIs do not work on Mac OS X at present. */
/*
* PlayThemeSound()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
PlayThemeSound(ThemeSoundKind kind) THREEWORDINLINE(0x303C, 0x0026, 0xAA74);
/*
* BeginThemeDragSound()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
BeginThemeDragSound(ThemeDragSoundKind kind) THREEWORDINLINE(0x303C, 0x0027, 0xAA74);
/*
* EndThemeDragSound()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
EndThemeDragSound(void) THREEWORDINLINE(0x303C, 0x0028, 0xAA74);
/*-------------------------------------- PRIMITIVES ------------------------------------------------*/
/*
* DrawThemeTickMark()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeTickMark(
const Rect * bounds,
ThemeDrawState state);
/*
* DrawThemeChasingArrows()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeChasingArrows(
const Rect * bounds,
UInt32 index,
ThemeDrawState state,
ThemeEraseUPP eraseProc, /* can be NULL */
UInt32 eraseData);
/*
* DrawThemePopupArrow()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemePopupArrow(
const Rect * bounds,
ThemeArrowOrientation orientation,
ThemePopupArrowSize size,
ThemeDrawState state,
ThemeEraseUPP eraseProc, /* can be NULL */
UInt32 eraseData);
/*
* DrawThemeStandaloneGrowBox()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeStandaloneGrowBox(
Point origin,
ThemeGrowDirection growDirection,
Boolean isSmall,
ThemeDrawState state);
/*
* DrawThemeStandaloneNoGrowBox()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DrawThemeStandaloneNoGrowBox(
Point origin,
ThemeGrowDirection growDirection,
Boolean isSmall,
ThemeDrawState state);
/*
* GetThemeStandaloneGrowBoxBounds()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeStandaloneGrowBoxBounds(
Point origin,
ThemeGrowDirection growDirection,
Boolean isSmall,
Rect * bounds);
/*------------------------------------- DRAWING STATE ----------------------------------------------*/
/* The following routines help you save and restore the drawing state in a theme-savvy manner. With */
/* these weapons in your arsenal, there is no grafport you cannot tame. Use ThemeGetDrawingState to */
/* get the current drawing settings for the current port. It will return an opaque object for you */
/* to pass into SetThemeDrawingState later on. When you are finished with the state, call the */
/* DisposeThemeDrawingState routine. You can alternatively pass true into the inDisposeNow */
/* parameter of the SetThemeDrawingState routine. You can use this routine to copy the drawing */
/* state from one port to another as well. */
/* */
/* As of this writing (Mac OS 9.1 and Mac OS X), Get/SetThemeDrawingState will save and restore */
/* this data in the port: */
/* */
/* pen size */
/* pen location */
/* pen mode */
/* pen Pattern and PixPat */
/* background Pattern and PixPat */
/* RGB foreground and background colors */
/* text mode */
/* pattern origin */
/* */
/* Get/SetThemeDrawingState may save and restore additional port state in the future, but you can */
/* rely on them to always save at least this port state. */
/*
* NormalizeThemeDrawingState()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
NormalizeThemeDrawingState(void);
/*
* GetThemeDrawingState()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeDrawingState(ThemeDrawingState * outState);
/*
* SetThemeDrawingState()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeDrawingState(
ThemeDrawingState inState,
Boolean inDisposeNow);
/*
* DisposeThemeDrawingState()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
DisposeThemeDrawingState(ThemeDrawingState inState);
/*------------------------------------- MISCELLANEOUS ----------------------------------------------*/
/* ApplyThemeBackground is used to set up the background for embedded controls */
/* It is normally called by controls that are embedders. The standard controls */
/* call this API to ensure a correct background for the current theme. You pass */
/* in the same rectangle you would if you were calling the drawing primitive. */
/*
* ApplyThemeBackground()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
ApplyThemeBackground(
ThemeBackgroundKind inKind,
const Rect * bounds,
ThemeDrawState inState,
SInt16 inDepth,
Boolean inColorDev);
/*
* SetThemeTextColorForWindow()
*
* Summary:
* Sets a text color which contrasts with a theme brush.
*
* Discussion:
* SetThemeTextColorForWindow sets a text color in the specified
* window's port which contrasts with the specified brush and also
* matches the inActive parameter. Only a subset of the theme
* brushes have theme text colors: currently (as of Mac OS 9 and Mac
* OS X 10.1), the Alert, Dialog, ModelessDialog, and Notification
* brushes have corresponding text colors. For any other brush,
* SetThemeTextColorForWindow returns themeNoAppropriateBrushErr and
* does not modify the text color.
*
* Parameters:
*
* inWindow:
* The window whose text color to change.
*
* inActive:
* Whether the text color should indicate an active or inactive
* state.
*
* inDepth:
* The bit depth of the window's port.
*
* inColorDev:
* Whether the window's port is color or black&white.
*
* Result:
* An operating system result code, including
* themeNoAppropriateBrushErr if the specified theme brush does not
* have a corresponding theme text color.
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
SetThemeTextColorForWindow(
WindowRef inWindow,
Boolean inActive,
SInt16 inDepth,
Boolean inColorDev);
/*
* IsValidAppearanceFileType()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
IsValidAppearanceFileType(OSType fileType);
/*
* GetThemeBrushAsColor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeBrushAsColor(
ThemeBrush inBrush,
SInt16 inDepth,
Boolean inColorDev,
RGBColor * outColor);
/*
* GetThemeTextColor()
*
* Availability:
* Non-Carbon CFM: in AppearanceLib 1.1 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeTextColor(
ThemeTextColor inColor,
SInt16 inDepth,
Boolean inColorDev,
RGBColor * outColor);
/*--------------------------------------- BEGIN CARBON ---------------------------------------------*/
/*
* GetThemeMetric()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSStatus )
GetThemeMetric(
ThemeMetric inMetric,
SInt32 * outMetric);
/*
* CopyThemeIdentifier()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.4 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( OSStatus )
CopyThemeIdentifier(CFStringRef * outIdentifier);
/*--------------------------------------------------------------------------------------------------*/
/* Obsolete symbolic names */
/*--------------------------------------------------------------------------------------------------*/
/* Obsolete error codes - use the new ones, s'il vous plait / kudasai */
enum {
appearanceBadBrushIndexErr = themeInvalidBrushErr, /* pattern index invalid */
appearanceProcessRegisteredErr = themeProcessRegisteredErr,
appearanceProcessNotRegisteredErr = themeProcessNotRegisteredErr,
appearanceBadTextColorIndexErr = themeBadTextColorErr,
appearanceThemeHasNoAccents = themeHasNoAccentsErr,
appearanceBadCursorIndexErr = themeBadCursorIndexErr
};
enum {
kThemeActiveDialogBackgroundBrush = kThemeBrushDialogBackgroundActive,
kThemeInactiveDialogBackgroundBrush = kThemeBrushDialogBackgroundInactive,
kThemeActiveAlertBackgroundBrush = kThemeBrushAlertBackgroundActive,
kThemeInactiveAlertBackgroundBrush = kThemeBrushAlertBackgroundInactive,
kThemeActiveModelessDialogBackgroundBrush = kThemeBrushModelessDialogBackgroundActive,
kThemeInactiveModelessDialogBackgroundBrush = kThemeBrushModelessDialogBackgroundInactive,
kThemeActiveUtilityWindowBackgroundBrush = kThemeBrushUtilityWindowBackgroundActive,
kThemeInactiveUtilityWindowBackgroundBrush = kThemeBrushUtilityWindowBackgroundInactive,
kThemeListViewSortColumnBackgroundBrush = kThemeBrushListViewSortColumnBackground,
kThemeListViewBackgroundBrush = kThemeBrushListViewBackground,
kThemeIconLabelBackgroundBrush = kThemeBrushIconLabelBackground,
kThemeListViewSeparatorBrush = kThemeBrushListViewSeparator,
kThemeChasingArrowsBrush = kThemeBrushChasingArrows,
kThemeDragHiliteBrush = kThemeBrushDragHilite,
kThemeDocumentWindowBackgroundBrush = kThemeBrushDocumentWindowBackground,
kThemeFinderWindowBackgroundBrush = kThemeBrushFinderWindowBackground
};
enum {
kThemeActiveScrollBarDelimiterBrush = kThemeBrushScrollBarDelimiterActive,
kThemeInactiveScrollBarDelimiterBrush = kThemeBrushScrollBarDelimiterInactive,
kThemeFocusHighlightBrush = kThemeBrushFocusHighlight,
kThemeActivePopupArrowBrush = kThemeBrushPopupArrowActive,
kThemePressedPopupArrowBrush = kThemeBrushPopupArrowPressed,
kThemeInactivePopupArrowBrush = kThemeBrushPopupArrowInactive,
kThemeAppleGuideCoachmarkBrush = kThemeBrushAppleGuideCoachmark
};
enum {
kThemeActiveDialogTextColor = kThemeTextColorDialogActive,
kThemeInactiveDialogTextColor = kThemeTextColorDialogInactive,
kThemeActiveAlertTextColor = kThemeTextColorAlertActive,
kThemeInactiveAlertTextColor = kThemeTextColorAlertInactive,
kThemeActiveModelessDialogTextColor = kThemeTextColorModelessDialogActive,
kThemeInactiveModelessDialogTextColor = kThemeTextColorModelessDialogInactive,
kThemeActiveWindowHeaderTextColor = kThemeTextColorWindowHeaderActive,
kThemeInactiveWindowHeaderTextColor = kThemeTextColorWindowHeaderInactive,
kThemeActivePlacardTextColor = kThemeTextColorPlacardActive,
kThemeInactivePlacardTextColor = kThemeTextColorPlacardInactive,
kThemePressedPlacardTextColor = kThemeTextColorPlacardPressed,
kThemeActivePushButtonTextColor = kThemeTextColorPushButtonActive,
kThemeInactivePushButtonTextColor = kThemeTextColorPushButtonInactive,
kThemePressedPushButtonTextColor = kThemeTextColorPushButtonPressed,
kThemeActiveBevelButtonTextColor = kThemeTextColorBevelButtonActive,
kThemeInactiveBevelButtonTextColor = kThemeTextColorBevelButtonInactive,
kThemePressedBevelButtonTextColor = kThemeTextColorBevelButtonPressed,
kThemeActivePopupButtonTextColor = kThemeTextColorPopupButtonActive,
kThemeInactivePopupButtonTextColor = kThemeTextColorPopupButtonInactive,
kThemePressedPopupButtonTextColor = kThemeTextColorPopupButtonPressed,
kThemeIconLabelTextColor = kThemeTextColorIconLabel,
kThemeListViewTextColor = kThemeTextColorListView
};
enum {
kThemeActiveDocumentWindowTitleTextColor = kThemeTextColorDocumentWindowTitleActive,
kThemeInactiveDocumentWindowTitleTextColor = kThemeTextColorDocumentWindowTitleInactive,
kThemeActiveMovableModalWindowTitleTextColor = kThemeTextColorMovableModalWindowTitleActive,
kThemeInactiveMovableModalWindowTitleTextColor = kThemeTextColorMovableModalWindowTitleInactive,
kThemeActiveUtilityWindowTitleTextColor = kThemeTextColorUtilityWindowTitleActive,
kThemeInactiveUtilityWindowTitleTextColor = kThemeTextColorUtilityWindowTitleInactive,
kThemeActivePopupWindowTitleColor = kThemeTextColorPopupWindowTitleActive,
kThemeInactivePopupWindowTitleColor = kThemeTextColorPopupWindowTitleInactive,
kThemeActiveRootMenuTextColor = kThemeTextColorRootMenuActive,
kThemeSelectedRootMenuTextColor = kThemeTextColorRootMenuSelected,
kThemeDisabledRootMenuTextColor = kThemeTextColorRootMenuDisabled,
kThemeActiveMenuItemTextColor = kThemeTextColorMenuItemActive,
kThemeSelectedMenuItemTextColor = kThemeTextColorMenuItemSelected,
kThemeDisabledMenuItemTextColor = kThemeTextColorMenuItemDisabled,
kThemeActivePopupLabelTextColor = kThemeTextColorPopupLabelActive,
kThemeInactivePopupLabelTextColor = kThemeTextColorPopupLabelInactive
};
enum {
kAEThemeSwitch = kAEAppearanceChanged /* Event ID's: Theme Switched */
};
enum {
kThemeNoAdornment = kThemeAdornmentNone,
kThemeDefaultAdornment = kThemeAdornmentDefault,
kThemeFocusAdornment = kThemeAdornmentFocus,
kThemeRightToLeftAdornment = kThemeAdornmentRightToLeft,
kThemeDrawIndicatorOnly = kThemeAdornmentDrawIndicatorOnly
};
enum {
kThemeBrushPassiveAreaFill = kThemeBrushStaticAreaFill
};
enum {
kThemeMetricCheckBoxGlyphHeight = kThemeMetricCheckBoxHeight,
kThemeMetricRadioButtonGlyphHeight = kThemeMetricRadioButtonHeight,
kThemeMetricDisclosureButtonSize = kThemeMetricDisclosureButtonHeight,
kThemeMetricBestListHeaderHeight = kThemeMetricListHeaderHeight,
kThemeMetricSmallProgressBarThickness = kThemeMetricNormalProgressBarThickness, /* obsolete */
kThemeMetricProgressBarThickness = kThemeMetricLargeProgressBarThickness /* obsolete */
};
enum {
kThemeScrollBar = kThemeMediumScrollBar,
kThemeSlider = kThemeMediumSlider,
kThemeProgressBar = kThemeMediumProgressBar,
kThemeIndeterminateBar = kThemeMediumIndeterminateBar
};
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __APPEARANCE__ */