diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-11-13 16:40:02 -0800 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-11-13 16:40:02 -0800 |
| commit | 3803f14160c30ac470bc957f8a0f2dbe67c4fd57 (patch) | |
| tree | b7cfc3e0570ef7766e053b89ca038109c353d359 /ui | |
| parent | 8974b115b69bc25ebf174e8c9637373c4d206325 (diff) | |
| download | rookery-main.tar.gz rookery-main.zip | |
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/src/commonMain/kotlin/coffee/liz/rookery/ui/Penguin.kt | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ui/src/commonMain/kotlin/coffee/liz/rookery/ui/Penguin.kt b/ui/src/commonMain/kotlin/coffee/liz/rookery/ui/Penguin.kt index 5dca583..4a77f33 100644 --- a/ui/src/commonMain/kotlin/coffee/liz/rookery/ui/Penguin.kt +++ b/ui/src/commonMain/kotlin/coffee/liz/rookery/ui/Penguin.kt @@ -35,6 +35,7 @@ import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.graphics.drawscope.rotate import androidx.compose.ui.graphics.drawscope.translate +import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.semantics.clearAndSetSemantics @@ -82,6 +83,18 @@ fun DrawScope.drawPenguin(sheet: ImageBitmap, cell: Pair<Int, Int>, at: Offset, ) } +/** The alert penguin as the app's window icon, redrawn at whatever size the window system asks for. */ +@Composable +fun rememberPenguinIcon(): Painter { + val sheet = penguinSheet() + return remember(sheet) { + object : Painter() { + override val intrinsicSize = Size(SPRITE.toFloat(), SPRITE.toFloat()) + override fun DrawScope.onDraw() = drawPenguin(sheet, PenguinAnim.ALERT.frames.first(), Offset.Zero, size.minDimension) + } + } +} + /** A single penguin doing one thing. */ @Composable fun Penguin(anim: PenguinAnim, size: Dp = 64.dp, reducedMotion: Boolean = false, modifier: Modifier = Modifier, frameMs: Long = 220) { |
