Desktop Window (WIP)
This commit is contained in:
@@ -8,9 +8,12 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import domain.Animals
|
||||||
|
import domain.Item
|
||||||
import org.jetbrains.compose.resources.ExperimentalResourceApi
|
import org.jetbrains.compose.resources.ExperimentalResourceApi
|
||||||
import org.jetbrains.compose.resources.painterResource
|
import org.jetbrains.compose.resources.painterResource
|
||||||
import org.jetbrains.compose.ui.tooling.preview.Preview
|
import org.jetbrains.compose.ui.tooling.preview.Preview
|
||||||
|
import ui.DrawItem
|
||||||
|
|
||||||
import yaep.composeapp.generated.resources.Res
|
import yaep.composeapp.generated.resources.Res
|
||||||
import yaep.composeapp.generated.resources.compose_multiplatform
|
import yaep.composeapp.generated.resources.compose_multiplatform
|
||||||
@@ -19,19 +22,16 @@ import yaep.composeapp.generated.resources.compose_multiplatform
|
|||||||
@Composable
|
@Composable
|
||||||
@Preview
|
@Preview
|
||||||
fun App() {
|
fun App() {
|
||||||
MaterialTheme {
|
val size = 6
|
||||||
var showContent by remember { mutableStateOf(false) }
|
val options = remember { Animals.items.shuffled().take(size) }
|
||||||
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
var selectedItem by remember { mutableStateOf<Item<Animals>?>(Item(options.random())) }
|
||||||
Button(onClick = { showContent = !showContent }) {
|
// var selectedItem by remember { mutableStateOf<Item<Animals>?>(null) }
|
||||||
Text("Click me!")
|
// Selector(
|
||||||
}
|
// category = Animals,
|
||||||
AnimatedVisibility(showContent) {
|
// options = Animals.items.map { Item(it) },
|
||||||
val greeting = remember { Greeting().greet() }
|
// selectedItem = selectedItem,
|
||||||
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
// onSelectItem = { selectedItem = it }
|
||||||
Image(painterResource(Res.drawable.compose_multiplatform), null)
|
// )
|
||||||
Text("Compose: $greeting")
|
DrawItem(selectedItem!!)
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
import androidx.compose.desktop.ui.tooling.preview.Preview
|
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.width
|
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.ExperimentalResourceApi
|
||||||
import org.jetbrains.compose.resources.painterResource
|
import org.jetbrains.compose.resources.painterResource
|
||||||
import ui.theme.AppTheme
|
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
|
@Composable
|
||||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalResourceApi::class)
|
@OptIn(ExperimentalMaterial3Api::class, ExperimentalResourceApi::class)
|
||||||
fun WindowScope.App(
|
fun WindowScope.DesktopWindow(
|
||||||
useDarkMode: Boolean,
|
useDarkMode: Boolean,
|
||||||
topBar: @Composable () -> Unit,
|
topBar: @Composable () -> Unit,
|
||||||
content: @Composable () -> Unit
|
content: @Composable () -> Unit
|
||||||
@@ -41,6 +46,7 @@ fun WindowScope.App(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun AppBar(
|
fun AppBar(
|
||||||
useDarkMode: Boolean,
|
useDarkMode: Boolean,
|
||||||
|
|||||||
@@ -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.Window
|
||||||
|
import androidx.compose.ui.window.WindowPlacement
|
||||||
import androidx.compose.ui.window.application
|
import androidx.compose.ui.window.application
|
||||||
|
import androidx.compose.ui.window.rememberWindowState
|
||||||
|
|
||||||
fun main() = application {
|
fun main() = application {
|
||||||
Window(
|
Window(
|
||||||
onCloseRequest = ::exitApplication,
|
onCloseRequest = ::exitApplication,
|
||||||
title = "YAEP",
|
title = "YAEP",
|
||||||
|
) {
|
||||||
|
var useDarkMode by remember { mutableStateOf(true) }
|
||||||
|
DesktopWindow(
|
||||||
|
useDarkMode = useDarkMode,
|
||||||
|
topBar = {
|
||||||
|
AppBar(
|
||||||
|
useDarkMode = useDarkMode,
|
||||||
|
setDarkMode = { useDarkMode = it },
|
||||||
|
onCloseRequest = ::exitApplication,
|
||||||
|
windowState = rememberWindowState(
|
||||||
|
placement = WindowPlacement.Floating
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
App()
|
App()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user