Desktop Window (WIP)

This commit is contained in:
2024-06-17 05:21:50 +02:00
parent 6384a65cbb
commit e4f89afe94
3 changed files with 45 additions and 18 deletions

View File

@@ -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<Animals>?>(Item(options.random())) }
// var selectedItem by remember { mutableStateOf<Item<Animals>?>(null) }
// Selector(
// category = Animals,
// options = Animals.items.map { Item(it) },
// selectedItem = selectedItem,
// onSelectItem = { selectedItem = it }
// )
DrawItem(selectedItem!!)
}

View File

@@ -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,

View File

@@ -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()
}
}
}