# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1620946331 0 # Node ID 897d94c203652edd7c67c84d8e7c839f0fc6c876 # Parent f803f3b164cfb52a8bcc30a7cc7e802177059ea3 Android: Implement disabled menu items. diff -r f803f3b164cf -r 897d94c20365 android/DWindows.kt --- a/android/DWindows.kt Thu May 13 22:03:48 2021 +0000 +++ b/android/DWindows.kt Thu May 13 22:52:11 2021 +0000 @@ -405,6 +405,7 @@ var submenu: DWMenu? = null var checked: Boolean = false var check: Boolean = false + var enabled: Boolean = true var menuitem: MenuItem? = null var submenuitem: SubMenu? = null var id: Int = 0 @@ -439,6 +440,7 @@ menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) menuitem.menuitem!!.isCheckable = menuitem.check menuitem.menuitem!!.isChecked = menuitem.checked + menuitem.menuitem!!.isEnabled = menuitem.enabled menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? -> eventHandlerSimple(menuitem, 8) true @@ -555,6 +557,9 @@ if(submenu != null) { menuitem.submenu = submenu } + if((flags and (1 shl 1)) != 0) { + menuitem.enabled = false + } if((flags and (1 shl 2)) != 0) { menuitem.checked = true } @@ -592,6 +597,21 @@ { for(menuitem in menu.children) { if(menuitem.id == cid) { + // Handle DW_MIS_ENABLED/DISABLED + if((state and (1 or (1 shl 1))) != 0) { + var enabled: Boolean = false + + // Handle DW_MIS_ENABLED + if ((state and 1) != 0) { + enabled = true + } + menuitem.enabled = enabled + runOnUiThread { + menuitem.menuitem!!.isEnabled = enabled + invalidateOptionsMenu() + } + } + // Handle DW_MIS_CHECKED/UNCHECKED if((state and ((1 shl 2) or (1 shl 3))) != 0) { var checked: Boolean = false