You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/03/31 13:53:44 UTC

[royale-asjs] branch develop updated: icons: - Add MaterialIcon and MaterialToggleIcon - Deprecate FontIcon and ToggleFontIcon - Add support for FontAwesome

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

carlosrovira 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 c3dadf1  icons: - Add MaterialIcon and MaterialToggleIcon - Deprecate FontIcon and ToggleFontIcon - Add support for FontAwesome
c3dadf1 is described below

commit c3dadf18218392b7b57c0d55165a3a0eb8ee9314
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Tue Mar 31 15:53:38 2020 +0200

    icons:
    - Add MaterialIcon and MaterialToggleIcon
    - Deprecate FontIcon and ToggleFontIcon
    - Add support for FontAwesome
---
 .../Icons/src/main/resources/icons-manifest.xml    |  3 ++
 .../projects/Icons/src/main/royale/IconsClasses.as |  2 -
 .../Icons/src/main/royale/MaterialIconType.as      |  4 --
 .../icons/{FontIcon.as => FontAwesomeIcon.as}      | 60 ++++++++++------------
 .../royale/org/apache/royale/icons/FontIcon.as     | 37 +++++++++++++
 .../royale/org/apache/royale/icons/FontIconBase.as | 48 +++--------------
 .../royale/icons/{FontIcon.as => MaterialIcon.as}  | 37 ++++++++-----
 .../{ToggleFontIcon.as => MaterialToggleIcon.as}   | 16 +++---
 .../org/apache/royale/icons/ToggleFontIcon.as      |  2 +
 9 files changed, 108 insertions(+), 101 deletions(-)

diff --git a/frameworks/projects/Icons/src/main/resources/icons-manifest.xml b/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
index a24e31a..b43cf87 100644
--- a/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
+++ b/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
@@ -22,4 +22,7 @@
 <componentPackage>
     <component id="FontIcon" class="org.apache.royale.icons.FontIcon"/>
     <component id="ToggleFontIcon" class="org.apache.royale.icons.ToggleFontIcon"/>
+    <component id="MaterialIcon" class="org.apache.royale.icons.MaterialIcon"/>
+    <component id="MaterialToggleIcon" class="org.apache.royale.icons.MaterialToggleIcon"/>
+    <component id="FontAwesomeIcon" class="org.apache.royale.icons.FontAwesomeIcon"/>
 </componentPackage>
diff --git a/frameworks/projects/Icons/src/main/royale/IconsClasses.as b/frameworks/projects/Icons/src/main/royale/IconsClasses.as
index 9a6f7dd..7531f9a 100644
--- a/frameworks/projects/Icons/src/main/royale/IconsClasses.as
+++ b/frameworks/projects/Icons/src/main/royale/IconsClasses.as
@@ -28,8 +28,6 @@ package
     internal class IconsClasses
     {
         import org.apache.royale.icons.FontIconBase; FontIconBase;
-        import org.apache.royale.icons.FontIcon; FontIcon;
-        import org.apache.royale.icons.ToggleFontIcon; ToggleFontIcon;
         MaterialIconType;
     }
 
diff --git a/frameworks/projects/Icons/src/main/royale/MaterialIconType.as b/frameworks/projects/Icons/src/main/royale/MaterialIconType.as
index 3687780..21448cb 100644
--- a/frameworks/projects/Icons/src/main/royale/MaterialIconType.as
+++ b/frameworks/projects/Icons/src/main/royale/MaterialIconType.as
@@ -32,10 +32,6 @@ package
     {
         /**
 		 *  constructor.
-		 *
-         *  <inject_html>
-         *  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
-         *  </inject_html>
          * 
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontAwesomeIcon.as
similarity index 64%
copy from frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
copy to frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontAwesomeIcon.as
index ca03527..9a0e9da 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontAwesomeIcon.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.icons
 {
+    import org.apache.royale.utils.StringUtil;
+
     /**
      *  Icons can be used alone or in buttons and other controls 
      * 
@@ -27,54 +29,48 @@ package org.apache.royale.icons
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
-     *  @productversion Royale 0.9.3
+     *  @productversion Royale 0.9.7
      */
-    public class FontIcon extends FontIconBase
+    public class FontAwesomeIcon extends FontIconBase
     {
         /**
          *  constructor.
+         * 
+         *  <inject_html>
+	     *   <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
+	     *  </inject_html>
          *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
-        public function FontIcon()
+        public function FontAwesomeIcon()
         {
             super();
 
-            typeNames = "fonticon";
+            typeNames = "fonticon fa";
         }
-        
-        /**
-         *  The text of the icon
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
-         */
-        override public function set text(value:String):void
-		{
-            super.text = value;
 
-			COMPILE::JS
-			{
-                textNode.nodeValue = _text;	
-			}
-		}
+        protected var _type:String;
 
-        /**
-         *  The icon text
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
-         */
-        override protected function get iconText():String
+        public function get type():String
         {
-            return text;
+            return _type;
         }
+		public function set type(value:String):void
+		{
+			COMPILE::JS
+            {
+            element.classList.remove(value);
+            }
+
+            _type = value;
+
+            COMPILE::JS
+            {
+            element.classList.add(_type);
+            }
+		}
     }
 }
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
index ca03527..7a2a2b6 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.icons
 {
+    import org.apache.royale.utils.StringUtil;
+
     /**
      *  Icons can be used alone or in buttons and other controls 
      * 
@@ -28,6 +30,8 @@ package org.apache.royale.icons
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.3
+     * 
+     *  @deprecated this class will be removed soon
      */
     public class FontIcon extends FontIconBase
     {
@@ -76,5 +80,38 @@ package org.apache.royale.icons
         {
             return text;
         }
+
+        private var _material:Boolean;
+        /**
+         *  add class name "material-icons" since in IE11 this font only
+         *  works with that class name strangely. it seems we can avoid this 
+         *  self-hosting the fonts @see https://google.github.io/material-design-icons/
+         *  but we must think if this is or not the right way.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+        public function get material():Boolean
+        {
+            return _material;
+        }
+        public function set material(value:Boolean):void
+        {
+            if (_material != value)
+            {
+                _material = value;
+
+                typeNames = StringUtil.removeWord(typeNames, " material-icons");
+                typeNames += " material-icons";
+
+                COMPILE::JS
+                {
+                    if (parent)
+                        setClassName(computeFinalClassNames()); 
+                }
+            }
+        }
     }
 }
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
index bb1236c..64dab45 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
@@ -18,15 +18,13 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.icons
 {
-    import org.apache.royale.core.IIcon;
-    import org.apache.royale.core.StyledUIBase;
-    import org.apache.royale.utils.StringUtil;
-
     COMPILE::JS
     {
-        import org.apache.royale.core.WrappedHTMLElement;
-        import org.apache.royale.html.util.addElementToWrapper;
+    import org.apache.royale.core.WrappedHTMLElement;
+    import org.apache.royale.html.util.addElementToWrapper;
     }
+    import org.apache.royale.core.IIcon;
+    import org.apache.royale.core.StyledUIBase;
 
     /**
      *  FontIconBase is the base class to provide most common features 
@@ -86,11 +84,10 @@ package org.apache.royale.icons
 			var i:WrappedHTMLElement = addElementToWrapper(this,'i');
             
             textNode = document.createTextNode(iconText) as Text;
+            textNode.textContent = '';
             i.appendChild(textNode); 
 
-            positioner = element;
-            
-            return i;
+            return element;
         }
 
         /**
@@ -107,39 +104,6 @@ package org.apache.royale.icons
             return "";
         }
 
-        private var _material:Boolean;
-        /**
-         *  add class name "material-icons" since in IE11 this font only
-         *  works with that class name strangely. it seems we can avoid this 
-         *  self-hosting the fonts @see https://google.github.io/material-design-icons/
-         *  but we must think if this is or not the right way.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
-         */
-        public function get material():Boolean
-        {
-            return _material;
-        }
-        public function set material(value:Boolean):void
-        {
-            if (_material != value)
-            {
-                _material = value;
-
-                typeNames = StringUtil.removeWord(typeNames, " material-icons");
-                typeNames += " material-icons";
-
-                COMPILE::JS
-                {
-                    if (parent)
-                        setClassName(computeFinalClassNames()); 
-                }
-            }
-        }
-
         private var _size:Number = 24;
         /**
          *  Activate "size-XX" size class selector. Although the icons in the 
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialIcon.as
similarity index 67%
copy from frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
copy to frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialIcon.as
index ca03527..e58bed3 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialIcon.as
@@ -23,36 +23,47 @@ package org.apache.royale.icons
      * 
      *  This class could be used with any icon family out there and with
      *  its text property
+     * 
+     *  add class name "material-icons" since in IE11 this font only
+     *  works with that class name strangely. it seems we can avoid this 
+     *  self-hosting the fonts @see https://google.github.io/material-design-icons/
+     *  but we must think if this is or not the right way.
+     * 
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
-     *  @productversion Royale 0.9.3
+     *  @productversion Royale 0.9.7
+     *  
      */
-    public class FontIcon extends FontIconBase
+    public class MaterialIcon extends FontIconBase
     {
         /**
          *  constructor.
+         * 
+         *  <inject_html>
+         *  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
+         *  </inject_html>
          *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
-        public function FontIcon()
+        public function MaterialIcon()
         {
             super();
 
-            typeNames = "fonticon";
+            typeNames = "fonticon material-icons";
         }
-        
+
         /**
          *  The text of the icon
          *  
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
         override public function set text(value:String):void
 		{
@@ -60,7 +71,7 @@ package org.apache.royale.icons
 
 			COMPILE::JS
 			{
-                textNode.nodeValue = _text;	
+            textNode.textContent = _text;	
 			}
 		}
 
@@ -70,11 +81,11 @@ package org.apache.royale.icons
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
-        override protected function get iconText():String
-        {
-            return text;
-        }
+        // override protected function get iconText():String
+        // {
+        //     return text;
+        // }   
     }
 }
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialToggleIcon.as
similarity index 88%
copy from frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
copy to frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialToggleIcon.as
index b6a599f..6b81ded 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/MaterialToggleIcon.as
@@ -29,9 +29,9 @@ package org.apache.royale.icons
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
-     *  @productversion Royale 0.9.3
+     *  @productversion Royale 0.9.7
      */
-    public class ToggleFontIcon extends FontIcon implements ISelectable
+    public class MaterialToggleIcon extends MaterialIcon implements ISelectable
     {
         /**
          *  constructor.
@@ -39,9 +39,9 @@ package org.apache.royale.icons
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
-        public function ToggleFontIcon()
+        public function MaterialToggleIcon()
         {
             super();
         }
@@ -54,7 +54,7 @@ package org.apache.royale.icons
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
         public function get selected():Boolean
         {
@@ -77,7 +77,7 @@ package org.apache.royale.icons
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
 		public function get selectedText():String
 		{
@@ -99,7 +99,7 @@ package org.apache.royale.icons
         {
             COMPILE::JS
 			{
-                textNode.nodeValue = _selected ? _selectedText : _text;	
+            textNode.textContent = _selected ? _selectedText : _text;	
 			}
         }
         
@@ -109,7 +109,7 @@ package org.apache.royale.icons
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.3
+         *  @productversion Royale 0.9.7
          */
         override protected function get iconText():String
         {
diff --git a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
index b6a599f..ff577a5 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
+++ b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
@@ -30,6 +30,8 @@ package org.apache.royale.icons
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.3
+     * 
+     *  @deprecated this class will be removed soon
      */
     public class ToggleFontIcon extends FontIcon implements ISelectable
     {