summaryrefslogtreecommitdiff
path: root/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt
diff options
context:
space:
mode:
Diffstat (limited to 'composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt')
-rw-r--r--composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt52
1 files changed, 52 insertions, 0 deletions
diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt
new file mode 100644
index 0000000..9d50192
--- /dev/null
+++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/ui/ArcadeButton.kt
@@ -0,0 +1,52 @@
+package coffee.liz.abstractionengine.ui
+
+import androidx.compose.foundation.border
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+
+enum class ArcadeButtonColor {
+ RED, YELLOW
+}
+
+@Composable
+fun ArcadeButton(
+ label: String,
+ color: ArcadeButtonColor = ArcadeButtonColor.RED,
+ onClick: () -> Unit,
+ modifier: Modifier = Modifier
+) {
+ val buttonColor = when (color) {
+ ArcadeButtonColor.RED -> GameBoyColors.ButtonRed
+ ArcadeButtonColor.YELLOW -> GameBoyColors.ButtonYellow
+ }
+
+ Button(
+ onClick = onClick,
+ modifier = modifier
+ .size(65.dp)
+ .border(1.dp, MaterialTheme.colorScheme.outline, CircleShape),
+ shape = CircleShape,
+ colors = ButtonDefaults.buttonColors(
+ containerColor = buttonColor,
+ contentColor = MaterialTheme.colorScheme.onPrimary
+ ),
+ contentPadding = PaddingValues(0.dp)
+ ) {
+ Text(
+ text = label,
+ fontSize = 20.sp,
+ fontWeight = FontWeight.Bold,
+ color = MaterialTheme.colorScheme.onPrimary
+ )
+ }
+}