From 50f5d7cd6fb9fe4ae547b04c15ed7f18710a1db1 Mon Sep 17 00:00:00 2001 From: Xavier Raynaud Date: Wed, 2 Apr 2014 13:54:38 +0200 Subject: [PATCH] Bug 430804 (add tooltip infrastructure in visualizer) Change-Id: I99180f6dc13260d87b513f0e6459598db0310a17 Signed-off-by: Xavier Raynaud Reviewed-on: https://git.eclipse.org/r/23668 Reviewed-by: Marc Dumais IP-Clean: Marc Dumais Tested-by: Marc Dumais --- .../visualizer/ui/canvas/GraphicCanvas.java | 22 ++++++++++++++++++- .../visualizer/ui/canvas/GraphicObject.java | 8 ++++++- .../visualizer/ui/canvas/IGraphicObject.java | 12 +++++++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java index 1fbf1a4c590..20fc6c1058e 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Tilera Corporation and others. + * Copyright (c) 2012, 2014 Tilera 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 @@ -7,14 +7,18 @@ * * Contributors: * William R. Swanson (Tilera Corporation) + * Xavier Raynaud (Kalray) - Bug 430804 *******************************************************************************/ package org.eclipse.cdt.visualizer.ui.canvas; import java.util.ArrayList; +import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; // --------------------------------------------------------------------------- @@ -43,6 +47,22 @@ public class GraphicCanvas extends BufferedCanvas public GraphicCanvas(Composite parent) { super(parent); m_objects = new ArrayList(); + Listener mouseListener = new Listener() { + public void handleEvent(Event event) { + switch (event.type) { + case SWT.MouseEnter: + case SWT.MouseMove: + IGraphicObject obj = getGraphicObject(event.x, event.y); + if (obj != null) { + String tooltip = obj.getTooltip(event.x, event.y); + setToolTipText(tooltip); + } + break; + } + } + }; + addListener(SWT.MouseMove, mouseListener); + addListener(SWT.MouseEnter, mouseListener); } /** Dispose method. */ diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java index e89ad65bd23..b62752e19eb 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Tilera Corporation and others. + * Copyright (c) 2012, 2014 Tilera 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 @@ -7,6 +7,7 @@ * * Contributors: * William R. Swanson (Tilera Corporation) + * Xavier Raynaud (Kalray) - Bug 430804 *******************************************************************************/ package org.eclipse.cdt.visualizer.ui.canvas; @@ -275,4 +276,9 @@ public class GraphicObject */ public void paintDecorations(GC gc) { } + + @Override + public String getTooltip(int x, int y) { + return null; + } } diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java index dc9c5f18df5..953b1e63af7 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Tilera Corporation and others. + * Copyright (c) 2012, 2014 Tilera 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 @@ -7,6 +7,7 @@ * * Contributors: * William R. Swanson (Tilera Corporation) + * Xavier Raynaud (Kalray) - Bug 430804 *******************************************************************************/ package org.eclipse.cdt.visualizer.ui.canvas; @@ -31,6 +32,15 @@ public interface IGraphicObject * If decorations is true, paints optional "decorations" layer. */ public void paint(GC gc, boolean decorations); + + /** + * Return the tooltip to display when mouse stays on this object. + * It may return null if there is nothing to display. + * @param x the x coordinate + * @param y the y coordinate + * @return the tooltip to display on this object. + */ + public String getTooltip(int x, int y); /** Returns true if object has decorations to paint. */ public boolean hasDecorations();