Move color functionality into subpackage of internal

This commit is contained in:
Sasha Koshka 2024-09-05 22:46:58 -04:00
parent 45a6634e73
commit ac1a952b40
3 changed files with 8 additions and 8 deletions

View File

@ -6,7 +6,7 @@ import "git.tebibyte.media/tomo/tomo/input"
import "git.tebibyte.media/tomo/tomo/event" import "git.tebibyte.media/tomo/tomo/event"
import "git.tebibyte.media/tomo/tomo/canvas" import "git.tebibyte.media/tomo/tomo/canvas"
import "git.tebibyte.media/tomo/objects/layouts" import "git.tebibyte.media/tomo/objects/layouts"
import "git.tebibyte.media/tomo/objects/internal" import icolor "git.tebibyte.media/tomo/objects/internal/color"
var _ tomo.Object = new(HSVAColorPicker) var _ tomo.Object = new(HSVAColorPicker)
@ -18,7 +18,7 @@ var _ tomo.Object = new(HSVAColorPicker)
// saturation and the Y axis controls value. // saturation and the Y axis controls value.
type HSVAColorPicker struct { type HSVAColorPicker struct {
box tomo.ContainerBox box tomo.ContainerBox
value internal.HSVA value icolor.HSVA
pickerMap *hsvaColorPickerMap pickerMap *hsvaColorPickerMap
hueSlider *Slider hueSlider *Slider
@ -80,7 +80,7 @@ func (this *HSVAColorPicker) Value () color.Color {
// SetValue sets the color of the picker. // SetValue sets the color of the picker.
func (this *HSVAColorPicker) SetValue (value color.Color) { func (this *HSVAColorPicker) SetValue (value color.Color) {
if value == nil { value = color.Transparent } if value == nil { value = color.Transparent }
this.value = internal.HSVAModel.Convert(value).(internal.HSVA) this.value = icolor.HSVAModel.Convert(value).(icolor.HSVA)
this.hueSlider.SetValue(this.value.H) this.hueSlider.SetValue(this.value.H)
this.alphaSlider.SetValue(float64(this.value.A) / 0xFFFF) this.alphaSlider.SetValue(float64(this.value.A) / 0xFFFF)
this.pickerMap.Invalidate() this.pickerMap.Invalidate()
@ -152,7 +152,7 @@ func (this *hsvaColorPickerMap) Draw (can canvas.Canvas) {
xx := x - bounds.Min.X xx := x - bounds.Min.X
yy := y - bounds.Min.Y yy := y - bounds.Min.Y
pixel := internal.HSVA { pixel := icolor.HSVA {
H: this.parent.value.H, H: this.parent.value.H,
S: float64(xx) / float64(bounds.Dx()), S: float64(xx) / float64(bounds.Dx()),
V: 1 - float64(yy) / float64(bounds.Dy()), V: 1 - float64(yy) / float64(bounds.Dy()),

View File

@ -1,4 +1,4 @@
package internal package color
import "fmt" import "fmt"
import "image/color" import "image/color"

View File

@ -8,7 +8,7 @@ import "git.tebibyte.media/tomo/tomo/input"
import "git.tebibyte.media/tomo/tomo/event" import "git.tebibyte.media/tomo/tomo/event"
import "git.tebibyte.media/tomo/tomo/canvas" import "git.tebibyte.media/tomo/tomo/canvas"
import "git.tebibyte.media/tomo/objects/layouts" import "git.tebibyte.media/tomo/objects/layouts"
import "git.tebibyte.media/tomo/objects/internal" import icolor "git.tebibyte.media/tomo/objects/internal/color"
var _ tomo.Object = new(Swatch) var _ tomo.Object = new(Swatch)
@ -117,7 +117,7 @@ func (this *Swatch) Choose () {
updateHexInput := func () { updateHexInput := func () {
nrgba := color.NRGBAModel.Convert(colorPicker.Value()).(color.NRGBA) nrgba := color.NRGBAModel.Convert(colorPicker.Value()).(color.NRGBA)
hexInput.SetValue(internal.FormatNRGBA(nrgba)) hexInput.SetValue(icolor.FormatNRGBA(nrgba))
} }
updateHexInput() updateHexInput()
commit := func () { commit := func () {
@ -130,7 +130,7 @@ func (this *Swatch) Choose () {
}) })
hexInput.OnConfirm(commit) hexInput.OnConfirm(commit)
hexInput.OnValueChange(func () { hexInput.OnValueChange(func () {
nrgba := internal.ParseNRGBA(hexInput.Value()) nrgba := icolor.ParseNRGBA(hexInput.Value())
this.userSetValue(nrgba) this.userSetValue(nrgba)
colorPicker.SetValue(nrgba) colorPicker.SetValue(nrgba)
}) })