Change some theming stuff
This commit is contained in:
parent
2b37dc2529
commit
2d164b265e
10 changed files with 81 additions and 51 deletions
|
|
@ -212,6 +212,7 @@
|
|||
|
||||
<string name="game_master__title">Admin</string>
|
||||
<string name="game_master__action">GameMaster</string>
|
||||
<string name="game_master__character__filter">Filtrer par nom :</string>
|
||||
<string name="game_master__character_level__label">niv: %1$d</string>
|
||||
<string name="game_master__character_tag__character_search">Joueur</string>
|
||||
<string name="game_master__character_tag__character_label">Joueur-%1$d</string>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,18 @@
|
|||
package com.pixelized.desktop.lwa.ui.composable.textfield
|
||||
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.material.TextField
|
||||
import androidx.compose.material.TextFieldDefaults
|
||||
import androidx.compose.material.TextFieldColors
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusDirection
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaTextFieldColors
|
||||
import com.pixelized.desktop.lwa.utils.rememberKeyboardActions
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
|
|
@ -29,13 +28,13 @@ data class LwaTextFieldUio(
|
|||
@Composable
|
||||
fun LwaTextField(
|
||||
modifier: Modifier = Modifier,
|
||||
colors: TextFieldColors = LwaTextFieldColors(),
|
||||
leadingIcon: @Composable (() -> Unit)? = null,
|
||||
trailingIcon: @Composable (() -> Unit)? = null,
|
||||
singleLine: Boolean = true,
|
||||
field: LwaTextFieldUio,
|
||||
) {
|
||||
val focus = LocalFocusManager.current
|
||||
val colorScheme = MaterialTheme.colors
|
||||
|
||||
val localModifier = if (singleLine) {
|
||||
Modifier.height(height = 56.dp)
|
||||
|
|
@ -49,14 +48,7 @@ fun LwaTextField(
|
|||
|
||||
TextField(
|
||||
modifier = localModifier.then(other = modifier),
|
||||
colors = TextFieldDefaults.textFieldColors(
|
||||
backgroundColor = remember(field.enable) {
|
||||
when (field.enable) {
|
||||
true -> colorScheme.onSurface.copy(alpha = 0.03f)
|
||||
else -> colorScheme.surface
|
||||
}
|
||||
},
|
||||
),
|
||||
colors = colors,
|
||||
keyboardActions = rememberKeyboardActions {
|
||||
focus.moveFocus(FocusDirection.Next)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import androidx.compose.runtime.Stable
|
|||
import androidx.compose.runtime.State
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaCheckboxColors
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
|
||||
@Stable
|
||||
|
|
@ -32,6 +33,7 @@ fun LevelUpField(
|
|||
text = field.label,
|
||||
)
|
||||
Checkbox(
|
||||
colors = LwaCheckboxColors(),
|
||||
checked = field.checked.value,
|
||||
onCheckedChange = field.onCheck,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.Box
|
|||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
|
@ -30,7 +29,9 @@ import androidx.compose.material.MaterialTheme
|
|||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.Surface
|
||||
import androidx.compose.material.Switch
|
||||
import androidx.compose.material.SwitchColors
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.material.TextFieldDefaults
|
||||
import androidx.compose.material.TopAppBar
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
|
|
@ -42,6 +43,8 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.pixelized.desktop.lwa.LocalWindowController
|
||||
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
|
||||
|
|
@ -51,6 +54,7 @@ import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMCharacter
|
|||
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMCharacterUio
|
||||
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMTag
|
||||
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMTagUio
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaSwitchColors
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
import kotlinx.coroutines.launch
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
|
|
@ -110,6 +114,8 @@ fun GameMasterScreen(
|
|||
@Composable
|
||||
private fun GameMasterContent(
|
||||
modifier: Modifier = Modifier,
|
||||
padding: Dp = 16.dp,
|
||||
spacing: Dp = 8.dp,
|
||||
filterChipsState: LazyListState = rememberLazyListState(),
|
||||
filter: LwaTextFieldUio,
|
||||
tags: State<List<GMTagUio>>,
|
||||
|
|
@ -147,8 +153,8 @@ private fun GameMasterContent(
|
|||
text = stringResource(Res.string.game_master__action),
|
||||
)
|
||||
Switch(
|
||||
colors = LwaSwitchColors(),
|
||||
checked = gameMaster.value,
|
||||
colors = MaterialTheme.lwa.colorScheme.component.switch,
|
||||
onCheckedChange = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -195,8 +201,10 @@ private fun GameMasterContent(
|
|||
},
|
||||
),
|
||||
state = filterChipsState,
|
||||
contentPadding = remember { PaddingValues(all = 8.dp) },
|
||||
horizontalArrangement = Arrangement.spacedBy(space = 8.dp),
|
||||
contentPadding = remember(padding, spacing) {
|
||||
PaddingValues(horizontal = padding, vertical = spacing)
|
||||
},
|
||||
horizontalArrangement = Arrangement.spacedBy(space = spacing),
|
||||
) {
|
||||
items(
|
||||
items = tags.value,
|
||||
|
|
@ -217,13 +225,13 @@ private fun GameMasterContent(
|
|||
modifier = Modifier.matchParentSize(),
|
||||
contentPadding = remember {
|
||||
PaddingValues(
|
||||
start = 8.dp,
|
||||
top = 8.dp,
|
||||
end = 8.dp,
|
||||
bottom = 8.dp + 48.dp + 8.dp,
|
||||
start = padding,
|
||||
top = padding,
|
||||
end = padding,
|
||||
bottom = padding + 48.dp + padding,
|
||||
)
|
||||
},
|
||||
verticalArrangement = Arrangement.spacedBy(space = 8.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(space = spacing),
|
||||
) {
|
||||
items(
|
||||
items = characters.value,
|
||||
|
|
@ -243,11 +251,10 @@ private fun GameMasterContent(
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
IconButton(
|
||||
modifier = Modifier
|
||||
.align(alignment = Alignment.BottomEnd)
|
||||
.padding(all = 8.dp)
|
||||
.padding(all = padding)
|
||||
.background(
|
||||
color = MaterialTheme.lwa.colorScheme.base.primary,
|
||||
shape = CircleShape,
|
||||
|
|
|
|||
|
|
@ -13,10 +13,11 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.mapLatest
|
||||
import kotlinx.coroutines.flow.stateIn
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
import lwacharactersheet.composeapp.generated.resources.game_master__character__filter
|
||||
import lwacharactersheet.composeapp.generated.resources.game_master__character_tag__character_search
|
||||
import lwacharactersheet.composeapp.generated.resources.game_master__character_tag__npc_search
|
||||
import org.jetbrains.compose.resources.getString
|
||||
|
|
@ -32,7 +33,7 @@ class GameMasterViewModel(
|
|||
private val _filter = MutableStateFlow("")
|
||||
val filter = LwaTextFieldUio(
|
||||
enable = true,
|
||||
labelFlow = MutableStateFlow("Filtre"),
|
||||
labelFlow = MutableStateFlow(runBlocking { getString(Res.string.game_master__character__filter) }),
|
||||
valueFlow = _filter,
|
||||
placeHolderFlow = MutableStateFlow(null),
|
||||
onValueChange = { _filter.value = it },
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.pixelized.desktop.lwa.ui.theme.color
|
||||
|
||||
import androidx.compose.material.Colors
|
||||
import androidx.compose.material.SwitchColors
|
||||
import androidx.compose.material.darkColors
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.ReadOnlyComposable
|
||||
|
|
@ -11,23 +10,16 @@ import androidx.compose.ui.graphics.Color
|
|||
import androidx.compose.ui.graphics.compositeOver
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.component.lwaSwitch
|
||||
import kotlin.math.ln
|
||||
|
||||
@Stable
|
||||
data class LwaColors(
|
||||
val base: Colors,
|
||||
val component: Component,
|
||||
val elevated: Elevated,
|
||||
val portrait: Portrait,
|
||||
val portraitBackgroundBrush: Brush,
|
||||
val chat: Chat,
|
||||
) {
|
||||
@Stable
|
||||
data class Component(
|
||||
val switch: SwitchColors,
|
||||
)
|
||||
|
||||
@Stable
|
||||
data class Elevated(
|
||||
val base1dp: Color,
|
||||
|
|
@ -80,9 +72,6 @@ fun darkLwaColorTheme(
|
|||
elevation = 4.dp,
|
||||
),
|
||||
),
|
||||
component: LwaColors.Component = LwaColors.Component(
|
||||
switch = lwaSwitch(base = base),
|
||||
),
|
||||
portraitBackgroundBrush: Brush = Brush.verticalGradient(
|
||||
listOf(
|
||||
elevated.base1dp.copy(alpha = 0.0f),
|
||||
|
|
@ -107,7 +96,6 @@ fun darkLwaColorTheme(
|
|||
),
|
||||
): LwaColors = LwaColors(
|
||||
base = base,
|
||||
component = component,
|
||||
elevated = elevated,
|
||||
portrait = portrait,
|
||||
portraitBackgroundBrush = portraitBackgroundBrush,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.pixelized.desktop.lwa.ui.theme.color.component
|
||||
|
||||
import androidx.compose.material.CheckboxColors
|
||||
import androidx.compose.material.CheckboxDefaults
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
fun LwaCheckboxColors(
|
||||
colors: LwaColors = MaterialTheme.lwa.colorScheme,
|
||||
): CheckboxColors = CheckboxDefaults.colors(
|
||||
checkedColor = colors.base.primary,
|
||||
)
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
package com.pixelized.desktop.lwa.ui.theme.color.component
|
||||
|
||||
import androidx.compose.material.Colors
|
||||
import androidx.compose.material.SwitchDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
fun lwaSwitch(
|
||||
base: Colors
|
||||
) = SwitchDefaults.colors(
|
||||
checkedThumbColor = base.primary,
|
||||
)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.pixelized.desktop.lwa.ui.theme.color.component
|
||||
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.SwitchDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
fun LwaSwitchColors(
|
||||
colors: LwaColors = MaterialTheme.lwa.colorScheme,
|
||||
) = SwitchDefaults.colors(
|
||||
checkedThumbColor = colors.base.primary,
|
||||
)
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.pixelized.desktop.lwa.ui.theme.color.component
|
||||
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.TextFieldColors
|
||||
import androidx.compose.material.TextFieldDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
fun LwaTextFieldColors(
|
||||
colors: LwaColors = MaterialTheme.lwa.colorScheme,
|
||||
): TextFieldColors = TextFieldDefaults.textFieldColors(
|
||||
backgroundColor = colors.elevated.base1dp,
|
||||
disabledIndicatorColor = Color.Transparent,
|
||||
unfocusedIndicatorColor = Color.Transparent,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue