Skip to content

Commit 529a9dd

Browse files
update color picker dialogs
1 parent 19c3566 commit 529a9dd

File tree

8 files changed

+183
-149
lines changed

8 files changed

+183
-149
lines changed

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/dialog/ColorPickerDialog.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import androidx.compose.material.icons.Icons
1212
import androidx.compose.material.icons.filled.Close
1313
import androidx.compose.runtime.*
1414
import androidx.compose.ui.Alignment
15-
import androidx.compose.ui.ExperimentalComposeUiApi
1615
import androidx.compose.ui.Modifier
1716
import androidx.compose.ui.graphics.Color
1817
import androidx.compose.ui.graphics.Shape
@@ -25,6 +24,11 @@ import com.smarttoolfactory.colorpicker.ui.Blue400
2524
@Composable
2625
fun ColorPickerRingDiamondHSLDialog(
2726
initialColor: Color,
27+
ringOuterRadiusFraction: Float = .9f,
28+
ringInnerRadiusFraction: Float = .6f,
29+
ringBackgroundColor: Color = Color.Transparent,
30+
ringBorderStrokeColor: Color = Color.Black,
31+
ringBorderStrokeWidth: Dp = 4.dp,
2832
selectionRadius: Dp = 8.dp,
2933
onDismiss: (Color) -> Unit
3034
) {
@@ -44,6 +48,11 @@ fun ColorPickerRingDiamondHSLDialog(
4448
.background(Color(0xcc212121), shape = RoundedCornerShape(5.dp))
4549
.padding(horizontal = 10.dp, vertical = 2.dp),
4650
initialColor = initialColor,
51+
ringOuterRadiusFraction = ringOuterRadiusFraction,
52+
ringInnerRadiusFraction = ringInnerRadiusFraction,
53+
ringBackgroundColor = ringBackgroundColor,
54+
ringBorderStrokeColor = ringBorderStrokeColor,
55+
ringBorderStrokeWidth = ringBorderStrokeWidth,
4756
selectionRadius = selectionRadius
4857
) {
4958
color = it
@@ -66,6 +75,11 @@ fun ColorPickerRingDiamondHSLDialog(
6675
@Composable
6776
fun ColorPickerRingRectHSVDialog(
6877
initialColor: Color,
78+
ringOuterRadiusFraction: Float = .9f,
79+
ringInnerRadiusFraction: Float = .6f,
80+
ringBackgroundColor: Color = Color.Transparent,
81+
ringBorderStrokeColor: Color = Color.Black,
82+
ringBorderStrokeWidth: Dp = 4.dp,
6983
selectionRadius: Dp = 8.dp,
7084
onDismiss: (Color) -> Unit
7185
) {
@@ -84,6 +98,11 @@ fun ColorPickerRingRectHSVDialog(
8498
.background(Color(0xcc212121), shape = RoundedCornerShape(5.dp))
8599
.padding(horizontal = 10.dp, vertical = 2.dp),
86100
initialColor = initialColor,
101+
ringOuterRadiusFraction = ringOuterRadiusFraction,
102+
ringInnerRadiusFraction = ringInnerRadiusFraction,
103+
ringBackgroundColor = ringBackgroundColor,
104+
ringBorderStrokeColor = ringBorderStrokeColor,
105+
ringBorderStrokeWidth = ringBorderStrokeWidth,
87106
selectionRadius = selectionRadius
88107
) {
89108
color = it

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/picker/ColorPickerCircleValueHSV.kt

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,27 @@ fun ColorPickerCircleValueHSV(
5454

5555
}
5656

57-
SliderCircleColorDisplayValueHSV(
58-
modifier = Modifier.padding(8.dp),
59-
hue = hue,
60-
saturation = saturation,
61-
value = value,
62-
alpha = alpha,
63-
onValueChange = {
64-
value = it
65-
},
66-
onAlphaChange = {
67-
alpha = it
68-
}
69-
)
57+
Column(modifier=Modifier.padding(8.dp)) {
58+
SliderCircleColorDisplayValueHSV(
59+
hue = hue,
60+
saturation = saturation,
61+
value = value,
62+
alpha = alpha,
63+
onValueChange = {
64+
value = it
65+
},
66+
onAlphaChange = {
67+
alpha = it
68+
}
69+
)
7070

71-
HexDisplay(
72-
color = currentColor,
73-
colorModel = colorModel,
74-
onColorModelChange = {
75-
colorModel = it
76-
}
77-
)
71+
HexDisplay(
72+
color = currentColor,
73+
colorModel = colorModel,
74+
onColorModelChange = {
75+
colorModel = it
76+
}
77+
)
78+
}
7879
}
7980
}

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/picker/ColorPickerRectHueLightnessHSL.kt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Column
44
import androidx.compose.foundation.layout.aspectRatio
55
import androidx.compose.foundation.layout.fillMaxWidth
66
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.material.Text
78
import androidx.compose.runtime.*
89
import androidx.compose.ui.Alignment
910
import androidx.compose.ui.Modifier
@@ -57,26 +58,27 @@ fun ColorPickerRectHueLightnessHSL(
5758
},
5859
)
5960

60-
SliderCircleColorDisplaySaturationHSL(
61-
modifier = Modifier.padding(8.dp),
62-
hue = hue,
63-
saturation = saturation,
64-
lightness = lightness,
65-
alpha = alpha,
66-
onSaturationChange = {
67-
saturation = it
68-
},
69-
onAlphaChange = {
70-
alpha = it
71-
}
72-
)
61+
Column(modifier = Modifier.padding(8.dp)) {
62+
SliderCircleColorDisplaySaturationHSL(
63+
hue = hue,
64+
saturation = saturation,
65+
lightness = lightness,
66+
alpha = alpha,
67+
onSaturationChange = {
68+
saturation = it
69+
},
70+
onAlphaChange = {
71+
alpha = it
72+
}
73+
)
7374

74-
HexDisplay(
75-
color = currentColor,
76-
colorModel = colorModel,
77-
onColorModelChange = {
78-
colorModel = it
79-
}
80-
)
75+
HexDisplay(
76+
color = currentColor,
77+
colorModel = colorModel,
78+
onColorModelChange = {
79+
colorModel = it
80+
}
81+
)
82+
}
8183
}
8284
}

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/picker/ColorPickerRectHueSaturationHSL.kt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Column
44
import androidx.compose.foundation.layout.aspectRatio
55
import androidx.compose.foundation.layout.fillMaxWidth
66
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.material.Text
78
import androidx.compose.runtime.*
89
import androidx.compose.ui.Alignment
910
import androidx.compose.ui.Modifier
@@ -57,26 +58,27 @@ fun ColorPickerRectHueSaturationHSL(
5758
}
5859
)
5960

60-
SliderCircleColorDisplayLightnessHSL(
61-
modifier = Modifier.padding(8.dp),
62-
hue = hue,
63-
saturation = saturation,
64-
lightness = lightness,
65-
alpha = alpha,
66-
onLightnessChange = {
67-
lightness = it
68-
},
69-
onAlphaChange = {
70-
alpha = it
71-
}
72-
)
61+
Column(modifier = Modifier.padding(8.dp)) {
62+
SliderCircleColorDisplayLightnessHSL(
63+
hue = hue,
64+
saturation = saturation,
65+
lightness = lightness,
66+
alpha = alpha,
67+
onLightnessChange = {
68+
lightness = it
69+
},
70+
onAlphaChange = {
71+
alpha = it
72+
}
73+
)
7374

74-
HexDisplay(
75-
color = currentColor,
76-
colorModel = colorModel,
77-
onColorModelChange = {
78-
colorModel = it
79-
}
80-
)
75+
HexDisplay(
76+
color = currentColor,
77+
colorModel = colorModel,
78+
onColorModelChange = {
79+
colorModel = it
80+
}
81+
)
82+
}
8183
}
8284
}

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/picker/ColorPickerRectHueSaturationHSV.kt

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Column
44
import androidx.compose.foundation.layout.aspectRatio
55
import androidx.compose.foundation.layout.fillMaxWidth
66
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.material.Text
78
import androidx.compose.runtime.*
89
import androidx.compose.ui.Alignment
910
import androidx.compose.ui.Modifier
@@ -14,6 +15,7 @@ import com.smarttoolfactory.colorpicker.model.ColorModel
1415
import com.smarttoolfactory.colorpicker.selector.SelectorRectHueSaturationHSV
1516
import com.smarttoolfactory.colorpicker.selector.SelectorRectHueValueHSV
1617
import com.smarttoolfactory.colorpicker.slider.SliderCircleColorDisplaySaturationHSV
18+
import com.smarttoolfactory.colorpicker.slider.SliderCircleColorDisplayValueHSV
1719
import com.smarttoolfactory.colorpicker.util.colorToHSV
1820
import com.smarttoolfactory.colorpicker.widget.HexDisplay
1921

@@ -29,7 +31,7 @@ fun ColorPickerRectHueSaturationHSV(
2931

3032
var hue by remember { mutableStateOf(hsvArray[0]) }
3133
var saturation by remember { mutableStateOf(hsvArray[1]) }
32-
val value by remember { mutableStateOf(hsvArray[2]) }
34+
var value by remember { mutableStateOf(hsvArray[2]) }
3335
var alpha by remember { mutableStateOf(initialColor.alpha) }
3436

3537
val currentColor =
@@ -56,27 +58,28 @@ fun ColorPickerRectHueSaturationHSV(
5658
},
5759
)
5860

59-
SliderCircleColorDisplaySaturationHSV(
60-
modifier = Modifier.padding(8.dp),
61-
hue = hue,
62-
saturation = saturation,
63-
value = value,
64-
alpha = alpha,
65-
onSaturationChange = {
66-
saturation = it
67-
},
68-
onAlphaChange = {
69-
alpha = it
70-
}
71-
)
61+
Column(modifier = Modifier.padding(8.dp)) {
62+
SliderCircleColorDisplayValueHSV(
63+
hue = hue,
64+
saturation = saturation,
65+
value = value,
66+
alpha = alpha,
67+
onValueChange = {
68+
value = it
69+
},
70+
onAlphaChange = {
71+
alpha = it
72+
}
73+
)
7274

73-
HexDisplay(
74-
color = currentColor,
75-
colorModel = colorModel,
76-
onColorModelChange = {
77-
colorModel = it
78-
}
79-
)
75+
HexDisplay(
76+
color = currentColor,
77+
colorModel = colorModel,
78+
onColorModelChange = {
79+
colorModel = it
80+
}
81+
)
82+
}
8083
}
8184
}
8285

colorpicker/src/main/java/com/smarttoolfactory/colorpicker/picker/ColorPickerRectHueValueHSV.kt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Column
44
import androidx.compose.foundation.layout.aspectRatio
55
import androidx.compose.foundation.layout.fillMaxWidth
66
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.material.Text
78
import androidx.compose.runtime.*
89
import androidx.compose.ui.Alignment
910
import androidx.compose.ui.Modifier
@@ -54,26 +55,27 @@ fun ColorPickerRectHueValueHSV(
5455
value = v
5556
}
5657

57-
SliderCircleColorDisplaySaturationHSV(
58-
modifier = Modifier.padding(8.dp),
59-
hue = hue,
60-
saturation = saturation,
61-
value = value,
62-
alpha = alpha,
63-
onSaturationChange = {
64-
saturation = it
65-
},
66-
onAlphaChange = {
67-
alpha = it
68-
}
69-
)
58+
Column(modifier = Modifier.padding(8.dp)) {
59+
SliderCircleColorDisplaySaturationHSV(
60+
hue = hue,
61+
saturation = saturation,
62+
value = value,
63+
alpha = alpha,
64+
onSaturationChange = {
65+
saturation = it
66+
},
67+
onAlphaChange = {
68+
alpha = it
69+
}
70+
)
7071

71-
HexDisplay(
72-
color = currentColor,
73-
colorModel = colorModel,
74-
onColorModelChange = {
75-
colorModel = it
76-
}
77-
)
72+
HexDisplay(
73+
color = currentColor,
74+
colorModel = colorModel,
75+
onColorModelChange = {
76+
colorModel = it
77+
}
78+
)
79+
}
7880
}
7981
}

0 commit comments

Comments
 (0)