Fix missing characterSheet action tooltip.

This commit is contained in:
Thomas Andres Gomez 2025-05-07 13:33:31 +02:00
parent b230d38805
commit 168ee27826
18 changed files with 215 additions and 185 deletions

View file

@ -46,7 +46,7 @@ import com.pixelized.desktop.lwa.ui.composable.decoratedBox.DecoratedBox
import com.pixelized.desktop.lwa.ui.composable.image.DesaturatedAsyncImage
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout2
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaTextFieldColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.rememberSaturationFilter
@ -221,9 +221,8 @@ private fun InventoryDialogItem(
item: InventoryDialogUio.Item,
onItem: (String) -> Unit,
) {
TooltipLayout2(
TooltipLayout(
modifier = modifier,
delayMillis = 500,
tips = item.tooltips,
tooltip = { tooltips ->
DecoratedBox {

View file

@ -1,10 +1,8 @@
package com.pixelized.desktop.lwa.ui.composable.tooltip
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.TooltipArea
import androidx.compose.foundation.TooltipPlacement
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
@ -13,56 +11,70 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
class TooltipUio(
@Stable
class BasicTooltipUio(
val title: String?,
val description: String,
)
@Immutable
object BasicTooltipDefault {
@Stable
val delay: Int = 500
@Stable
val elevation: Dp = 2.dp
@OptIn(ExperimentalFoundationApi::class)
@Stable
val placement: TooltipPlacement = TooltipPlacement.CursorPoint(DpOffset(0.dp, 16.dp))
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun TooltipLayout(
fun BasicTooltipLayout(
modifier: Modifier = Modifier,
delayMillis: Int = 1000,
tooltipPlacement: TooltipPlacement = TooltipPlacement.CursorPoint(DpOffset(0.dp, 16.dp)),
tooltip: TooltipUio?,
delayMillis: Int = BasicTooltipDefault.delay,
elevation: Dp = BasicTooltipDefault.elevation,
tooltipPlacement: TooltipPlacement = BasicTooltipDefault.placement,
tooltip: BasicTooltipUio?,
content: @Composable () -> Unit,
) {
when (tooltip) {
null -> Box(
modifier = modifier,
content = { content() },
)
else -> TooltipArea(
modifier = modifier,
tooltip = {
Tooltip(
modifier = Modifier.width(width = 448.dp),
tooltip = tooltip,
)
},
content = content,
delayMillis = delayMillis,
tooltipPlacement = tooltipPlacement,
)
}
TooltipLayout(
modifier = modifier,
delayMillis = delayMillis,
tooltipPlacement = tooltipPlacement,
tips = tooltip,
tooltip = {
BasicTooltip(
modifier = Modifier.width(width = 448.dp),
elevation = elevation,
tooltip = it,
)
},
content = content,
)
}
@Composable
fun Tooltip(
private fun BasicTooltip(
modifier: Modifier = Modifier,
tooltip: TooltipUio,
elevation: Dp = BasicTooltipDefault.elevation,
tooltip: BasicTooltipUio,
) {
Surface(
modifier = Modifier.padding(16.dp).then(other = modifier),
color = MaterialTheme.colors.surface,
elevation = 2.dp,
elevation = elevation,
shape = remember { RoundedCornerShape(4.dp) }
) {
Column(

View file

@ -6,18 +6,29 @@ import androidx.compose.foundation.TooltipPlacement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.Stable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
@Immutable
object TooltipDefault {
@Stable
val delay: Int = 500
@OptIn(ExperimentalFoundationApi::class)
@Stable
val placement: TooltipPlacement = TooltipPlacement.CursorPoint(DpOffset(0.dp, 16.dp))
}
@Composable
@OptIn(ExperimentalFoundationApi::class)
fun <T> TooltipLayout2(
fun <T> TooltipLayout(
modifier: Modifier = Modifier,
delayMillis: Int = 1000,
tooltipPlacement: TooltipPlacement = TooltipPlacement.CursorPoint(DpOffset(0.dp, 16.dp)),
delayMillis: Int = TooltipDefault.delay,
tooltipPlacement: TooltipPlacement = TooltipDefault.placement,
tips: T? = null,
tooltip: (@Composable (tips: T) -> Unit)? = null,
content: @Composable () -> Unit,

View file

@ -40,8 +40,8 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.shapes.ArrowShape
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.DetailPanelUio
import com.pixelized.desktop.lwa.ui.theme.lwa
@ -75,26 +75,26 @@ data class CharacterDetailHeaderUio(
val name: String,
val level: Int,
val hp: String,
val hpTooltip: TooltipUio,
val hpTooltip: BasicTooltipUio,
val maxHp: String,
val pp: String,
val ppTooltip: TooltipUio,
val ppTooltip: BasicTooltipUio,
val maxPp: String,
val mov: String,
val movTooltip: TooltipUio,
val movTooltip: BasicTooltipUio,
val armor: String,
val armorTooltip: TooltipUio,
val armorTooltip: BasicTooltipUio,
val bonus: String,
val bonusTooltip: TooltipUio,
val bonusTooltip: BasicTooltipUio,
val grow: String,
val growTooltip: TooltipUio,
val growTooltip: BasicTooltipUio,
val learn: String,
val learnTooltip: TooltipUio,
val learnTooltip: BasicTooltipUio,
val reflex: String,
val reflexTooltip: TooltipUio,
val reflexTooltip: BasicTooltipUio,
val reflexRoll: RollAction.Uio,
val initiative: String,
val initiativeTooltip: TooltipUio,
val initiativeTooltip: BasicTooltipUio,
)
@Stable
@ -261,7 +261,7 @@ fun CharacterDetailHeader(
),
horizontalArrangement = Arrangement.spacedBy(space = 10.dp),
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.hpTooltip,
) {
Row(
@ -290,7 +290,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.ppTooltip,
) {
Row(
@ -322,7 +322,7 @@ fun CharacterDetailHeader(
Spacer(modifier = Modifier.weight(1f))
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.reflexTooltip,
) {
Row(
@ -346,7 +346,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.initiativeTooltip,
) {
Row(
@ -366,7 +366,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.movTooltip,
) {
Row(
@ -391,7 +391,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.armorTooltip,
) {
Row(
@ -411,7 +411,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.bonusTooltip,
) {
Row(
@ -431,7 +431,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.growTooltip,
) {
Row(
@ -451,7 +451,7 @@ fun CharacterDetailHeader(
)
}
}
TooltipLayout(
BasicTooltipLayout(
tooltip = header.value?.learnTooltip,
) {
Row(

View file

@ -4,13 +4,12 @@ import com.pixelized.desktop.lwa.repository.alteration.AlterationRepository
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository
import com.pixelized.desktop.lwa.repository.settings.SettingsRepository
import com.pixelized.desktop.lwa.repository.settings.model.Settings
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.DetailPanelUio
import com.pixelized.shared.lwa.model.AlteredCharacterSheetFactory
import com.pixelized.shared.lwa.model.alteration.FieldAlteration
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
import com.pixelized.shared.lwa.usecase.ExpressionUseCase
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
@ -96,44 +95,44 @@ class CharacterDetailHeaderFactory(
name = alteredCharacterSheet.name,
level = alteredCharacterSheet.level,
hp = "${maxHp - alteredCharacterSheet.damage}",
hpTooltip = TooltipUio(
hpTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hit_point),
description = getString(Res.string.tooltip__sub_characteristics__hit_point)
),
maxHp = "$maxHp",
pp = "${maxPp - alteredCharacterSheet.fatigue}",
ppTooltip = TooltipUio(
ppTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__power_point),
description = getString(Res.string.tooltip__sub_characteristics__power_point)
),
maxPp = "$maxPp",
mov = "${alteredCharacterSheet.movement}",
movTooltip = TooltipUio(
movTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__movement),
description = getString(Res.string.tooltip__sub_characteristics__movement)
),
armor = "${alteredCharacterSheet.armor}",
armorTooltip = TooltipUio(
armorTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__armor),
description = getString(Res.string.tooltip__sub_characteristics__armor)
),
bonus = alteredCharacterSheet.damageBonus,
bonusTooltip = TooltipUio(
bonusTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__damage_bonus),
description = getString(Res.string.tooltip__sub_characteristics__bonus_damage)
),
grow = "${alteredCharacterSheet.hpGrow}",
growTooltip = TooltipUio(
growTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hp_grow),
description = getString(Res.string.tooltip__sub_characteristics__hp_grow)
),
learn = "${alteredCharacterSheet.learning}",
learnTooltip = TooltipUio(
learnTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__learning),
description = getString(Res.string.tooltip__sub_characteristics__learning)
),
reflex = "${alteredCharacterSheet.reflex}",
reflexTooltip = TooltipUio(
reflexTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__reflex),
description = getString(Res.string.tooltip__sub_characteristics__reflex)
),
@ -144,7 +143,7 @@ class CharacterDetailHeaderFactory(
rollSuccessValue = alteredCharacterSheet.reflex * 5,
),
initiative = "${alteredCharacterSheet.initiative}",
initiativeTooltip = TooltipUio(
initiativeTooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__initiative),
description = getString(Res.string.tooltip__sub_characteristics__initiative)
),

View file

@ -47,7 +47,7 @@ import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import com.pixelized.desktop.lwa.ui.composable.decoratedBox.DecoratedBox
import com.pixelized.desktop.lwa.ui.composable.image.DesaturatedAsyncImage
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout2
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.extention.calculatePaddings
import com.pixelized.desktop.lwa.utils.extention.ribbon
@ -109,9 +109,8 @@ fun InventoryItem(
val (start, top, end, bottom) = padding.calculatePaddings()
val (_, toolTop, toolEnd, _) = toolTipPaddings.calculatePaddings()
TooltipLayout2(
TooltipLayout(
modifier = modifier,
delayMillis = 500,
tips = item.tooltips,
tooltip = { tooltips ->
DecoratedBox {

View file

@ -2,8 +2,7 @@ package com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet
import com.pixelized.desktop.lwa.repository.alteration.AlterationRepository
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository
import com.pixelized.desktop.lwa.repository.settings.SettingsRepository
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.item.CharacterDetailSheetActionUio
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.item.CharacterDetailSheetCharacteristicUio
@ -81,7 +80,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__str),
value = "${alteredCharacterSheet.strength}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__str),
description = getString(Res.string.tooltip__characteristics__strength),
),
@ -95,7 +94,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__dex),
value = "${alteredCharacterSheet.dexterity}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__dex),
description = getString(Res.string.tooltip__characteristics__dexterity),
),
@ -109,7 +108,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__con),
value = "${alteredCharacterSheet.constitution}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__con),
description = getString(Res.string.tooltip__characteristics__constitution),
),
@ -123,7 +122,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__hei),
value = "${alteredCharacterSheet.height}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__hei),
description = getString(Res.string.tooltip__characteristics__height),
),
@ -137,7 +136,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__int),
value = "${alteredCharacterSheet.intelligence}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__int),
description = getString(Res.string.tooltip__characteristics__intelligence),
),
@ -151,7 +150,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__pow),
value = "${alteredCharacterSheet.power}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__pow),
description = getString(Res.string.tooltip__characteristics__power),
),
@ -165,7 +164,7 @@ class CharacterDetailSheetFactory(
CharacterDetailSheetCharacteristicUio(
label = getString(Res.string.character_sheet__characteristics__cha),
value = "${alteredCharacterSheet.charisma}",
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__cha),
description = getString(Res.string.tooltip__characteristics__charisma),
),
@ -191,7 +190,7 @@ class CharacterDetailSheetFactory(
used = skill.used,
occupation = skill.occupation,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)
@ -218,7 +217,7 @@ class CharacterDetailSheetFactory(
used = skill.used,
occupation = skill.occupation,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)
@ -245,7 +244,7 @@ class CharacterDetailSheetFactory(
used = skill.used,
occupation = skill.occupation,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)
@ -263,7 +262,7 @@ class CharacterDetailSheetFactory(
actionId = action.id,
label = action.label,
tooltips = action.description?.let {
TooltipUio(
BasicTooltipUio(
title = action.label,
description = it,
)

View file

@ -1,5 +1,6 @@
package com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.item
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
@ -10,13 +11,16 @@ import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.Stable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.shapes.MasteryShape
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.ic_d20_24dp
@ -26,46 +30,57 @@ import org.jetbrains.compose.resources.painterResource
data class CharacterDetailSheetActionUio(
val actionId: String,
val label: String,
val tooltips: TooltipUio?,
val tooltips: BasicTooltipUio?,
val roll: RollAction.Uio,
)
@Immutable
data object CharacterDetailSheetActionDefault {
@Stable
val paddingValues = PaddingValues(start = 10.dp, end = 9.dp, top = 6.dp, bottom = 6.dp)
@Stable
val spacing: Dp = 4.dp
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun CharacterDetailSheetAction(
modifier: Modifier = Modifier,
paddingValues: PaddingValues = PaddingValues(
start = 10.dp,
end = 9.dp,
top = 6.dp,
bottom = 6.dp
),
paddingValues: PaddingValues = CharacterDetailSheetActionDefault.paddingValues,
spacing: Dp = CharacterDetailSheetActionDefault.spacing,
action: CharacterDetailSheetActionUio,
onClick: (CharacterDetailSheetActionUio) -> Unit,
) {
Row(
modifier = Modifier
.clickable(onClick = { onClick(action) })
.padding(paddingValues = paddingValues)
.then(other = modifier),
horizontalArrangement = Arrangement.spacedBy(space = 4.dp),
verticalAlignment = Alignment.CenterVertically,
) {
MasteryShape(
modifier = Modifier.padding(top = 4.dp, end = 2.dp),
multiplier = 2,
)
Text(
modifier = Modifier.weight(1f),
style = MaterialTheme.typography.body1,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
text = action.label,
)
Icon(
modifier = Modifier.size(size = 24.dp),
painter = painterResource(Res.drawable.ic_d20_24dp),
tint = MaterialTheme.colors.primary,
contentDescription = null,
)
}
BasicTooltipLayout(
tooltip = action.tooltips,
content = {
Row(
modifier = Modifier
.clickable(onClick = { onClick(action) })
.padding(paddingValues = paddingValues)
.then(other = modifier),
horizontalArrangement = Arrangement.spacedBy(space = spacing),
verticalAlignment = Alignment.CenterVertically,
) {
MasteryShape(
modifier = Modifier.padding(top = 4.dp, end = 2.dp),
multiplier = 2,
)
Text(
modifier = Modifier.weight(1f),
style = MaterialTheme.typography.body1,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
text = action.label,
)
Icon(
modifier = Modifier.size(size = 24.dp),
painter = painterResource(Res.drawable.ic_d20_24dp),
tint = MaterialTheme.colors.primary,
contentDescription = null,
)
}
}
)
}

View file

@ -3,7 +3,6 @@ package com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.item
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
@ -14,15 +13,15 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.decoratedBox.DecoratedBox
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
@Stable
data class CharacterDetailSheetCharacteristicUio(
val value: String,
val label: String,
val tooltips: TooltipUio,
val tooltips: BasicTooltipUio,
val roll: RollAction.Uio,
)
@ -34,7 +33,7 @@ fun CharacterDetailSheetCharacteristic(
characteristic: CharacterDetailSheetCharacteristicUio,
onClick: () -> Unit,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = characteristic.tooltips,
content = {
DecoratedBox(

View file

@ -19,8 +19,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.shapes.MasteryShape
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
@Stable
@ -30,7 +30,7 @@ data class CharacterDetailSheetSkillUio(
val value: String,
val used: Boolean,
val occupation: Boolean,
val tooltips: TooltipUio?,
val tooltips: BasicTooltipUio?,
val roll: RollAction.Uio,
)
@ -48,7 +48,7 @@ fun CharacterDetailSheetSkill(
onSkill: (CharacterDetailSheetSkillUio) -> Unit,
onUse: (CharacterDetailSheetSkillUio) -> Unit,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = skill.tooltips,
content = {
Row(

View file

@ -1,6 +1,6 @@
package com.pixelized.desktop.lwa.ui.screen.characterSheet.detail
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.CharacterSheetPageUio.Characteristic
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.CharacterSheetPageUio.Node
@ -66,7 +66,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__str),
value = "${alteredCharacterSheet.strength}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__str),
description = getString(Res.string.tooltip__characteristics__strength),
),
@ -82,7 +82,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__dex),
value = "${alteredCharacterSheet.dexterity}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__dex),
description = getString(Res.string.tooltip__characteristics__dexterity),
),
@ -98,7 +98,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__con),
value = "${alteredCharacterSheet.constitution}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__con),
description = getString(Res.string.tooltip__characteristics__constitution),
),
@ -114,7 +114,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__hei),
value = "${alteredCharacterSheet.height}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__hei),
description = getString(Res.string.tooltip__characteristics__height),
),
@ -130,7 +130,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__int),
value = "${alteredCharacterSheet.intelligence}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__int),
description = getString(Res.string.tooltip__characteristics__intelligence),
),
@ -146,7 +146,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__pow),
value = "${alteredCharacterSheet.power}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__pow),
description = getString(Res.string.tooltip__characteristics__power),
),
@ -162,7 +162,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__characteristics__cha),
value = "${alteredCharacterSheet.charisma}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__cha),
description = getString(Res.string.tooltip__characteristics__charisma),
),
@ -180,7 +180,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__movement),
value = "${alteredCharacterSheet.movement}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__movement),
description = getString(Res.string.tooltip__sub_characteristics__movement),
),
@ -191,7 +191,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__hit_point),
value = alteredCharacterSheet.maxHp.let { maxHp -> "${maxHp - alteredCharacterSheet.damage}/${maxHp}" },
editable = true,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hit_point),
description = getString(Res.string.tooltip__sub_characteristics__hit_point),
),
@ -202,7 +202,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__power_point),
value = alteredCharacterSheet.maxPp.let { maxPp -> "${maxPp - alteredCharacterSheet.power}/${maxPp}" },
editable = true,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__power_point),
description = getString(Res.string.tooltip__sub_characteristics__power_point),
),
@ -213,7 +213,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__damage_bonus),
value = alteredCharacterSheet.damageBonus,
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__damage_bonus),
description = getString(Res.string.tooltip__sub_characteristics__bonus_damage),
),
@ -224,7 +224,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__armor),
value = "${alteredCharacterSheet.armor}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__armor),
description = getString(Res.string.tooltip__sub_characteristics__armor),
),
@ -235,7 +235,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__learning),
value = "${alteredCharacterSheet.learning}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__learning),
description = getString(Res.string.tooltip__sub_characteristics__learning),
),
@ -246,7 +246,7 @@ class CharacterSheetFactory(
label = getString(Res.string.character_sheet__sub_characteristics__hp_grow),
value = "${alteredCharacterSheet.hpGrow}",
editable = false,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hp_grow),
description = getString(Res.string.tooltip__sub_characteristics__hp_grow),
),
@ -266,7 +266,7 @@ class CharacterSheetFactory(
value = value,
used = skill.used,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)
@ -292,7 +292,7 @@ class CharacterSheetFactory(
value = value,
used = skill.used,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)
@ -318,7 +318,7 @@ class CharacterSheetFactory(
value = value,
used = skill.used,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)

View file

@ -59,8 +59,8 @@ import com.pixelized.desktop.lwa.ui.composable.blur.BlurContent
import com.pixelized.desktop.lwa.ui.composable.blur.BlurContentController
import com.pixelized.desktop.lwa.ui.composable.character.diminished.CharacterSheetDiminishedDialogViewModel
import com.pixelized.desktop.lwa.ui.composable.decoratedBox.DecoratedBox
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.window.LocalWindow
import com.pixelized.desktop.lwa.ui.navigation.window.destination.navigateToCharacterSheetEdit
@ -107,7 +107,7 @@ data class CharacterSheetPageUio(
val label: String,
val value: String,
val editable: Boolean,
val tooltips: TooltipUio?,
val tooltips: BasicTooltipUio?,
val roll: RollAction.Uio?,
)
@ -117,7 +117,7 @@ data class CharacterSheetPageUio(
val label: String,
val value: Int,
val used: Boolean,
val tooltips: TooltipUio? = null,
val tooltips: BasicTooltipUio? = null,
val roll: RollAction.Uio,
)
@ -523,7 +523,7 @@ private fun Stat(
characteristic: Characteristic,
onClick: () -> Unit,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = characteristic.tooltips,
content = {
DecoratedBox(
@ -560,7 +560,7 @@ private fun SubCharacteristics(
characteristic: Characteristic,
onCharacteristic: ((characteristic: Characteristic) -> Unit)?,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = characteristic.tooltips,
content = {
Row(
@ -599,7 +599,7 @@ private fun Skill(
onClick: () -> Unit,
onUse: () -> Unit,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = node.tooltips,
content = {
Row(

View file

@ -6,7 +6,7 @@ import androidx.compose.runtime.mutableStateOf
import com.pixelized.desktop.lwa.ui.composable.checkbox.LwaCheckBoxUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.common.SkillFieldFactory
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.common.occupation
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.ActionFieldUio
@ -544,7 +544,7 @@ class CharacterSheetEditFactory(
value = skill?.level?.takeIf { it > 0 }?.toString() ?: "",
),
option = skillFieldFactory.occupationOption(skill?.occupation ?: false),
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = label,
description = description,
)

View file

@ -25,8 +25,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.option.CheckedOption
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.option.DropDownCheckedMenuItem
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.textfield.TextFieldWrapper
@ -43,7 +43,7 @@ class BaseSkillFieldUio(
val bonus: TextFieldWrapperUio,
val level: TextFieldWrapperUio,
val option: CheckedOption,
val tooltip: TooltipUio,
val tooltip: BasicTooltipUio,
)
@OptIn(ExperimentalFoundationApi::class)
@ -80,7 +80,7 @@ fun BaseSkillForm(
maxLines = 1,
text = field.label,
)
TooltipLayout(
BasicTooltipLayout(
modifier = Modifier
.width(width = 96.dp)
.padding(start = 16.dp),

View file

@ -1,6 +1,6 @@
package com.pixelized.desktop.lwa.ui.screen.levelup
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.overlay.roll.RollResult
import com.pixelized.desktop.lwa.ui.overlay.roll.RollResult.BoundedRollResult.Result
@ -100,7 +100,7 @@ class LevelUpFactory(
icon = Res.drawable.ic_heart_24dp,
base = "${alteredCharacterSheet.maxHp}",
levelUp = "${levelUpCharacterSheet.maxHp}",
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hit_point),
description = getString(Res.string.tooltip__sub_characteristics__hit_point)
),
@ -109,7 +109,7 @@ class LevelUpFactory(
icon = Res.drawable.ic_water_drop_24dp,
base = "${alteredCharacterSheet.maxPp}",
levelUp = "${levelUpCharacterSheet.maxPp}",
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__power_point),
description = getString(Res.string.tooltip__sub_characteristics__power_point)
)
@ -118,7 +118,7 @@ class LevelUpFactory(
icon = Res.drawable.ic_swords_24dp,
base = alteredCharacterSheet.damageBonus,
levelUp = levelUpCharacterSheet.damageBonus,
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__damage_bonus),
description = getString(Res.string.tooltip__sub_characteristics__bonus_damage)
),
@ -127,7 +127,7 @@ class LevelUpFactory(
icon = Res.drawable.ic_heart_plus_24dp,
base = "${alteredCharacterSheet.hpGrow}",
levelUp = "${levelUpCharacterSheet.hpGrow}",
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__hp_grow),
description = getString(Res.string.tooltip__sub_characteristics__hp_grow)
),
@ -136,7 +136,7 @@ class LevelUpFactory(
icon = Res.drawable.ic_cognition_24dp,
base = "${alteredCharacterSheet.learning}",
levelUp = "${levelUpCharacterSheet.learning}",
tooltip = TooltipUio(
tooltip = BasicTooltipUio(
title = getString(Res.string.character_sheet__sub_characteristics__learning),
description = getString(Res.string.tooltip__sub_characteristics__learning)
),
@ -161,7 +161,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__str),
value = alteredCharacterSheet.strength,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.STR,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__str),
description = getString(Res.string.tooltip__characteristics__strength),
),
@ -171,7 +171,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__dex),
value = alteredCharacterSheet.dexterity,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.DEX,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__dex),
description = getString(Res.string.tooltip__characteristics__dexterity),
),
@ -181,7 +181,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__con),
value = alteredCharacterSheet.constitution,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.CON,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__con),
description = getString(Res.string.tooltip__characteristics__constitution),
),
@ -191,7 +191,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__hei),
value = alteredCharacterSheet.height,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.HEI,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__hei),
description = getString(Res.string.tooltip__characteristics__height),
),
@ -201,7 +201,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__int),
value = alteredCharacterSheet.intelligence,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.INT,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__int),
description = getString(Res.string.tooltip__characteristics__intelligence),
),
@ -211,7 +211,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__pow),
value = alteredCharacterSheet.power,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.POW,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__pow),
description = getString(Res.string.tooltip__characteristics__power),
),
@ -221,7 +221,7 @@ class LevelUpFactory(
label = getString(Res.string.character_sheet__characteristics__cha),
value = alteredCharacterSheet.charisma,
selected = selectedCharacteristicId == CharacterSheet.CharacteristicId.CHA,
tooltips = TooltipUio(
tooltips = BasicTooltipUio(
title = getString(Res.string.character_sheet__characteristics__cha),
description = getString(Res.string.tooltip__characteristics__charisma),
),
@ -306,7 +306,7 @@ class LevelUpFactory(
levelUp = results.isSkillLeveledUp(skillId = skill.id),
occupation = skill.occupation,
tooltips = skill.description?.let {
TooltipUio(
BasicTooltipUio(
title = skill.label,
description = it,
)

View file

@ -1,11 +1,8 @@
package com.pixelized.desktop.lwa.ui.screen.levelup.items
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.SizeTransform
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.animation.slideInVertically
import androidx.compose.animation.slideOutVertically
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
@ -22,8 +19,8 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.decoratedBox.DecoratedBox
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.theme.lwa
@Stable
@ -32,7 +29,7 @@ data class LevelUpCharacteristicUio(
val value: Int,
val label: String,
val selected: Boolean,
val tooltips: TooltipUio,
val tooltips: BasicTooltipUio,
)
@OptIn(ExperimentalFoundationApi::class)
@ -43,7 +40,7 @@ fun LevelUpCharacteristic(
characteristic: LevelUpCharacteristicUio,
onClick: () -> Unit,
) {
TooltipLayout(
BasicTooltipLayout(
tooltip = characteristic.tooltips,
content = {
DecoratedBox(

View file

@ -24,8 +24,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.shapes.MasteryShape
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction
import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
@ -40,7 +40,7 @@ data class LevelUpSkillUio(
val level: Int,
val levelUp: Boolean,
val occupation: Boolean,
val tooltips: TooltipUio?,
val tooltips: BasicTooltipUio?,
val roll: RollAction.Uio?,
)
@ -58,7 +58,7 @@ fun LevelUpSkill(
else -> MaterialTheme.lwa.colorScheme.base.primary
}
)
TooltipLayout(
BasicTooltipLayout(
modifier = Modifier
.let {
when (skill.roll) {

View file

@ -21,8 +21,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.TooltipUio
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipLayout
import com.pixelized.desktop.lwa.ui.composable.tooltip.BasicTooltipUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.generic__arrow
@ -36,7 +36,7 @@ data class LevelUpSubCharacteristicUio(
val icon: DrawableResource,
val base: String,
val levelUp: String,
val tooltip: TooltipUio,
val tooltip: BasicTooltipUio,
)
@OptIn(ExperimentalFoundationApi::class)
@ -45,7 +45,7 @@ fun LevelUpSubCharacteristic(
modifier: Modifier = Modifier,
characteristic: LevelUpSubCharacteristicUio?,
) {
TooltipLayout(
BasicTooltipLayout(
modifier = modifier,
tooltip = characteristic?.tooltip,
) {