blob: 51cfbc84e8bb5ae99029fd2f558a6c4a37a5a448 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Tilera Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* William R. Swanson (Tilera Corporation)
*******************************************************************************/
package org.eclipse.cdt.visualizer.ui;
import org.eclipse.cdt.visualizer.ui.events.IVisualizerViewerListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Control;
// ----------------------------------------------------------------------------
// IVisualizerViewer
// ----------------------------------------------------------------------------
/**
* CDT Visualizer Viewer interface.
*
* An IVisualizerViewer is a simple container for multiple
* IVisualizers, where the currently selected IVisualizer
* determines which IVisualizer control is displayed in the viewer.
*/
public interface IVisualizerViewer {
// --- accessors ---
/** Gets containing view. */
public VisualizerView getView();
/** Returns non-localized unique name for selected visualizer. */
public String getVisualizerName();
/** Returns localized name to display for selected visualizer. */
public String getVisualizerDisplayName();
/** Returns localized tooltip text to display for selected visualizer. */
public String getVisualizerDescription();
// --- control management ---
/** Gets viewer control. */
public Control getControl();
// --- focus handling ---
/**
* Invoked by VisualizerView when currently selected presentation,
* if any, should take the focus.
*/
public boolean setFocus();
// --- menu/toolbar management ---
/** Invoked when visualizer is selected, to populate the toolbar. */
public void populateToolBar(IToolBarManager toolBarManager);
/** Invoked when visualizer is selected, to populate the toolbar's menu. */
public void populateMenu(IMenuManager menuManager);
// --- context menu handling ---
/** Invoked when context menu is about to be shown. */
public void populateContextMenu(IMenuManager m);
/** Gets context menu location. */
public Point getContextMenuLocation();
// --- selection handling ---
/**
* Invoked by VisualizerView when workbench selection changes,
* and the change was made by some other view.
*/
public void workbenchSelectionChanged(ISelection selection);
/** Adds external listener for selection change events. */
public void addSelectionChangedListener(ISelectionChangedListener listener);
/** Removes external listener for selection change events. */
public void removeSelectionChangedListener(ISelectionChangedListener listener);
/** Gets current externally-visible selection. */
public ISelection getSelection();
// --- events ---
/** Adds listener for viewer events. */
public void addVisualizerViewerListener(IVisualizerViewerListener listener);
/** Removes listener for viewer events. */
public void removeVisualizerViewerListener(IVisualizerViewerListener listener);
}