/******************************************************************************* * <copyright> * * Copyright (c) 2005, 2010 SAP AG. * 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: * SAP AG - initial API, implementation and documentation * * </copyright> * *******************************************************************************/ package org.eclipse.graphiti.internal.contextbuttons; import java.awt.Rectangle; import java.util.List; import org.eclipse.graphiti.util.IColorConstant; /** * This interface provides the visual definition for the context button pad. * <p> * The context button pad consists of three pads (top, right, bottom), which are * slightly overlapping, so that they build one coherent area. Several context * buttons are placed inside those three pads and also outside (e.g. the * collapse button). * * @noimplement This interface is not intended to be implemented by clients. * @noextend This class is not intended to be subclassed by clients. */ public interface IContextButtonPadDeclaration { public enum PadStyle { STANDARD, APPENDAGE }; /** * Returns the context buttons to be placed on the context button pad. Each * {@link PositionedContextButton} contains information about the visual * definition of the context button. * * @return The context buttons to be placed on the context button pad. */ List<PositionedContextButton> getPositionedContextButtons(); /** * Returns the rectangular bounds of the top pad. Can be null. * * @return The rectangular bounds of the top pad. Can be null. */ Rectangle getTopPad(); /** * Returns the rectangular bounds of the right pad. Can be null. * * @return The rectangular bounds of the right pad. Can be null. */ Rectangle getRightPad(); /** * Returns the rectangular bounds of the bottom pad. Can be null. * * @return The rectangular bounds of the bottom pad. Can be null. */ Rectangle getBottomPad(); /** * Returns the top pad style. * * @return The top pad style. */ PadStyle getTopPadStyle(); /** * Returns the top pad style. * * @return The top pad style. */ PadStyle getRightPadStyle(); /** * Returns the rectangular bounds around all visible areas of the context * button pad. They might or might not overlap. A point is defined to be on * the context button pad, if it is inside one of those rectangles. * * @return The rectangular bounds around all visible areas of the context * button pad. */ List<Rectangle> getContainmentRectangles(); /** * Returns the overlapping rectangular bounds around all visible areas of * the context button pad. All rectangles overlap and build an area, which * has no free space in the middle. A point is defined to be on or inside * the context button pad, if it is inside one of those rectangles. * * @return The overlapping rectangular bounds around all visible areas of * the context button pad. */ List<Rectangle> getOverlappingContainmentRectangles(); /** * Returns the corner radius which is used to paint all corners of the pad. * * @return The corner radius which is used to paint all corners of the pad. */ int getPadCornerRadius(); /** * Returns the line width which is used to paint the outline of the pad. * * @return The line width which is used to paint the outline of the pad. */ int getPadLineWidth(); /** * Returns the color in which the outer line of the pads outline is painted. * Note, that the pad is outlined with three adjacent lines (outer, middle, * inner) and then filled inside. * * @return The color in which the outer line of the pads outline is painted. */ IColorConstant getPadOuterLineColor(); /** * Returns the color in which the middle line of the pads outline is * painted. Note, that the pad is outlined with three adjacent lines (outer, * middle, inner) and then filled inside. * * @return The color in which the middle line of the pads outline is * painted. */ IColorConstant getPadMiddleLineColor(); /** * Returns the color in which the inner line of the pads outline is painted. * Note, that the pad is outlined with three adjacent lines (outer, middle, * inner) and then filled inside. * * @return The color in which the inner line of the pads outline is painted. */ IColorConstant getPadInnerLineColor(); /** * Returns the color in which the pads outline is filled. Note, that the pad * is outlined with three adjacent lines (outer, middle, inner) and then * filled inside. * * @return The color in which the pads outline is filled. */ IColorConstant getPadFillColor(); /** * Returns the opacity which is used when painting the pad. Possible values * are between 0.0 (invisible, transparent) and 1.0 (completely visible, * opaque). * * @return The opacity which is used when painting the pad. */ double getPadDefaultOpacity(); }