Details
-
Type: Improvement
-
Status: Closed
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: 1.5.2
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Operating System: Windows XP
Platform: PC
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration
Description
Request for configurable menu activation behavior. currently...
MenuItemRenderer line 160:
String displayEvent = HTML.ONMOUSEOVER_ATTR;
if we had 'displayEvent=[onmouseover|onclick|...]' we could dynamically render
the component according to the desired behaviour.
----------------------
It seems that most modern GUIs (WinXP, OSX) have the following behavior for menu display:
- Hover over top-level menu item highlights menu item but doesn't display child menu.
- Mouse-down on top-level menu item displays child menu (sets menu display mode enabled). From this point on, any menu that is hovered over will display it's child menu if it has one on hover, including other top-level menu items.
- If a top-level menu item is again "mouse-downed", the child menu is hidden (sets menu display mode disabled). From this point on, no child menus are displayed on hover alone (back to step 1).
So there is a small state-machine that tracks whether the child menus should be displayed on hover or not, based on whether the user has moused-dwn on a top-level menu item yet. The state of the auto-display submenu on hover can be toggled by clicking a top-level menu item.
We should support this identical mechanism by default and add an new attribute to the menuBar component called "displayOnHover=true/false" to allow the current behavior to be configured if desired. The current behavior is to display all child menus on hover alone.
MenuItemRenderer line 160:
String displayEvent = HTML.ONMOUSEOVER_ATTR;
if we had 'displayEvent=[onmouseover|onclick|...]' we could dynamically render
the component according to the desired behaviour.
----------------------
It seems that most modern GUIs (WinXP, OSX) have the following behavior for menu display:
- Hover over top-level menu item highlights menu item but doesn't display child menu.
- Mouse-down on top-level menu item displays child menu (sets menu display mode enabled). From this point on, any menu that is hovered over will display it's child menu if it has one on hover, including other top-level menu items.
- If a top-level menu item is again "mouse-downed", the child menu is hidden (sets menu display mode disabled). From this point on, no child menus are displayed on hover alone (back to step 1).
So there is a small state-machine that tracks whether the child menus should be displayed on hover or not, based on whether the user has moused-dwn on a top-level menu item yet. The state of the auto-display submenu on hover can be toggled by clicking a top-level menu item.
We should support this identical mechanism by default and add an new attribute to the menuBar component called "displayOnHover=true/false" to allow the current behavior to be configured if desired. The current behavior is to display all child menus on hover alone.
Issue Links
- duplicates
-
ICE-2425 MenuBar attribute to allow for onclick memnu item popup
- Closed
Add to this requirement the change in
ICE-2458to add the menu display behavior to the "onFocus" js event handler for 508 compliance.