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 63d7f28dda border and outline
63d7f28dda is described below

commit 63d7f28dda8c906a895108768b5e0efff4d23ac8
Author: Harbs <[email protected]>
AuthorDate: Tue Feb 24 21:49:31 2026 +0200

    border and outline
---
 .../royale/style/stylebeads/border/BorderColor.as  | 21 ++++++++++---
 .../border/{BorderColor.as => BorderStyle.as}      | 17 +++-------
 .../border/{BorderColor.as => OutlineColor.as}     | 27 +++++++++++-----
 .../border/{BorderColor.as => OutlineOffset.as}    | 24 +++++++--------
 .../border/{BorderColor.as => OutlineStyle.as}     | 26 ++++++++--------
 .../border/{BorderColor.as => OutlineWidth.as}     | 36 ++++++++++++++--------
 6 files changed, 90 insertions(+), 61 deletions(-)

diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
index edc6832057..dc74afe203 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
@@ -33,11 +33,22 @@ package org.apache.royale.style.stylebeads.background
                 */
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
-                       _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       calculatedSelector = calculatedRuleValue = _value = 
value;
+                       switch(value)
+                       {
+                               case "inherit":
+                               case "transparent":
+                                       return;
+                               case "currentColor":
+                                       calculatedSelector = "current";
+                                       return;
+                               default:
+                                       assert(value is ColorPair, "The value 
must be a ColorPair: " + value);
+                                       var pair:ColorPair = value as ColorPair;
+                                       calculatedRuleValue = pair.value;
+                                       calculatedSelector = pair.name;
+                                       return;
+                       }
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderStyle.as
similarity index 72%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderStyle.as
index edc6832057..46575bc752 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderStyle.as
@@ -20,24 +20,17 @@ package org.apache.royale.style.stylebeads.background
 {
        import org.apache.royale.style.stylebeads.SingleStyleBase;
        import org.apache.royale.debugging.assert;
-       import org.apache.royale.style.colors.ColorPair;
 
-       public class BorderColor extends SingleStyleBase
+       public class BorderStyle extends SingleStyleBase
        {
-               public function BorderColor()
+               public function BorderStyle()
                {
-                       super("border", "border-color");
+                       super("border", "border-style");
                }
-               /**
-                * @royaleignorecoercion 
org.apache.royale.style.colors.ColorPair
-                */
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
-                       _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       
assert(["solid","dashed","dotted","double","hidden","none"].indexOf(value) >= 
0, "The value must be a valid border style: " + value);
+                       calculatedSelector = calculatedRuleValue = _value = 
value;
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineColor.as
similarity index 70%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineColor.as
index edc6832057..e70e09bebb 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineColor.as
@@ -22,22 +22,33 @@ package org.apache.royale.style.stylebeads.background
        import org.apache.royale.debugging.assert;
        import org.apache.royale.style.colors.ColorPair;
 
-       public class BorderColor extends SingleStyleBase
+       public class OutlineColor extends SingleStyleBase
        {
-               public function BorderColor()
+               public function OutlineColor()
                {
-                       super("border", "border-color");
+                       super("outline", "outline-color");
                }
                /**
                 * @royaleignorecoercion 
org.apache.royale.style.colors.ColorPair
                 */
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
-                       _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       calculatedSelector = calculatedRuleValue = _value = 
value;
+                       switch(value)
+                       {
+                               case "inherit":
+                               case "transparent":
+                                       return;
+                               case "currentColor":
+                                       calculatedSelector = "current";
+                                       return;
+                               default:
+                                       assert(value is ColorPair, "The value 
must be a ColorPair: " + value);
+                                       var pair:ColorPair = value as ColorPair;
+                                       calculatedRuleValue = pair.value;
+                                       calculatedSelector = pair.name;
+                                       return;
+                       }
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineOffset.as
similarity index 71%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineOffset.as
index edc6832057..4beac54407 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineOffset.as
@@ -18,26 +18,26 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.style.stylebeads.background
 {
+
        import org.apache.royale.style.stylebeads.SingleStyleBase;
-       import org.apache.royale.debugging.assert;
-       import org.apache.royale.style.colors.ColorPair;
 
-       public class BorderColor extends SingleStyleBase
+       public class OutlineOffset extends SingleStyleBase
        {
-               public function BorderColor()
+               public function OutlineOffset()
                {
-                       super("border", "border-color");
+                       super("outline-offset", "outline-offset");
                }
-               /**
-                * @royaleignorecoercion 
org.apache.royale.style.colors.ColorPair
-                */
+               private var savedPrefix:String;
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
+                       var numVal:Number = parseFloat(value);
+                       var negative:Boolean = numVal < 0;
+                       if(!savedPrefix)
+                               savedPrefix = selectorPrefix;
+                       _selectorPrefix = negative ? "-" + savedPrefix : 
savedPrefix;
                        _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       calculatedRuleValue = value;
+                       calculatedSelector = sanitizeSelector(value);
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineStyle.as
similarity index 68%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineStyle.as
index edc6832057..b1e5b22d4a 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineStyle.as
@@ -20,24 +20,26 @@ package org.apache.royale.style.stylebeads.background
 {
        import org.apache.royale.style.stylebeads.SingleStyleBase;
        import org.apache.royale.debugging.assert;
-       import org.apache.royale.style.colors.ColorPair;
 
-       public class BorderColor extends SingleStyleBase
+       public class OutlineStyle extends SingleStyleBase
        {
-               public function BorderColor()
+               public function OutlineStyle()
                {
-                       super("border", "border-color");
+                       super("outline", "outline-style");
                }
-               /**
-                * @royaleignorecoercion 
org.apache.royale.style.colors.ColorPair
-                */
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
-                       _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       
assert(["solid","dashed","dotted","double","hidden","none"].indexOf(value) >= 
0, "The value must be a valid outline style: " + value);
+                       calculatedSelector = calculatedRuleValue = _value = 
value;
+               }
+               override public function get rule():String
+               {
+                       // enable outline in in forced colors mode
+                       if(calculatedSelector == "hidden")
+                       {
+                               return "outline: 2px solid transparent; 
outline-offset: 2px;";
+                       }
+                       return super.rule;
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineWidth.as
similarity index 67%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineWidth.as
index edc6832057..8ccad908d4 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderColor.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/OutlineWidth.as
@@ -20,24 +20,36 @@ package org.apache.royale.style.stylebeads.background
 {
        import org.apache.royale.style.stylebeads.SingleStyleBase;
        import org.apache.royale.debugging.assert;
-       import org.apache.royale.style.colors.ColorPair;
-
-       public class BorderColor extends SingleStyleBase
+       import org.apache.royale.style.util.ThemeManager;
+       import org.apache.royale.style.util.StyleTheme;
+       /**
+        * Defaults to 1px.
+        */
+       public class OutlineWidth extends SingleStyleBase
        {
-               public function BorderColor()
+               public function OutlineWidth()
                {
-                       super("border", "border-color");
+                       super("outline", "outline-width");
                }
-               /**
-                * @royaleignorecoercion 
org.apache.royale.style.colors.ColorPair
-                */
                override public function set value(value:*):void
                {
-                       assert(value is ColorPair, "The value must be a 
ColorPair: " + value);
                        _value = value;
-                       var pair:ColorPair = value as ColorPair;
-                       calculatedRuleValue = pair.value;
-                       calculatedSelector = pair.name;
+                       calculatedRuleValue = value;
+                       calculatedSelector = sanitizeSelector(value);
+               }
+               override public function get selector():String
+               {
+                       if(!calculatedSelector)
+                               return selectorPrefix;
+                       
+                       return super.selector;
+               }
+               override public function get rule():String
+               {
+                       if(!calculatedRuleValue)
+                               return "1px";
+                       
+                       return super.rule;
                }
        }
 }
\ No newline at end of file

Reply via email to