Mercurial > dwindows
comparison 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 |
comparison
equal
deleted
inserted
replaced
2543:f9367eb9a6e7 | 2544:dbfcc0e357d6 |
---|---|
38 import androidx.appcompat.widget.AppCompatEditText | 38 import androidx.appcompat.widget.AppCompatEditText |
39 import androidx.collection.SimpleArrayMap | 39 import androidx.collection.SimpleArrayMap |
40 import androidx.core.app.NotificationCompat | 40 import androidx.core.app.NotificationCompat |
41 import androidx.core.app.NotificationManagerCompat | 41 import androidx.core.app.NotificationManagerCompat |
42 import androidx.core.content.res.ResourcesCompat | 42 import androidx.core.content.res.ResourcesCompat |
43 import androidx.core.view.MenuCompat | |
43 import androidx.recyclerview.widget.RecyclerView | 44 import androidx.recyclerview.widget.RecyclerView |
44 import androidx.viewpager2.widget.ViewPager2 | 45 import androidx.viewpager2.widget.ViewPager2 |
45 import com.google.android.material.tabs.TabLayout | 46 import com.google.android.material.tabs.TabLayout |
46 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener | 47 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener |
47 import com.google.android.material.tabs.TabLayoutMediator | 48 import com.google.android.material.tabs.TabLayoutMediator |
417 fun createMenu(newmenu: Menu?) { | 418 fun createMenu(newmenu: Menu?) { |
418 if(menu == null) { | 419 if(menu == null) { |
419 menu = newmenu | 420 menu = newmenu |
420 } | 421 } |
421 if(menu != null) { | 422 if(menu != null) { |
423 var group: Int = 0 | |
424 | |
425 // Enable group dividers for separators | |
426 MenuCompat.setGroupDividerEnabled(menu, true); | |
427 | |
422 for (menuitem in children) { | 428 for (menuitem in children) { |
423 // Submenus on Android can't have submenus, so stop at depth 1 | 429 // Submenus on Android can't have submenus, so stop at depth 1 |
424 if (menuitem.submenu != null && menu !is SubMenu) { | 430 if (menuitem.submenu != null && menu !is SubMenu) { |
425 if(menuitem.submenuitem == null) { | 431 if(menuitem.submenuitem == null) { |
426 menuitem.submenuitem = menu?.addSubMenu(0, menuitem.id, 0, menuitem.title) | 432 menuitem.submenuitem = menu?.addSubMenu(group, menuitem.id, 0, menuitem.title) |
427 } | 433 } |
428 menuitem.submenu!!.createMenu(menuitem.submenuitem) | 434 menuitem.submenu!!.createMenu(menuitem.submenuitem) |
429 } else if(menuitem.submenu == null) { | 435 } else if(menuitem.submenu == null) { |
430 if(menuitem.menuitem == null) { | 436 if(menuitem.title!!.isEmpty()) { |
431 menuitem.menuitem = menu?.add(0, menuitem.id, 0, menuitem.title) | 437 group += 1 |
438 } else if(menuitem.menuitem == null) { | |
439 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) | |
440 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? -> | |
441 eventHandlerSimple(menuitem, 8) | |
442 true | |
443 }) | |
432 } | 444 } |
433 } | 445 } |
434 } | 446 } |
435 } | 447 } |
436 } | 448 } |
449 | |
450 external fun eventHandlerSimple(item: DWMenuItem, message: Int) | |
437 } | 451 } |
438 | 452 |
439 class DWindows : AppCompatActivity() { | 453 class DWindows : AppCompatActivity() { |
440 var firstWindow: Boolean = true | 454 var firstWindow: Boolean = true |
441 var windowLayout: LinearLayout? = null | 455 var windowLayout: LinearLayout? = null |