You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/07/21 06:28:19 UTC

[royale-asjs] 11/17: Menu working in SWF

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 6485adc4f50f408d6f4447c2cfd81f6f92ead2ab
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Jul 18 15:12:28 2018 -0700

    Menu working in SWF
---
 .../projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as | 12 +++++++++++-
 .../mx/controls/beads/controllers/MenuBarMouseController.as  |  9 +++++++++
 .../src/main/royale/mx/controls/beads/models/MenuBarModel.as |  1 +
 .../projects/MXRoyale/src/main/royale/mx/events/MenuEvent.as |  6 ++++--
 4 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
index 105353d..619d710 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
@@ -36,6 +36,7 @@ import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
+import mx.events.MenuEvent;
 import mx.managers.IFocusManagerComponent;
 import mx.styles.ISimpleStyleClient;
 import mx.styles.StyleProxy;
@@ -439,9 +440,17 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent, ICon
        /*  menuBarItemRenderer = new ClassFactory(MenuBarItem);
         tabChildren = false; */
 		
-		
+		addEventListener("change", changeHandler);
     }
 
+    protected function changeHandler(event:Event):void
+    {
+        var item:Object = (model as MenuBarModel).selectedItem;
+        var menuEvent:MenuEvent = new MenuEvent("itemClick");
+        menuEvent.item = item;
+        dispatchEvent(menuEvent);
+    }
+    
     /**
      * @copy org.apache.royale.core.IContentViewHost#strandChildren
      *  
@@ -2170,6 +2179,7 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent, ICon
    {
        return view as ILayoutHost;
    }
+   
 
 }
 
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/MenuBarMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/MenuBarMouseController.as
index 3bc3597..2859020 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/MenuBarMouseController.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/MenuBarMouseController.as
@@ -20,7 +20,9 @@ package mx.controls.beads.controllers
 {
     import mx.controls.MenuBar;
     
+    import org.apache.royale.core.IListPresentationModel;
     import org.apache.royale.core.IMenu;
+    import org.apache.royale.core.IStrandWithPresentationModel;
     import org.apache.royale.core.IUIBase;
     import org.apache.royale.html.beads.controllers.MenuBarMouseController;
 	
@@ -58,6 +60,13 @@ package mx.controls.beads.controllers
 		override protected function showMenu(menu:IMenu, component:IUIBase):void
 		{
             super.showMenu(menu, component);
+            var swpm:IStrandWithPresentationModel = menu as IStrandWithPresentationModel;
+            if (swpm)
+            {
+                var lpm:IListPresentationModel = swpm.presentationModel as IListPresentationModel;
+                if (lpm)
+                    lpm.rowHeight = 20;
+            }
             (_strand as MenuBar).menus = [ menu ];
 		}
 	}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
index 4403a7e..4df5cad 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
@@ -45,6 +45,7 @@ package mx.controls.beads.models
 		public function MenuBarModel()
 		{
             labelField = "label";
+            submenuField = "children";
 		}
 		
         private var _showRoot:Boolean;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/MenuEvent.as b/frameworks/projects/MXRoyale/src/main/royale/mx/events/MenuEvent.as
index a96bd0a..a0a1042 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/MenuEvent.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/events/MenuEvent.as
@@ -19,9 +19,10 @@
 
 package mx.events
 {
-import org.apache.royale.events.Event;
 import mx.controls.MenuBar;
 
+import org.apache.royale.events.Event;
+
 /*
 import flash.events.Event;
 import mx.controls.Menu;
@@ -378,7 +379,8 @@ public class MenuEvent extends ListEvent
      *  @playerversion AIR 1.1
      *  @productversion Royale 0.9.3
      */
-	 public function MenuEvent()
+	public function MenuEvent(type:String, bubbles:Boolean = false, 
+                              cancelable:Boolean = false, item:Object = null)
 	{
 		super(type, bubbles, cancelable);
 		/*