Mercurial > projects > dwt-addons
view dwtx/jface/window/DefaultToolTip.d @ 192:c3583c6ec027
Added missing default cases for switch statements
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 03 Nov 2008 22:52:26 +0100 |
parents | ea8ff534f622 |
children |
line wrap: on
line source
/******************************************************************************* * Copyright (c) 2006, 2007 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 * Port to the D programming language: * Frank Benoit <benoit@tionex.de> *******************************************************************************/ module dwtx.jface.window.DefaultToolTip; import dwt.DWT; import dwt.custom.CLabel; import dwt.graphics.Color; import dwt.graphics.Font; import dwt.graphics.Image; import dwt.graphics.Point; import dwt.widgets.Composite; import dwt.widgets.Control; import dwt.widgets.Event; import dwtx.jface.window.ToolTip; import dwt.dwthelper.utils; /** * Default implementation of ToolTip that provides an iconofied label with font * and color controls by subclass. * * @since 3.3 */ public class DefaultToolTip : ToolTip { private String text; private Color backgroundColor; private Font font; private Image backgroundImage; private Color foregroundColor; private Image image; private int style = DWT.SHADOW_NONE; /** * Create new instance which add TooltipSupport to the widget * * @param control the control on whose action the tooltip is shown */ public this(Control control) { super(control); } /** * Create new instance which add TooltipSupport to the widget * * @param control the control to which the tooltip is bound * @param style style passed to control tooltip behaviour * @param manualActivation <code>true</code> if the activation is done manually using * {@link #show(Point)} * @see #RECREATE * @see #NO_RECREATE */ public this(Control control, int style, bool manualActivation) { super(control, style, manualActivation); } /** * Creates the content are of the the tooltip. By default this creates a * CLabel to display text. To customize the text Subclasses may override the * following methods * <ul> * <li>{@link #getStyle(Event)}</li> * <li>{@link #getBackgroundColor(Event)}</li> * <li>{@link #getForegroundColor(Event)}</li> * <li>{@link #getFont(Event)}</li> * <li>{@link #getImage(Event)}</li> * <li>{@link #getText(Event)}</li> * <li>{@link #getBackgroundImage(Event)}</li> * </ul> * * @param event * the event that triggered the activation of the tooltip * @param parent * the parent of the content area * @return the content area created */ protected override Composite createToolTipContentArea(Event event, Composite parent) { Image image = getImage(event); Image bgImage = getBackgroundImage(event); String text = getText(event); Color fgColor = getForegroundColor(event); Color bgColor = getBackgroundColor(event); Font font = getFont(event); CLabel label = new CLabel(parent, getStyle(event)); if (text !is null) { label.setText(text); } if (image !is null) { label.setImage(image); } if (fgColor !is null) { label.setForeground(fgColor); } if (bgColor !is null) { label.setBackground(bgColor); } if (bgImage !is null) { label.setBackgroundImage(image); } if (font !is null) { label.setFont(font); } return label; } /** * The style used to create the {@link CLabel} in the default implementation * * @param event * the event triggered the popup of the tooltip * @return the style */ protected int getStyle(Event event) { return style; } /** * The {@link Image} displayed in the {@link CLabel} in the default * implementation implementation * * @param event * the event triggered the popup of the tooltip * @return the {@link Image} or <code>null</code> if no image should be * displayed */ protected Image getImage(Event event) { return image; } /** * The foreground {@link Color} used by {@link CLabel} in the default * implementation * * @param event * the event triggered the popup of the tooltip * @return the {@link Color} or <code>null</code> if default foreground * color should be used */ protected Color getForegroundColor(Event event) { return (foregroundColor is null) ? event.widget.getDisplay() .getSystemColor(DWT.COLOR_INFO_FOREGROUND) : foregroundColor; } /** * The background {@link Color} used by {@link CLabel} in the default * implementation * * @param event * the event triggered the popup of the tooltip * @return the {@link Color} or <code>null</code> if default background * color should be used */ protected Color getBackgroundColor(Event event) { return (backgroundColor is null) ? event.widget.getDisplay() .getSystemColor(DWT.COLOR_INFO_BACKGROUND) : backgroundColor; } /** * The background {@link Image} used by {@link CLabel} in the default * implementation * * @param event * the event triggered the popup of the tooltip * @return the {@link Image} or <code>null</code> if no image should be * displayed in the background */ protected Image getBackgroundImage(Event event) { return backgroundImage; } /** * The {@link Font} used by {@link CLabel} in the default implementation * * @param event * the event triggered the popup of the tooltip * @return the {@link Font} or <code>null</code> if the default font * should be used */ protected Font getFont(Event event) { return font; } /** * The text displayed in the {@link CLabel} in the default implementation * * @param event * the event triggered the popup of the tooltip * @return the text or <code>null</code> if no text has to be displayed */ protected String getText(Event event) { return text; } /** * The background {@link Image} used by {@link CLabel} in the default * implementation * * @param backgroundColor * the {@link Color} or <code>null</code> if default background * color ({@link DWT#COLOR_INFO_BACKGROUND}) should be used */ public void setBackgroundColor(Color backgroundColor) { this.backgroundColor = backgroundColor; } /** * The background {@link Image} used by {@link CLabel} in the default * implementation * * @param backgroundImage * the {@link Image} or <code>null</code> if no image should be * displayed in the background */ public void setBackgroundImage(Image backgroundImage) { this.backgroundImage = backgroundImage; } /** * The {@link Font} used by {@link CLabel} in the default implementation * * @param font * the {@link Font} or <code>null</code> if the default font * should be used */ public void setFont(Font font) { this.font = font; } /** * The foreground {@link Color} used by {@link CLabel} in the default * implementation * * @param foregroundColor * the {@link Color} or <code>null</code> if default foreground * color should be used */ public void setForegroundColor(Color foregroundColor) { this.foregroundColor = foregroundColor; } /** * The {@link Image} displayed in the {@link CLabel} in the default * implementation implementation * * @param image * the {@link Image} or <code>null</code> if no image should be * displayed */ public void setImage(Image image) { this.image = image; } /** * The style used to create the {@link CLabel} in the default implementation * * @param style * the event triggered the popup of the tooltip */ public void setStyle(int style) { this.style = style; } /** * The text displayed in the {@link CLabel} in the default implementation * * @param text * the text or <code>null</code> if no text has to be displayed */ public void setText(String text) { this.text = text; } }