From c98df1c19d30a8159574b672ae1a9146b419b846 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber < martin.oberhuber@windriver.com> Date: Tue, 25 Jan 2011 18:23:17 +0000 Subject: [PATCH] Bug 335358 - [terminal] Terminal colors don't match expectations --- .../org.eclipse.tm.releng/maps/terminal.map | 2 +- .../terminal/textcanvas/StyleMap.java | 63 +++++++++++++------ 2 files changed, 45 insertions(+), 20 deletions(-) diff --git a/releng/org.eclipse.tm.releng/maps/terminal.map b/releng/org.eclipse.tm.releng/maps/terminal.map index 361b4eb50dd..8f543b15fcb 100644 --- a/releng/org.eclipse.tm.releng/maps/terminal.map +++ b/releng/org.eclipse.tm.releng/maps/terminal.map @@ -7,7 +7,7 @@ feature@org.eclipse.tm.terminal.ssh=v201101042155,:pserver:anonymous:none@dev.ec feature@org.eclipse.tm.terminal.telnet=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.telnet-feature feature@org.eclipse.tm.terminal.test=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.test-feature feature@org.eclipse.tm.terminal.view=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.view-feature -plugin@org.eclipse.tm.terminal=v201101251721,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal +plugin@org.eclipse.tm.terminal=v201101251823,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal plugin@org.eclipse.tm.terminal.local=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.local plugin@org.eclipse.tm.terminal.serial=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.serial plugin@org.eclipse.tm.terminal.ssh=v201101042155,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/tools,,org.eclipse.tm.core/terminal/org.eclipse.tm.terminal.ssh diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java index 376f206e7a9..8dc2a8a6699 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2009 Wind River Systems, Inc. and others. + * Copyright (c) 2007, 2011 Wind River Systems, Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,6 +11,7 @@ * Michael Scharf (Wind River) - [209746] There are cases where some colors not displayed correctly * Michael Scharf (Wind River) - [206328] Terminal does not draw correctly with proportional fonts * Martin Oberhuber (Wind River) - [247700] Terminal uses ugly fonts in JEE package + * Martin Oberhuber (Wind River) - [335358] Fix Terminal color definition *******************************************************************************/ package org.eclipse.tm.internal.terminal.textcanvas; @@ -46,6 +47,7 @@ public class StyleMap { String fFontName=fDefaultFontName; Map fColorMapForeground=new HashMap(); Map fColorMapBackground=new HashMap(); + Map fColorMapIntense=new HashMap(); Map fFontMap=new HashMap(); private Point fCharSize; private final Style fDefaultStyle; @@ -60,24 +62,25 @@ public class StyleMap { private void initColors() { initForegroundColors(); initBackgroundColors(); + initIntenseColors(); } private void initForegroundColors() { if(fInvertColors) { setColor(fColorMapForeground, WHITE, 0, 0, 0); setColor(fColorMapForeground, WHITE_FOREGROUND, 50, 50, 50); - setColor(fColorMapForeground, BLACK, 255, 255, 255); + setColor(fColorMapForeground, BLACK, 229, 229, 229); } else { setColor(fColorMapForeground, WHITE, 255, 255, 255); setColor(fColorMapForeground, WHITE_FOREGROUND, 229, 229, 229); - setColor(fColorMapForeground, BLACK, 0, 0, 0); + setColor(fColorMapForeground, BLACK, 50, 50, 50); } - setColor(fColorMapForeground, RED, 255, 128, 128); - setColor(fColorMapForeground, GREEN, 128, 255, 128); - setColor(fColorMapForeground, BLUE, 128, 128, 255); - setColor(fColorMapForeground, YELLOW, 255, 255, 0); - setColor(fColorMapForeground, CYAN, 0, 255, 255); - setColor(fColorMapForeground, MAGENTA, 255, 255, 0); - setColor(fColorMapForeground, GRAY, 128, 128, 128); + setColor(fColorMapForeground, RED, 205, 0, 0); + setColor(fColorMapForeground, GREEN, 0, 205, 0); + setColor(fColorMapForeground, BLUE, 0, 0, 238); + setColor(fColorMapForeground, YELLOW, 205, 205, 0); + setColor(fColorMapForeground, CYAN, 0, 205, 205); + setColor(fColorMapForeground, MAGENTA, 205, 0, 205); + setColor(fColorMapForeground, GRAY, 229, 229, 229); } private void initBackgroundColors() { @@ -90,14 +93,34 @@ public class StyleMap { setColor(fColorMapBackground, WHITE_FOREGROUND, 229, 229, 229); setColor(fColorMapBackground, BLACK, 0, 0, 0); } - setColor(fColorMapBackground, RED, 255, 128, 128); - setColor(fColorMapBackground, GREEN, 128, 255, 128); - setColor(fColorMapBackground, BLUE, 128, 128, 255); - setColor(fColorMapBackground, YELLOW, 255, 255, 0); - setColor(fColorMapBackground, CYAN, 0, 255, 255); - setColor(fColorMapBackground, MAGENTA, 255, 255, 0); - setColor(fColorMapBackground, GRAY, 128, 128, 128); + setColor(fColorMapBackground, RED, 205, 0, 0); + setColor(fColorMapBackground, GREEN, 0, 205, 0); + setColor(fColorMapBackground, BLUE, 0, 0, 238); + setColor(fColorMapBackground, YELLOW, 205, 205, 0); + setColor(fColorMapBackground, CYAN, 0, 205, 205); + setColor(fColorMapBackground, MAGENTA, 205, 0, 205); + setColor(fColorMapBackground, GRAY, 229, 229, 229); } + + private void initIntenseColors() { + if(fInvertColors) { + setColor(fColorMapIntense, WHITE, 127, 127, 127); + setColor(fColorMapIntense, WHITE_FOREGROUND, 0, 0, 0); // only used when colors are inverse + setColor(fColorMapIntense, BLACK, 255, 255, 255); + } else { + setColor(fColorMapIntense, WHITE, 255, 255, 255); + setColor(fColorMapIntense, WHITE_FOREGROUND, 255, 255, 255); + setColor(fColorMapIntense, BLACK, 0, 0, 0); + } + setColor(fColorMapIntense, RED, 255, 0, 0); + setColor(fColorMapIntense, GREEN, 0, 255, 0); + setColor(fColorMapIntense, BLUE, 92, 92, 255); + setColor(fColorMapIntense, YELLOW, 255, 255, 0); + setColor(fColorMapIntense, CYAN, 0, 255, 255); + setColor(fColorMapIntense, MAGENTA, 255, 0, 255); + setColor(fColorMapIntense, GRAY, 255, 255, 255); + } + private void setColor(Map colorMap, String name, int r, int g, int b) { String colorName=PREFIX+r+"-"+g+"-"+b; //$NON-NLS-1$//$NON-NLS-2$ Color color=JFaceResources.getColorRegistry().get(colorName); @@ -111,10 +134,12 @@ public class StyleMap { public Color getForegrondColor(Style style) { style = defaultIfNull(style); + Map map = style.isBold() ? fColorMapIntense : fColorMapForeground; + //Map map = fColorMapForeground; if(style.isReverse()) - return getColor(fColorMapForeground,style.getBackground()); + return getColor(map ,style.getBackground()); else - return getColor(fColorMapForeground,style.getForground()); + return getColor(map ,style.getForground()); } public Color getBackgroundColor(Style style) { style = defaultIfNull(style);