     //  Class methods
     //
     //--------------------------------------------------------------------------
-    
-    /**
-     * Layout class utility function used by updateDisplayList functions.
-     * Conditionally sets the origin of the specified Group's scrollRect to 
-     * verticalScrollPosition,horizontalScrollPosition and its width
-     * width,height to unscaledWidth,unscaledHeight.  We avoid setting
-     * the scrollRect (and therefore clipping) when scrolling isn't indicated:
-     * if the scrollRect is currently null and the scrollPosition properties
-     * are 0, and the Group's contentWidth,Height is &lt;= to unscaledWidth,Height,
-     * then the scrollRect is not set.
-     */ 
-    static function setScrollRect(g:Group, unscaledWidth:Number, unscaledHeight:Number):void
-    {
-        var r:Rectangle = g.scrollRect;
-        if (r != null) 
-        {
-            r.width = unscaledWidth;
-            r.height = unscaledHeight;
-            g.scrollRect = r;
-        }
-        else // scrollRect wasn't set
-        {
-            var hsp:Number = g.horizontalScrollPosition;
-            var vsp:Number = g.verticalScrollPosition;
-            var cw:Number = g.contentWidth;
-            var ch:Number = g.contentHeight;
-            // don't set the scrollRect needlessly
-            if ((hsp != 0) || (vsp != 0) || (cw > unscaledWidth) || (ch > unscaledHeight))
-                g.scrollRect = new Rectangle(hsp, vsp, unscaledWidth, unscaledHeight);
-        }
-    }
-    
+        
+    private static function constraintsDetermineWidth(layoutItem:ILayoutItem):Boolean
+    {
+        return !isNaN(LayoutItemHelper.getConstraint(layoutItem, "left")) &&
+               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "right"));
+    }
+
+    private static function constraintsDetermineHeight(layoutItem:ILayoutItem):Boolean
+    {
+        return !isNaN(LayoutItemHelper.getConstraint(layoutItem, "top")) &&
+               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "bottom"));
+    }
 
     //--------------------------------------------------------------------------
     //


        layoutTarget.measuredWidth = Math.max(width, minWidth);
        layoutTarget.measuredHeight = Math.max(height, minHeight);
        layoutTarget.measuredMinWidth = minWidth;
        layoutTarget.measuredMinHeight = minHeight;
        layoutTarget.contentWidth = layoutTarget.measuredWidth;
        layoutTarget.contentHeight = layoutTarget.measuredHeight;
    }

    public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void

        _target = value;
    }


    //--------------------------------------------------------------------------
    //
    //  Methods: ILayout
    //
    //--------------------------------------------------------------------------

