MCPcopy Create free account
hub / github.com/SolarLune/masterplan / Update

Method Update

gui.go:3755–3835  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3753}
3754
3755func (cw *ColorWheel) Update() {
3756
3757 mousePos := globals.Mouse.Position()
3758
3759 hueRect := *cw.Rect
3760 hueRect.H = float32(cw.HueStrip.H)
3761
3762 valueRect := hueRect
3763 valueRect.Y = hueRect.Y + hueRect.H
3764 valueRect.H = 32
3765
3766 if globals.Mouse.Button(sdl.BUTTON_LEFT).Pressed() && mousePos.Inside(&hueRect) {
3767 cw.HueSampling = true
3768 globals.Mouse.Button(sdl.BUTTON_LEFT).Consume()
3769 } else if globals.Mouse.Button(sdl.BUTTON_LEFT).Pressed() && mousePos.Inside(&valueRect) {
3770 cw.ValueSampling = true
3771 globals.Mouse.Button(sdl.BUTTON_LEFT).Consume()
3772 }
3773
3774 if cw.HueSampling {
3775
3776 mpX := int(mousePos.X - cw.Rect.X)
3777 mpY := int(mousePos.Y - cw.Rect.Y)
3778
3779 if mpX < 0 {
3780 mpX = 0
3781 } else if mpX > int(cw.HueStrip.W)-1 {
3782 mpX = int(cw.HueStrip.W) - 1
3783 }
3784
3785 if mpY < 0 {
3786 mpY = 0
3787 } else if mpY > int(cw.HueStrip.H)-1 {
3788 mpY = int(cw.HueStrip.H) - 1
3789 }
3790
3791 cw.SampledPosX = int32(mpX)
3792 cw.SampledPosY = int32(mpY)
3793
3794 h := float32(mpX) / float32(cw.HueStrip.W-1)
3795
3796 cw.SampledHue = NewColorFromHSV(float64(h), float64(mpY)/float64(cw.HueStrip.H-1), 1)
3797
3798 if cw.OnColorChange != nil {
3799 cw.OnColorChange()
3800 }
3801
3802 }
3803
3804 if cw.ValueSampling {
3805
3806 mpX := int(mousePos.X - cw.Rect.X)
3807
3808 if mpX < 0 {
3809 mpX = 0
3810 } else if mpX > int(cw.ValueStrip.W)-1 {
3811 mpX = int(cw.ValueStrip.W) - 1
3812 }

Callers

nothing calls this directly

Calls 8

NewColorFromHSVFunction · 0.85
ButtonMethod · 0.80
InsideMethod · 0.80
ConsumeMethod · 0.80
ReleasedMethod · 0.80
PositionMethod · 0.45
PressedMethod · 0.45
MultMethod · 0.45

Tested by

no test coverage detected