1765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/*******************************************************************************
2765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Copyright (c) 2011 Google, Inc.
3765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * All rights reserved. This program and the accompanying materials
4765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * are made available under the terms of the Eclipse Public License v1.0
5765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * which accompanies this distribution, and is available at
6765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * http://www.eclipse.org/legal/epl-v10.html
7765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *
8765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Contributors:
9765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *    Google, Inc. - initial API and implementation
10765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *******************************************************************************/
11765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepackage org.eclipse.wb.draw2d;
12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye
13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.SWT;
14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.graphics.Color;
15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.widgets.Display;
16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye
17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/**
18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * A collection of color-related constants.
19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *
20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author lobas_av
21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage gef.draw2d
22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */
23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic interface IColorConstants {
24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint highlight shadow areas.
26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color buttonLightest = Utils.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint background areas.
30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color button = Utils.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint normal shadow areas.
34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color buttonDarker = Utils.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye//  /**
37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye//   * System color used to paint dark shadow areas.
38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye//   */
39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye//  Color buttonDarkest = Utils.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint list background areas.
42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color listBackground = Utils.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint list foreground areas.
46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color listForeground = Utils.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint list selection area.
50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color listSelection = Utils.getSystemColor(SWT.COLOR_LIST_SELECTION);
52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint list selection text.
54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color listSelectionText = Utils.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint tooltip text.
58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color tooltipForeground = Utils.getSystemColor(SWT.COLOR_INFO_FOREGROUND);
60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * System color used to paint tooltip background areas.
62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color tooltipBackground = Utils.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * Miscellaneous colors.
66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color lightGray = new Color(null, 192, 192, 192);
68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color gray = new Color(null, 128, 128, 128);
69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color darkGray = new Color(null, 64, 64, 64);
704b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  Color black = new Color(null, 0, 0, 0);
71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color lightBlue = new Color(null, 127, 127, 255);
72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  Color darkBlue = new Color(null, 0, 0, 127);
73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye
74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  ////////////////////////////////////////////////////////////////////////////
75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  //
76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  // Utils
77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  //
78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  ////////////////////////////////////////////////////////////////////////////
79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  /**
80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   * Internal helper.
81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye   */
82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  public static class Utils {
83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye    /**
84765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye     * Invokes {@link Display#getSystemColor(int)} in UI thread.
85765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye     */
86765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye    private static Color getSystemColor(final int id) {
87765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye      final Color[] color = new Color[1];
88765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye      final Display display = Display.getDefault();
89765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye      display.syncExec(new Runnable() {
90765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye        @Override
91765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye        public void run() {
92765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye          color[0] = display.getSystemColor(id);
93765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye        }
94765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye      });
95765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye      return color[0];
96765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye    }
97765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye  }
98765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye}