diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/character/inventory/InventoryDialog.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/character/inventory/InventoryDialog.kt index 2b0f820..ad251da 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/character/inventory/InventoryDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/character/inventory/InventoryDialog.kt @@ -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 { diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/Tooltip.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/BasicTooltipLayout.kt similarity index 60% rename from composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/Tooltip.kt rename to composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/BasicTooltipLayout.kt index 467cfd6..f5da12e 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/Tooltip.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/BasicTooltipLayout.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout2.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout.kt similarity index 74% rename from composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout2.kt rename to composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout.kt index 7796364..b66bd6b 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout2.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/tooltip/TooltipLayout.kt @@ -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 TooltipLayout2( +fun 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, diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeader.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeader.kt index f88bbae..2002da1 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeader.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeader.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeaderFactory.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeaderFactory.kt index 157651d..14ec3f9 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeaderFactory.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/header/CharacterDetailHeaderFactory.kt @@ -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) ), diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/inventory/item/InventoryItem.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/inventory/item/InventoryItem.kt index 8e46468..0eb5803 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/inventory/item/InventoryItem.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/inventory/item/InventoryItem.kt @@ -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 { diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/CharacterDetailSheetFactory.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/CharacterDetailSheetFactory.kt index 236f194..6367f13 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/CharacterDetailSheetFactory.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/CharacterDetailSheetFactory.kt @@ -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, ) diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetAction.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetAction.kt index 4b24f4f..a391b3f 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetAction.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetAction.kt @@ -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, + ) + } + } + ) } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetCharacteristic.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetCharacteristic.kt index 7c316e9..b3d6434 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetCharacteristic.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetCharacteristic.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetSkill.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetSkill.kt index edc07e4..a33210d 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetSkill.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/sheet/item/CharacterDetailSheetSkill.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetFactory.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetFactory.kt index ef7de05..35bd6dc 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetFactory.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetFactory.kt @@ -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, ) diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetPage.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetPage.kt index d81249e..f16e491 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetPage.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/detail/CharacterSheetPage.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/CharacterSheetEditFactory.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/CharacterSheetEditFactory.kt index fa41f4d..4adfc0f 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/CharacterSheetEditFactory.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/CharacterSheetEditFactory.kt @@ -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, ) diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/BaseSkillField.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/BaseSkillField.kt index 5965f79..4831030 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/BaseSkillField.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/BaseSkillField.kt @@ -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), diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/LevelUpFactory.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/LevelUpFactory.kt index fe22735..1eeec3b 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/LevelUpFactory.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/LevelUpFactory.kt @@ -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, ) diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpCharacteristic.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpCharacteristic.kt index 6c20682..4e8392c 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpCharacteristic.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpCharacteristic.kt @@ -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( diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSkill.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSkill.kt index e16e6df..c4765b5 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSkill.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSkill.kt @@ -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) { diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSubCharacteristic.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSubCharacteristic.kt index 8cbb9b7..034f108 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSubCharacteristic.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/levelup/items/LevelUpSubCharacteristic.kt @@ -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, ) {