Skip to content

Commit 6712392

Browse files
committed
color change and window top bar change
1 parent d159a91 commit 6712392

File tree

4 files changed

+97
-16
lines changed

4 files changed

+97
-16
lines changed

src/main/kotlin/App.kt

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
12
import androidx.compose.desktop.ui.tooling.preview.Preview
3+
import androidx.compose.foundation.layout.Arrangement
24
import androidx.compose.foundation.layout.Column
35
import androidx.compose.foundation.layout.Row
46
import androidx.compose.foundation.layout.fillMaxHeight
57
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
69
import androidx.compose.foundation.layout.height
710
import androidx.compose.foundation.layout.padding
811
import androidx.compose.material.MaterialTheme
@@ -11,6 +14,7 @@ import androidx.compose.runtime.getValue
1114
import androidx.compose.runtime.mutableStateOf
1215
import androidx.compose.runtime.remember
1316
import androidx.compose.runtime.setValue
17+
import androidx.compose.ui.Alignment
1418
import androidx.compose.ui.Modifier
1519
import androidx.compose.ui.unit.dp
1620
import components.CustomButton
@@ -56,27 +60,34 @@ fun App() {
5660
var isShowToast by remember { mutableStateOf(false) }
5761
var toastMessage by remember { mutableStateOf("") }
5862
MaterialTheme {
59-
Row(
60-
Modifier.fillMaxSize().padding(10.dp)
61-
) {
63+
Column(Modifier.fillMaxSize().padding(8.dp)) {
6264
CustomTextField(
6365
stringState,
6466
"Enter the Strings",
65-
Modifier.fillMaxHeight().weight(0.8f, true),
67+
Modifier.fillMaxHeight().weight(0.9f, true),
6668
) { stringState = it }
6769

68-
Column(
69-
Modifier.weight(0.2f, true).padding(start = 10.dp)
70+
Row(
71+
modifier = Modifier
72+
.fillMaxWidth()
73+
.weight(0.1f),
74+
horizontalArrangement = Arrangement.SpaceBetween,
75+
verticalAlignment = Alignment.CenterVertically
7076
) {
71-
CustomButton("Select Languages", onClick = {
77+
CustomButton(modifier = Modifier.weight(1f).height(50.dp),"Select Languages", onClick = {
7278
isWindowShow = WindowState.SELECT_COUNTRY
7379
})
7480
CustomTextField(
7581
folderState,
7682
"Enter the Folder Name",
77-
Modifier.height(80.dp),
83+
Modifier
84+
.padding(start = 8.dp, end = 8.dp)
85+
.weight(1f) // Use weight to make the TextField fill the available space
86+
.height(50.dp)
7887
) { folderState = it }
79-
CustomButton("Translate",
88+
CustomButton(
89+
modifier = Modifier.weight(1f).height(50.dp),
90+
"Translate",
8091
isEnable = stringState.isNotEmpty() && folderState.isNotEmpty() && countryListState.any { it.isChecked },
8192
onClick = {
8293
isWindowShow = WindowState.CONVERT_TRANSLATE

src/main/kotlin/Main.kt

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,38 @@
11

2+
import androidx.compose.foundation.border
3+
import androidx.compose.foundation.clickable
4+
import androidx.compose.foundation.layout.Box
5+
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.fillMaxSize
7+
import androidx.compose.foundation.layout.fillMaxWidth
8+
import androidx.compose.foundation.layout.height
9+
import androidx.compose.foundation.layout.padding
10+
import androidx.compose.foundation.shape.RoundedCornerShape
11+
import androidx.compose.foundation.window.WindowDraggableArea
12+
import androidx.compose.material.Icon
13+
import androidx.compose.material.Text
14+
import androidx.compose.material.TopAppBar
15+
import androidx.compose.material.icons.Icons
16+
import androidx.compose.material.icons.rounded.Close
17+
import androidx.compose.material.icons.rounded.KeyboardArrowDown
18+
import androidx.compose.runtime.Composable
219
import androidx.compose.ui.Alignment
20+
import androidx.compose.ui.Modifier
21+
import androidx.compose.ui.draw.clip
22+
import androidx.compose.ui.graphics.Color
23+
import androidx.compose.ui.text.font.FontWeight
24+
import androidx.compose.ui.text.style.TextAlign
325
import androidx.compose.ui.unit.dp
426
import androidx.compose.ui.window.Window
527
import androidx.compose.ui.window.WindowPosition
28+
import androidx.compose.ui.window.WindowScope
629
import androidx.compose.ui.window.WindowState
730
import androidx.compose.ui.window.application
31+
import theme.TextFieldBackground
832

933
fun main() = application {
1034
val windowState = WindowState(
11-
width = 1280 .dp,
35+
width = 1280.dp,
1236
height = 720.dp,
1337
position = WindowPosition(Alignment.Center)
1438
)
@@ -17,7 +41,53 @@ fun main() = application {
1741
title = "String Translator Desktop App",
1842
state = windowState,
1943
resizable = false,
44+
undecorated = true
2045
) {
21-
App()
46+
Column(Modifier.fillMaxSize()
47+
.border(width = 2.dp, color = TextFieldBackground, shape = RoundedCornerShape(2.dp))
48+
.clip(RoundedCornerShape(bottomStart = 120.dp, bottomEnd = 120.dp))) {
49+
AppWindowTitleBar(windowState) { exitApplication() }
50+
App()
51+
}
52+
}
53+
}
54+
55+
@Composable
56+
private fun WindowScope.AppWindowTitleBar(state: WindowState, onClose: () -> Unit) =
57+
WindowDraggableArea {
58+
Box(
59+
Modifier.fillMaxWidth()
60+
.height(48.dp)
61+
.padding(horizontal = 16.dp),
62+
contentAlignment = Alignment.CenterEnd
63+
) {
64+
TopAppBar(
65+
title = {
66+
Text(
67+
"String Translator Desktop App",
68+
textAlign = TextAlign.Center,
69+
fontWeight = FontWeight.Bold,
70+
modifier = Modifier.fillMaxWidth()
71+
)
72+
},
73+
contentColor = Color.White,
74+
backgroundColor = TextFieldBackground,
75+
modifier = Modifier.fillMaxSize().padding(horizontal = 160.dp)
76+
.clip(RoundedCornerShape(bottomStart = 100.dp, bottomEnd = 100.dp))
77+
)
78+
79+
Icon(
80+
imageVector = Icons.Rounded.KeyboardArrowDown,
81+
contentDescription = "Minimise",
82+
tint = TextFieldBackground,
83+
modifier = Modifier.padding(end = 32.dp).clickable { state.isMinimized = true }
84+
)
85+
86+
Icon(
87+
imageVector = Icons.Rounded.Close,
88+
contentDescription = "Close",
89+
tint = TextFieldBackground,
90+
modifier = Modifier.padding(start = 8.dp).clickable { onClose() }
91+
)
92+
}
2293
}
23-
}

src/main/kotlin/components/Components.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ fun CustomTextField(
8787
}
8888

8989
@Composable
90-
fun CustomButton(text: String, onClick: () -> Unit, isEnable: Boolean = true) {
90+
fun CustomButton(modifier: Modifier, text: String, onClick: () -> Unit, isEnable: Boolean = true) {
9191
Button(
9292
onClick = onClick,
9393
colors = ButtonDefaults.buttonColors(TextFieldBackground, Color.White),
9494
shape = RoundedCornerShape(12.dp),
9595
enabled = isEnable,
96-
modifier = Modifier.fillMaxWidth()
96+
modifier = modifier.fillMaxWidth()
9797
) {
9898
Text(text, fontWeight = FontWeight.Bold, fontSize = 16.sp)
9999
}
@@ -258,7 +258,7 @@ fun translateDialog(
258258
.fillMaxWidth(),
259259
horizontalArrangement = Arrangement.SpaceAround,
260260
) {
261-
CustomButton("Done", onClick = {
261+
CustomButton(Modifier,"Done", onClick = {
262262
onDismiss()
263263
})
264264
}

src/main/kotlin/theme/Color.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ import androidx.compose.ui.graphics.Color
44

55
val PurpleBlue = Color(0xFF7F52FF)
66
val Background = Color(0xFF1F1D2B)
7-
val TextFieldBackground = Color(0xFF2D2A3D)
7+
val TextFieldBackground = Color(0xFF000000)

0 commit comments

Comments
 (0)