/******************************************************************************
 * Copyright (c) 2004 IBM Corporation 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
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    IBM Corporation - initial API and implementation 
 ****************************************************************************/

package org.eclipse.gmf.examples.runtime.diagram.logic.internal.figures;

import org.eclipse.swt.graphics.Color;

/**
 * code copied from real logic example in gef
 */
/*
 * @canBeSeenBy org.eclipse.gmf.examples.runtime.diagram.logic.*
 */
public interface LogicColorConstants
{

public final static Color andGate = new Color(null, 220,70,80);
public final static Color orGate = new Color (null, 0, 134, 255);
public final static Color xorGate = new Color (null, 240,240,40);
public final static Color logicGreen = new Color(null, 123,174,148);
public final static Color logicHighlight = new Color(null,66,166,115);
public final static Color connectorGreen = new Color(null,0,69,40);
public final static Color logicBackgroundBlue = new Color(null, 200, 200, 240);
public final static Color ghostFillColor = new Color(null, 31, 31, 31);
public final static Color logicBlack = new Color(null, 0, 0, 0);
public final static Color displayText = new Color(null, 255, 199, 16);

}
