blob: cc99098fe3440528656b0a4b2b7efb3b4b78e84d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2010 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
*******************************************************************************/
package org.eclipse.draw2d;
import org.eclipse.draw2d.geometry.Dimension;
/**
* A helper for positioning child figures and determining the ideal size for a
* figure with children.
*/
public interface LayoutManager {
/**
* Returns the constraint for the given figure.
*
* @param child
* The figure
* @return The constraint
*/
Object getConstraint(IFigure child);
/**
* Returns the minimum size of the given figure.
*
* @param container
* The Figure
* @param wHint
* the width hint
* @param hHint
* the height hint
* @return The minimum size
*/
Dimension getMinimumSize(IFigure container, int wHint, int hHint);
/**
* Returns the preferred size of the given figure, using width and height
* hints.
*
* @param container
* The figure
* @param wHint
* The width hint
* @param hHint
* The height hint
* @return The preferred size
*/
Dimension getPreferredSize(IFigure container, int wHint, int hHint);
/**
* Tells the LayoutManager to throw away all cached information about the
* figures it is responsible for. This method is called whenever the owning
* figure is invalidated.
*/
void invalidate();
/**
* Lays out the given figure.
*
* @param container
* The figure
*/
void layout(IFigure container);
/**
* Removes the given child from this layout.
*
* @param child
* the child being remoced
*/
void remove(IFigure child);
/**
* Sets the constraint for the given child.
*
* @param child
* The figure
* @param constraint
* The constraint
*/
void setConstraint(IFigure child, Object constraint);
}