Skip to content

Commit b982aac

Browse files
committed
fix(desktop, windows): update custom header theme
1 parent 4123c8b commit b982aac

File tree

4 files changed

+69
-59
lines changed

4 files changed

+69
-59
lines changed

application/src/desktopMain/kotlin/com/neoutils/neoregex/App.desktop.kt

Lines changed: 64 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import org.koin.compose.koinInject
5959

6060
@Composable
6161
fun ApplicationScope.DesktopApp() = WithKoin {
62+
6263
val preferencesDataSource = koinInject<PreferencesDataSource>()
6364
val preferences by preferencesDataSource.flow.collectAsState()
6465

@@ -85,68 +86,77 @@ fun ApplicationScope.DesktopApp() = WithKoin {
8586
}
8687

8788
@Composable
88-
private fun FrameWindowScope.HeaderImpl() = NeoHeader { padding ->
89+
private fun FrameWindowScope.HeaderImpl() {
8990

9091
val preferencesDataSource = koinInject<PreferencesDataSource>()
9192
val preferences by preferencesDataSource.flow.collectAsStateWithLifecycle()
9293

93-
Text(
94-
text = stringResource(Res.string.app_name),
95-
modifier = Modifier.align(
96-
Alignment.Center
97-
)
98-
)
99-
100-
Row(
101-
modifier = Modifier
102-
.padding(padding)
103-
.padding(horizontal = dimensions.medium)
104-
.align(Alignment.CenterEnd),
105-
horizontalArrangement = Arrangement.spacedBy(dimensions.medium)
106-
) {
107-
val uriHandler = LocalUriHandler.current
94+
NeoHeader(
95+
colorTheme = when (preferences.colorTheme) {
96+
Preferences.ColorTheme.SYSTEM -> rememberColorTheme()
97+
Preferences.ColorTheme.LIGHT -> ColorTheme.LIGHT
98+
Preferences.ColorTheme.DARK -> ColorTheme.DARK
99+
}
100+
) { padding ->
108101

109-
Icon(
110-
painter = painterResource(Res.drawable.github),
111-
contentDescription = null,
112-
tint = colorScheme.onSurface,
113-
modifier = Modifier
114-
.clip(CircleShape)
115-
.clickable(
116-
onClick = {
117-
uriHandler.openUri(
118-
uri = "https://github.com/NeoUtils/NeoRegex"
119-
)
120-
}
121-
)
122-
.padding(dimensions.medium)
123-
.aspectRatio(ratio = 1f)
102+
Text(
103+
text = stringResource(Res.string.app_name),
104+
modifier = Modifier.align(
105+
Alignment.Center
106+
)
124107
)
125108

126-
Icon(
127-
painter = when (preferences.colorTheme) {
128-
Preferences.ColorTheme.SYSTEM -> painterResource(Res.drawable.contrast)
129-
Preferences.ColorTheme.LIGHT -> painterResource(Res.drawable.light_theme)
130-
Preferences.ColorTheme.DARK -> painterResource(Res.drawable.dark_theme)
131-
},
132-
contentDescription = null,
109+
Row(
133110
modifier = Modifier
134-
.clip(CircleShape)
135-
.clickable(
136-
onClick = {
137-
preferencesDataSource.update {
138-
it.copy(
139-
colorTheme = when (it.colorTheme) {
140-
Preferences.ColorTheme.SYSTEM -> Preferences.ColorTheme.LIGHT
141-
Preferences.ColorTheme.LIGHT -> Preferences.ColorTheme.DARK
142-
Preferences.ColorTheme.DARK -> Preferences.ColorTheme.SYSTEM
143-
}
111+
.padding(padding)
112+
.padding(horizontal = dimensions.medium)
113+
.align(Alignment.CenterEnd),
114+
horizontalArrangement = Arrangement.spacedBy(dimensions.medium)
115+
) {
116+
val uriHandler = LocalUriHandler.current
117+
118+
Icon(
119+
painter = painterResource(Res.drawable.github),
120+
contentDescription = null,
121+
tint = colorScheme.onSurface,
122+
modifier = Modifier
123+
.clip(CircleShape)
124+
.clickable(
125+
onClick = {
126+
uriHandler.openUri(
127+
uri = "https://github.com/NeoUtils/NeoRegex"
144128
)
145129
}
146-
}
147-
)
148-
.padding(dimensions.medium)
149-
.aspectRatio(ratio = 1f)
150-
)
130+
)
131+
.padding(dimensions.medium)
132+
.aspectRatio(ratio = 1f)
133+
)
134+
135+
Icon(
136+
painter = when (preferences.colorTheme) {
137+
Preferences.ColorTheme.SYSTEM -> painterResource(Res.drawable.contrast)
138+
Preferences.ColorTheme.LIGHT -> painterResource(Res.drawable.light_theme)
139+
Preferences.ColorTheme.DARK -> painterResource(Res.drawable.dark_theme)
140+
},
141+
contentDescription = null,
142+
modifier = Modifier
143+
.clip(CircleShape)
144+
.clickable(
145+
onClick = {
146+
preferencesDataSource.update {
147+
it.copy(
148+
colorTheme = when (it.colorTheme) {
149+
Preferences.ColorTheme.SYSTEM -> Preferences.ColorTheme.LIGHT
150+
Preferences.ColorTheme.LIGHT -> Preferences.ColorTheme.DARK
151+
Preferences.ColorTheme.DARK -> Preferences.ColorTheme.SYSTEM
152+
}
153+
)
154+
}
155+
}
156+
)
157+
.padding(dimensions.medium)
158+
.aspectRatio(ratio = 1f)
159+
)
160+
}
151161
}
152-
}
162+
}

core/shared-ui/src/desktopMain/kotlin/com/neoutils/neoregex/core/sharedui/component/DefaultHeader.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import com.neoutils.neoregex.core.common.util.rememberColorTheme
5050
import com.neoutils.neoregex.core.designsystem.theme.NeoTheme.dimensions
5151
import com.neoutils.neoregex.core.sharedui.remember.NeoWindowState
5252
import com.neoutils.neoregex.core.sharedui.remember.WindowFocus
53-
import com.neoutils.neoregex.core.sharedui.remember.rememberCompleteWindowState
53+
import com.neoutils.neoregex.core.sharedui.remember.rememberNeoWindowState
5454
import com.neoutils.neoregex.core.sharedui.remember.rememberWindowFocus
5555
import java.awt.Frame
5656
import java.awt.event.MouseEvent
@@ -66,7 +66,7 @@ fun FrameWindowScope.NeoHeader(
6666
) {
6767

6868
val focus = rememberWindowFocus()
69-
val state = rememberCompleteWindowState()
69+
val state = rememberNeoWindowState()
7070

7171
val dragHandler = remember { DragHandler(window) }
7272

core/shared-ui/src/desktopMain/kotlin/com/neoutils/neoregex/core/sharedui/component/NeoWindow.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import com.neoutils.neoregex.core.resources.Res
3838
import com.neoutils.neoregex.core.resources.app_name
3939
import com.neoutils.neoregex.core.resources.flavicon
4040
import com.neoutils.neoregex.core.sharedui.remember.NeoWindowState
41-
import com.neoutils.neoregex.core.sharedui.remember.rememberCompleteWindowState
41+
import com.neoutils.neoregex.core.sharedui.remember.rememberNeoWindowState
4242
import com.neoutils.neoregex.core.sharedui.util.NeoRegexWindowExceptionHandlerFactory
4343
import org.jetbrains.compose.resources.painterResource
4444
import org.jetbrains.compose.resources.stringResource
@@ -76,7 +76,7 @@ fun ApplicationScope.NeoWindow(
7676
state = windowState
7777
) {
7878

79-
val completeWindowState = rememberCompleteWindowState()
79+
val completeWindowState = rememberNeoWindowState()
8080

8181
Surface(
8282
color = colorScheme.background,

core/shared-ui/src/desktopMain/kotlin/com/neoutils/neoregex/core/sharedui/remember/WindowState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import java.awt.event.WindowStateListener
2929

3030

3131
@Composable
32-
fun FrameWindowScope.rememberCompleteWindowState(): NeoWindowState {
32+
fun FrameWindowScope.rememberNeoWindowState(): NeoWindowState {
3333

3434
var state by remember { mutableStateOf(NeoWindowState.of(window)) }
3535

0 commit comments

Comments
 (0)