desktop: use Aurora styling

This commit is contained in:
Harsh Shandilya 2021-09-25 02:40:59 +05:30
parent 5e9bdd2a1b
commit be848532ea
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -1,33 +1,50 @@
import androidx.compose.foundation.VerticalScrollbar
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberScrollbarAdapter
import androidx.compose.foundation.verticalScroll
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.singleWindowApplication
import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.WindowPosition
import androidx.compose.ui.window.application
import androidx.compose.ui.window.rememberWindowState
import dev.msfjarvis.claw.common.posts.LobstersCard
import dev.msfjarvis.claw.common.posts.TEST_POST
import dev.msfjarvis.claw.common.theme.LobstersTheme
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
import org.pushingpixels.aurora.component.AuroraVerticalScrollbar
import org.pushingpixels.aurora.skin.ceruleanSkin
import org.pushingpixels.aurora.window.AuroraWindow
fun main() = singleWindowApplication {
fun main() = application {
val urlLauncher = UrlLauncher()
LobstersTheme(darkTheme = false) {
Box(
modifier = Modifier.fillMaxSize(),
) {
val stateVertical = rememberScrollState(0)
val state =
rememberWindowState(
placement = WindowPlacement.Floating,
position = WindowPosition.Aligned(Alignment.Center),
)
val itemsList = (0 until 10).toList()
AuroraWindow(
skin = ceruleanSkin(),
title = "Claw",
state = state,
undecorated = true,
onCloseRequest = ::exitApplication,
) {
LobstersTheme(darkTheme = false) {
Box(
modifier = Modifier.fillMaxSize().verticalScroll(stateVertical),
modifier = Modifier.fillMaxSize(),
) {
Column {
repeat(10) {
val listState = rememberLazyListState()
LazyColumn(
state = listState,
) {
itemsIndexed(itemsList) { _, _ ->
LobstersCard(
post = TEST_POST,
isSaved = false,
@ -38,11 +55,11 @@ fun main() = singleWindowApplication {
)
}
}
AuroraVerticalScrollbar(
adapter = rememberScrollbarAdapter(listState),
modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(),
)
}
VerticalScrollbar(
modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(),
adapter = rememberScrollbarAdapter(stateVertical),
)
}
}
}