     //  Overridden properties
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  The size of the track, which equals the width of the track.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    override protected function get trackSize():Number
-    {
-        if (track)
-            return track.width;
-        else
-           return 0;
-    }
     
     override public function set viewport(newViewport:IViewport):void
     {

    }
    

    /**
     *  Position the thumb button based on the specified thumb position,
     *  relative to the current X location of the track in the control.
     * 
     *  @param thumbPos A number representing the new position of the thumb
     *  button in the control.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    override protected function positionThumb(thumbPos:Number):void
    {
        if (!thumb)
            return;
      
        var trackPos:Number = track ? track.x : 0;   
        thumb.setLayoutBoundsPosition(Math.round(trackPos + thumbPos), thumb.getLayoutBoundsY());
    }
    
    /**
     *  @private
     */
    override protected function calculateThumbSize():Number
    {
        if (!thumb)
            return super.calculateThumbSize();
            
        var size:Number = (getStyle("fixedThumbSize")) ? 
            thumb.getPreferredBoundsWidth() : 
            super.calculateThumbSize();
        return Math.max(thumb.minWidth, size);
    }

    /**
     *  @private
     *  Note: we're comparing the "calculated", not fixed, size of the thumb with the trackSize
     *  to decide if the thumb should be visible.  We want to know if the thumb needs to be visible,
     *  and the comparison would fail if we always compared the track size and the fixed thumb size.
     *  See calculateThumbSize().
     */
    override protected function sizeThumb(thumbSize:Number):void
    {
        if (!thumb)
            return;
        
        thumb.setLayoutBoundsSize(thumbSize, NaN);
        var calculatedThumbSize:Number = (getStyle("fixedThumbSize")) ? 
            super.calculateThumbSize() : 
            thumbSize;
        if (getStyle("autoThumbVisibility"))
            thumb.visible = calculatedThumbSize < trackSize;
    }
    
    /**
     *  Returns the position of the thumb button on an HScrollBar control, 
     *  which is equal to the <code>localX</code> parameter.
     * 
     *  @param localX The X position relative to the scrollbar control.
     *
     *  @param localY The Y position relative to the scrollbar control.
     *
     *  @return The position of the thumb button.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    override protected function pointToPosition(localX:Number, 
                                                localY:Number):Number
    {
        return localX;
    }
    
    /**
     *  If <code>viewport</code> is not null, 
     *  change the horizontal scroll position for page up or page down by 

     *
     *  <p>If <code>viewport</code> is null, 
     *  change the scroll position for page up or page down by calling 
     *  the <code>changeValueByPage()</code> method.</p>
     *
     *  @param increase Whether the page scroll is up (<code>true</code>) or
     *  down (<code>false</code>). 
     * 
     *  @see mx.components.baseClasses.TrackBase#changeValueByPage()
     *  @see mx.components.baseClasses.TrackBase#setValue()
     *  @see spark.core.IViewport
     *  @see spark.core.IViewport#horizontalScrollPosition
