This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 533b74f  Cleaned up VScrollViewport
533b74f is described below

commit 533b74fcd09cfa9d27c045659906f04571a3d190
Author: Harbs <[email protected]>
AuthorDate: Mon Feb 19 00:40:37 2018 +0200

    Cleaned up VScrollViewport
    
    Added HScrollViewport
---
 .../Basic/src/main/resources/basic-manifest.xml    |   1 +
 .../{VScrollViewport.as => HScrollViewport.as}     | 150 +++++++++------------
 .../royale/html/supportClasses/VScrollViewport.as  |  24 +---
 3 files changed, 70 insertions(+), 105 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml 
b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index 80af44d..4d3fe78 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -139,6 +139,7 @@
      <component id="ImageAndTextButtonView" 
class="org.apache.royale.html.beads.ImageAndTextButtonView" />
      -->
     <component id="ScrollingViewport" 
class="org.apache.royale.html.supportClasses.ScrollingViewport" />
+    <component id="HScrollViewport" 
class="org.apache.royale.html.supportClasses.HScrollViewport" />
     <component id="VScrollViewport" 
class="org.apache.royale.html.supportClasses.VScrollViewport" />
     <component id="ClippingViewport" 
class="org.apache.royale.html.supportClasses.Viewport" lookupOnly="true" />
     <component id="Viewport" 
class="org.apache.royale.html.supportClasses.Viewport" />
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
similarity index 60%
copy from 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
copy to 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
index 704cbce..b11d397 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
@@ -42,16 +42,16 @@ package org.apache.royale.html.supportClasses
        import org.apache.royale.geom.Rectangle;
 
        /**
-        * The VScrollViewport extends the ScrollingViewport class and limts 
scrolling
+        * The HScrollViewport extends the ScrollingViewport class and limts 
scrolling
         * to only vertical scroll bars.
         *
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
-        *  @productversion Royale 0.0
+        *  @productversion Royale 0.9.2
         */
        COMPILE::JS
-       public class VScrollViewport extends ScrollingViewport
+       public class HScrollViewport extends ScrollingViewport
        {
                /**
                 * Constructor
@@ -59,19 +59,19 @@ package org.apache.royale.html.supportClasses
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
-                *  @productversion Royale 0.0
+                *  @productversion Royale 0.9.2
                 */
-               public function VScrollViewport()
+               public function HScrollViewport()
                {
                        super();
                }
                
-               // These shuould be disabled for VScroll
-               override public function get horizontalScrollPosition():Number
+               // These shuould be disabled for HScroll
+               override public function get verticalScrollPosition():Number
                {
                        return 0;
                }
-               override public function set 
horizontalScrollPosition(value:Number):void
+               override public function set 
verticalScrollPosition(value:Number):void
                {
                        // Do nothing
                }
@@ -84,32 +84,16 @@ package org.apache.royale.html.supportClasses
                        super.strand = value;
                        if (contentView == null) {
                                (value as UIBase).element.style.overflow = 
"hidden";
-                               (value as UIBase).element.style.overflowY = 
"auto";
+                               (value as UIBase).element.style.overflowX = 
"auto";
                        } else {
                                (contentView as UIBase).element.style.overflow 
= "hidden";
-                               (contentView as UIBase).element.style.overflowY 
= "auto";
+                               (contentView as UIBase).element.style.overflowX 
= "auto";
                        }
-               }
-               
-               /**
-               * @copy org.apache.royale.core.IViewport
-               */
-               override public function 
layoutViewportBeforeContentLayout(width:Number, height:Number):void
-               {
-                       // does nothing for the JS platform
-               }
-               
-               /**
-                * @copy org.apache.royale.core.IViewport
-                */
-               override public function 
layoutViewportAfterContentLayout(contentSize:Size):void
-               {
-                       // does nothing for the JS platform
-               }
+               }               
        }
        
        COMPILE::SWF
-       public class VScrollViewport extends ScrollingViewport
+       public class HScrollViewport extends ScrollingViewport
        {
                /**
                 * Constructor
@@ -119,7 +103,7 @@ package org.apache.royale.html.supportClasses
             *  @playerversion AIR 2.6
             *  @productversion Royale 0.0
                 */
-               public function VScrollViewport()
+               public function HScrollViewport()
                {
                        super();
                }
@@ -138,16 +122,13 @@ package org.apache.royale.html.supportClasses
                        return _horizontalScroller;
                }
 
-        private var _verticalScrollPosition:Number = 0;
-
         override public function get verticalScrollPosition():Number
         {
-                       return _verticalScrollPosition;
+                       return 0;
         }
         override public function set verticalScrollPosition(value:Number):void
         {
-                       _verticalScrollPosition = value;
-                       handleVerticalScrollChange();
+                       //do nothing
         }
 
         private var _horizontalScrollPosition:Number = 0;
@@ -158,9 +139,9 @@ package org.apache.royale.html.supportClasses
         }
         override public function set 
horizontalScrollPosition(value:Number):void
         {
-                       // Do nothing
-                       // _horizontalScrollPosition = value;
-                       // handleHorizontalScrollChange();
+                       _horizontalScrollPosition = value;
+            dispatchEvent(new Event("horizontalScrollPositionChanged"));
+                       handleHorizontalScrollChange();
         }
 
         private var viewportWidth:Number;
@@ -182,9 +163,7 @@ package org.apache.royale.html.supportClasses
                override public function 
layoutViewportAfterContentLayout(contentSize:Size):void
                {
                        var host:UIBase = UIBase(_strand);
-                       
-                       var hadV:Boolean = _verticalScroller != null && 
_verticalScroller.visible;
-                       
+                                               
                        var hostWidth:Number = host.width;
                        var hostHeight:Number = host.height;
                        
@@ -193,80 +172,81 @@ package org.apache.royale.html.supportClasses
                        hostWidth -= borderMetrics.left + borderMetrics.right;
                        hostHeight -= borderMetrics.top + borderMetrics.bottom;
                        
-                       var needV:Boolean = contentSize.height > viewportHeight;
+                       var needH:Boolean = contentSize.width > viewportWidth;
                        
                        // if sized to content, the container should stretch to 
fit, making the original
                        // viewport dimensions obsolete and scrollbars 
unnecessary.
                        // This might not work for the flexible child.
-                       if (host.isHeightSizedToContent())
-                               needV = false;
+                       if (host.isWidthSizedToContent())
+                               needH = false;
 
-                       if (needV)
+                       if (needH)
                        {
-                               if (_verticalScroller == null) {
-                                       _verticalScroller = 
createVerticalScrollBar();
-                                       (_strand as 
IContainer).strandChildren.addElement(_verticalScroller);
+                               if (_horizontalScroller == null) {
+                                       _horizontalScroller = 
createHorizontalScrollBar();
+                                       (_strand as 
IContainer).strandChildren.addElement(_horizontalScroller);
                                }
                        }
                        
-                       if (needV)
+                       if (needH)
                        {
-                               _verticalScroller.visible = true;
-                               _verticalScroller.x = UIBase(_strand).width - 
borderMetrics.right - _verticalScroller.width;
-                               _verticalScroller.y = borderMetrics.top;
-                               _verticalScroller.setHeight(hostHeight, false);
+                               _horizontalScroller.visible = true;
+                               _horizontalScroller.x = 0;
+                               _horizontalScroller.y = UIBase(_strand).height 
- borderMetrics.bottom - _horizontalScroller.height;
+                               _horizontalScroller.setWidth(hostWidth, false);
                                
-                               ScrollBarModel(_verticalScroller.model).maximum 
= contentSize.height;
-                               
ScrollBarModel(_verticalScroller.model).pageSize = contentArea.height;
-                               
ScrollBarModel(_verticalScroller.model).pageStepSize = contentArea.height;
+                               
ScrollBarModel(_horizontalScroller.model).maximum = contentSize.width;
+                               
ScrollBarModel(_horizontalScroller.model).pageSize = contentArea.width;
+                               
ScrollBarModel(_horizontalScroller.model).pageStepSize = contentArea.width;
                                
-                               if (contentSize.height > contentArea.height &&
-                                       (contentSize.height - 
contentArea.height) < _verticalScrollPosition)
-                                       _verticalScrollPosition = 
contentSize.height - contentArea.height;
-                       }
-                       else if (_verticalScroller) {
-                               _verticalScroller.visible = false;
+                               if (contentSize.width > contentArea.width &&
+                                       (contentSize.width - contentArea.width) 
< _horizontalScrollPosition)
+                                       _horizontalScrollPosition = 
contentSize.width - contentArea.width;
+                       } 
+                       else if (_horizontalScroller) {
+                               _horizontalScroller.visible = false;
                        }
                        
-                       var rect:flash.geom.Rectangle = new 
flash.geom.Rectangle(_horizontalScrollPosition, _verticalScrollPosition,
-                               (_verticalScroller != null && 
_verticalScroller.visible) ? _verticalScroller.x : hostWidth,
-                               hostHeight);
+                       var rect:flash.geom.Rectangle = new 
flash.geom.Rectangle(_horizontalScrollPosition, 0,
+                               hostWidth,
+                               (_horizontalScroller != null && 
_horizontalScroller.visible) ? _horizontalScroller.y : hostHeight);
                        
                        contentArea.scrollRect = rect;
                }
 
-               private function createVerticalScrollBar():ScrollBar
+               private function createHorizontalScrollBar():ScrollBar
                {
-                       var vsbm:ScrollBarModel = new ScrollBarModel();
-                       vsbm.minimum = 0;
-                       vsbm.snapInterval = 1;
-                       vsbm.stepSize = 1;
-                       vsbm.value = 0;
-
-                       var vsb:VScrollBar;
-                       vsb = new VScrollBar();
-                       vsb.model = vsbm;
-                       vsb.visible = false;
-
-                       vsb.addEventListener("scroll",handleVerticalScroll);
-                       return vsb;
+                       var hsbm:ScrollBarModel = new ScrollBarModel();
+                       hsbm.minimum = 0;
+                       hsbm.snapInterval = 1;
+                       hsbm.stepSize = 1;
+                       hsbm.value = 0;
+
+                       var hsb:HScrollBar;
+                       hsb = new HScrollBar();
+                       hsb.model = hsbm;
+                       hsb.visible = false;
+
+                       hsb.addEventListener("scroll",handleHorizontalScroll);
+                       return hsb;
                }
 
-               private function handleVerticalScroll(event:Event):void
+               private function handleHorizontalScroll(event:Event):void
                {
                        var host:UIBase = UIBase(_strand);
-                       var vpos:Number = 
ScrollBarModel(_verticalScroller.model).value;
+                       var hpos:Number = 
ScrollBarModel(_horizontalScroller.model).value;
                        var rect:flash.geom.Rectangle = contentArea.scrollRect;
-                       rect.y = vpos;
+                       rect.x = hpos;
                        contentArea.scrollRect = rect;
 
-                       _verticalScrollPosition = vpos;
+                       _horizontalScrollPosition = hpos;
+            dispatchEvent(new Event("horizontalScrollPositionChanged"));
                }
 
-               private function handleVerticalScrollChange():void
+               private function handleHorizontalScrollChange():void
                {
-                       if (_verticalScroller) {
-                               ScrollBarModel(_verticalScroller.model).value = 
verticalScrollPosition;
+                       if (_horizontalScroller) {
+                               ScrollBarModel(_horizontalScroller.model).value 
= horizontalScrollPosition;
                        }
                }
 
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
index 704cbce..a2d6001 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
@@ -48,7 +48,7 @@ package org.apache.royale.html.supportClasses
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
-        *  @productversion Royale 0.0
+        *  @productversion Royale 0.9.2
         */
        COMPILE::JS
        public class VScrollViewport extends ScrollingViewport
@@ -59,7 +59,7 @@ package org.apache.royale.html.supportClasses
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
-                *  @productversion Royale 0.0
+                *  @productversion Royale 0.9.2
                 */
                public function VScrollViewport()
                {
@@ -89,23 +89,7 @@ package org.apache.royale.html.supportClasses
                                (contentView as UIBase).element.style.overflow 
= "hidden";
                                (contentView as UIBase).element.style.overflowY 
= "auto";
                        }
-               }
-               
-               /**
-               * @copy org.apache.royale.core.IViewport
-               */
-               override public function 
layoutViewportBeforeContentLayout(width:Number, height:Number):void
-               {
-                       // does nothing for the JS platform
-               }
-               
-               /**
-                * @copy org.apache.royale.core.IViewport
-                */
-               override public function 
layoutViewportAfterContentLayout(contentSize:Size):void
-               {
-                       // does nothing for the JS platform
-               }
+               }               
        }
        
        COMPILE::SWF
@@ -117,7 +101,7 @@ package org.apache.royale.html.supportClasses
             *  @langversion 3.0
             *  @playerversion Flash 10.2
             *  @playerversion AIR 2.6
-            *  @productversion Royale 0.0
+            *  @productversion Royale 0.9.2
                 */
                public function VScrollViewport()
                {

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to