     [Inspectable(category="General")]
     
     /**
-     *  The X coordinate of the origin of the region the target is
-     *  scrolled to.  
-     * 
-     *  Setting this property causes the target's 
-     *  <code>scrollRect</code> to be set, if necessary, to:
-     *  <pre>
-     *  new Rectangle(horizontalScrollPosition, verticalScrollPosition, width, height)
-     *  </pre>
-     *  Where <code>width</code> and <code>height</code> are properties
-     *  of the target.
-     * 
-     *  @default 0
-     *  @see target
-     *  @see verticalScrollPosition
+     *  @copy flex.intf.IViewport#horizontalScrollPosition
      */
     public function get horizontalScrollPosition():Number 
     {

    [Inspectable(category="General")]
    
    /**
     *  When scrolling is enabled, clip the target's contents by 
     *  setting its scrollRect.  If this property is set to false,
     *  then the target's scrollRect will be null, even if its
     *  scrollPosition is non-zero or its content size is larger
     *  than its actual size.
     * 
     *  @default true
     *  @see target
     *  @see updateScrollRect
     *  @see verticalScrollPosition
     *  @see horizontalScrollPosition
     */
    public function get clipContent():Boolean 
    {

    //--------------------------------------------------------------------------
    
    /**
     *  @copy flex.intf.IViewport#horizontalScrollPositionDelta
     */
    public function horizontalScrollPositionDelta(unit:uint):Number
    {
        var g:GroupBase = target;
        if (!g)
            return 0;     

        var maxIndex:int = g.numLayoutItems -1;
        if (maxIndex < 0)
            return 0;

        var scrollR:Rectangle = g.scrollRect;
        if (!scrollR)
            return 0;
            
        var maxDelta:Number = g.contentWidth - scrollR.width - scrollR.x;
        var minDelta:Number = -scrollR.x; 
            
        switch (unit)
        {
            case Keyboard.UP:
                return (scrollR.x <= 0) ? 0 : -1;
                
            case Keyboard.DOWN:
                return (scrollR.x >= maxDelta) ? 0 : 1;
                
            case Keyboard.PAGE_UP:
                return Math.max(minDelta, -scrollR.width);
                
            case Keyboard.PAGE_DOWN:
                return Math.min(maxDelta, scrollR.width);
                
            case Keyboard.HOME: 
                return minDelta;
                
            case Keyboard.END: 
                return maxDelta;
                
            default:
                return 0;
        }       
    }
    
    /**
     *  @copy flex.intf.IViewport#verticalScrollPositionDelta
     */
    public function verticalScrollPositionDelta(unit:uint):Number
    {
