@@ -38,6 +38,7 @@ import kiwi.orbit.compose.ui.OrbitTheme
38
38
import kiwi.orbit.compose.ui.R
39
39
import kiwi.orbit.compose.ui.controls.internal.OrbitPreviews
40
40
import kiwi.orbit.compose.ui.controls.internal.Preview
41
+ import kiwi.orbit.compose.ui.utils.drawStrokeOutlineRoundRect
41
42
42
43
@OptIn(ExperimentalAnimationGraphicsApi ::class )
43
44
@Composable
@@ -124,8 +125,6 @@ private fun DrawScope.drawCheckbox(borderColor: Color, backgroundColor: Color, e
124
125
val errorShift = if (hasError) 0.5 .dp.toPx() else 0f
125
126
126
127
val checkboxSize = CheckboxSize .toPx()
127
- val checkboxBorderWidth = CheckboxBorderWidth .toPx()
128
- val checkboxBorderHalfWidth = checkboxBorderWidth / 2.0f
129
128
val checkboxCornerRadius = CornerRadius (CheckboxCornerRadius .toPx())
130
129
drawRoundRect(
131
130
color = backgroundColor,
@@ -134,36 +133,31 @@ private fun DrawScope.drawCheckbox(borderColor: Color, backgroundColor: Color, e
134
133
cornerRadius = checkboxCornerRadius,
135
134
style = Fill ,
136
135
)
137
- drawRoundRect (
136
+ drawStrokeOutlineRoundRect (
138
137
color = borderColor,
139
- topLeft = Offset (checkboxBorderHalfWidth, checkboxBorderHalfWidth ),
140
- size = Size (checkboxSize - checkboxBorderWidth, checkboxSize - checkboxBorderWidth ),
138
+ topLeft = Offset (0f , 0f ),
139
+ size = Size (CheckboxSize .toPx(), CheckboxSize .toPx() ),
141
140
cornerRadius = checkboxCornerRadius,
142
- style = Stroke (checkboxBorderWidth ),
141
+ stroke = Stroke (CheckboxBorderWidth .toPx() ),
143
142
)
144
143
}
145
144
146
145
private fun DrawScope.drawError (borderColor : Color , shadowColor : Color , alpha : Float ) {
147
146
if (alpha == 0.0f ) return
148
147
149
- val shadowRectShift = (ErrorShadowWidth / 2.0f ).toPx()
150
- val shadowRectSize = (ErrorShadowSize - ErrorShadowWidth ).toPx()
151
- drawRoundRect(
148
+ drawStrokeOutlineRoundRect(
152
149
color = shadowColor,
153
- topLeft = Offset (- shadowRectShift , - shadowRectShift ),
154
- size = Size (shadowRectSize, shadowRectSize ),
150
+ topLeft = Offset (- ErrorShadowWidth .toPx() , - ErrorShadowWidth .toPx() ),
151
+ size = Size (ErrorShadowSize .toPx(), ErrorShadowSize .toPx() ),
155
152
cornerRadius = CornerRadius (ErrorShadowCornerRadius .toPx()),
156
- style = Stroke (ErrorShadowWidth .toPx()),
153
+ stroke = Stroke (ErrorShadowWidth .toPx()),
157
154
)
158
-
159
- val errorRectShift = (CheckboxBorderWidth / 2.0f ).toPx()
160
- val errorRectSize = (CheckboxSize - CheckboxBorderWidth ).toPx()
161
- drawRoundRect(
155
+ drawStrokeOutlineRoundRect(
162
156
color = borderColor,
163
- topLeft = Offset (errorRectShift, errorRectShift ),
164
- size = Size (errorRectSize, errorRectSize ),
157
+ topLeft = Offset (0f , 0f ),
158
+ size = Size (CheckboxSize .toPx(), CheckboxSize .toPx() ),
165
159
cornerRadius = CornerRadius (CheckboxCornerRadius .toPx()),
166
- style = Stroke (CheckboxBorderWidth .toPx()),
160
+ stroke = Stroke (CheckboxBorderWidth .toPx()),
167
161
)
168
162
}
169
163
0 commit comments