1/*******************************************************************************
2 * Copyright (c) 2011 Google, Inc.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 *    Google, Inc. - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.wb.draw2d;
12
13import org.eclipse.swt.SWT;
14import org.eclipse.swt.graphics.Color;
15import org.eclipse.swt.widgets.Display;
16
17/**
18 * A collection of color-related constants.
19 *
20 * @author lobas_av
21 * @coverage gef.draw2d
22 */
23public interface IColorConstants {
24  /**
25   * System color used to paint highlight shadow areas.
26   */
27  Color buttonLightest = Utils.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
28  /**
29   * System color used to paint background areas.
30   */
31  Color button = Utils.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
32  /**
33   * System color used to paint normal shadow areas.
34   */
35  Color buttonDarker = Utils.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
36//  /**
37//   * System color used to paint dark shadow areas.
38//   */
39//  Color buttonDarkest = Utils.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
40  /**
41   * System color used to paint list background areas.
42   */
43  Color listBackground = Utils.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
44  /**
45   * System color used to paint list foreground areas.
46   */
47  Color listForeground = Utils.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
48  /**
49   * System color used to paint list selection area.
50   */
51  Color listSelection = Utils.getSystemColor(SWT.COLOR_LIST_SELECTION);
52  /**
53   * System color used to paint list selection text.
54   */
55  Color listSelectionText = Utils.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
56  /**
57   * System color used to paint tooltip text.
58   */
59  Color tooltipForeground = Utils.getSystemColor(SWT.COLOR_INFO_FOREGROUND);
60  /**
61   * System color used to paint tooltip background areas.
62   */
63  Color tooltipBackground = Utils.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
64  /**
65   * Miscellaneous colors.
66   */
67  Color lightGray = new Color(null, 192, 192, 192);
68  Color gray = new Color(null, 128, 128, 128);
69  Color darkGray = new Color(null, 64, 64, 64);
70  Color black = new Color(null, 0, 0, 0);
71  Color lightBlue = new Color(null, 127, 127, 255);
72  Color darkBlue = new Color(null, 0, 0, 127);
73
74  ////////////////////////////////////////////////////////////////////////////
75  //
76  // Utils
77  //
78  ////////////////////////////////////////////////////////////////////////////
79  /**
80   * Internal helper.
81   */
82  public static class Utils {
83    /**
84     * Invokes {@link Display#getSystemColor(int)} in UI thread.
85     */
86    private static Color getSystemColor(final int id) {
87      final Color[] color = new Color[1];
88      final Display display = Display.getDefault();
89      display.syncExec(new Runnable() {
90        @Override
91        public void run() {
92          color[0] = display.getSystemColor(id);
93        }
94      });
95      return color[0];
96    }
97  }
98}