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