using System.Collections;
using System.Drawing;
#if AdvTree
namespace DevComponents.Tree.TextMarkup
#elif DOTNETBAR
namespace DevComponents.UI.ContentManager
#elif SUPERGRID
namespace DevComponents.SuperGrid.TextMarkup
#elif LAYOUT
namespace DevComponents.DotNetBar.Layout.TextMarkup
#endif
{
	/// 
	/// Represents block layout manager responsible for sizing the content blocks.
	/// 
	public abstract class BlockLayoutManager
	{
		private Graphics m_Graphics;
	    /// 
		/// Resizes the content block and sets it's Bounds property to reflect new size.
		/// 
		/// Content block to resize.
        /// Content size available for the block in the given line.
		public abstract void Layout(IBlock block, Size availableSize);
        /// 
        /// Performs layout finalization
        /// 
        /// 
        /// 
        /// 
        /// 
        public abstract Rectangle FinalizeLayout(Rectangle containerBounds, Rectangle blocksBounds, ArrayList lines);
		/// 
		/// Gets or sets the graphics object used by layout manager.
		/// 
		public System.Drawing.Graphics Graphics
		{
			get {return m_Graphics;}
			set {m_Graphics=value;}
		}
	}
}