/*******************************************************************************
* Copyright (c) Emil Crumhorn - Hexapixel.com - emil.crumhorn@gmail.com
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* emil.crumhorn@gmail.com - initial API and implementation
*******************************************************************************/
package org.eclipse.nebula.widgets.ganttchart;
import org.eclipse.swt.graphics.Color;
/**
* Interface holding all color methods, such as line colors, background fills, etc.
*
* @author Emil
*
*/
public interface IColorManager extends IFillBackgroundColors {
/**
* The color used for drawing lines.
*
* @return Color
*/
Color getLineColor();
/**
* The color used for drawing the vertical line showing where the next week starts (or the previous week ends).
*
* @return Color
*/
Color getWeekDividerLineColor();
/**
* The color used for drawing text.
*
* @return Color
*/
Color getTextColor();
/**
* The foreground color of the letters of the week in the bottom header.
*
* @return Color
*/
Color getWeekdayTextColor();
/**
* The color used for drawing the Saturday letter.
*
* @return Color
*/
Color getSaturdayTextColor();
/**
* The color used for drawing the Sunday letter.
*
* @return Color
*/
Color getSundayTextColor();
/**
* The top gradient background color used in the header where the full date is written.
*
* @return Color
*/
Color getTextHeaderBackgroundColorTop();
/**
* The bottom gradient background color used in the header where the full date is written.
*
* @return Color
*/
Color getTextHeaderBackgroundColorBottom();
/**
* The top gradient background color used in the header where the days and time is written.
*
* @return Color
*/
Color getTimeHeaderBackgroundColorTop();
/**
* The bottom gradient background color used in the header where the days and time is written.
*
* @return Color
*/
Color getTimeHeaderBackgroundColorBottom();
/**
* The top gradient background color used in the header where phases are written.
*
* @return Color
*/
Color getPhaseHeaderBackgroundColorTop();
/**
* The bottom gradient background color used in the header where phases are written.
*
* @return Color
*/
Color getPhaseHeaderBackgroundColorBottom();
/**
* The top gradient color of the percentage bar drawn inside an event.
*
* @return Color
*/
Color getPercentageBarColorTop();
/**
* The bottom gradient color of the percentage bar drawn inside an event.
*
* @return Color
*/
Color getPercentageBarColorBottom();
/**
* The top gradient color of the remainder percentage bar drawn inside an event. This only draws if drawFullPercentageBar() in settings returns true.
*
* @return Color
*/
Color getPercentageBarRemainderColorTop();
/**
* The bottom gradient color of the remainder percentage bar drawn inside an event. This only draws if drawFullPercentageBar() in settings returns true.
*
* @return Color
*/
Color getPercentageBarRemainderColorBottom();
/**
* The color used for dependency lines and arrowheads.
*
* @return Color
*/
Color getArrowColor();
/**
* The color used for reverse dependency lines and arrowheads when the connection type is set to MS PROJECT style. For any other line style it is ignored.
*
* @return Color
*/
Color getReverseArrowColor();
/**
* The color used to draw the border around an event.
*
* @return Color
*/
Color getEventBorderColor();
/**
* The top most drop-shadow color vertically.
*
* @return Color
*/
Color getFadeOffColor1();
/**
* The middle most drop-shadow color vertically.
*
* @return Color
*/
Color getFadeOffColor2();
/**
* The bottom most drop-shadow color vertically.
*
* @return Color
*/
Color getFadeOffColor3();
/**
* The top gradient background color used to represent the current day.
*
* @return Color
*/
Color getTodayBackgroundColorTop();
/**
* The bottom gradient background color used to represent the current day.
*
* @return Color
*/
Color getTodayBackgroundColorBottom();
/**
* The color used to draw the revised start date of an event.
*
* @return Color
*/
Color getRevisedStartColor();
/**
* The color used to draw the revised end date of an event.
*
* @return Color
*/
Color getRevisedEndColor();
/**
* The bottom gradient background color used to draw the zoom box.
*
* @return Color
*/
Color getZoomBackgroundColorBottom();
/**
* The top gradient background color used to draw the zoom box.
*
* @return Color
*/
Color getZoomBackgroundColorTop();
/**
* The color used to draw the zoom level box border.
*
* @return Color
*/
Color getZoomBorderColor();
/**
* The color used to draw the text in the zoom box.
*
* @return Color
*/
Color getZoomTextColor();
/**
* The background color used in all tooltips.
*
* @return Color
*/
Color getTooltipBackgroundColor();
/**
* The foreground color used in all tooltips.
*
* @return Color
*/
Color getTooltipForegroundColor();
/**
* The faded foreground color used in all tooltips (for less important text).
*
* @return Color
*/
Color getTooltipForegroundColorFaded();
/**
* The border color used for drawing scopes.
*
* @return Color
*/
Color getScopeBorderColor();
/**
* One of the gradient colors for drawing scopes.
*
* @return Color
*/
Color getScopeGradientColorTop();
/**
* One of the gradient colors for drawing scopes.
*
* @return Color
*/
Color getScopeGradientColorBottom();
/**
* The color black. Used in few places.
*
* @return Color
*/
Color getBlack();
/**
* The color white. Used in few places.
*
* @return Color
*/
Color getWhite();
/**
* The top horizontal lines are all the horizontal lines that span across the header from the left side to the right.
*
* @return Color for top horizontal lines.
*/
Color getTopHorizontalLinesColor();
/**
* The color for the dividing line between each section of the bottom header in the day view.
*
* @return Color
*/
Color getHourTimeDividerColor();
/**
* The color for the dividing line between each section of the bottom header in the week view.
*
* @return Color
*/
Color getWeekTimeDividerColor();
/**
* The color for the dividing line between each section of the bottom header in the month view.
*
* @return Color
*/
Color getMonthTimeDividerColor();
/**
* The color for the dividing line between each section of the bottom header in the year view.
*
* @return Color
*/
Color getYearTimeDividerColor();
/**
* The color used for drawing the vertical "today" line that shows where the todays date is.
*
* @return Color
*/
Color getTodayLineColor();
/**
* The alpha value of the Today line.
*
* @return Alpha value between 0 and 255.
*/
int getTodayLineAlpha();
/**
* The alpha value of the week divider line.
*
* @return Alpha value between 0 and 255.
*/
int getWeekDividerAlpha();
/**
* Alpha colors can slow down the drawing considerably, only enable on a fast system and you're 100% certain that systems other than yours (3rd party)
* will be able to handle it as well. If this setting is false (default is false), all getAlpha() methods will be ignored.
*
* Alpha drawing is used for various lines that may overlay other sections as well as for drop shadows.
*
* @return true if Alpha drawing should be on. Default is false.
*/
boolean useAlphaDrawing();
/**
* Separate flag from useAlphaDrawing. If this is set to true drop shadows on 3D events will be drawn using alpha channels.
*
* @return true if Alpha drawing should be on for drop shadows on 3D events. Default is true.
*/
boolean useAlphaDrawingOn3DEventDropShadows();
/**
* The tick mark is the small line that separates dates in the top part of the header.
*
* @return Tick mark color
*/
Color getTickMarkColor();
/**
* The divider color in the advanced tooltip dialog
*
* @return Color
*/
Color getAdvancedTooltipDividerColor();
/**
* The dropshadow color of the divider line in the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipDividerShadowColor();
/**
* The top gradient fill color of the background of the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipInnerFillTopColor();
/**
* The bottom gradient fill color of the background of the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipInnerFillBottomColor();
/**
* The default foreground color used for displaying text in the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipTextColor();
/**
* The border color of the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipBorderColor();
/**
* The fadeoff pixels used to make corners more rounded in the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipShadowCornerInnerColor();
/**
* The fadeoff pixels used to make corners more rounded in the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipShadowCornerOuterColor();
/**
* The fadeoff shadow pixels used to make corners more rounded in the advanced tooltip dialog.
*
* @return Color
*/
Color getAdvancedTooltipShadowInnerCornerColor();
/**
* The left gradient color of a section bar.
*
* @return Color
*/
Color getActiveSessionBarColorLeft();
/**
* The right gradient color of a section bar.
*
* @return Color
*/
Color getActiveSessionBarColorRight();
/**
* The left gradient color of the section bar that is outside of any actual section.
*
* @return Color
*/
Color getNonActiveSessionBarColorLeft();
/**
* The right gradient color of the section bar that is outside of any actual section.
*
* @return Color
*/
Color getNonActiveSessionBarColorRight();
/**
* The left gradient color of the section divider bar that is drawn between sections.
*
* @return Color
*/
Color getSessionBarDividerColorLeft();
/**
* The right gradient color of the section divider bar that is drawn between sections.
*
* @return Color
*/
Color getSessionBarDividerColorRight();
/**
* For vertical drag/drops a box is drawn where the event was prior to the DND started to
* indicate what the original location of the event was (so the user can find their way back).
* This is the color used to draw the indication box.
*
* @return Color
*/
Color getOriginalLocationColor();
/**
* This is the color used to draw the vertical insert marker for vertical drag and drop.
* This is the line drawn between events to show where the DND would take place if the currently DND event
* is dropped.
*
* @return Color
*/
Color getVerticalInsertMarkerColor();
/**
* The color used for drawing the vertical period start and end line that shows where the period
* start and end dates are.
*
* @return Color
*/
Color getPeriodLineColor();
/**
* The foreground color used to draw the gradient background of the section detail area
* of the given GanttSection. This way it is possible to implement highlighting in the
* detail area based on the set data value.
* @param section The GanttSection for which the foreground color is requested.
* @return Color
*/
Color getSectionDetailAreaForegroundColor(GanttSection section);
/**
* The background color used to draw the gradient background of the section detail area
* of the given GanttSection. This way it is possible to implement highlighting in the
* detail area based on the set data value.
* @param section The GanttSection for which the background color is requested.
* @return Color
*/
Color getSectionDetailAreaBackgroundColor(GanttSection section);
/**
* Specify the direction of the gradient background of the section detail area.
*
* @return <code>true</code> if the gradient should sweep from top to bottom,
* else sweeps from left to right
*/
boolean drawSectionDetailGradientTopDown();
}