diff --git a/composeApp/src/commonMain/kotlin/App.kt b/composeApp/src/commonMain/kotlin/App.kt index 32073a4..ee48312 100644 --- a/composeApp/src/commonMain/kotlin/App.kt +++ b/composeApp/src/commonMain/kotlin/App.kt @@ -8,9 +8,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import domain.Animals +import domain.Item import org.jetbrains.compose.resources.ExperimentalResourceApi import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.ui.tooling.preview.Preview +import ui.DrawItem import yaep.composeapp.generated.resources.Res import yaep.composeapp.generated.resources.compose_multiplatform @@ -19,19 +22,16 @@ import yaep.composeapp.generated.resources.compose_multiplatform @Composable @Preview fun App() { - MaterialTheme { - var showContent by remember { mutableStateOf(false) } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - Button(onClick = { showContent = !showContent }) { - Text("Click me!") - } - AnimatedVisibility(showContent) { - val greeting = remember { Greeting().greet() } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - Image(painterResource(Res.drawable.compose_multiplatform), null) - Text("Compose: $greeting") - } - } - } - } + val size = 6 + val options = remember { Animals.items.shuffled().take(size) } + var selectedItem by remember { mutableStateOf?>(Item(options.random())) } +// var selectedItem by remember { mutableStateOf?>(null) } +// Selector( +// category = Animals, +// options = Animals.items.map { Item(it) }, +// selectedItem = selectedItem, +// onSelectItem = { selectedItem = it } +// ) + DrawItem(selectedItem!!) + } \ No newline at end of file diff --git a/composeApp/src/desktopMain/kotlin/desktop window.kt b/composeApp/src/desktopMain/kotlin/desktop window.kt index ef7c8cc..1de5dfc 100644 --- a/composeApp/src/desktopMain/kotlin/desktop window.kt +++ b/composeApp/src/desktopMain/kotlin/desktop window.kt @@ -1,4 +1,3 @@ -import androidx.compose.desktop.ui.tooling.preview.Preview import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -20,10 +19,16 @@ import androidx.compose.ui.window.WindowState import org.jetbrains.compose.resources.ExperimentalResourceApi import org.jetbrains.compose.resources.painterResource import ui.theme.AppTheme +import yaep.composeapp.generated.resources.Res +import yaep.composeapp.generated.resources.moon +import yaep.composeapp.generated.resources.sun +import yaep.composeapp.generated.resources.window_close +import yaep.composeapp.generated.resources.window_maximize +import yaep.composeapp.generated.resources.window_minimize @Composable @OptIn(ExperimentalMaterial3Api::class, ExperimentalResourceApi::class) -fun WindowScope.App( +fun WindowScope.DesktopWindow( useDarkMode: Boolean, topBar: @Composable () -> Unit, content: @Composable () -> Unit @@ -41,6 +46,7 @@ fun WindowScope.App( } } +@OptIn(ExperimentalMaterial3Api::class) @Composable fun AppBar( useDarkMode: Boolean, diff --git a/composeApp/src/desktopMain/kotlin/main.kt b/composeApp/src/desktopMain/kotlin/main.kt index 6ae03d5..e943442 100644 --- a/composeApp/src/desktopMain/kotlin/main.kt +++ b/composeApp/src/desktopMain/kotlin/main.kt @@ -1,11 +1,32 @@ +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.window.Window +import androidx.compose.ui.window.WindowPlacement import androidx.compose.ui.window.application +import androidx.compose.ui.window.rememberWindowState fun main() = application { Window( onCloseRequest = ::exitApplication, title = "YAEP", ) { - App() + var useDarkMode by remember { mutableStateOf(true) } + DesktopWindow( + useDarkMode = useDarkMode, + topBar = { + AppBar( + useDarkMode = useDarkMode, + setDarkMode = { useDarkMode = it }, + onCloseRequest = ::exitApplication, + windowState = rememberWindowState( + placement = WindowPlacement.Floating + ) + ) + } + ) { + App() + } } } \ No newline at end of file