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);
/*