comparison android/DWindows.kt @ 2546:897d94c20365

Android: Implement disabled menu items.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 13 May 2021 22:52:11 +0000
parents f803f3b164cf
children dbd15c13f5bb
comparison
equal deleted inserted replaced
2545:f803f3b164cf 2546:897d94c20365
403 var title: String? = null 403 var title: String? = null
404 var menu: DWMenu? = null 404 var menu: DWMenu? = null
405 var submenu: DWMenu? = null 405 var submenu: DWMenu? = null
406 var checked: Boolean = false 406 var checked: Boolean = false
407 var check: Boolean = false 407 var check: Boolean = false
408 var enabled: Boolean = true
408 var menuitem: MenuItem? = null 409 var menuitem: MenuItem? = null
409 var submenuitem: SubMenu? = null 410 var submenuitem: SubMenu? = null
410 var id: Int = 0 411 var id: Int = 0
411 } 412 }
412 413
437 group += 1 438 group += 1
438 } else if(menuitem.menuitem == null) { 439 } else if(menuitem.menuitem == null) {
439 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) 440 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title)
440 menuitem.menuitem!!.isCheckable = menuitem.check 441 menuitem.menuitem!!.isCheckable = menuitem.check
441 menuitem.menuitem!!.isChecked = menuitem.checked 442 menuitem.menuitem!!.isChecked = menuitem.checked
443 menuitem.menuitem!!.isEnabled = menuitem.enabled
442 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? -> 444 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? ->
443 eventHandlerSimple(menuitem, 8) 445 eventHandlerSimple(menuitem, 8)
444 true 446 true
445 }) 447 })
446 } 448 }
553 menuitem.title = title 555 menuitem.title = title
554 menuitem.check = check != 0 556 menuitem.check = check != 0
555 if(submenu != null) { 557 if(submenu != null) {
556 menuitem.submenu = submenu 558 menuitem.submenu = submenu
557 } 559 }
560 if((flags and (1 shl 1)) != 0) {
561 menuitem.enabled = false
562 }
558 if((flags and (1 shl 2)) != 0) { 563 if((flags and (1 shl 2)) != 0) {
559 menuitem.checked = true 564 menuitem.checked = true
560 } 565 }
561 if(end == 0) { 566 if(end == 0) {
562 menu.children.add(0, menuitem) 567 menu.children.add(0, menuitem)
590 595
591 fun menuSetState(menu: DWMenu, cid: Int, state: Int) 596 fun menuSetState(menu: DWMenu, cid: Int, state: Int)
592 { 597 {
593 for(menuitem in menu.children) { 598 for(menuitem in menu.children) {
594 if(menuitem.id == cid) { 599 if(menuitem.id == cid) {
600 // Handle DW_MIS_ENABLED/DISABLED
601 if((state and (1 or (1 shl 1))) != 0) {
602 var enabled: Boolean = false
603
604 // Handle DW_MIS_ENABLED
605 if ((state and 1) != 0) {
606 enabled = true
607 }
608 menuitem.enabled = enabled
609 runOnUiThread {
610 menuitem.menuitem!!.isEnabled = enabled
611 invalidateOptionsMenu()
612 }
613 }
614
595 // Handle DW_MIS_CHECKED/UNCHECKED 615 // Handle DW_MIS_CHECKED/UNCHECKED
596 if((state and ((1 shl 2) or (1 shl 3))) != 0) { 616 if((state and ((1 shl 2) or (1 shl 3))) != 0) {
597 var checked: Boolean = false 617 var checked: Boolean = false
598 618
599 // Handle DW_MIS_CHECKED 619 // Handle DW_MIS_CHECKED