diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Appearance.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/Appearance.h')
| -rw-r--r-- | common/quicktime_win32/Appearance.h | 3834 |
1 files changed, 3834 insertions, 0 deletions
diff --git a/common/quicktime_win32/Appearance.h b/common/quicktime_win32/Appearance.h new file mode 100644 index 0000000..7808db3 --- /dev/null +++ b/common/quicktime_win32/Appearance.h @@ -0,0 +1,3834 @@ +/* + 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__ */ + |