Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/Contact.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/other/Contact.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/other/Contact.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,37 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +{ + [Bindable] + public class Contact + { + public var name:String; + public var phone:String; + public var email:String; + public var address:String; + public var city:String; + public var state:String; + public var zip:String; + + + public function Contact() + { + } + } +} \ No newline at end of file
Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/ControllingViewportExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/ControllingViewportExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/ControllingViewportExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/ControllingViewportExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor1Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor1Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor1Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor1Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor2Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor2Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor2Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/Cursor2Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop1Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop1Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop1Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop1Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop2Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop2Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop2Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/DragAndDrop2Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/FilterExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/FilterExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/FilterExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/FilterExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/RepeaterExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/RepeaterExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/RepeaterExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/RepeaterExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/ScrollBarsExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/ScrollBarsExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/ScrollBarsExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/ScrollBarsExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/TDFGradientBackgroundSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/TDFGradientBackgroundSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/assets/ApacheFlexIcon.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/assets/ApacheFlexIcon.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/assets/ApacheFlexLogo.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/assets/ApacheFlexLogo.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/CustomTabBarButtonSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/CustomTabBarButtonSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/CustomTabBarSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/CustomTabBarSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/TDFPanelSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/other/skins/TDFPanelSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/ButtonWithIconExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/ButtonWithIconExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/ButtonWithIconExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/ButtonWithIconExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication1Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication1Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication1Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication1Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication2Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication2Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication2Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication2Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication3Example.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication3Example.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication3Example.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningApplication3Example.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningContainerExample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningContainerExample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningContainerExample.swf ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/SkinningContainerExample.swf ------------------------------------------------------------------------------ svn:mime-type = application/x-shockwave-flash Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/arrow_icon_sm.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/arrow_icon_sm.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_add.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_add.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_check.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_check.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_close16.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_close16.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_plus.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_plus.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_remove.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/icon_remove.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/wood-bg.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/assets/wood-bg.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/AddButtonSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/AddButtonSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/BackgroundImageAppSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/BackgroundImageAppSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CloseButtonSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CloseButtonSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CustomControlBarAppSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CustomControlBarAppSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CustomSkinnableContainerSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/CustomSkinnableContainerSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/FancyButtonSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/FancyButtonSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/GradientBackgroundAppSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/GradientBackgroundAppSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/IconTextButtonSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/IconTextButtonSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/MyPanelSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/MyPanelSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/TDFPanelSkin.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/skinning/skins/TDFPanelSkin.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/states/AnimateShaderTransitionEffect.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/states/AnimateShaderTransitionEffect.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/states/assets/back.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/states/assets/back.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/TextLayoutEditorCanvas.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/TextLayoutEditorCanvas.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/TextLayoutEditorSample.mxml ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/TextLayoutEditorSample.mxml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/%scroll_arrow_down_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/%scroll_arrow_down_over.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/%scroll_arrow_up_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/%scroll_arrow_up_over.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/combo_drop_down_arrow.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/combo_drop_down_arrow.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/header_close_icon.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/header_close_icon.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/header_open_icon.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/header_open_icon.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_down.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_down.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_down_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_down_over.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_up.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_up.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_up_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/assets/scroll_arrow_up_over.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/UiClasses.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/UiClasses.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/UiClasses.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,54 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout +{ + internal class UiClasses + { + import flashx.textLayout.ui.inspectors.DynamicTextPropertyEditor; DynamicTextPropertyEditor; + import flashx.textLayout.ui.inspectors.SelectionUpdateEvent; SelectionUpdateEvent; + import flashx.textLayout.ui.inspectors.TextInspectorController; TextInspectorController; + import flashx.textLayout.ui.inspectors.CharacterPropertyEditor; CharacterPropertyEditor; + import flashx.textLayout.ui.inspectors.LinkPropertyEditor; LinkPropertyEditor; + import flashx.textLayout.ui.inspectors.TabPropertyEditor; TabPropertyEditor; + import flashx.textLayout.ui.inspectors.AdvancedTextPropertyEditor; AdvancedTextPropertyEditor; + import flashx.textLayout.ui.inspectors.AntiAliasPropertyEditor; AntiAliasPropertyEditor; + import flashx.textLayout.ui.inspectors.TextContainerPropertyEditor; TextContainerPropertyEditor; + import flashx.textLayout.ui.inspectors.TextFlowPropertyEditor; TextFlowPropertyEditor; + import flashx.textLayout.ui.inspectors.ParagraphPropertyEditor; ParagraphPropertyEditor; + + import flashx.textLayout.ui.styles.ScrollbarThumbOverSkin; ScrollbarThumbOverSkin; + import flashx.textLayout.ui.styles.ScrollbarTrackSkin; ScrollbarTrackSkin; + import flashx.textLayout.ui.styles.ScrollbarThumbUpSkin; ScrollbarThumbUpSkin; + import flashx.textLayout.ui.styles.ScrollbarDownArrowUpSkin; ScrollbarDownArrowUpSkin; + import flashx.textLayout.ui.styles.ScrollbarUpArrowUpSkin; ScrollbarUpArrowUpSkin; + import flashx.textLayout.ui.styles.PopupMenuSkin; PopupMenuSkin; + + import flashx.textLayout.ui.rulers.RulerBar; RulerBar; + import flashx.textLayout.ui.rulers.RulerDragTracker; RulerDragTracker; + import flashx.textLayout.ui.rulers.RulerMarker; RulerMarker; + import flashx.textLayout.ui.rulers.TabMarker; TabMarker; + import flashx.textLayout.ui.rulers.TabMarkerSkin; TabMarkerSkin; + import flashx.textLayout.ui.rulers.ParagraphPropertyMarker; ParagraphPropertyMarker; + import flashx.textLayout.ui.rulers.ParagraphPropertyMarkerSkin; ParagraphPropertyMarkerSkin; + + import flashx.textLayout.ui.MultiPanel; MultiPanel; + import flashx.textLayout.ui.MultiPanelHeaderSkin; MultiPanelHeaderSkin; + import flashx.textLayout.ui.PanelWithEdgeBars; PanelWithEdgeBars; + } +} Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanel.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanel.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanel.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,206 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui +{ + import flash.events.MouseEvent; + + import mx.controls.Button; + import mx.core.EdgeMetrics; + import mx.core.LayoutContainer; + import mx.core.ScrollPolicy; + import mx.effects.Resize; + import mx.events.ResizeEvent; + + [Style(name="openDuration", type="Number", format="Time", inherit="no")] + [Style(name="closeDuration", type="Number", format="Time", inherit="no")] + [Style(name="headerTextAlign", type="String", inherit="no")] + + public class MultiPanel extends LayoutContainer { + + [Embed (source="assets/header_close_icon.png")] + private static var ICON_CLOSE:Class; + + [Embed (source="assets/header_open_icon.png")] + private static var ICON_OPEN:Class; + + private static var SPACING_TOP:uint = 10; + private static var SPACING_BOTTOM:uint = 5; + private var _headerButton:Button = null; + private var _openedChanged:Boolean = false; + private var _opened:Boolean = true; + private var _viewMetrics:EdgeMetrics; + private var resize:Resize; + + public function MultiPanel() { + super(); + + this.verticalScrollPolicy = ScrollPolicy.OFF; + this.horizontalScrollPolicy = ScrollPolicy.OFF; + + addEventListener("PropertyEditorChanged", onPropertyEditorChange); + } + + protected function createOrReplaceHeaderButton():void { + if(_headerButton) { + _headerButton.removeEventListener(MouseEvent.CLICK, headerButton_clickHandler); + + if(rawChildren.contains(_headerButton)) + rawChildren.removeChild(_headerButton); + } + + _headerButton = new Button(); + applyHeaderButtonStyles(_headerButton); + _headerButton.addEventListener(MouseEvent.CLICK, headerButton_clickHandler); + rawChildren.addChild(_headerButton); + } + + protected function applyHeaderButtonStyles(button:Button):void { + button.setStyle("textAlign", getStyle("headerTextAlign")); + button.styleName = "multiPanelHeader"; + button.height = getStyle("headerHeight"); + button.label = label; + + if(_opened) + button.setStyle('icon', ICON_OPEN); + else + button.setStyle('icon', ICON_CLOSE); + } + + override public function set label(value:String):void { + super.label = value; + if(_headerButton) _headerButton.label = value; + } + + public function get opened():Boolean { + return _opened; + } + + [Bindable] + public function set opened(value:Boolean):void { + var old:Boolean = _opened; + + _opened = value; + _openedChanged = _openedChanged || old != _opened; + + if(_openedChanged && initialized) { + measure(); + runResizeEffect(); + + invalidateProperties(); + } + } + + override public function styleChanged(styleProp:String):void { + super.styleChanged(styleProp); + + if(styleProp == "headerTextAlign") { + applyHeaderButtonStyles(_headerButton); + } + + invalidateDisplayList(); + } + + override protected function createChildren():void { + super.createChildren(); + + createOrReplaceHeaderButton(); + } + + override protected function commitProperties():void { + super.commitProperties(); + + if(_openedChanged) { + if(_opened) + _headerButton.setStyle('icon', ICON_OPEN); + else + _headerButton.setStyle('icon', ICON_CLOSE); + + _openedChanged = false; + } + } + + override protected function updateDisplayList(w:Number, h:Number):void { + super.updateDisplayList(w, h); + + _headerButton.move(0,0); + _headerButton.setActualSize(w, _headerButton.getExplicitOrMeasuredHeight()); + } + + override public function get viewMetrics():EdgeMetrics { + if (!_viewMetrics) + _viewMetrics = new EdgeMetrics(0, 0, 0, 0); + + var edgeMetrics:EdgeMetrics = _viewMetrics; + var parentEdgeMetrics:EdgeMetrics = super.viewMetrics; + + edgeMetrics.left = parentEdgeMetrics.left; + edgeMetrics.top = parentEdgeMetrics.top + SPACING_TOP; + edgeMetrics.right = parentEdgeMetrics.right; + edgeMetrics.bottom = parentEdgeMetrics.bottom + SPACING_BOTTOM; + + var headerHeight:Number = _headerButton.getExplicitOrMeasuredHeight(); + if (!isNaN(headerHeight)) { + edgeMetrics.top += headerHeight; + } + + return edgeMetrics; + } + + override protected function measure():void { + super.measure(); + + if(!_opened) { + //only the height of the header button + measuredHeight = _headerButton.getExplicitOrMeasuredHeight(); + } + } + + protected function runResizeEffect():void { + if(resize && resize.isPlaying) + resize.end(); + + var duration:Number = _opened ? getStyle("openDuration") : getStyle("closeDuration"); + if(duration == 0) { + this.setActualSize(getExplicitOrMeasuredWidth(), measuredHeight); + + invalidateSize(); + invalidateDisplayList(); + } + else { + resize = new Resize(this); + resize.heightTo = Math.min(maxHeight, measuredHeight); + resize.duration = duration; + resize.play(); + } + } + + protected function headerButton_clickHandler(event:MouseEvent):void { + opened = !_opened; + } + + private function onPropertyEditorChange(event:Event):void { + // Make sure that the panel exists and is open before doing anything + if(initialized && _opened) { + measure(); + runResizeEffect(); + invalidateProperties(); + } + } + } +} Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanelHeaderSkin.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanelHeaderSkin.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/MultiPanelHeaderSkin.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,58 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui +{ + import mx.skins.RectangularBorder; + import mx.utils.GraphicsUtil; + import flash.display.LineScaleMode; + import flash.display.CapsStyle; + + public class MultiPanelHeaderSkin extends RectangularBorder + { + public function MultiPanelHeaderSkin() + { + super(); + } + + override protected function updateDisplayList(w:Number, h:Number):void + { + super.updateDisplayList(w, h); + + var fillColors:Array = [0x000000, 0x000000]; + var fillAlphas:Array = [1.0, 1.0]; + var borderColor:uint = 0x2A2A2A; + var borderAlpha:Number = 1.0; + + if (getStyle("fillColors") != undefined) + fillColors = getStyle("fillColors"); + if (getStyle("fillAlphas") != undefined) + fillAlphas = getStyle("fillAlphas"); + if (getStyle("borderColor") != undefined) + borderColor = getStyle("borderColor"); + if (getStyle("borderAlpha") != undefined) + borderAlpha = getStyle("borderAlpha"); + + graphics.clear(); + drawRoundRect(0,0,w, h, null, fillColors, fillAlphas, verticalGradientMatrix(0,0,w,h)); + graphics.lineStyle(1, borderColor, borderAlpha, true, LineScaleMode.NONE, CapsStyle.SQUARE); + graphics.drawRect(0, 0, w-1, h); + } + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/PanelWithEdgeBars.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/PanelWithEdgeBars.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/PanelWithEdgeBars.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,266 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui +{ + import flash.geom.Rectangle; + + import mx.binding.utils.*; + import mx.containers.Canvas; + import mx.core.UIComponent; + import mx.events.ResizeEvent; + + public class PanelWithEdgeBars extends Canvas + { + public function PanelWithEdgeBars() + { + super(); + addEventListener(ResizeEvent.RESIZE, onResize); + } + + public function set mainPanel(inPanel:UIComponent):void + { + if (mMainPanel == null) + { + mMainPanel = inPanel; + ArrangeContents(); + } + else if (mMainPanel != inPanel) + throw new Error("Can't set main panel more than once."); + } + + public function get mainPanel():UIComponent + { + return mMainPanel; + } + + public function set topBar(inBar:UIComponent):void + { + if (mTopBar == null && inBar != null) + { + mTopBar = inBar; + ArrangeContents(); + var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(includeInLayoutChanged, mTopBar, "includeInLayout"); + } + else if (mTopBar != inBar) + throw new Error("Can't set any edge bar more than once."); + } + + public function get topBar():UIComponent + { + return mTopBar; + } + + public function set rightBar(inBar:UIComponent):void + { + if (mRightBar == null && inBar != null) + { + mRightBar = inBar; + ArrangeContents(); + var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(includeInLayoutChanged, mRightBar, "includeInLayout"); + } + else if (mRightBar != inBar) + throw new Error("Can't set any edge bar more than once."); + } + + public function get rightBar():UIComponent + { + return mRightBar; + } + + public function set bottomBar(inBar:UIComponent):void + { + if (mBottomBar == null && inBar != null) + { + mBottomBar = inBar; + ArrangeContents(); + var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(includeInLayoutChanged, mBottomBar, "includeInLayout"); + } + else if (mBottomBar != inBar) + throw new Error("Can't set any edge bar more than once."); + } + + public function get bottomBar():UIComponent + { + return mBottomBar; + } + + public function set leftBar(inBar:UIComponent):void + { + if (mLeftBar == null && inBar != null) + { + mLeftBar = inBar; + ArrangeContents(); + var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(includeInLayoutChanged, mLeftBar, "includeInLayout"); + } + else if (mLeftBar != inBar) + throw new Error("Can't set any edge bar more than once."); + } + + public function get leftBar():UIComponent + { + return mLeftBar; + } + + public function set edgeInset(inInset:Number):void + { + mEdgeInset = inInset; + ArrangeContents(); + } + + public function get edgeInset():Number + { + return mEdgeInset; + } + + public function set gap(inGap:Number):void + { + mGap = inGap; + ArrangeContents(); + } + + public function get gap():Number + { + return mGap; + } + + public function set leftInset(inInset:Number):void + { + mLeftInset = inInset; + ArrangeContents(); + } + + public function get leftInset():Number + { + return mLeftInset; + } + + public function set topInset(inInset:Number):void + { + mTopInset = inInset; + ArrangeContents(); + } + + public function get topInset():Number + { + return mTopInset; + } + + public function set rightInset(inInset:Number):void + { + mRightInset = inInset; + ArrangeContents(); + } + + public function get rightInset():Number + { + return mRightInset; + } + + public function set bottomInset(inInset:Number):void + { + mBottomInset = inInset; + ArrangeContents(); + } + + public function get bottomInset():Number + { + return mBottomInset; + } + + private function onResize(evt:ResizeEvent):void + { + ArrangeContents(); + } + + private function includeInLayoutChanged(val:Boolean):void { + ArrangeContents(); + } + + private function ArrangeContents():void + { + var space:Rectangle = new Rectangle(0, 0, width, height); + for (var i:int = numChildren - 1; i >= 0; --i) + { + var child:UIComponent = getChildAt(i) as UIComponent; + if (child && child.includeInLayout) + { + var inset:Number; + if (child == mTopBar) + { + inset = mTopInset ? mTopInset : mEdgeInset; + child.x = space.x; + child.width = space.width; + child.y = space.y; + child.height = inset; + space.y += inset + mGap; + space.height -= inset + mGap; + } + else if (child == mRightBar) + { + inset = mRightInset ? mRightInset : mEdgeInset; + child.x = space.right - inset; + child.width = inset; + child.y = space.y; + child.height = space.height; + space.width -= inset + mGap; + } + else if (child == mBottomBar) + { + inset = mBottomInset ? mBottomInset : mEdgeInset; + child.x = space.x; + child.width = space.width; + child.y = space.bottom - inset; + child.height = inset; + space.height -= inset + mGap; + } + if (child == mLeftBar) + { + inset = mLeftInset ? mLeftInset : mEdgeInset; + child.x = space.x; + child.width = inset; + child.y = space.y; + child.height = space.height; + space.x += inset + mGap; + space.width -= inset + mGap; + } + } + } + if (mMainPanel) + { + mMainPanel.x = space.x; + mMainPanel.y = space.y; + mMainPanel.width = space.width; + mMainPanel.height = space.height; + } + } + + private var mTopBar:UIComponent = null; + private var mRightBar:UIComponent = null; + private var mBottomBar:UIComponent = null; + private var mLeftBar:UIComponent = null; + private var mMainPanel:UIComponent = null; + private var mEdgeInset:Number = 16; + private var mLeftInset:Number = 0; + private var mRightInset:Number = 0; + private var mTopInset:Number = 0; + private var mBottomInset:Number = 0; + private var mGap:Number = 1; + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/%scroll_arrow_down_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/%scroll_arrow_down_over.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/%scroll_arrow_up_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/%scroll_arrow_up_over.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/combo_drop_down_arrow.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/combo_drop_down_arrow.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/header_close_icon.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/header_close_icon.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/header_open_icon.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/header_open_icon.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_down.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_down.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_down_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_down_over.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_up.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_up.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_up_over.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/assets/scroll_arrow_up_over.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AdvancedTextPropertyEditor.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AdvancedTextPropertyEditor.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AdvancedTextPropertyEditor.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,190 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui.inspectors +{ + import flash.text.engine.*; + + import flashx.textLayout.formats.FormatValue; + import flashx.textLayout.formats.TextLayoutFormat; + import flashx.textLayout.tlf_internal; + use namespace tlf_internal; + + public class AdvancedTextPropertyEditor extends DynamicTextPropertyEditor + { + public function AdvancedTextPropertyEditor() + { + var recipe:XML = + <recipe> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/DigitCase=Digit Case:"> + <property name={TextInspectorController.DIGIT_CASE_UIPROP}/> + <choice display="Default" value={flash.text.engine.DigitCase.DEFAULT}/> + <choice display="Lining" value={flash.text.engine.DigitCase.LINING}/> + <choice display="Old Style" value={flash.text.engine.DigitCase.OLD_STYLE}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/DigitWidth=Digit Width:"> + <property name={TextInspectorController.DIGIT_WIDTH_UIPROP}/> + <choice display="Default" value={flash.text.engine.DigitWidth.DEFAULT}/> + <choice display="Proportional" value={flash.text.engine.DigitWidth.PROPORTIONAL}/> + <choice display="Tabular" value={flash.text.engine.DigitWidth.TABULAR}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/DominantBaseline=Dominant Baseline:"> + <property name={TextInspectorController.DOMINANT_BASELINE_UIPROP}/> + <choice display="Auto" value={FormatValue.AUTO}/> + <choice display="Roman" value={flash.text.engine.TextBaseline.ROMAN}/> + <choice display="Ascent" value={flash.text.engine.TextBaseline.ASCENT}/> + <choice display="Descent" value={flash.text.engine.TextBaseline.DESCENT}/> + <choice display="Ideographic Top" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_TOP}/> + <choice display="Ideographic Center" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_CENTER}/> + <choice display="Ideographic Bottom" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_BOTTOM}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/AlignmentBaseline=Alignment Baseline:"> + <property name={TextInspectorController.ALIGNMENT_BASELINE_UIPROP}/> + <choice display="Roman" value={flash.text.engine.TextBaseline.ROMAN}/> + <choice display="Ascent" value={flash.text.engine.TextBaseline.ASCENT}/> + <choice display="Descent" value={flash.text.engine.TextBaseline.DESCENT}/> + <choice display="Ideographic Top" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_TOP}/> + <choice display="Ideographic Center" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_CENTER}/> + <choice display="Ideographic Bottom" value={flash.text.engine.TextBaseline.IDEOGRAPHIC_BOTTOM}/> + <choice display="Use Dominant" value={flash.text.engine.TextBaseline.USE_DOMINANT_BASELINE}/> + </editor> + </row> + <row> + <editor type="hotnumberunit" label="$$$/stage/TextEditing/Label/BaselineShift=Baseline Shift:"> + <property name={TextInspectorController.BASELINE_SHIFT_UIPROP}/> + <defaultunit>pix</defaultunit> + <numericunit displayname="%" + min={TextLayoutFormat.baselineShiftProperty.minPercentValue} + max={TextLayoutFormat.baselineShiftProperty.maxPercentValue} + default="0" + decimals="1"/> + <numericunit displayname="pix" + min={TextLayoutFormat.baselineShiftProperty.minNumberValue} + max={TextLayoutFormat.baselineShiftProperty.maxNumberValue} + default="0" + decimals="1"/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Ligatures=Ligatures:"> + <property name={TextInspectorController.LIGATURE_LEVEL_UIPROP}/> + <choice display="Minimum" value={flash.text.engine.LigatureLevel.MINIMUM}/> + <choice display="Common" value={flash.text.engine.LigatureLevel.COMMON}/> + <choice display="Uncommon" value={flash.text.engine.LigatureLevel.UNCOMMON}/> + <choice display="Exotic" value={flash.text.engine.LigatureLevel.EXOTIC}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Rotation=Rotation:"> + <property name={TextInspectorController.TEXT_ROTATION_UIPROP}/> + <choice display="0 degrees" value={flash.text.engine.TextRotation.ROTATE_0}/> + <choice display="90 degrees" value={flash.text.engine.TextRotation.ROTATE_90}/> + <choice display="180 degrees" value={flash.text.engine.TextRotation.ROTATE_180}/> + <choice display="270 degrees" value={flash.text.engine.TextRotation.ROTATE_270}/> + <choice display="auto" value={flash.text.engine.TextRotation.AUTO}/> + </editor> + </row> + <row> + <editor type="hotnumber" label="$$$/stage/TextEditing/Label/Alpha=Alpha:" suffix="%"> + <property name={TextInspectorController.TEXT_ALPHA_UIPROP} + minValue="0" + maxValue="100" + convertToPercent="yes"/> + </editor> + </row> + <row> + <editor type="hotnumber" label="$$$/stage/TextEditing/Label/BackgroundAlpha=Background alpha:" suffix="%"> + <property name={TextInspectorController.BACKGROUND_ALPHA_UIPROP} + minValue="0" + maxValue="100" + convertToPercent="yes"/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Break=Break:"> + <property name={TextInspectorController.BREAK_OPPORTUNITY_UIPROP}/> + <choice display="All" value={flash.text.engine.BreakOpportunity.ALL}/> + <choice display="Any" value={flash.text.engine.BreakOpportunity.ANY}/> + <choice display="Auto" value={flash.text.engine.BreakOpportunity.AUTO}/> + <choice display="No Break" value={flash.text.engine.BreakOpportunity.NONE}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Lacale=Locale:"> + <property name={TextInspectorController.LOCALE_UIPROP}/> + <choice display="Arabic" value="ar"/>, + <choice display="Bengali" value="bn"/>, + <choice display="Bulgarian" value="bg"/>, + <choice display="Catalan" value="ca"/>, + <choice display="Chinese, Simplified (China)" value="zh-CN"/>, + <choice display="Chinese, Traditional (Taiwan)" value="zh-TW"/>, + <choice display="Croatian" value="hr"/>, + <choice display="Czech" value="cs"/>, + <choice display="Danish" value="da"/>, + <choice display="Dutch" value="nl"/>, + <choice display="English" value="en"/>, + <choice display="Estonian" value="et"/>, + <choice display="Finnish" value="fi"/>, + <choice display="French" value="fr"/>, + <choice display="German" value="de"/>, + <choice display="Greek" value="el"/>, + <choice display="Gujarati" value="gu"/>, + <choice display="Hindi" value="hi"/>, + <choice display="Hebrew" value="he"/>, + <choice display="Hungarian" value="hu"/>, + <choice display="Italian" value="it"/>, + <choice display="Japanese" value="ja"/>, + <choice display="Korean" value="ko"/>, + <choice display="Latvian" value="lv"/>, + <choice display="Lithuanian" value="lt"/>, + <choice display="Marathi" value="mr"/>, + <choice display="Norwegian" value="no"/>, + <choice display="Persian" value="fa"/>, + <choice display="Polish" value="pl"/>, + <choice display="Portuguese" value="pt"/>, + <choice display="Punjabi" value="pa"/>, + <choice display="Romanian" value="ro"/>, + <choice display="Russian" value="ru"/>, + <choice display="Slovak" value="sk"/>, + <choice display="Slovenian" value="sl"/>, + <choice display="Spanish" value="es"/>, + <choice display="Swedish" value="sv"/>, + <choice display="Tamil" value="ta"/>, + <choice display="Telugu" value="te"/>, + <choice display="Thai" value="th"/>, + <choice display="Turkish" value="tr"/>, + <choice display="Ukrainian" value="uk"/>, + <choice display="Urdu" value="ur"/>, + <choice display="Vietnamese" value="vi"/> + </editor> + </row> + </recipe>; + + super(recipe); + } + + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AntiAliasPropertyEditor.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AntiAliasPropertyEditor.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/AntiAliasPropertyEditor.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,51 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui.inspectors +{ + import flash.text.AntiAliasType; + import flash.text.engine.CFFHinting; + import flash.text.engine.RenderingMode; + + public class AntiAliasPropertyEditor extends DynamicTextPropertyEditor + { + public function AntiAliasPropertyEditor() + { + var recipe:XML = + <recipe> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Antialias=Antialias:"> + <property name={TextInspectorController.RENDERING_MODE_UIPROP}/> + <choice display="Normal" value={flash.text.engine.RenderingMode.NORMAL}/> + <choice display="CFF" value={flash.text.engine.RenderingMode.CFF}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/GridFit=Grid Fit:"> + <property name={TextInspectorController.CFF_HINTING_UIPROP}/> + <choice display="None" value={flash.text.engine.CFFHinting.NONE}/> + <choice display="Horizontal stem" value={flash.text.engine.CFFHinting.HORIZONTAL_STEM}/> + </editor> + </row> + </recipe>; + super(recipe); + } + + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,179 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui.inspectors +{ + import flash.text.engine.*; + + import flashx.textLayout.formats.TextLayoutFormat; + import flashx.textLayout.tlf_internal; + use namespace tlf_internal; + + public class CharacterPropertyEditor extends DynamicTextPropertyEditor + { + [Embed(source="./assets/bold_icon.png")] + private var boldIcon:Class; + + [Embed(source="./assets/italic_icon.png")] + private var italicIcon:Class; + + [Embed(source="./assets/underline_icon.png")] + private var underlineIcon:Class; + + [Embed(source="./assets/strikethrough_icon.png")] + private var strikethroughIcon:Class; + + [Embed(source="./assets/superscript_icon.png")] + private var superscriptIcon:Class; + + [Embed(source="./assets/subscript_icon.png")] + private var subscriptIcon:Class; + + [Embed(source="./assets/tcy_icon.png")] + private var tcyIcon:Class; + + public function CharacterPropertyEditor() + { + var recipe:XML = + <recipe> + <row> + <editor type="fontPicker" label="$$$/stage/TextEditing/Label/Font=Font:"> + <property name={TextInspectorController.FONT_FAMILY_UIPROP}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/FontLookup=Lookup:"> + <property name={TextInspectorController.FONT_LOOKUP_UIPROP}/> + <choice display="Device" value={flash.text.engine.FontLookup.DEVICE}/> + <choice display="Embedded CFF" value={flash.text.engine.FontLookup.EMBEDDED_CFF}/> + </editor> + </row> + <row> + <editor type="hotnumber" label="$$$/stage/TextEditing/Label/Size=Size:" decimals="1" enforcePrecision="no"> + <property name={TextInspectorController.FONT_SIZE_UIPROP} + minValue={TextLayoutFormat.fontSizeProperty.minValue} + maxValue={TextLayoutFormat.fontSizeProperty.maxValue}/> + </editor> + <editor type="hotnumberunit" label="$$$/stage/TextEditing/Label/Leading=Leading:"> + <property name={TextInspectorController.LINE_HEIGHT_UIPROP}/> + <defaultunit>pix</defaultunit> + <numericunit displayname="%" + min={TextLayoutFormat.lineHeightProperty.minPercentValue} + max={TextLayoutFormat.lineHeightProperty.maxPercentValue} + default="120"/> + <numericunit displayname="pix" + min={TextLayoutFormat.lineHeightProperty.minNumberValue} + max={TextLayoutFormat.lineHeightProperty.maxNumberValue} + default="14" + decimals="1"/> + </editor> + </row> + <row style="toggleButtonRow"> + <editor type="toggleButton" style="toggleIconButton" iconClass="boldIcon" width="17" commit="yes"> + <property name={TextInspectorController.FONT_WEIGHT_UIPROP} falseValue="normal" trueValue="bold"/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="italicIcon" width="17" commit="yes"> + <property name={TextInspectorController.FONT_STYLE_UIPROP} falseValue="normal" trueValue="italic"/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="underlineIcon" width="17" commit="yes"> + <property name={TextInspectorController.TEXT_DECORATION_UIPROP} falseValue="none" trueValue="underline"/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="strikethroughIcon" width="17" commit="yes"> + <property name={TextInspectorController.LINE_THROUGH_UIPROP}/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="superscriptIcon" width="17" commit="yes"> + <property name={TextInspectorController.BASELINE_SHIFT_SUPER_UIPROP} falseValue="0" trueValue={flashx.textLayout.formats.BaselineShift.SUPERSCRIPT}/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="subscriptIcon" width="17" commit="yes"> + <property name={TextInspectorController.BASELINE_SHIFT_SUB_UIPROP} falseValue="0" trueValue={flashx.textLayout.formats.BaselineShift.SUBSCRIPT}/> + </editor> + <editor type="toggleButton" style="toggleIconButton" iconClass="tcyIcon" width="17" commit="yes"> + <property name={TextInspectorController.TCY_UIPROP}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Kerning=Kerning:"> + <property name={TextInspectorController.KERNING_UIPROP}/> + <choice display="On" value={flash.text.engine.Kerning.ON}/> + <choice display="Off" value={flash.text.engine.Kerning.OFF}/> + <choice display="Auto" value={flash.text.engine.Kerning.AUTO}/> + </editor> + </row> + <row> + <editor type="hotnumberunit" label="$$$/stage/TextEditing/Label/Tracking=Track R:"> + <property name={TextInspectorController.TRACKING_RIGHT_UIPROP}/> + <defaultunit>pix</defaultunit> + <numericunit displayname="%" + min={TextLayoutFormat.trackingRightProperty.minPercentValue} + max={TextLayoutFormat.trackingRightProperty.maxPercentValue} + default="0"/> + <numericunit displayname="pix" + min={TextLayoutFormat.trackingRightProperty.minNumberValue} + max={TextLayoutFormat.trackingRightProperty.maxNumberValue} + default="0" + decimals="1"/> + </editor> + </row> + <row> + <editor type="hotnumberunit" label="$$$/stage/TextEditing/Label/Tracking=Track L:"> + <property name={TextInspectorController.TRACKING_LEFT_UIPROP}/> + <defaultunit>pix</defaultunit> + <numericunit displayname="%" + min={TextLayoutFormat.trackingLeftProperty.minPercentValue} + max={TextLayoutFormat.trackingLeftProperty.maxPercentValue} + default="0"/> + <numericunit displayname="pix" + min={TextLayoutFormat.trackingLeftProperty.minNumberValue} + max={TextLayoutFormat.trackingLeftProperty.maxNumberValue} + default="0" + decimals="1"/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/Case=Case:"> + <property name={TextInspectorController.TYPOGRAPHIC_CASE_UIPROP}/> + <choice display="Default" value={flashx.textLayout.formats.TLFTypographicCase.DEFAULT}/> + <choice display="Caps to Small Caps" value={flashx.textLayout.formats.TLFTypographicCase.CAPS_TO_SMALL_CAPS}/> + <choice display="Upper" value={flashx.textLayout.formats.TLFTypographicCase.UPPERCASE}/> + <choice display="Lower" value={flashx.textLayout.formats.TLFTypographicCase.LOWERCASE}/> + <choice display="Lowercase to Small Caps" value={flashx.textLayout.formats.TLFTypographicCase.LOWERCASE_TO_SMALL_CAPS}/> + </editor> + </row> + <row> + <editor type="color" label="$$$/stage/TextEditing/Label/Color=Color:"> + <property name={TextInspectorController.COLOR_UIPROP}/> + </editor> + <editor type="color" label="$$$/stage/TextEditing/Label/BackgroundColor=Background color:"> + <property name={TextInspectorController.BGCOLOR_UIPROP}/> + </editor> + </row> + </recipe>; + + super(recipe); + SetIcon("boldIcon", boldIcon); + SetIcon("italicIcon", italicIcon); + SetIcon("underlineIcon", underlineIcon); + SetIcon("strikethroughIcon", strikethroughIcon); + SetIcon("superscriptIcon", superscriptIcon); + SetIcon("subscriptIcon", subscriptIcon); + SetIcon("tcyIcon", tcyIcon); + } + + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,74 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui.inspectors +{ + import bxf.ui.inspectors.DynamicPropertyEditorBase; + + import mx.events.PropertyChangeEvent; + + public class DynamicTextPropertyEditor extends DynamicPropertyEditorBase + { + public function DynamicTextPropertyEditor(inRecipe:XML) + { + super(inRecipe); + TextInspectorController.Instance().addEventListener(SelectionUpdateEvent.SELECTION_UPDATE, onSelectionUpdate); + addEventListener(DynamicPropertyEditorBase.MODELCHANGED_EVENT, onFormatValueChanged, false, 0, true); + addEventListener(DynamicPropertyEditorBase.MODELEDITED_EVENT, onFormatValueChanged, false, 0, true); + } + + public function set active(inActive:Boolean):void + { + if (mActive != inActive) + { + mActive = inActive; + if (mActive) + TextInspectorController.Instance().forceBroadcastFormats(); + } + } + + public function get active():Boolean + { + return mActive; + } + + private function onSelectionUpdate(e:SelectionUpdateEvent):void + { + if (mActive) + { + reset(); + for (var id:String in e.format) + { + if (e.format[id].length == 1) + properties[id] = e.format[id][0]; + else + properties[id] = e.format[id]; + } + rebuildUI(); + } + } + + private function onFormatValueChanged(e:PropertyChangeEvent):void + { + TextInspectorController.Instance().SetTextProperty(e.property as String, e.newValue); + } + + private var mActive:Boolean = false; + } +} \ No newline at end of file Added: websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as ============================================================================== --- websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as (added) +++ websites/staging/flex/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as Sat Aug 23 08:50:20 2014 @@ -0,0 +1,50 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 flashx.textLayout.ui.inspectors +{ + public class LinkPropertyEditor extends DynamicTextPropertyEditor + { + public function LinkPropertyEditor() + { + var recipe:XML = + <recipe> + <row> + <editor type="string" label="$$$/stage/TextEditing/Label/linkURL=URL:" width="150"> + <property name={TextInspectorController.LINK_URL_UIPROP}/> + </editor> + </row> + <row> + <editor type="combo" label="$$$/stage/TextEditing/Label/linkTarget=Target:"> + <property name={TextInspectorController.LINK_TARGET_UIPROP}/> + <choice display="_blank" value={"_blank"}/> + <choice display="_self" value={"_self"}/> + <choice display="_parent" value={"_parent"}/> + <choice display="_top" value={"_top"}/> + </editor> + <editor type="checkbox" label="$$$/stage/TextEditing/Label/linkExtend=Extend:"> + <property name={TextInspectorController.LINK_EXTEND_UIPROP}/> + </editor> + </row> + </recipe>; + super(recipe); + } + + } +} \ No newline at end of file