|
@@ -16,13 +16,17 @@ import org.mjdev.tvlib.extensions.ListExt.addUnique
|
|
|
import org.mjdev.tvlib.navigation.MenuItem
|
|
import org.mjdev.tvlib.navigation.MenuItem
|
|
|
import org.mjdev.tvlib.navigation.NavHostControllerEx
|
|
import org.mjdev.tvlib.navigation.NavHostControllerEx
|
|
|
|
|
|
|
|
-@Suppress("unused")
|
|
|
|
|
|
|
+@Suppress("unused", "PropertyName")
|
|
|
class PagerScope(
|
|
class PagerScope(
|
|
|
val navController: NavHostControllerEx,
|
|
val navController: NavHostControllerEx,
|
|
|
startIndex:Int = 0,
|
|
startIndex:Int = 0,
|
|
|
pages: PagerScope.() -> Unit = {},
|
|
pages: PagerScope.() -> Unit = {},
|
|
|
) : ArrayList<Page>() {
|
|
) : ArrayList<Page>() {
|
|
|
|
|
|
|
|
|
|
+ val Bottom = MenuItem.Gravity.Bottom
|
|
|
|
|
+ val Center = MenuItem.Gravity.Center
|
|
|
|
|
+ val Top = MenuItem.Gravity.Top
|
|
|
|
|
+
|
|
|
val currentPage: MutableState<Int> = mutableIntStateOf(startIndex)
|
|
val currentPage: MutableState<Int> = mutableIntStateOf(startIndex)
|
|
|
|
|
|
|
|
init {
|
|
init {
|
|
@@ -33,7 +37,11 @@ class PagerScope(
|
|
|
navController.addMenuItem(*item)
|
|
navController.addMenuItem(*item)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- fun page(page: Page, isStartPage: Boolean = false) {
|
|
|
|
|
|
|
+ fun page(
|
|
|
|
|
+ page: Page,
|
|
|
|
|
+ menuGravity: MenuItem.Gravity = Center,
|
|
|
|
|
+ isStartPage: Boolean = false
|
|
|
|
|
+ ) {
|
|
|
page.navController = navController
|
|
page.navController = navController
|
|
|
addUnique(page)
|
|
addUnique(page)
|
|
|
if (isStartPage) {
|
|
if (isStartPage) {
|
|
@@ -44,7 +52,7 @@ class PagerScope(
|
|
|
menuText = p.title,
|
|
menuText = p.title,
|
|
|
menuIcon = p.icon,
|
|
menuIcon = p.icon,
|
|
|
menuPage = p,
|
|
menuPage = p,
|
|
|
- menuGravity = p.menuGravity,
|
|
|
|
|
|
|
+ menuGravity = menuGravity,
|
|
|
)
|
|
)
|
|
|
}.also { menuItem ->
|
|
}.also { menuItem ->
|
|
|
navController.addUniqueMenuItem(menuItem)
|
|
navController.addUniqueMenuItem(menuItem)
|