Archived
1
0
Fork 0

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
src/main/kotlin/xyz/atnrch/wrench

View file

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