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 <[email protected]>
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);

Reply via email to