public Dimension minimumLayoutSize(Container parent) {
		ToolBarPanel panel = (ToolBarPanel) parent;
		boolean isHorizontal = panel.getOrientation() == SwingConstants.HORIZONTAL;
		synchronized(parent.getTreeLock()) {
			Dimension dim = new Dimension(0, 0);
			int majorCount = getMajorCount();
			for(int i = 0; i < majorCount; i++) {
				Dimension minorDim = new Dimension(0, 0);
				ArrayList minorList = getMinorComponents(i);
				for(int j = 0; j < minorList.size(); j++) {
					ComponentInfo ci = (ComponentInfo) minorList.get(j);
					Dimension d = ci.comp.getPreferredSize();
					if(ci.comp.isVisible()) {
						if(isHorizontal) {
							minorDim.width += d.width;
							minorDim.height = Math.max(minorDim.height, d.height);
							if(j > 0) {
								minorDim.width += gap;
							}
						} else {
							minorDim.width = Math.max(minorDim.width, d.width);
							minorDim.height += d.height;
							if(j > 0) {
								minorDim.height += gap;
							}
						}
					}
				}
				if(isHorizontal) {
					dim.width = Math.max(dim.width, minorDim.width);
					dim.height += minorDim.height;
				} else {
					dim.width += minorDim.width;
					dim.height = Math.max(dim.height, minorDim.height);
				}
			}

			Insets insets = parent.getInsets();
			dim.width += insets.left + insets.right;
			dim.height += insets.top + insets.bottom;
			return dim;
		}
	}