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/06 15:06:07 UTC

[royale-asjs] branch develop updated: mx - enable/disable menu items

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 7d8a4d4193 mx - enable/disable menu items
7d8a4d4193 is described below

commit 7d8a4d419316347de055ac493bdf55cffb5a49da
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Wed Apr 6 18:05:30 2022 +0300

    mx - enable/disable menu items
---
 .../menuClasses/CascadingMenuItemRenderer.as       | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
index 1f0f88cf1c..40d0417841 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
@@ -26,6 +26,9 @@ package mx.controls.menuClasses
 	import mx.supportClasses.IFoldable;
 	import org.apache.royale.core.IPopUpHost;
 	import org.apache.royale.core.IPopUpHostParent;
+	import mx.controls.Menu;
+	import org.apache.royale.html.beads.DisableBead;
+	import org.apache.royale.html.beads.DisabledAlphaBead;
 
 	/**
 	 *  The ListItemRenderer is the default renderer for mx.controls.List
@@ -43,9 +46,34 @@ package mx.controls.menuClasses
 			super();
 		}
 
+		/*
+		*  @private
+		*/
+		private var _enabled:Boolean;
+		private var _disableBead:DisableBead;
+		public function set enabled(value:Boolean):void
+		{
+			_enabled = value;
+			if (_disableBead == null) {
+				_disableBead = new DisableBead();
+				addBead(_disableBead);
+				addBead(new DisabledAlphaBead());
+			}
+			_disableBead.disabled = !_enabled;
+			COMPILE::JS
+			{
+			    element.style.cursor = value ? "pointer" : "auto";
+			}
+		}
+
 		override public function set data(value:Object):void
 		{
 			super.data = value;
+			if (parent && parent is Menu && (parent as Menu).dataDescriptor)
+			{
+				var desc:IMenuDataDescriptor = (parent as Menu).dataDescriptor;
+				enabled = desc.isEnabled(value);
+			}
 	/*        COMPILE::SWF
 			{
 				var edge:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getPaddingMetrics(this);