 
 import mx.core.IVisualElement;
 
+/**
+ *  The IViewport interface is implemented by components that support a viewport. 
+ *  If a component's children are larger than the component, 
+ *  and you want to clip the children to the component boundaries, you can define a viewport and scroll bars. 
+ *  A viewport is a rectangular subset of the area of a component that you want to display, 
+ *  rather than displaying the entire component.
+ *
+ *  <p>A viewport on its own is not movable by the application user. 
+ *  However, you can combine a viewport with scroll bars so the user can scroll 
+ *  the viewport to see the entire content of the component. 
+ *  Use the Scroller component to add scrolbars to the component.</p>
+ *
+ *  @see spark.components.Scroller
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
 public interface IViewport extends IVisualElement
 {
+    /**
+     *  The width of the component.
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     function get width():Number;
+
+    /**
+     *  The height of the component.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     function get height():Number;
     
     /**
-     *  The positive extent of the content, relative to the 0,0
-     *  origin, along the X axis.
-     * 
+     *  The width of the viewport along the x axis. 
+     *  The value of this property is defined relative to the component's
+     *  coordinate system.
+     * 
+     *  <p>Implementations of this property must be Bindable and
+     *  must generate events of type <code>propertyChange</code>.</p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function get contentWidth():Number;
+    
+    /**
+     *  The height of the viewport along the y axis.
      *  The value of this property is defined relative to the container's
      *  coordinate system.
-     * 
-     *  Implementations of this property must be Bindable and
-     *  they must generate events of type "propertyChange".
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    function get contentWidth():Number;
-    
-    /**
-     *  The positive extent of the content, relative to the 0,0 
-     *  origin, along the Y axis.
-     * 
-     *  The value of this property is defined relative to the container's
-     *  coordinate system.
-     *
-     *  Implementations of this property must be Bindable and
-     *  they must generate events of type "propertyChange".  
+     *
+     *  <p>Implementations of this property must be Bindable and
+     *  must generate events of type <code>propertyChange</code>.</p>
      *  
      *  @langversion 3.0
      *  @playerversion Flash 10

    function set verticalScrollPosition(value:Number):void;
    
    /**
     *  Returns the amount one would have to add to the viewport's current 
     *  horizontalScrollPosition to scroll by the requested "scrolling" unit.
     * 
     *  The value of unit must be one of the following spark.core.ScrollUnit
     *  constants: LEFT, RIGHT, PAGE_LEFT, PAGE_RIGHT, HOME, END.
     * 
     *  To scroll by a single column use LEFT or RIGHT and to scroll to the
     *  first or last column, use HOME or END.
     * 
     *  @see ScrollUnit
     *  

    function getHorizontalScrollPositionDelta(scrollUnit:uint):Number;
    
    /**
     *  Returns the amount to add to the viewport's current 
     *  <code>verticalScrollPosition</code> to scroll by the requested scrolling unit.
     *
     *  @param scrollUnit The amount to scroll. 
     *  The value of unit must be one of the following spark.core.ScrollUnit
     *  constants: <code>UP</code>, <code>DOWN</code>, <code>PAGE_UP</code>, 
     *  <code>PAGE_DOWN</code>, <code>HOME</code>, or <code>END</code>.
     *  To scroll by a single row use <code>UP</code> or <code>DOWN</code>.
     *  To scroll to the first or last row, use <code>HOME</code> or <code>END</code>.
     *
     *  @return The number of pixels to add to <code>verticalScrollPosition</code>.
     * 
     *  @see ScrollUnit
     *  
