samer@0: /* samer@0: * StackLayout.java samer@0: * samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.core.util; samer@0: import java.awt.*; samer@0: samer@0: /** samer@0: This layout manager stacks everything up vertically samer@0: letting each component assume it's preferred height, samer@0: but stretching them all out to fill the width available. samer@0: The preferred width is the height of the widest samer@0: component samer@0: */ samer@0: samer@0: public class StackLayout implements LayoutManager, java.io.Serializable samer@0: { samer@0: private int gap; samer@0: samer@0: public StackLayout() { gap=0; } samer@0: public StackLayout(int a) { gap=a; } samer@0: public void setGap(int a) { gap=a; } samer@0: public int getGap(int a) { return gap; } samer@0: samer@0: public void addLayoutComponent(String name, Component comp) {} samer@0: public void removeLayoutComponent(Component comp) {} samer@0: samer@0: public Dimension preferredLayoutSize(Container parent) samer@0: { samer@0: Component[] c=parent.getComponents(); samer@0: Dimension d1=new Dimension(0,0), d2; samer@0: samer@0: int n=c.length; samer@0: for (int i=0; i1) d1.height += (n-1)*gap; samer@0: samer@0: Insets insets=parent.getInsets(); samer@0: d1.width += insets.left + insets.right; samer@0: d1.height += insets.top + insets.bottom; samer@0: samer@0: return d1; samer@0: } samer@0: samer@0: public Dimension minimumLayoutSize(Container parent) samer@0: { samer@0: Component[] c=parent.getComponents(); samer@0: Dimension d1=new Dimension(0,0), d2; samer@0: samer@0: int n=c.length; samer@0: for (int i=0; i1) d1.height += (n-1)*gap; samer@0: samer@0: Insets insets=parent.getInsets(); samer@0: d1.width += insets.left + insets.right; samer@0: d1.height += insets.top + insets.bottom; samer@0: samer@0: return d1; samer@0: } samer@0: samer@0: public void layoutContainer(Container parent) samer@0: { samer@0: Component[] c=parent.getComponents(); samer@0: Insets insets=parent.getInsets(); samer@0: int x, y, w; samer@0: Dimension p=parent.getSize(), d; samer@0: samer@0: w = p.width - (insets.left+insets.right); samer@0: x = insets.left; samer@0: y = insets.top; samer@0: samer@0: int n=c.length; samer@0: for (int i=0; i