This is an automated email from the ASF dual-hosted git repository. yishayw pushed a commit to branch cascading in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 106225a4a8e731177a62950dbbd90cdbc9ca69de Author: DESKTOP-RH4S838\Yishay <[email protected]> AuthorDate: Fri Jul 5 16:28:56 2019 +0300 Starting Fix for mx cascade bug --- examples/mxroyale/HelloWorld/.build.xml.swp | 0 examples/mxroyale/HelloWorld/.build.xml.un~ | Bin 0 -> 2949 bytes examples/mxroyale/HelloWorld/build.xml~ | 55 ++++++++++ .../src/main/royale/.HelloWorld.mxml.swp | Bin 0 -> 12288 bytes .../src/main/royale/.HelloWorld.mxml.un~ | Bin 0 -> 9905 bytes .../HelloWorld/src/main/royale/HelloWorld.mxml | 113 ++++++++++++++------- .../royale/{HelloWorld.mxml => HelloWorld.mxml~} | 2 +- .../src/mx/controls/.MenuBarExample.mxml.swp | Bin 0 -> 12288 bytes .../projects/Basic/src/main/royale/BasicClasses.as | 1 + .../CascadingMenuSelectionMouseController.as | 17 +++- .../supportClasses/CascadingMenuItemRenderer.as | 28 +++-- .../MXRoyale/src/main/resources/defaults.css | 5 +- .../MXRoyale/src/main/royale/MXRoyaleClasses.as | 3 +- .../CascadingMenuSelectionMouseController.as} | 54 +++++----- .../menuClasses/.MenuBarItemRenderer.as.un~ | Bin 0 -> 6333 bytes .../mx/controls/menuClasses/MenuBarItemRenderer.as | 58 ++++++++--- .../src/main/royale/mx/managers/SystemManager.as | 9 +- 17 files changed, 248 insertions(+), 97 deletions(-) diff --git a/examples/mxroyale/HelloWorld/.build.xml.swp b/examples/mxroyale/HelloWorld/.build.xml.swp new file mode 100644 index 0000000..e69de29 diff --git a/examples/mxroyale/HelloWorld/.build.xml.un~ b/examples/mxroyale/HelloWorld/.build.xml.un~ new file mode 100644 index 0000000..591065e Binary files /dev/null and b/examples/mxroyale/HelloWorld/.build.xml.un~ differ diff --git a/examples/mxroyale/HelloWorld/build.xml~ b/examples/mxroyale/HelloWorld/build.xml~ new file mode 100644 index 0000000..62250e0 --- /dev/null +++ b/examples/mxroyale/HelloWorld/build.xml~ @@ -0,0 +1,55 @@ +<?xml version="1.0"?> +<!-- + + 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. + +--> + + +<project name="helloworld" default="main" basedir="."> + <property name="ROYALE_HOME" location="../../.."/> + <property name="example" value="HelloWorld" /> + + <property file="${ROYALE_HOME}/env.properties"/> + <property environment="env"/> + <property file="${ROYALE_HOME}/build.properties"/> + <property name="ROYALE_HOME" value="${ROYALE_HOME}"/> + <property name="config_arg" value="flex"/> + + <include file="${basedir}/../../build_example.xml" /> + + <target name="main" depends="clean,build_example.compile" description="Clean build of ${example}"> + </target> + + <target name="clean"> + <delete dir="${basedir}/bin" failonerror="false" /> + <delete dir="${basedir}/bin-debug" failonerror="false" /> + <delete dir="${basedir}/bin-release" failonerror="false" /> + <delete dir="${basedir}/target" failonerror="false" /> + </target> + + <target name="examine" depends="build_example.get.browser"> + <property name="which" value="debug" /> + <echo message="Make sure label appears."/> + <exec executable="${browser}" dir="${basedir}/bin-${which}" failonerror="true"> + <arg value="${basedir}/bin-${which}/${example}.html"/> + </exec> + <exec executable="${browser}" dir="${basedir}/bin/js-${which}" failonerror="true"> + <arg value="${basedir}/bin/js-${which}/index.html"/> + </exec> + </target> + +</project> diff --git a/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.swp b/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.swp new file mode 100644 index 0000000..246985e Binary files /dev/null and b/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.swp differ diff --git a/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.un~ b/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.un~ new file mode 100644 index 0000000..f533fbb Binary files /dev/null and b/examples/mxroyale/HelloWorld/src/main/royale/.HelloWorld.mxml.un~ differ diff --git a/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml b/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml index 2a75c9b..ee61b0d 100644 --- a/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml +++ b/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml @@ -1,36 +1,81 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0"?> <!-- + 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 -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. - ---> -<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:mx="library://ns.apache.org/royale/mx" - width="600" height="400" > - <!-- to do: layout="absolute" minWidth="955" minHeight="600" --> - <fx:Style> - @namespace mx "library://ns.apache.org/royale/mx"; - - /* set position:absolute to make the (x,y) properties work */ - mx|Label { - position: absolute; - } - - </fx:Style> - - <mx:Label text="Hello World" x="20" y="20" /> - -</mx:Application> \ No newline at end of file + 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. + --> + +<!-- Simple example to demonstrate the MenuBar control. --> +<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.apache.org/royale/mx" + paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0" + height="100%" width="100%" + creationComplete="initCollections()"> + + <fx:Script> + <![CDATA[ + + import mx.events.MenuEvent; + import mx.controls.Alert; + import mx.collections.*; + + [Bindable] + public var menuBarCollection:XMLListCollection; + + private var menubarXML:XMLList = + <> + <menuitem label="Menu1" data="top"> + <menuitem label="MenuItem 1-A" data="1A"/> + <menuitem label="MenuItem 1-B" data="1B"/> + </menuitem> + <menuitem label="Menu2" data="top"> + <menuitem label="MenuItem 2-A" type="check" data="2A"/> + <menuitem type="separator"/> + <menuitem label="MenuItem 2-B" > + <menuitem label="SubMenuItem 3-A" type="radio" + groupName="one" data="3A"/> + <menuitem label="SubMenuItem 3-B" type="radio" + groupName="one" data="3B"/> + </menuitem> + </menuitem> + </>; + + // Event handler to initialize the MenuBar control. + private function initCollections():void { + menuBarCollection = new XMLListCollection(menubarXML); + } + + // Event handler for the MenuBar control's itemClick event. + private function menuHandler(event:MenuEvent):void { + // Don't open the Alert for a menu bar item that + // opens a popup submenu. + if (event.item.@data != "top") { + Alert.show("Label: " + event.item.@label + "\n" + + "Data: " + event.item.@data, "Clicked menu item"); + } + } + ]]> + </fx:Script> + + <mx:Panel title="MenuBar Control Example" + paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10" + height="100%" width="100%"> + + <mx:Label width="100%" + text="Select a menu item."/> + + <mx:MenuBar labelField="@label" itemClick="menuHandler(event)" + dataProvider="{menuBarCollection}" /> + + </mx:Panel> +</mx:Application> diff --git a/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml b/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml~ similarity index 98% copy from examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml copy to examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml~ index 2a75c9b..294ad81 100644 --- a/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml +++ b/examples/mxroyale/HelloWorld/src/main/royale/HelloWorld.mxml~ @@ -33,4 +33,4 @@ limitations under the License. <mx:Label text="Hello World" x="20" y="20" /> -</mx:Application> \ No newline at end of file +</mx:Application> diff --git a/examples/mxroyale/tourdeflexmodules/src/mx/controls/.MenuBarExample.mxml.swp b/examples/mxroyale/tourdeflexmodules/src/mx/controls/.MenuBarExample.mxml.swp new file mode 100644 index 0000000..b671c07 Binary files /dev/null and b/examples/mxroyale/tourdeflexmodules/src/mx/controls/.MenuBarExample.mxml.swp differ diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as index 0ab59ed..4ecc2de 100644 --- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as +++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as @@ -66,6 +66,7 @@ internal class BasicClasses import org.apache.royale.html.beads.MenuFactory; MenuFactory; import org.apache.royale.html.beads.controllers.MenuSelectionMouseController; MenuSelectionMouseController; import org.apache.royale.html.supportClasses.MenuItemRenderer; MenuItemRenderer; + import org.apache.royale.html.supportClasses.CascadingMenuItemRenderer; CascadingMenuItemRenderer; import org.apache.royale.html.CascadingMenu; CascadingMenu; import org.apache.royale.html.beads.CascadingMenuFactory; CascadingMenuFactory; import org.apache.royale.html.beads.models.CascadingMenuModel; CascadingMenuModel; diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/CascadingMenuSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/CascadingMenuSelectionMouseController.as index 77c8514..bcb8e2d 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/CascadingMenuSelectionMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/CascadingMenuSelectionMouseController.as @@ -82,7 +82,7 @@ package org.apache.royale.html.beads.controllers * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion Royale 0.9 + * @productversion Royale 0.9.6 */ override protected function selectedHandler(event:ItemClickedEvent):void { @@ -90,10 +90,10 @@ package org.apache.royale.html.beads.controllers var model:CascadingMenuModel = _strand.getBeadByType(IBeadModel) as CascadingMenuModel; - if (node.hasOwnProperty(model.submenuField)) { + if (getHasMenu(node, model)) { var component:IUIBase = event.target as IUIBase; var menu:IMenu = new CascadingMenu(); - menu.dataProvider = node[model.submenuField]; + menu.dataProvider = getSubMenuDataProvider(node, model); menu.labelField = model.labelField; menu.parentMenuBar = (_strand as IMenu).parentMenuBar; menu.show(component, component.width, 0); @@ -103,5 +103,16 @@ package org.apache.royale.html.beads.controllers hideOpenMenus(); } } + + protected function getSubMenuDataProvider(node:Object, model:CascadingMenuModel):Object + { + return node[model.submenuField]; + } + + protected function getHasMenu(node:Object, model:CascadingMenuModel):Boolean + { + return node.hasOwnProperty(model.submenuField); + } + } } \ No newline at end of file diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as index 4af2631..501e240 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as @@ -21,9 +21,9 @@ package org.apache.royale.html.supportClasses import org.apache.royale.graphics.SolidColor; import org.apache.royale.html.Label; import org.apache.royale.html.beads.ITextItemRenderer; - import org.apache.royale.svg.Rect; import org.apache.royale.html.supportClasses.DataItemRenderer; import org.apache.royale.html.util.getLabelFromData; + import org.apache.royale.svg.Rect; /** * The CascadingMenuItemRenderer is the itemRenderer class for the elements of a CascadingMenu. @@ -81,12 +81,7 @@ package org.apache.royale.html.supportClasses override public function set data(value:Object):void { super.data = value; - - var isSeparator:Boolean = false; - - if (data.hasOwnProperty("type")) { - if (data["type"] == "separator") isSeparator = true; - } + var isSeparator:Boolean = getType() == "separator"; if (isSeparator) { if (separator == null) { @@ -102,9 +97,9 @@ package org.apache.royale.html.supportClasses addElement(label); } - label.text = getLabelFromData(this,value); + label.text = getLabel(); - if (value.hasOwnProperty("menu")) { + if (getHasMenu()) { if (submenuIndicator == null) { submenuIndicator = new Label(); submenuIndicator.text = "▶"; @@ -117,6 +112,21 @@ package org.apache.royale.html.supportClasses } } + protected function getHasMenu():Boolean + { + return data.hasOwnProperty("menu"); + } + + protected function getLabel():String + { + return getLabelFromData(this,data); + } + + protected function getType():String + { + return data.hasOwnProperty("type") ? data["type"] : null; + } + /** * The label of the itemRenderer, if any. * diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css index e244508..6237249 100644 --- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css +++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css @@ -52,10 +52,11 @@ global { * ------------------------------------------------------- */ -Basic|Menu +Basic|CascadingMenu { IItemRenderer: ClassReference("mx.controls.menuClasses.MenuBarItemRenderer"); IDataProviderItemRendererMapper: ClassReference("mx.controls.listClasses.DataItemRendererFactoryForICollectionViewData"); + IBeadController: ClassReference("mx.controls.beads.controllers.CascadingMenuSelectionMouseController"); } Basic|ComboBoxList @@ -218,7 +219,7 @@ MenuBar { IContentView: ClassReference("org.apache.royale.html.supportClasses.DataGroup"); IItemRenderer: ClassReference("mx.controls.menuClasses.MenuBarItemRenderer"); IBeadController: ClassReference("mx.controls.beads.controllers.MenuBarMouseController"); - IMenuFactory: ClassReference("org.apache.royale.html.beads.MenuFactory"); + IMenuFactory: ClassReference("org.apache.royale.html.beads.CascadingMenuFactory"); IDataProviderItemRendererMapper: ClassReference("mx.controls.listClasses.DataItemRendererFactoryForICollectionViewData"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport"); diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as index 98b6683..c2eed63 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as +++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as @@ -223,7 +223,8 @@ internal class MXRoyaleClasses import mx.controls.beads.NumericStepperView; NumericStepperView; import mx.controls.beads.DateFieldView; DateFieldView; import mx.controls.dateFieldClasses.DateFieldDateChooser; DateFieldDateChooser; - import mx.controls.beads.controllers.MenuBarMouseController; + import mx.controls.beads.controllers.MenuBarMouseController; MenuBarMouseController; + import mx.controls.beads.controllers.CascadingMenuSelectionMouseController; CascadingMenuSelectionMouseController; import mx.containers.PanelTitleBar; PanelTitleBar; import mx.containers.beads.PanelView; PanelView; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as similarity index 50% copy from frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as copy to frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as index 734db75..7289342 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as @@ -17,15 +17,13 @@ // //////////////////////////////////////////////////////////////////////////////// -package mx.controls.menuClasses +package mx.controls.beads.controllers { -import org.apache.royale.core.IBorderPaddingMarginValuesImpl; -import org.apache.royale.core.ValuesManager; -import org.apache.royale.core.layout.EdgeData; -import org.apache.royale.html.supportClasses.StringItemRenderer; + import org.apache.royale.html.beads.controllers.CascadingMenuSelectionMouseController; + import org.apache.royale.html.beads.models.CascadingMenuModel; /** - * The ListItemRenderer is the default renderer for mx.controls.List + * The CascadingMenuSelectionMouseController is the default controller for emulation cascading menu * * @langversion 3.0 * @playerversion Flash 9 @@ -33,30 +31,26 @@ import org.apache.royale.html.supportClasses.StringItemRenderer; * @productversion Flex 3 */ -public class MenuBarItemRenderer extends StringItemRenderer -{ - override public function set text(value:String):void - { - super.text = value; - COMPILE::SWF - { - var edge:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getPaddingMetrics(this); - var h:Number = textField.textHeight + edge.top + edge.bottom; - textField.autoSize = "none"; - textField.height = h; - } - } - - override protected function dataToString(value:Object):String - { - if (value is XML) - { - var xml:XML = value as XML; - return xml.attribute(labelField).toString(); - } - return super.dataToString(value); - } + public class CascadingMenuSelectionMouseController extends org.apache.royale.html.beads.controllers.CascadingMenuSelectionMouseController + { -} + override protected function getSubMenuDataProvider(node:Object, model:CascadingMenuModel):Object + { + if (!(node is XML)) + { + return super.getSubMenuDataProvider(node, model) + } + return (node as XML).children(); + } + + override protected function getHasMenu(node:Object, model:CascadingMenuModel):Boolean + { + if (!(node is XML)) + { + return super.getHasMenu(node, model) + } + return (node as XML).children().length() > 0; + } + } } diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/.MenuBarItemRenderer.as.un~ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/.MenuBarItemRenderer.as.un~ new file mode 100644 index 0000000..1ac3f39 Binary files /dev/null and b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/.MenuBarItemRenderer.as.un~ differ diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as index 734db75..4f74fc0 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/MenuBarItemRenderer.as @@ -22,7 +22,7 @@ package mx.controls.menuClasses import org.apache.royale.core.IBorderPaddingMarginValuesImpl; import org.apache.royale.core.ValuesManager; import org.apache.royale.core.layout.EdgeData; -import org.apache.royale.html.supportClasses.StringItemRenderer; +import org.apache.royale.html.supportClasses.CascadingMenuItemRenderer; /** * The ListItemRenderer is the default renderer for mx.controls.List @@ -33,30 +33,56 @@ import org.apache.royale.html.supportClasses.StringItemRenderer; * @productversion Flex 3 */ -public class MenuBarItemRenderer extends StringItemRenderer +public class MenuBarItemRenderer extends CascadingMenuItemRenderer { - override public function set text(value:String):void + override public function set data(value:Object):void { - super.text = value; - COMPILE::SWF + super.data = value; +/* COMPILE::SWF { var edge:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getPaddingMetrics(this); var h:Number = textField.textHeight + edge.top + edge.bottom; textField.autoSize = "none"; textField.height = h; } - } +*/ } - override protected function dataToString(value:Object):String - { - if (value is XML) - { - var xml:XML = value as XML; - return xml.attribute(labelField).toString(); - } - return super.dataToString(value); - } - + override protected function getHasMenu():Boolean + { + if (!(data is XML)) + { + return super.getHasMenu(); + } + return (data as XML).children().length() > 0; + } + + override protected function getLabel():String + { + if (!(data is XML)) + { + return super.getLabel(); + } + var xml:XML = data as XML; + if (labelField) + { + return xml.attribute(labelField).toString(); + } + if (dataField) + { + return xml.attribute(dataField).toString(); + } + return xml.attribute("label").toString(); + } + + override protected function getType():String + { + if (!(data is XML)) + { + return super.getType(); + } + var type:String = (data as XML).attribute("type").toString(); + return type ? type : null; + } } } diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as index 8fa473a..5339328 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as @@ -191,7 +191,7 @@ import org.apache.royale.geom.Rectangle; * @playerversion AIR 1.1 * @productversion Royale 0.9.4 */ -public class SystemManager extends SystemManagerBase implements ISystemManager, IFlexModuleFactory, IEventDispatcher, IPopUpHostParent, IChildList +public class SystemManager extends SystemManagerBase implements ISystemManager, IFlexModuleFactory, IEventDispatcher, IPopUpHostParent, IPopUpHost, IChildList { //extends MovieClip implements IFlexDisplayObject,IFlexModuleFactory, ISystemManager // include "../core/Version.as"; @@ -3727,6 +3727,13 @@ public class SystemManager extends SystemManagerBase implements ISystemManager, { return component as IPopUpHost; } + + // TODO is this right? Otherwise UIUtils.findPopUpHost() won't stop here. + public function get popUpParent():IPopUpHostParent + { + return this; + } + }
