#ifndef MACOSXCOLOR_H #define MACOSXCOLOR_H /* * The generic Tk code uses the X11 GC type to describe a graphics context. * (A GC is a pointer to a struct XGCValues). The foreground and background * colors in a GC are unsigned longs. These are meant to be used as indexes * into a table of XColors, where an XColor is declared in Xlib.h as: * typedef struct { * unsigned long pixel; * unsigned short red, green, blue; * char flags; * char pad; * } XColor; * * The xlib function XParseColor creates XColors from strings. It recognizes * literal hexadecimal color specifications such as "#RRGGBB" as well as the * standard X11 color names. When XParseColor creates an XColor it fills in * all of the fields except for the pixel field, and then passes the XColor * to TkpGetPixel to get a value to use for the pixel field. Since TkpGetPixel * is platform specific, each platform is free to choose a value which can * be used to set the foreground or background color in the platform's graphics * context. * * Tk represents a color by a struct TkColor, which extends the XColor struct. * Tk provides a mapping from color names to TkColors which extends the mapping * provided by XParseColor but also allows for platform specific color names. * By convention, these platform specific color names begin with the string * "system". The mapping from names to TkColors is implemented by the function * TkpGetColor defined for the Macintosh in this file. The pixel field in the * XColor contained in a TkColor will be stored in the X11 graphics context. * In X11 the pixel field is used as an index into a colormap. On the Mac * the high order byte of the pixel is used to indicate a color type and * the low 24 bits are either used as an rgb value (if the type is rgbColor) * or as an index into a table of color descriptions. */ enum colorType { rgbColor, /* The 24 bit value is an rgb color. */ clearColor, /* The unique rgba color with all channels 0. */ HIBrush, /* A HITheme brush color.*/ HIText, /* A HITheme text color. */ HIBackground, /* A HITheme background color. */ ttkBackground, /* A background color which indicates nesting level.*/ semantic, /* A semantic NSColor.*/ }; typedef struct xpixel_t { unsigned value: 24; /* Either RGB or an index into systemColorMap. */ unsigned colortype: 8; } xpixel; typedef union MacPixel_t { unsigned long ulong; xpixel pixel; } MacPixel; /* * We maintain two colormaps, one for the LightAqua appearance and one for the * DarkAqua appearance. */ enum macColormap { noColormap, lightColormap, darkColormap, }; /* * In TkMacOSXColor.c a Tk hash table is constructed from the static data * below to map system color names to CGColors. */ typedef struct { const char *name; enum colorType type; int value; const char *macName; /* Fields below are filled in after or during construction of the hash table. */ int index; NSString *selector; } SystemColorDatum; /* * WARNING: Semantic colors which are not supported on all systems must be * preceded by a backup color with the same name which *is* supported. Systems * which do support the color will replace the backup value when the table is * constructed. Failing to ensure this will result in a Tcl_Panic abort. */ static SystemColorDatum systemColorData[] = { {"Pixel", rgbColor, 0, NULL, 0, NULL }, {"Transparent", clearColor, 0, NULL, 0, NULL }, {"Highlight", HIBrush, kThemeBrushPrimaryHighlightColor, NULL, 0, NULL }, {"HighlightSecondary", HIBrush, kThemeBrushSecondaryHighlightColor, NULL, 0, NULL }, {"HighlightText", HIBrush, kThemeBrushBlack, NULL, 0, NULL }, {"HighlightAlternate", HIBrush, kThemeBrushAlternatePrimaryHighlightColor, NULL, 0, NULL }, {"PrimaryHighlightColor", HIBrush, kThemeBrushPrimaryHighlightColor, NULL, 0, NULL }, {"ButtonFace", HIBrush, kThemeBrushButtonFaceActive, NULL, 0, NULL }, {"SecondaryHighlightColor", HIBrush, kThemeBrushSecondaryHighlightColor, NULL, 0, NULL }, {"ButtonFrame", HIBrush, kThemeBrushButtonFrameActive, NULL, 0, NULL }, {"AlternatePrimaryHighlightColor", HIBrush, kThemeBrushAlternatePrimaryHighlightColor, NULL, 0, NULL }, {"WindowBody", HIBrush, kThemeBrushDocumentWindowBackground, NULL, 0, NULL }, {"SheetBackground", HIBrush, kThemeBrushSheetBackground, NULL, 0, NULL }, {"MenuActive", HIBrush, kThemeBrushMenuBackgroundSelected, NULL, 0, NULL }, {"Menu", HIBrush, kThemeBrushMenuBackground, NULL, 0, NULL }, {"DialogBackgroundInactive", HIBrush, kThemeBrushDialogBackgroundInactive, NULL, 0, NULL }, {"DialogBackgroundActive", HIBrush, kThemeBrushDialogBackgroundActive, NULL, 0, NULL }, {"AlertBackgroundActive", HIBrush, kThemeBrushAlertBackgroundActive, NULL, 0, NULL }, {"AlertBackgroundInactive", HIBrush, kThemeBrushAlertBackgroundInactive, NULL, 0, NULL }, {"ModelessDialogBackgroundActive", HIBrush, kThemeBrushModelessDialogBackgroundActive, NULL, 0, NULL }, {"ModelessDialogBackgroundInactive", HIBrush, kThemeBrushModelessDialogBackgroundInactive, NULL, 0, NULL }, {"UtilityWindowBackgroundActive", HIBrush, kThemeBrushUtilityWindowBackgroundActive, NULL, 0, NULL }, {"UtilityWindowBackgroundInactive", HIBrush, kThemeBrushUtilityWindowBackgroundInactive, NULL, 0, NULL }, {"ListViewSortColumnBackground", HIBrush, kThemeBrushListViewSortColumnBackground, NULL, 0, NULL }, {"ListViewBackground", HIBrush, kThemeBrushListViewBackground, NULL, 0, NULL }, {"IconLabelBackground", HIBrush, kThemeBrushIconLabelBackground, NULL, 0, NULL }, {"ListViewSeparator", HIBrush, kThemeBrushListViewSeparator, NULL, 0, NULL }, {"ChasingArrows", HIBrush, kThemeBrushChasingArrows, NULL, 0, NULL }, {"DragHilite", HIBrush, kThemeBrushDragHilite, NULL, 0, NULL }, {"DocumentWindowBackground", HIBrush, kThemeBrushDocumentWindowBackground, NULL, 0, NULL }, {"FinderWindowBackground", HIBrush, kThemeBrushFinderWindowBackground, NULL, 0, NULL }, {"ScrollBarDelimiterActive", HIBrush, kThemeBrushScrollBarDelimiterActive, NULL, 0, NULL }, {"ScrollBarDelimiterInactive", HIBrush, kThemeBrushScrollBarDelimiterInactive, NULL, 0, NULL }, {"FocusHighlight", HIBrush, kThemeBrushFocusHighlight, NULL, 0, NULL }, {"PopupArrowActive", HIBrush, kThemeBrushPopupArrowActive, NULL, 0, NULL }, {"PopupArrowPressed", HIBrush, kThemeBrushPopupArrowPressed, NULL, 0, NULL }, {"PopupArrowInactive", HIBrush, kThemeBrushPopupArrowInactive, NULL, 0, NULL }, {"AppleGuideCoachmark", HIBrush, kThemeBrushAppleGuideCoachmark, NULL, 0, NULL }, {"IconLabelBackgroundSelected", HIBrush, kThemeBrushIconLabelBackgroundSelected, NULL, 0, NULL }, {"StaticAreaFill", HIBrush, kThemeBrushStaticAreaFill, NULL, 0, NULL }, {"ActiveAreaFill", HIBrush, kThemeBrushActiveAreaFill, NULL, 0, NULL }, {"ButtonFrameActive", HIBrush, kThemeBrushButtonFrameActive, NULL, 0, NULL }, {"ButtonFrameInactive", HIBrush, kThemeBrushButtonFrameInactive, NULL, 0, NULL }, {"ButtonFaceActive", HIBrush, kThemeBrushButtonFaceActive, NULL, 0, NULL }, {"ButtonFaceInactive", HIBrush, kThemeBrushButtonFaceInactive, NULL, 0, NULL }, {"ButtonFacePressed", HIBrush, kThemeBrushButtonFacePressed, NULL, 0, NULL }, {"ButtonActiveDarkShadow", HIBrush, kThemeBrushButtonActiveDarkShadow, NULL, 0, NULL }, {"ButtonActiveDarkHighlight", HIBrush, kThemeBrushButtonActiveDarkHighlight, NULL, 0, NULL }, {"ButtonActiveLightShadow", HIBrush, kThemeBrushButtonActiveLightShadow, NULL, 0, NULL }, {"ButtonActiveLightHighlight", HIBrush, kThemeBrushButtonActiveLightHighlight, NULL, 0, NULL }, {"ButtonInactiveDarkShadow", HIBrush, kThemeBrushButtonInactiveDarkShadow, NULL, 0, NULL }, {"ButtonInactiveDarkHighlight", HIBrush, kThemeBrushButtonInactiveDarkHighlight, NULL, 0, NULL }, {"ButtonInactiveLightShadow", HIBrush, kThemeBrushButtonInactiveLightShadow, NULL, 0, NULL }, {"ButtonInactiveLightHighlight", HIBrush, kThemeBrushButtonInactiveLightHighlight, NULL, 0, NULL }, {"ButtonPressedDarkShadow", HIBrush, kThemeBrushButtonPressedDarkShadow, NULL, 0, NULL }, {"ButtonPressedDarkHighlight", HIBrush, kThemeBrushButtonPressedDarkHighlight, NULL, 0, NULL }, {"ButtonPressedLightShadow", HIBrush, kThemeBrushButtonPressedLightShadow, NULL, 0, NULL }, {"ButtonPressedLightHighlight", HIBrush, kThemeBrushButtonPressedLightHighlight, NULL, 0, NULL }, {"BevelActiveLight", HIBrush, kThemeBrushBevelActiveLight, NULL, 0, NULL }, {"BevelActiveDark", HIBrush, kThemeBrushBevelActiveDark, NULL, 0, NULL }, {"BevelInactiveLight", HIBrush, kThemeBrushBevelInactiveLight, NULL, 0, NULL }, {"BevelInactiveDark", HIBrush, kThemeBrushBevelInactiveDark, NULL, 0, NULL }, {"NotificationWindowBackground", HIBrush, kThemeBrushNotificationWindowBackground, NULL, 0, NULL }, {"MovableModalBackground", HIBrush, kThemeBrushMovableModalBackground, NULL, 0, NULL }, {"SheetBackgroundOpaque", HIBrush, kThemeBrushSheetBackgroundOpaque, NULL, 0, NULL }, {"DrawerBackground", HIBrush, kThemeBrushDrawerBackground, NULL, 0, NULL }, {"ToolbarBackground", HIBrush, kThemeBrushToolbarBackground, NULL, 0, NULL }, {"SheetBackgroundTransparent", HIBrush, kThemeBrushSheetBackgroundTransparent, NULL, 0, NULL }, {"MenuBackground", HIBrush, kThemeBrushMenuBackground, NULL, 0, NULL }, {"MenuBackgroundSelected", HIBrush, kThemeBrushMenuBackgroundSelected, NULL, 0, NULL }, {"ListViewOddRowBackground", HIBrush, kThemeBrushListViewOddRowBackground, NULL, 0, NULL }, {"ListViewEvenRowBackground", HIBrush, kThemeBrushListViewEvenRowBackground, NULL, 0, NULL }, {"ListViewColumnDivider", HIBrush, kThemeBrushListViewColumnDivider, NULL, 0, NULL }, {"ButtonText", HIText, kThemeTextColorPushButtonActive, NULL, 0, NULL }, {"MenuActiveText", HIText, kThemeTextColorMenuItemSelected, NULL, 0, NULL }, {"MenuDisabled", HIText, kThemeTextColorMenuItemDisabled, NULL, 0, NULL }, {"MenuText", HIText, kThemeTextColorMenuItemActive, NULL, 0, NULL }, {"BlackText", HIText, kThemeTextColorBlack, NULL, 0, NULL }, {"DialogActiveText", HIText, kThemeTextColorDialogActive, NULL, 0, NULL }, {"DialogInactiveText", HIText, kThemeTextColorDialogInactive, NULL, 0, NULL }, {"AlertActiveText", HIText, kThemeTextColorAlertActive, NULL, 0, NULL }, {"AlertInactiveText", HIText, kThemeTextColorAlertInactive, NULL, 0, NULL }, {"ModelessDialogActiveText", HIText, kThemeTextColorModelessDialogActive, NULL, 0, NULL }, {"ModelessDialogInactiveText", HIText, kThemeTextColorModelessDialogInactive, NULL, 0, NULL }, {"WindowHeaderActiveText", HIText, kThemeTextColorWindowHeaderActive, NULL, 0, NULL }, {"WindowHeaderInactiveText", HIText, kThemeTextColorWindowHeaderInactive, NULL, 0, NULL }, {"PlacardActiveText", HIText, kThemeTextColorPlacardActive, NULL, 0, NULL }, {"PlacardInactiveText", HIText, kThemeTextColorPlacardInactive, NULL, 0, NULL }, {"PlacardPressedText", HIText, kThemeTextColorPlacardPressed, NULL, 0, NULL }, {"PushButtonActiveText", HIText, kThemeTextColorPushButtonActive, NULL, 0, NULL }, {"PushButtonInactiveText", HIText, kThemeTextColorPushButtonInactive, NULL, 0, NULL }, {"PushButtonPressedText", HIText, kThemeTextColorPushButtonPressed, NULL, 0, NULL }, {"BevelButtonActiveText", HIText, kThemeTextColorBevelButtonActive, NULL, 0, NULL }, {"BevelButtonInactiveText", HIText, kThemeTextColorBevelButtonInactive, NULL, 0, NULL }, {"BevelButtonPressedText", HIText, kThemeTextColorBevelButtonPressed, NULL, 0, NULL }, {"PopupButtonActiveText", HIText, kThemeTextColorPopupButtonActive, NULL, 0, NULL }, {"PopupButtonInactiveText", HIText, kThemeTextColorPopupButtonInactive, NULL, 0, NULL }, {"PopupButtonPressedText", HIText, kThemeTextColorPopupButtonPressed, NULL, 0, NULL }, {"IconLabelText", HIText, kThemeTextColorIconLabel, NULL, 0, NULL }, {"ListViewText", HIText, kThemeTextColorListView, NULL, 0, NULL }, {"DocumentWindowTitleActiveText", HIText, kThemeTextColorDocumentWindowTitleActive, NULL, 0, NULL }, {"DocumentWindowTitleInactiveText", HIText, kThemeTextColorDocumentWindowTitleInactive, NULL, 0, NULL }, {"MovableModalWindowTitleActiveText", HIText, kThemeTextColorMovableModalWindowTitleActive, NULL, 0, NULL }, {"MovableModalWindowTitleInactiveText", HIText, kThemeTextColorMovableModalWindowTitleInactive, NULL, 0, NULL }, {"UtilityWindowTitleActiveText", HIText, kThemeTextColorUtilityWindowTitleActive, NULL, 0, NULL }, {"UtilityWindowTitleInactiveText", HIText, kThemeTextColorUtilityWindowTitleInactive, NULL, 0, NULL }, {"PopupWindowTitleActiveText", HIText, kThemeTextColorPopupWindowTitleActive, NULL, 0, NULL }, {"PopupWindowTitleInactiveText", HIText, kThemeTextColorPopupWindowTitleInactive, NULL, 0, NULL }, {"RootMenuActiveText", HIText, kThemeTextColorRootMenuActive, NULL, 0, NULL }, {"RootMenuSelectedText", HIText, kThemeTextColorRootMenuSelected, NULL, 0, NULL }, {"RootMenuDisabledText", HIText, kThemeTextColorRootMenuDisabled, NULL, 0, NULL }, {"MenuItemActiveText", HIText, kThemeTextColorMenuItemActive, NULL, 0, NULL }, {"MenuItemSelectedText", HIText, kThemeTextColorMenuItemSelected, NULL, 0, NULL }, {"MenuItemDisabledText", HIText, kThemeTextColorMenuItemDisabled, NULL, 0, NULL }, {"PopupLabelActiveText", HIText, kThemeTextColorPopupLabelActive, NULL, 0, NULL }, {"PopupLabelInactiveText", HIText, kThemeTextColorPopupLabelInactive, NULL, 0, NULL }, {"TabFrontActiveText", HIText, kThemeTextColorTabFrontActive, NULL, 0, NULL }, {"TabNonFrontActiveText", HIText, kThemeTextColorTabNonFrontActive, NULL, 0, NULL }, {"TabNonFrontPressedText", HIText, kThemeTextColorTabNonFrontPressed, NULL, 0, NULL }, {"TabFrontInactiveText", HIText, kThemeTextColorTabFrontInactive, NULL, 0, NULL }, {"TabNonFrontInactiveText", HIText, kThemeTextColorTabNonFrontInactive, NULL, 0, NULL }, {"IconLabelSelectedText", HIText, kThemeTextColorIconLabelSelected, NULL, 0, NULL }, {"BevelButtonStickyActiveText", HIText, kThemeTextColorBevelButtonStickyActive, NULL, 0, NULL }, {"BevelButtonStickyInactiveText", HIText, kThemeTextColorBevelButtonStickyInactive, NULL, 0, NULL }, {"NotificationText", HIText, kThemeTextColorNotification, NULL, 0, NULL }, {"SystemDetailText", HIText, kThemeTextColorSystemDetail, NULL, 0, NULL }, {"PlacardBackground", HIBackground, kThemeBackgroundPlacard, NULL, 0, NULL }, {"WindowHeaderBackground", HIBackground, kThemeBackgroundWindowHeader, NULL, 0, NULL }, {"ListViewWindowHeaderBackground", HIBackground, kThemeBackgroundListViewWindowHeader, NULL, 0, NULL }, {"MetalBackground", HIBackground, kThemeBackgroundMetal, NULL, 0, NULL }, {"SecondaryGroupBoxBackground", HIBackground, kThemeBackgroundSecondaryGroupBox, NULL, 0, NULL }, {"TabPaneBackground", HIBackground, kThemeBackgroundTabPane, NULL, 0, NULL }, {"WhiteText", HIText, kThemeTextColorWhite, NULL, 0, NULL }, {"Black", HIBrush, kThemeBrushBlack, NULL, 0, NULL }, {"White", HIBrush, kThemeBrushWhite, NULL, 0, NULL }, /* * Dynamic Colors */ {"WindowBackgroundColor", ttkBackground, 0, NULL, 0, NULL }, {"WindowBackgroundColor1", ttkBackground, 1, NULL, 0, NULL }, {"WindowBackgroundColor2", ttkBackground, 2, NULL, 0, NULL }, {"WindowBackgroundColor3", ttkBackground, 3, NULL, 0, NULL }, {"WindowBackgroundColor4", ttkBackground, 4, NULL, 0, NULL }, {"WindowBackgroundColor5", ttkBackground, 5, NULL, 0, NULL }, {"WindowBackgroundColor6", ttkBackground, 6, NULL, 0, NULL }, {"WindowBackgroundColor7", ttkBackground, 7, NULL, 0, NULL }, /* Apple's SecondaryLabelColor is the same as their LabelColor so we roll our own. */ {"SecondaryLabelColor", ttkBackground, 14, NULL, 0, NULL }, /* Color to use for notebook tab label text -- depends on OS version. */ {"SelectedTabTextColor", semantic, 0, "textColor", 0, NULL }, /* Color to use for selected button labels -- depends on OS version. */ {"PressedButtonTextColor", semantic, 0, "textColor", 0, NULL }, /* Semantic colors that we simulate on older systems which don't supoort them. */ {"ControlAccentColor", semantic, 0, "controlAccentColor", 0, NULL }, {"LabelColor", semantic, 0, "blackColor", 0, NULL }, {"LinkColor", semantic, 0, "blueColor", 0, NULL }, {"PlaceholderTextColor", semantic, 0, "grayColor", 0, NULL }, {"SeparatorColor", semantic, 0, "grayColor", 0, NULL }, {"UnemphasizedSelectedTextBackgroundColor", semantic, 0, "grayColor", 0, NULL }, {NULL, rgbColor, 0, NULL, 0, NULL } }; #endif /* * Local Variables: * mode: objc * c-basic-offset: 4 * fill-column: 79 * coding: utf-8 * End: */