From 5ff2319f3795fbdc587e203b3bece98e7db744e1 Mon Sep 17 00:00:00 2001 From: aro Date: Thu, 17 Nov 2022 12:17:20 +0100 Subject: [PATCH] feat: kotlin shinanigans to make it run inside intellij --- .../kotlin/xyz/atnrch/wrench/WrenchApp.kt | 39 +++++++++++++++++ .../wrench/display/status/WrenchStatus.kt | 42 ++++++++++++------- 2 files changed, 65 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/xyz/atnrch/wrench/WrenchApp.kt b/src/main/kotlin/xyz/atnrch/wrench/WrenchApp.kt index 6bfcee4..939a75c 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/WrenchApp.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/WrenchApp.kt @@ -1,7 +1,46 @@ package xyz.atnrch.wrench +import androidx.compose.desktop.ui.tooling.preview.Preview +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application +import xyz.atnrch.wrench.logger.Logger +import xyz.atnrch.wrench.scaffold.WrenchScaffold + class WrenchApp { companion object { const val PREFIX: String = "(Wrench)" + + @JvmStatic + fun main(args: Array) { + application { + Window(onCloseRequest = { + Logger.info("Stopping Wrench...") + Logger.info("bye!") + ::exitApplication.invoke() + }, title = "Wrench") { + Logger.info("Starting Wrench...") + App() + } + } + } + + @Composable + @Preview + @JvmStatic + fun App() { + MaterialTheme { + WrenchScaffold() + /* + val watcher = remember { Watcher() } + WrenchDisplay( + onStartButtonClick = watcher::start, + onStopButtonClick = watcher::stop, + onAddButtonClick = {} + ) + */ + } + } } } \ No newline at end of file diff --git a/src/main/kotlin/xyz/atnrch/wrench/display/status/WrenchStatus.kt b/src/main/kotlin/xyz/atnrch/wrench/display/status/WrenchStatus.kt index 28d19e6..1df7c86 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/display/status/WrenchStatus.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/display/status/WrenchStatus.kt @@ -1,9 +1,6 @@ package xyz.atnrch.wrench.display.status -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.* import androidx.compose.material.Button import androidx.compose.material.ButtonDefaults import androidx.compose.material.Icon @@ -14,6 +11,7 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.PlayArrow import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp @Composable @@ -22,34 +20,46 @@ fun WrenchStatus( onStopButtonClick: () -> Unit, onAddButtonClick: () -> Unit ) { + val padding = PaddingValues( + start = 13.dp, + top = 10.dp, + end = 13.dp, + bottom = 10.dp + ) var status by remember { mutableStateOf(false) } var startStopButtonText by remember { mutableStateOf("Start") } Row { - Button({ - status = if (status) { - onStopButtonClick.invoke() - false - } else { - onStartButtonClick.invoke() - true - } - startStopButtonText = if (status) "Stop" else "Start" - }) { + Button( + { + status = if (status) { + onStopButtonClick.invoke() + false + } else { + onStartButtonClick.invoke() + true + } + startStopButtonText = if (status) "Stop" else "Start" + }, contentPadding = padding + ) { if (status) Icon( Icons.Filled.Close, contentDescription = "Start", modifier = Modifier.size(ButtonDefaults.IconSize) ) else Icon( Icons.Filled.PlayArrow, + tint = Color.White, contentDescription = "Start", - modifier = Modifier.size(ButtonDefaults.IconSize) + modifier = Modifier.size(24.dp) ) Spacer(Modifier.size(ButtonDefaults.IconSpacing)) Text(startStopButtonText) } Spacer(Modifier.width(10.dp)) - Button(onAddButtonClick) { + Button( + onAddButtonClick, + contentPadding = padding + ) { Icon( Icons.Filled.Add, contentDescription = "Add",