@@ -9,8 +9,10 @@ import androidx.compose.foundation.layout.height
99import androidx.compose.foundation.layout.heightIn
1010import androidx.compose.foundation.layout.padding
1111import androidx.compose.foundation.layout.size
12+ import androidx.compose.foundation.layout.width
1213import androidx.compose.foundation.shape.RoundedCornerShape
1314import androidx.compose.material.icons.Icons
15+ import androidx.compose.material.icons.filled.Close
1416import androidx.compose.material.icons.filled.Keyboard
1517import androidx.compose.material.icons.filled.TouchApp
1618import androidx.compose.material.icons.rounded.Computer
@@ -31,6 +33,7 @@ fun PcControlSurfaceSwitcher(
3133 selectedSurface : PcControlSurface ,
3234 onSurfaceSelected : (PcControlSurface ) -> Unit ,
3335 enabled : Boolean = true,
36+ onClose : (() -> Unit )? = null,
3437 modifier : Modifier = Modifier
3538) {
3639 Surface (
@@ -88,6 +91,35 @@ fun PcControlSurfaceSwitcher(
8891 }
8992 }
9093 }
94+ onClose?.let { close ->
95+ val contentColor = if (enabled) {
96+ MaterialTheme .colorScheme.onSurface
97+ } else {
98+ MaterialTheme .colorScheme.onSurfaceVariant
99+ }
100+ Box (
101+ modifier = Modifier
102+ .width(56 .dp)
103+ .heightIn(min = 48 .dp)
104+ .padding(4 .dp)
105+ ) {
106+ IconButton (
107+ onClick = close,
108+ enabled = enabled,
109+ modifier = Modifier
110+ .fillMaxWidth()
111+ .height(40 .dp)
112+ .semantics { contentDescription = " Close PC controls" }
113+ ) {
114+ Icon (
115+ imageVector = Icons .Default .Close ,
116+ contentDescription = null ,
117+ modifier = Modifier .size(22 .dp),
118+ tint = contentColor
119+ )
120+ }
121+ }
122+ }
91123 }
92124 }
93125}
0 commit comments