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