diff options
author | das <das> | 2006-09-10 17:06:31 (GMT) |
---|---|---|
committer | das <das> | 2006-09-10 17:06:31 (GMT) |
commit | 41dfe0d4791ea37a1f6a7c3b069b3f41c79466b0 (patch) | |
tree | 13ad5944ad3d007fdcb67d4af43aa55cb42e1470 /macosx/tkMacOSXColor.c | |
parent | b0768715132b6b828aa0ec352e5c4669097307f9 (diff) | |
download | tk-41dfe0d4791ea37a1f6a7c3b069b3f41c79466b0.zip tk-41dfe0d4791ea37a1f6a7c3b069b3f41c79466b0.tar.gz tk-41dfe0d4791ea37a1f6a7c3b069b3f41c79466b0.tar.bz2 |
* macosx/tkMacOSXColor.c (TkSetMacColor, TkpGetColor): use AppearanceMgr
* macosx/tkMacOSXDefault.h: to retrieve platform std colors for text
* macosx/tkMacOSXPort.h: selections, add "systemHighlightSecondary"
color name for standard color of inactive selections, use this color as
default for text widget -inactiveselectbackground to implement platform
standard look for inactive text selections.
* library/text.tcl (aqua): remove focus bindings to set selection color.
* generic/tkTextBTree.c (TkTextIsElided): on TkAqua, don't show inactive
* generic/tkTextDisp.c (GetStyle): text selection when text
widget is in disabled state.
* generic/tkEntry.c (DisplayEntry): change default TkAqua selection
* macosx/tkMacOSXDefault.h: relief to "flat" (platform std).
* generic/tkText.c (CreateWidget): fix bug leading to default text
selection relief string DEF_TEXT_SELECT_RELIEF being ignored.
* macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): allow mouse
event delivery to background windows with kWindowNoActivatesAttribute
(e.g. overrideredirect windows), as these never come to the foreground
they would not receive any mouse events otherwise. [Bug 1472624]
* macosx/tkMacOSXWindowEvent.c (TkMacOSXGenerateFocusEvent): do not
send focus events to any windows with kWindowNoActivatesAttribute.
* macosx/tkMacOSXXStubs.c (XQueryColor, XQueryColors): implement basic
XColor computation from pixel values, enough to make tkImg's window.c
happy, fixes img::window failures reported on tcl-mac.
* macosx/tkMacOSXMenu.c (DrawMenuEntryLabel): fix leak. [Bug 1554672]
* macosx/GNUmakefile: workaround bug in 'cp -pRH' on Darwin 6 and
earlier, fixes 'make embedded' failure reported on tcl-mac; fix error
from 'make deploy' with same build tree as previous 'make embedded'.
* macosx/Wish.xcodeproj/project.pbxproj: add new tclUnixCompat.c file.
* macosx/tkMacOSXEntry.c (TkpDrawEntryBorderAndFocus): fix typo.
* unix/tcl.m4: sync with tcl/unix/tcl.m4.
* unix/configure: autoconf-2.59
Diffstat (limited to 'macosx/tkMacOSXColor.c')
-rw-r--r-- | macosx/tkMacOSXColor.c | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/macosx/tkMacOSXColor.c b/macosx/tkMacOSXColor.c index 78d80e1..b69354a 100644 --- a/macosx/tkMacOSXColor.c +++ b/macosx/tkMacOSXColor.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXColor.c,v 1.4 2006/03/24 14:58:01 das Exp $ + * RCS: @(#) $Id: tkMacOSXColor.c,v 1.5 2006/09/10 17:06:32 das Exp $ */ #include "tkMacOSXInt.h" @@ -58,12 +58,36 @@ TkSetMacColor( unsigned long pixel, /* Pixel value to convert. */ RGBColor *macColor) /* Mac color struct to modify. */ { + OSStatus err; + switch (pixel >> 24) { case HIGHLIGHT_PIXEL: - LMGetHiliteRGB(macColor); + err = GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, + 32, true, macColor); + if (err != noErr) { + LMGetHiliteRGB(macColor); + } + return true; + case HIGHLIGHT_SECONDARY_PIXEL: + err = GetThemeBrushAsColor(kThemeBrushSecondaryHighlightColor, + 32, true, macColor); + if (err != noErr) { + LMGetHiliteRGB(macColor); + } + return true; + case HIGHLIGHT_ALTERNATE_PIXEL: + err = GetThemeBrushAsColor(kThemeBrushAlternatePrimaryHighlightColor, + 32, true, macColor); + if (err != noErr) { + LMGetHiliteRGB(macColor); + } return true; case HIGHLIGHT_TEXT_PIXEL: - LMGetHiliteRGB(macColor); + err = GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, + 32, true, macColor); + if (err != noErr) { + LMGetHiliteRGB(macColor); + } if ((macColor->red == 0) && (macColor->green == 0) && (macColor->blue == 0)) { macColor->red = macColor->green = macColor->blue = 0xFFFF; @@ -228,16 +252,41 @@ TkpGetColor( * will do all the work. */ if (strncasecmp(name, "system", 6) == 0) { - int foundSystemColor = false; + OSStatus err; + int foundSystemColor = false; RGBColor rgbValue; char pixelCode = 0; if (!strcasecmp(name+6, "Highlight")) { - LMGetHiliteRGB(&rgbValue); + err = GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, + 32, true, &rgbValue); + if (err != noErr) { + LMGetHiliteRGB(&rgbValue); + } pixelCode = HIGHLIGHT_PIXEL; foundSystemColor = true; + } else if (!strcasecmp(name+6, "HighlightSecondary")) { + err = GetThemeBrushAsColor(kThemeBrushSecondaryHighlightColor, + 32, true, &rgbValue); + if (err != noErr) { + LMGetHiliteRGB(&rgbValue); + } + pixelCode = HIGHLIGHT_SECONDARY_PIXEL; + foundSystemColor = true; + } else if (!strcasecmp(name+6, "HighlightAlternate")) { + err = GetThemeBrushAsColor(kThemeBrushAlternatePrimaryHighlightColor, + 32, true, &rgbValue); + if (err != noErr) { + LMGetHiliteRGB(&rgbValue); + } + pixelCode = HIGHLIGHT_ALTERNATE_PIXEL; + foundSystemColor = true; } else if (!strcasecmp(name+6, "HighlightText")) { - LMGetHiliteRGB(&rgbValue); + err = GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, + 32, true, &rgbValue); + if (err != noErr) { + LMGetHiliteRGB(&rgbValue); + } if ((rgbValue.red == 0) && (rgbValue.green == 0) && (rgbValue.blue == 0)) { rgbValue.red = rgbValue.green = rgbValue.blue = 0xFFFF; |