app style: made it prettier again

This commit is contained in:
aro 2022-11-27 23:10:32 +01:00
parent b56fb3b601
commit ac17437a71
13 changed files with 112 additions and 47 deletions

View file

@ -1,29 +1,51 @@
package xyz.atnrch.wrench.components package xyz.atnrch.wrench.components
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Row import androidx.compose.material.ButtonDefaults
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.material.Icon
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.QuestionMark
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.components.center.input.InputEntries import xyz.atnrch.wrench.components.center.input.InputEntries
import xyz.atnrch.wrench.components.center.output.OutputEntries import xyz.atnrch.wrench.components.center.output.OutputEntries
import xyz.atnrch.wrench.ui.Fonts
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.io.File
@Composable @Composable
fun WatcherDisplay(watcherManager: WatcherManager) { fun WatcherDisplay(watcherManager: WatcherManager) {
var currentClick by remember { mutableStateOf(-1) } var currentClick by remember { mutableStateOf(-1) }
Row(
Row { modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 55.dp)
) {
if (watcherManager.getEntries().isEmpty()) { if (watcherManager.getEntries().isEmpty()) {
//watcherManager.addFile(File("/home/aro/IdeaProjects/Wrench/dummy")) watcherManager.addFile(File("/home/aro/IdeaProjects/Wrench/dummy"))
Box( Box(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxWidth().fillMaxHeight() modifier = Modifier.fillMaxWidth().fillMaxHeight()
) { ) {
Text("Add a file to start...") Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceEvenly
) {
Icon(
imageVector = Icons.Rounded.QuestionMark,
tint = Color.White,
contentDescription = "Open Folder",
modifier = Modifier.size(ButtonDefaults.IconSize)
)
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text(
text = "Add a file to start...",
fontFamily = Fonts.ROBOTO_REGULAR,
color = Color.White
)
}
} }
} else { } else {
InputEntries(watcherManager) { currentClick = it } InputEntries(watcherManager) { currentClick = it }

View file

@ -11,6 +11,7 @@ import xyz.atnrch.wrench.components.bottom.BottomAppBar
import xyz.atnrch.wrench.components.bottom.FloatingButton import xyz.atnrch.wrench.components.bottom.FloatingButton
import xyz.atnrch.wrench.components.top.TopBar import xyz.atnrch.wrench.components.top.TopBar
import xyz.atnrch.wrench.compose.SnackBarDataHolder import xyz.atnrch.wrench.compose.SnackBarDataHolder
import xyz.atnrch.wrench.ui.UIColors
import xyz.atnrch.wrench.watcher.Watcher import xyz.atnrch.wrench.watcher.Watcher
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@ -28,6 +29,7 @@ fun WrenchScaffold() {
topBar = { TopBar() }, topBar = { TopBar() },
floatingActionButton = { FloatingButton(watcherManager) }, floatingActionButton = { FloatingButton(watcherManager) },
isFloatingActionButtonDocked = true, isFloatingActionButtonDocked = true,
backgroundColor = UIColors.PRIMARY,
bottomBar = { BottomAppBar(watcher) } bottomBar = { BottomAppBar(watcher) }
) { WatcherDisplay(watcherManager) } ) { WatcherDisplay(watcherManager) }
} }

View file

@ -14,6 +14,6 @@ fun BottomAppBar(
cutoutShape = MaterialTheme.shapes.small.copy( cutoutShape = MaterialTheme.shapes.small.copy(
CornerSize(percent = 50) CornerSize(percent = 50)
), ),
backgroundColor = UIColors.PRIMARY backgroundColor = UIColors.DARK
) { BottomRowNew(watcher) } ) { BottomRowNew(watcher) }
} }

View file

@ -30,7 +30,7 @@ fun FloatingButton(
Logger.info("No file selected.") Logger.info("No file selected.")
}) })
}, },
backgroundColor = UIColors.PRIMARY, backgroundColor = UIColors.DARK,
modifier = Modifier.border( modifier = Modifier.border(
4.dp, 4.dp,
UIColors.ORANGE, UIColors.ORANGE,

View file

@ -4,12 +4,14 @@ import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
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
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.NoteAdd
import androidx.compose.material.icons.filled.Update import androidx.compose.material.icons.filled.Update
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -20,27 +22,53 @@ import xyz.atnrch.wrench.ui.UIColors
import xyz.atnrch.wrench.watcher.Watcher import xyz.atnrch.wrench.watcher.Watcher
@Composable @Composable
fun BottomRowNew(watcher: Watcher) { fun BottomRowNew(
watcher: Watcher
) {
Spacer(Modifier.width(10.dp))
Button( Button(
onClick = { watcher.move() }, onClick = { watcher.move() },
colors = ButtonDefaults.buttonColors(UIColors.PRIMARY, Color.White), colors = ButtonDefaults.buttonColors(UIColors.DARK, Color.White),
contentPadding = PaddingValues( contentPadding = PaddingValues(
start = 18.dp, start = 14.dp,
top = 6.dp, top = 6.dp,
end = 18.dp, end = 14.dp,
bottom = 6.dp bottom = 6.dp
), ),
shape = RoundedCornerShape(100), shape = RoundedCornerShape(100),
border = BorderStroke(2.dp, UIColors.WATCHER_START_FG), border = BorderStroke(2.dp, UIColors.GREEN),
modifier = Modifier.shadow(24.dp, RoundedCornerShape(100), false) modifier = Modifier.shadow(24.dp, RoundedCornerShape(100), false)
) { ) {
Icon( Icon(
Icons.Filled.Update, Icons.Filled.Update,
tint = UIColors.WATCHER_START_FG, tint = UIColors.GREEN,
contentDescription = "Start", contentDescription = "Start",
modifier = Modifier.size(22.dp) modifier = Modifier.size(22.dp)
) )
Spacer(Modifier.size(ButtonDefaults.IconSpacing)) Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text("Move files") Text("Move files")
} }
Spacer(Modifier.width(10.dp))
Button(
onClick = { println("Show Directory Picker") },
colors = ButtonDefaults.buttonColors(UIColors.DARK, Color.White),
contentPadding = PaddingValues(
start = 14.dp,
top = 6.dp,
end = 14.dp,
bottom = 6.dp
),
shape = RoundedCornerShape(100),
border = BorderStroke(2.dp, UIColors.ORANGE),
modifier = Modifier.shadow(24.dp, RoundedCornerShape(100), false)
) {
Icon(
Icons.Filled.NoteAdd,
tint = UIColors.ORANGE,
contentDescription = "Start",
modifier = Modifier.size(22.dp)
)
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text("Add output...")
}
} }

View file

@ -16,7 +16,6 @@ fun DummyTextEntry(
WatcherTextEntry( WatcherTextEntry(
id, id,
WatcherEntry(File("/home/aro/IdeaProjects/Wrench/dummy"), arrayListOf()), WatcherEntry(File("/home/aro/IdeaProjects/Wrench/dummy"), arrayListOf()),
watcherManager,
onEntrySelected onEntrySelected
) )
} }

View file

@ -15,15 +15,14 @@ import androidx.compose.ui.unit.TextUnitType
import xyz.atnrch.wrench.components.center.dialog.EntryDialog import xyz.atnrch.wrench.components.center.dialog.EntryDialog
import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE
import xyz.atnrch.wrench.ui.Fonts import xyz.atnrch.wrench.ui.Fonts
import xyz.atnrch.wrench.ui.UIColors
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager
@OptIn(ExperimentalUnitApi::class, ExperimentalFoundationApi::class) @OptIn(ExperimentalUnitApi::class, ExperimentalFoundationApi::class)
@Composable @Composable
fun WatcherTextEntry( fun WatcherTextEntry(
id: Int, id: Int,
entry: WatcherEntry, entry: WatcherEntry,
watcherManager: WatcherManager,
onEntrySelected: (id: Int) -> Unit onEntrySelected: (id: Int) -> Unit
) { ) {
var dialogState by remember { mutableStateOf(false) } var dialogState by remember { mutableStateOf(false) }
@ -31,7 +30,7 @@ fun WatcherTextEntry(
Text( Text(
text = entry.file.absolutePath, text = entry.file.absolutePath,
style = TextStyle( style = TextStyle(
color = if(ACTIVE_COMPOSABLE == id) Color.Red else Color.Black, color = if(ACTIVE_COMPOSABLE == id) UIColors.GREEN else Color.White,
fontSize = TextUnit(15F, TextUnitType.Sp), fontSize = TextUnit(15F, TextUnitType.Sp),
fontFamily = Fonts.ROBOTO_REGULAR fontFamily = Fonts.ROBOTO_REGULAR
), ),
@ -39,19 +38,14 @@ fun WatcherTextEntry(
.onClick( .onClick(
matcher = PointerMatcher.mouse(PointerButton.Primary), matcher = PointerMatcher.mouse(PointerButton.Primary),
onClick = { onClick = {
println("Active composable ID was $ACTIVE_COMPOSABLE")
ACTIVE_COMPOSABLE = id ACTIVE_COMPOSABLE = id
println("Active composable ID is now $ACTIVE_COMPOSABLE") onEntrySelected.invoke(id)
if (ACTIVE_COMPOSABLE == id) {
onEntrySelected.invoke(id)
}
} }
) )
.onClick( .onClick(
matcher = PointerMatcher.mouse(PointerButton.Secondary), matcher = PointerMatcher.mouse(PointerButton.Secondary),
onClick = { onClick = {
dialogState = true dialogState = true
println("PATH IS ${watcherManager.getFromId(ACTIVE_COMPOSABLE)!!.file.path}")
} }
) )
) )

View file

@ -2,6 +2,7 @@ package xyz.atnrch.wrench.components.center.input
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.border import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
@ -9,6 +10,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.components.center.WatcherTextEntry import xyz.atnrch.wrench.components.center.WatcherTextEntry
import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE
import xyz.atnrch.wrench.registery.RegisterComposable import xyz.atnrch.wrench.registery.RegisterComposable
import xyz.atnrch.wrench.ui.UIColors import xyz.atnrch.wrench.ui.UIColors
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@ -21,10 +23,13 @@ fun InputEntries(
Box( Box(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
modifier = Modifier modifier = Modifier
.padding(PaddingValues(0.dp, 0.dp, 0.dp, 55.dp))
.fillMaxHeight() .fillMaxHeight()
.fillMaxWidth(0.5f) .fillMaxWidth(0.5f)
.border(BorderStroke(4.dp, UIColors.ORANGE), RectangleShape) .border(BorderStroke(4.dp, UIColors.ORANGE), RectangleShape)
.clickable {
ACTIVE_COMPOSABLE = -1
onEntryClick.invoke(-1)
}
) { ) {
InputTopText() InputTopText()
Column( Column(
@ -35,7 +40,6 @@ fun InputEntries(
WatcherTextEntry( WatcherTextEntry(
it.key, it.key,
it.value, it.value,
watcherManager,
onEntryClick onEntryClick
) )
} }

View file

@ -10,8 +10,12 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@OptIn(ExperimentalUnitApi::class)
@Composable @Composable
fun InputTopText() { fun InputTopText() {
Box( Box(
@ -22,13 +26,17 @@ fun InputTopText() {
.fillMaxWidth(0.5f) .fillMaxWidth(0.5f)
) { ) {
Row { Row {
Text("Input") Text(
Spacer(Modifier.width(5.dp)) text = "Input",
color = Color.White,
fontSize = TextUnit(20F, TextUnitType.Sp)
)
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Icon( Icon(
Icons.Filled.Input, Icons.Filled.Input,
tint = Color.Black, tint = Color.White,
contentDescription = "Input", contentDescription = "Input",
modifier = Modifier.size(ButtonDefaults.IconSize) modifier = Modifier.size(24.dp)
) )
} }
} }

View file

@ -15,6 +15,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.components.center.showDirectoryPicker import xyz.atnrch.wrench.components.center.showDirectoryPicker
import xyz.atnrch.wrench.logger.Logger import xyz.atnrch.wrench.logger.Logger
@ -24,6 +27,7 @@ import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path
import kotlin.io.path.pathString import kotlin.io.path.pathString
@OptIn(ExperimentalUnitApi::class)
@Composable @Composable
fun OutputEntries( fun OutputEntries(
watcherManager: WatcherManager, watcherManager: WatcherManager,
@ -34,7 +38,6 @@ fun OutputEntries(
Box( Box(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
modifier = Modifier modifier = Modifier
.padding(PaddingValues(0.dp, 0.dp, 0.dp, 55.dp))
.fillMaxHeight() .fillMaxHeight()
.fillMaxWidth() .fillMaxWidth()
.border(BorderStroke(4.dp, UIColors.STRESS), RectangleShape) .border(BorderStroke(4.dp, UIColors.STRESS), RectangleShape)
@ -56,7 +59,11 @@ fun OutputEntries(
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
if (outputs.isEmpty()) { if (outputs.isEmpty()) {
Text("No outputs.") Text(
text = "No outputs.",
fontSize = TextUnit(20F, TextUnitType.Sp),
color = Color.White
)
} else { } else {
outputs.forEach { outputs.forEach {
Text(it.pathString) Text(it.pathString)

View file

@ -10,8 +10,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.*
@OptIn(ExperimentalUnitApi::class)
@Composable @Composable
fun OutputTopText() { fun OutputTopText() {
Box( Box(
@ -24,12 +25,16 @@ fun OutputTopText() {
Row { Row {
Icon( Icon(
Icons.Filled.Output, Icons.Filled.Output,
tint = Color.Black, tint = Color.White,
contentDescription = "Output", contentDescription = "Output",
modifier = Modifier.size(ButtonDefaults.IconSize) modifier = Modifier.size(24.dp)
)
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text(
text = "Output",
color = Color.White,
fontSize = TextUnit(20F, TextUnitType.Sp)
) )
Spacer(Modifier.width(5.dp))
Text("Output")
} }
} }
} }

View file

@ -18,7 +18,7 @@ import xyz.atnrch.wrench.ui.UIColors
@Composable @Composable
fun TopBar() { fun TopBar() {
TopAppBar( TopAppBar(
backgroundColor = UIColors.PRIMARY, backgroundColor = UIColors.DARK,
contentColor = Color.White, contentColor = Color.White,
elevation = 16.dp, elevation = 16.dp,
title = { title = {

View file

@ -4,15 +4,11 @@ import androidx.compose.ui.graphics.Color
class UIColors { class UIColors {
companion object { companion object {
val PRIMARY = Color(0xFF424242) val DARK = Color(0XFF1B1B1B)
val PRIMARY = Color(0xFF242424)
val LIGHT = Color(0xFF6D6D6D) val LIGHT = Color(0xFF6D6D6D)
val STRESS = Color(0xFFF44336) val STRESS = Color(0xFFF44336)
val GREEN = Color(0xFF64BA59) val GREEN = Color(0xFF64BA69)
val ORANGE = Color(0xFFFFB300) val ORANGE = Color(0xFFFFB300)
val WATCHER_START_BG = Color(0xFF31893D)
val WATCHER_START_FG = Color(0xFF64BA69)
val WATCHER_STOP_BG = Color(0xFFBA000D)
val WATCHER_STOP_FG = STRESS
} }
} }