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

yishayw 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 9c2d5ca  Adding a resizable load inicator.
9c2d5ca is described below

commit 9c2d5ca53ef0c67950ff76753f5f2834568de90a
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Wed Jun 19 08:16:50 2019 +0300

    Adding a resizable load inicator.
---
 .../Basic/src/main/resources/basic-manifest.xml    |  1 +
 .../apache/royale/html/beads/DisableLoaderBead.as  |  6 +-
 .../html/beads/ShrinkableDisableLoaderBead.as      | 87 ++++++++++++++++++++++
 3 files changed, 91 insertions(+), 3 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml 
b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index a2239a7..284cf5c 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -161,6 +161,7 @@
     <component id="DisableBead" 
class="org.apache.royale.html.beads.DisableBead" />
     <component id="DisabledAlphaBead" 
class="org.apache.royale.html.beads.DisabledAlphaBead" />
     <component id="DisableLoaderBead" 
class="org.apache.royale.html.beads.DisableLoaderBead" />
+    <component id="ShrinkableDisableLoaderBead" 
class="org.apache.royale.html.beads.ShrinkableDisableLoaderBead" />
     <component id="DisableChildrenBead" 
class="org.apache.royale.html.beads.DisableChildrenBead" />
     <component id="NumericOnlyTextInputBead" 
class="org.apache.royale.html.accessories.NumericOnlyTextInputBead" />
     <component id="PasswordInputBead" 
class="org.apache.royale.html.accessories.PasswordInputBead" />
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableLoaderBead.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableLoaderBead.as
index a233bdf..19ef75b 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableLoaderBead.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableLoaderBead.as
@@ -56,8 +56,8 @@ package org.apache.royale.html.beads
                {
                }
                
-               private var _strand:IStrand;
-               private var _loader:IUIBase;
+               protected var _strand:IStrand;
+               protected var _loader:IUIBase;
 
                /**
                 *  @copy org.apache.royale.core.IBead#strand
@@ -85,7 +85,7 @@ package org.apache.royale.html.beads
         /**
          * @royaleignorecoercion org.apache.royale.core.IUIBase
          */
-               private function get host():IUIBase
+               protected function get host():IUIBase
                {
                        return _strand as IUIBase;
                }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ShrinkableDisableLoaderBead.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ShrinkableDisableLoaderBead.as
new file mode 100644
index 0000000..d0f697b
--- /dev/null
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ShrinkableDisableLoaderBead.as
@@ -0,0 +1,87 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.html.beads
+{
+       import org.apache.royale.html.LoadIndicator;
+       import org.apache.royale.utils.PointUtils;
+       import org.apache.royale.core.IPopUpHost;
+       import org.apache.royale.utils.UIUtils;
+       import org.apache.royale.geom.Point;
+       import org.apache.royale.core.IUIBase;
+       /**
+        *  The ShrinkableDisableLoaderBead extends DisableLoaderBead to allow 
shrinking of the load indicator.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.9.6
+        */
+       public class ShrinkableDisableLoaderBead extends DisableLoaderBead
+       {
+        private var _resizeFactor:Number = 1;
+               /**
+                *  constructor.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.6
+                */
+               public function ShrinkableDisableLoaderBead()
+               {
+            super();
+               }
+
+               /**
+                *  The size of the load indicator relative to the strand.
+         *  If it's 0.5 it's half the size.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.6
+                */
+        public function get resizeFactor():Number
+        {
+            return _resizeFactor;
+        }
+
+        public function set resizeFactor(value:Number):void
+        {
+            _resizeFactor = value;
+        }
+               
+               override protected function addLoadIndicator():void
+               {
+                       var point:Point = PointUtils.localToGlobal(new Point(0, 
0), _strand);
+                       _loader = new LoadIndicator();
+                       _loader.width = (_strand as IUIBase).width * 
_resizeFactor;
+                       _loader.height = (_strand as IUIBase).height * 
_resizeFactor;
+                       _loader.x = point.x + (_strand as IUIBase).width / 2 - 
_loader.width / 2;
+                       _loader.y = point.y + (_strand as IUIBase).height / 2 - 
_loader.height / 2;
+                       COMPILE::JS
+                       {
+                               _loader.element.style.position = "absolute";
+                       }
+                       var popupHost:IPopUpHost = UIUtils.findPopUpHost(host);
+                       popupHost.popUpParent.addElement(_loader);
+               }
+               
+       }
+}

Reply via email to