     }
     
     /**
-     *  Returns the total layout width of the content including gaps.
-     */
-    public function get contentWidth():Number
-    {
+     *  Returns the total layout width of the content including gaps.   If 
+	 *  columnCountOverride is specified, then the overall width of as many columns
+	 *  is returned.
+     */
+    public function getContentWidth(columnCountOverride:int = -1):Number
+    {
+		const nCols:int = (columnCountOverride == -1) ? columnCount : columnCountOverride;
+		
         if (!_columnWidths)
-            return (_columnCount * (defaultColumnWidth + columnGap)) - columnGap;
+            return (nCols * (defaultColumnWidth + columnGap)) - columnGap;
         
         var width:Number = 0;
         
-        for (var i:int = 0; i < _columnCount; i++)
-        {
-            if (isNaN(_columnWidths[i]))
+        for (var i:int = 0; i < nCols; i++)
+        {
+            if ((i >= _columnWidths.length) || isNaN(_columnWidths[i]))
                 width += defaultColumnWidth + columnGap;
             else
                 width += _columnWidths[i] + columnGap;

    //  defaultRowHeight
    //----------------------------------
    
    private var _defaultRowHeight:Number = 32;
    
    /**
     *  The default height of a row. The defaultRowHeight is always

            node = node.next;
        }
        
        return height + ((nRows - numRows) * (defaultRowHeight) + (nRows - 1) * rowGap);
    }

    /**
