diff options
author | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2013-02-11 15:44:51 -0500 |
---|---|---|
committer | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2013-02-11 15:46:29 -0500 |
commit | 40f0666725aa9b62387fe88a595b4779150ca9e9 (patch) | |
tree | c7b85eda3c5d69cabce5dd1ef0a161f39382ca2a /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse | |
parent | 6d3d38cb0da75c6fb82119f8ae008e1e6eae0d4f (diff) | |
download | eclipse.platform.swt-40f0666725aa9b62387fe88a595b4779150ca9e9.tar.gz eclipse.platform.swt-40f0666725aa9b62387fe88a595b4779150ca9e9.tar.xz eclipse.platform.swt-40f0666725aa9b62387fe88a595b4779150ca9e9.zip |
Bug 181592 - [Widgets] Need a color constant for active and inactive hyperlink colors
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java | 40 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java | 4 |
2 files changed, 27 insertions, 17 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java index 67f10158ce..2f77e37cd4 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java @@ -270,7 +270,7 @@ public class Display extends Device { GdkColor COLOR_WIDGET_HIGHLIGHT_SHADOW, COLOR_WIDGET_BACKGROUND, COLOR_WIDGET_FOREGROUND, COLOR_WIDGET_BORDER; GdkColor COLOR_LIST_FOREGROUND, COLOR_LIST_BACKGROUND, COLOR_LIST_SELECTION, COLOR_LIST_SELECTION_TEXT; GdkColor COLOR_LIST_SELECTION_INACTIVE, COLOR_LIST_SELECTION_TEXT_INACTIVE; - GdkColor COLOR_INFO_BACKGROUND, COLOR_INFO_FOREGROUND; + GdkColor COLOR_INFO_BACKGROUND, COLOR_INFO_FOREGROUND, COLOR_LINK_FOREGROUND; GdkColor COLOR_TITLE_FOREGROUND, COLOR_TITLE_BACKGROUND, COLOR_TITLE_BACKGROUND_GRADIENT; GdkColor COLOR_TITLE_INACTIVE_FOREGROUND, COLOR_TITLE_INACTIVE_BACKGROUND, COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT; @@ -2100,6 +2100,7 @@ public Color getSystemColor (int id) { checkDevice (); GdkColor gdkColor = null; switch (id) { + case SWT.COLOR_LINK_FOREGROUND: gdkColor = COLOR_LINK_FOREGROUND; break; case SWT.COLOR_INFO_FOREGROUND: gdkColor = COLOR_INFO_FOREGROUND; break; case SWT.COLOR_INFO_BACKGROUND: gdkColor = COLOR_INFO_BACKGROUND; break; case SWT.COLOR_TITLE_FOREGROUND: gdkColor = COLOR_TITLE_FOREGROUND; break; @@ -2281,12 +2282,30 @@ GdkColor toGdkColor (GdkRGBA rgba, double m) { } void initializeSystemColors () { + long /*int*/ tooltipShellHandle = OS.gtk_window_new (OS.GTK_WINDOW_POPUP); + if (tooltipShellHandle == 0) error (SWT.ERROR_NO_HANDLES); + byte[] gtk_tooltip = Converter.wcsToMbcs (null, OS.GTK3 ? "gtk-tooltip" : "gtk-tooltips", true); //$NON-NLS-1$ + OS.gtk_widget_set_name (tooltipShellHandle, gtk_tooltip); + OS.gtk_widget_realize (tooltipShellHandle); + + /* Initialize link foreground */ + long /*int*/ linkWidget = OS.gtk_label_new (new byte[1]); + if (linkWidget == 0) error (SWT.ERROR_NO_HANDLES); + OS.gtk_container_add (tooltipShellHandle, linkWidget); + long /*int*/ [] linkColor = new long /*int*/ [1]; + OS.gtk_widget_style_get (linkWidget, OS.link_color, linkColor, 0); + GdkColor gdkColor = new GdkColor(); + if (linkColor [0] != 0) { + OS.memmove (gdkColor, linkColor[0], GdkColor.sizeof); + OS.gdk_color_free (linkColor [0]); + } else { + gdkColor.blue = (short)0xeeee; + } + long /*int*/ colormap = OS.gdk_colormap_get_system(); + OS.gdk_colormap_alloc_color(colormap, gdkColor, true, true); + COLOR_LINK_FOREGROUND = gdkColor; + if (OS.GTK3) { - long /*int*/ tooltipShellHandle = OS.gtk_window_new (OS.GTK_WINDOW_POPUP); - if (tooltipShellHandle == 0) error (SWT.ERROR_NO_HANDLES); - byte[] gtk_tooltip = Converter.wcsToMbcs (null, "gtk-tooltip", true); //$NON-NLS-1$ - OS.gtk_widget_set_name (tooltipShellHandle, gtk_tooltip); - OS.gtk_widget_realize (tooltipShellHandle); long /*int*/ context = OS.gtk_widget_get_style_context (tooltipShellHandle); OS.gtk_style_context_add_class (context, OS.GTK_STYLE_CLASS_TOOLTIP); GdkRGBA rgba = new GdkRGBA(); @@ -2339,14 +2358,7 @@ void initializeSystemColors () { return; } - GdkColor gdkColor; - /* Get Tooltip resources */ - long /*int*/ tooltipShellHandle = OS.gtk_window_new (OS.GTK_WINDOW_POPUP); - if (tooltipShellHandle == 0) error (SWT.ERROR_NO_HANDLES); - byte[] gtk_tooltips = Converter.wcsToMbcs (null, "gtk-tooltips", true); //$NON-NLS-1$ - OS.gtk_widget_set_name (tooltipShellHandle, gtk_tooltips); - OS.gtk_widget_realize (tooltipShellHandle); long /*int*/ tooltipStyle = OS.gtk_widget_get_style (tooltipShellHandle); gdkColor = new GdkColor(); OS.gtk_style_get_fg (tooltipStyle, OS.GTK_STATE_NORMAL, gdkColor); @@ -3513,7 +3525,7 @@ void releaseDisplay () { COLOR_LIST_SELECTION_INACTIVE = COLOR_LIST_SELECTION_TEXT_INACTIVE = COLOR_WIDGET_FOREGROUND = COLOR_TITLE_FOREGROUND = COLOR_TITLE_BACKGROUND = COLOR_TITLE_BACKGROUND_GRADIENT = COLOR_TITLE_INACTIVE_FOREGROUND = COLOR_TITLE_INACTIVE_BACKGROUND = COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT = - COLOR_INFO_BACKGROUND = COLOR_INFO_FOREGROUND = null; + COLOR_INFO_BACKGROUND = COLOR_INFO_FOREGROUND = COLOR_LINK_FOREGROUND = null; /* Dispose the event callback */ OS.gdk_event_handler_set (0, 0, 0); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java index 916a78fab4..8b4d89a7e6 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java @@ -48,7 +48,6 @@ public class Link extends Control { int [] mnemonics; int focusIndex; - static final RGB LINK_FOREGROUND = new RGB (0, 51, 153); static final RGB LINK_DISABLED_FOREGROUND = new RGB (172, 168, 153); /** @@ -148,7 +147,7 @@ void createHandle(int index) { gtk_widget_set_has_window (handle, true); gtk_widget_set_can_focus (handle, true); layout = new TextLayout (display); - linkColor = new Color (display, LINK_FOREGROUND); + linkColor = display.getSystemColor(SWT.COLOR_LINK_FOREGROUND); disabledColor = new Color (display, LINK_DISABLED_FOREGROUND); offsets = new Point [0]; ids = new String [0]; @@ -486,7 +485,6 @@ void releaseWidget () { super.releaseWidget (); if (layout != null) layout.dispose (); layout = null; - if (linkColor != null) linkColor.dispose (); linkColor = null; if (disabledColor != null) disabledColor.dispose (); disabledColor = null; |