OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / util / src / TclTk / tk8.6.12 / macosx / tkMacOSXColor.h
diff --git a/util/src/TclTk/tk8.6.12/macosx/tkMacOSXColor.h b/util/src/TclTk/tk8.6.12/macosx/tkMacOSXColor.h
new file mode 100644 (file)
index 0000000..bc9d307
--- /dev/null
@@ -0,0 +1,266 @@
+#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:
+ */