ActionScript toggle button

Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/c10eb181
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/c10eb181
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/c10eb181

Branch: refs/heads/develop
Commit: c10eb181aee964204c8b5e970b8428266c1ec8c2
Parents: 8af934c
Author: Alex Harui <aha...@apache.org>
Authored: Mon Aug 3 21:47:08 2015 -0700
Committer: Alex Harui <aha...@apache.org>
Committed: Tue Aug 4 13:54:16 2015 -0700

----------------------------------------------------------------------
 .../org/apache/flex/core/SimpleCSSValuesImpl.as | 55 +++++++++++---------
 frameworks/projects/HTML/as/defaults.css        |  2 +-
 .../org/apache/flex/html/ToggleTextButton.as    | 19 ++++++-
 .../flex/html/beads/CSSTextToggleButtonView.as  |  4 +-
 4 files changed, 53 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c10eb181/frameworks/projects/Core/as/src/org/apache/flex/core/SimpleCSSValuesImpl.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/as/src/org/apache/flex/core/SimpleCSSValuesImpl.as 
b/frameworks/projects/Core/as/src/org/apache/flex/core/SimpleCSSValuesImpl.as
index 176b112..68d6882 100644
--- 
a/frameworks/projects/Core/as/src/org/apache/flex/core/SimpleCSSValuesImpl.as
+++ 
b/frameworks/projects/Core/as/src/org/apache/flex/core/SimpleCSSValuesImpl.as
@@ -311,30 +311,37 @@ package org.apache.flex.core
                             return value;
                     }                    
                 }
-                               className = styleable.className;
-                               if (state)
-                               {
-                                       selectorName = className + ":" + state;
-                                       o = values["." + selectorName];
-                                       if (o)
-                                       {
-                                               value = o[valueName];
-                        if (value == "inherit")
-                            return getInheritingValue(thisObject, valueName, 
state, attrs);
-                                               if (value !== undefined)
-                                                       return value;
-                                       }
-                               }
-                               
-                               o = values["." + className];
-                               if (o)
-                               {
-                                       value = o[valueName];
-                    if (value == "inherit")
-                        return getInheritingValue(thisObject, valueName, 
state, attrs);
-                                       if (value !== undefined)
-                                               return value;
-                               }
+                               var classNames:String = styleable.className;
+                if (classNames)
+                {
+                    var classNameList:Array = classNames.split(" ");
+                    for each (className in classNameList)
+                    {
+                        if (state)
+                        {
+                            selectorName = className + ":" + state;
+                            o = values["." + selectorName];
+                            if (o)
+                            {
+                                value = o[valueName];
+                                if (value == "inherit")
+                                    return getInheritingValue(thisObject, 
valueName, state, attrs);
+                                if (value !== undefined)
+                                    return value;
+                            }
+                        }
+                        
+                        o = values["." + className];
+                        if (o)
+                        {
+                            value = o[valueName];
+                            if (value == "inherit")
+                                return getInheritingValue(thisObject, 
valueName, state, attrs);
+                            if (value !== undefined)
+                                return value;
+                        }                        
+                    }
+                }
                        }
                        
                        className = getQualifiedClassName(thisObject);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c10eb181/frameworks/projects/HTML/as/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/defaults.css 
b/frameworks/projects/HTML/as/defaults.css
index 67660f8..54700ab 100644
--- a/frameworks/projects/HTML/as/defaults.css
+++ b/frameworks/projects/HTML/as/defaults.css
@@ -524,7 +524,7 @@ TitleBar
 ToggleTextButton
 {
     IBeadModel: 
ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.CSSTextButtonView");
+    IBeadView:  
ClassReference("org.apache.flex.html.beads.CSSTextToggleButtonView");
 }
 
 ViewBase

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c10eb181/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
index a5ccda7..376954a 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
@@ -19,7 +19,7 @@
 package org.apache.flex.html
 {
        import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.IToggleButtonModel;
+       import org.apache.flex.core.IToggleButtonModel;
        import org.apache.flex.core.IUIBase;
        import org.apache.flex.core.UIButtonBase;
        import org.apache.flex.core.ValuesManager;
@@ -84,6 +84,23 @@ package org.apache.flex.html
             IToggleButtonModel(model).selected = value;
         }
         
+        /**
+         *  @private
+         *  add another class selector
+         */
+        override public function get className():String
+        {
+            // we don't have a model yet so just pass through otherwise you 
will loop
+            if (!parent)
+                return super.className;
+            
+            var name:String = super.className;            
+            if (selected)
+                return "toggleTextButton_Selected" + (name ? " " + name : "");
+            else
+                return "toggleTextButton" + (name ? " " + name : "");
+        }
+        
         
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c10eb181/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/CSSTextToggleButtonView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/CSSTextToggleButtonView.as
 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/CSSTextToggleButtonView.as
index a6b3fac..7de01ef 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/CSSTextToggleButtonView.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/CSSTextToggleButtonView.as
@@ -66,6 +66,8 @@ package org.apache.flex.html.beads
                
                private var toggleButtonModel:IToggleButtonModel;
                
+        private var _selected:Boolean;
+        
         /**
          *  @copy org.apache.flex.core.IBead#strand
          *  
@@ -79,7 +81,7 @@ package org.apache.flex.html.beads
             super.strand = value;
             
                        toggleButtonModel = 
value.getBeadByType(IToggleButtonModel) as IToggleButtonModel;
-            toggleButtonModel.addEventListener("selectedChanged", 
selectedChangeHandler);
+            toggleButtonModel.addEventListener("selectedChange", 
selectedChangeHandler);
                }
        
                private function 
selectedChangeHandler(event:org.apache.flex.events.Event):void

Reply via email to