comparison android/DWindows.kt @ 2545:f803f3b164cf

Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy(). Also enable checkbox handling.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 13 May 2021 22:03:48 +0000
parents dbfcc0e357d6
children 897d94c20365
comparison
equal deleted inserted replaced
2544:dbfcc0e357d6 2545:f803f3b164cf
435 } else if(menuitem.submenu == null) { 435 } else if(menuitem.submenu == null) {
436 if(menuitem.title!!.isEmpty()) { 436 if(menuitem.title!!.isEmpty()) {
437 group += 1 437 group += 1
438 } else if(menuitem.menuitem == null) { 438 } else if(menuitem.menuitem == null) {
439 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) 439 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title)
440 menuitem.menuitem!!.isCheckable = menuitem.check
441 menuitem.menuitem!!.isChecked = menuitem.checked
440 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? -> 442 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? ->
441 eventHandlerSimple(menuitem, 8) 443 eventHandlerSimple(menuitem, 8)
442 true 444 true
443 }) 445 })
444 } 446 }
560 menu.children.add(0, menuitem) 562 menu.children.add(0, menuitem)
561 } else { 563 } else {
562 menu.children.add(menuitem) 564 menu.children.add(menuitem)
563 } 565 }
564 return menuitem 566 return menuitem
567 }
568
569 fun menuDestroy(menu: DWMenu)
570 {
571 menu.children.clear()
572 runOnUiThread {
573 menu.menu!!.clear()
574 invalidateOptionsMenu()
575 }
576 }
577
578 fun menuDeleteItem(menu: DWMenu, cid: Int)
579 {
580 for(menuitem in menu.children) {
581 if(menuitem.id == cid) {
582 menu.children.remove(menuitem)
583 runOnUiThread {
584 menu.menu!!.removeItem(menuitem.id)
585 invalidateOptionsMenu()
586 }
587 }
588 }
589 }
590
591 fun menuSetState(menu: DWMenu, cid: Int, state: Int)
592 {
593 for(menuitem in menu.children) {
594 if(menuitem.id == cid) {
595 // Handle DW_MIS_CHECKED/UNCHECKED
596 if((state and ((1 shl 2) or (1 shl 3))) != 0) {
597 var checked: Boolean = false
598
599 // Handle DW_MIS_CHECKED
600 if ((state and (1 shl 2)) != 0) {
601 checked = true
602 }
603 menuitem.checked = checked
604 runOnUiThread {
605 menuitem.menuitem!!.isChecked = checked
606 invalidateOptionsMenu()
607 }
608 }
609 }
610 }
565 } 611 }
566 612
567 /* 613 /*
568 * These are the Android calls to actually create the UI... 614 * These are the Android calls to actually create the UI...
569 * forwarded from the C Dynamic Windows API 615 * forwarded from the C Dynamic Windows API