Mercurial > dwindows
diff android/DWindows.kt @ 2544:dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 13 May 2021 20:46:07 +0000 |
parents | f9367eb9a6e7 |
children | f803f3b164cf |
line wrap: on
line diff
--- a/android/DWindows.kt Thu May 13 19:54:15 2021 +0000 +++ b/android/DWindows.kt Thu May 13 20:46:07 2021 +0000 @@ -40,6 +40,7 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.res.ResourcesCompat +import androidx.core.view.MenuCompat import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.google.android.material.tabs.TabLayout @@ -419,21 +420,34 @@ menu = newmenu } if(menu != null) { + var group: Int = 0 + + // Enable group dividers for separators + MenuCompat.setGroupDividerEnabled(menu, true); + for (menuitem in children) { // Submenus on Android can't have submenus, so stop at depth 1 if (menuitem.submenu != null && menu !is SubMenu) { if(menuitem.submenuitem == null) { - menuitem.submenuitem = menu?.addSubMenu(0, menuitem.id, 0, menuitem.title) + menuitem.submenuitem = menu?.addSubMenu(group, menuitem.id, 0, menuitem.title) } menuitem.submenu!!.createMenu(menuitem.submenuitem) } else if(menuitem.submenu == null) { - if(menuitem.menuitem == null) { - menuitem.menuitem = menu?.add(0, menuitem.id, 0, menuitem.title) + if(menuitem.title!!.isEmpty()) { + group += 1 + } else if(menuitem.menuitem == null) { + menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) + menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? -> + eventHandlerSimple(menuitem, 8) + true + }) } } } } } + + external fun eventHandlerSimple(item: DWMenuItem, message: Int) } class DWindows : AppCompatActivity() {