You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2022/04/26 11:52:53 UTC
[royale-asjs] branch develop updated: Emulation - make menubar change event a MenuEvent
This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new bf6e14e460 Emulation - make menubar change event a MenuEvent
bf6e14e460 is described below
commit bf6e14e460d3b2069c01e85a8ca982bbc714d605
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Tue Apr 26 14:52:03 2022 +0300
Emulation - make menubar change event a MenuEvent
---
.../controllers/MenuSelectionMouseController.as | 10 +++++++-
.../src/main/royale/mx/controls/MenuBar.as | 2 +-
.../CascadingMenuSelectionMouseController.as | 30 +++++++++++++++-------
3 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
index e85b4bd6a8..2d4cdac5cb 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
@@ -110,9 +110,17 @@ package org.apache.royale.html.beads.controllers
var node:Object = event.data;
list.model.selectedItem = node;
- sendEvent(menuDispatcher,"change");
+ sendChangeEvent(menuDispatcher, event)
hideOpenMenus();
}
+
+ /**
+ * private
+ */
+ protected function sendChangeEvent(menuDispatcher:IEventDispatcher, itemClickedEvent:ItemClickedEvent):void
+ {
+ sendEvent(menuDispatcher,"change");
+ }
/**
* Finds and returns the object from which events should be dispatched. This
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 72382a25f2..ac32d24ba6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
@@ -87,7 +87,7 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Royale 0.9.3
*/
-//[Event(name="change", type="mx.events.MenuEvent")]
+[Event(name="change", type="mx.events.MenuEvent")]
/**
* Dispatched when the user selects an item in a pop-up submenu.
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
index 8f627dbad7..2b16e42ce4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
@@ -79,15 +79,9 @@ package mx.controls.beads.controllers
}
}
- override protected function selectedHandler(event:ItemClickedEvent):void
+ private function populateMenuEvent(menuEvent:MenuEvent, itemClickedEvent:ItemClickedEvent):void
{
- super.selectedHandler(event);
- if (event.target is IFoldable && (event.target as IFoldable).canUnfold)
- {
- return; // this is not selection, but rather a folding action
- }
- var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
- var data:Object = event.target.data;
+ var data:Object = itemClickedEvent.target.data;
menuEvent.item = data;
var menu:IMenu = _strand as IMenu;
var label:String;
@@ -100,7 +94,18 @@ package mx.controls.beads.controllers
label = data[menu.labelField];
}
menuEvent.label = label;
- menuEvent.index = event.index;
+ menuEvent.index = itemClickedEvent.index;
+ }
+
+ override protected function selectedHandler(event:ItemClickedEvent):void
+ {
+ super.selectedHandler(event);
+ if (event.target is IFoldable && (event.target as IFoldable).canUnfold)
+ {
+ return; // this is not selection, but rather a folding action
+ }
+ var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
+ populateMenuEvent(menuEvent, event);
findMenuDispatcher().dispatchEvent(menuEvent);
}
@@ -145,6 +150,13 @@ package mx.controls.beads.controllers
}
}
+ override protected function sendChangeEvent(menuDispatcer:IEventDispatcher, itemClickedEvent:ItemClickedEvent):void
+ {
+ var menuEvent:MenuEvent = new MenuEvent(Event.CHANGE);
+ populateMenuEvent(menuEvent, itemClickedEvent);
+ menuDispatcer.dispatchEvent(menuEvent);
+ }
+
override protected function getParentMenuBar():IEventDispatcher
{
var parentMenuBar:IEventDispatcher = (_strand as IMenu).parentMenuBar;