feat: kotlin shinanigans to make it run inside intellij
This commit is contained in:
parent
f26f113a63
commit
5ff2319f37
2 changed files with 65 additions and 16 deletions
|
@ -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 = {}
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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",
|
||||||
|
|
Reference in a new issue