feat: kotlin shinanigans to make it run inside intellij

This commit is contained in:
aro 2022-11-17 12:17:20 +01:00
parent f26f113a63
commit 5ff2319f37
2 changed files with 65 additions and 16 deletions

View file

@ -1,7 +1,46 @@
package xyz.atnrch.wrench 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 { class WrenchApp {
companion object { companion object {
const val PREFIX: String = "(Wrench)" const val PREFIX: String = "(Wrench)"
@JvmStatic
fun main(args: Array<String>) {
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 = {}
)
*/
}
}
} }
} }

View file

@ -1,9 +1,6 @@
package xyz.atnrch.wrench.display.status package xyz.atnrch.wrench.display.status
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.Button import androidx.compose.material.Button
import androidx.compose.material.ButtonDefaults import androidx.compose.material.ButtonDefaults
import androidx.compose.material.Icon 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.material.icons.filled.PlayArrow
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@Composable @Composable
@ -22,34 +20,46 @@ fun WrenchStatus(
onStopButtonClick: () -> Unit, onStopButtonClick: () -> Unit,
onAddButtonClick: () -> 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 status by remember { mutableStateOf(false) }
var startStopButtonText by remember { mutableStateOf("Start") } var startStopButtonText by remember { mutableStateOf("Start") }
Row { Row {
Button({ Button(
status = if (status) { {
onStopButtonClick.invoke() status = if (status) {
false onStopButtonClick.invoke()
} else { false
onStartButtonClick.invoke() } else {
true onStartButtonClick.invoke()
} true
startStopButtonText = if (status) "Stop" else "Start" }
}) { startStopButtonText = if (status) "Stop" else "Start"
}, contentPadding = padding
) {
if (status) Icon( if (status) Icon(
Icons.Filled.Close, Icons.Filled.Close,
contentDescription = "Start", contentDescription = "Start",
modifier = Modifier.size(ButtonDefaults.IconSize) modifier = Modifier.size(ButtonDefaults.IconSize)
) else Icon( ) else Icon(
Icons.Filled.PlayArrow, Icons.Filled.PlayArrow,
tint = Color.White,
contentDescription = "Start", contentDescription = "Start",
modifier = Modifier.size(ButtonDefaults.IconSize) modifier = Modifier.size(24.dp)
) )
Spacer(Modifier.size(ButtonDefaults.IconSpacing)) Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text(startStopButtonText) Text(startStopButtonText)
} }
Spacer(Modifier.width(10.dp)) Spacer(Modifier.width(10.dp))
Button(onAddButtonClick) { Button(
onAddButtonClick,
contentPadding = padding
) {
Icon( Icon(
Icons.Filled.Add, Icons.Filled.Add,
contentDescription = "Add", contentDescription = "Add",