/******************************************************************************* * Copyright (c) 2000, 2005 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); }