Mouse test conforms to new API

This commit is contained in:
Sasha Koshka 2023-01-16 00:35:05 -05:00
parent c20db133fe
commit 21a1a35a26
1 changed files with 43 additions and 54 deletions

View File

@ -26,58 +26,47 @@ func NewMouse () (element *Mouse) {
return
}
func (element *Mouse) Handle (event tomo.Event) {
switch event.(type) {
case tomo.EventResize:
resizeEvent := event.(tomo.EventResize)
element.core.AllocateCanvas (
resizeEvent.Width,
resizeEvent.Height)
artist.FillRectangle (
element.core,
theme.AccentPattern(),
element.Bounds())
artist.StrokeRectangle (
element.core,
artist.NewUniform(color.Black), 1,
element.Bounds())
artist.Line (
element.core, artist.NewUniform(color.White), 3,
image.Pt(1, 1),
image.Pt(resizeEvent.Width - 2, resizeEvent.Height - 2))
artist.Line (
element.core, artist.NewUniform(color.White), 1,
image.Pt(1, resizeEvent.Height - 2),
image.Pt(resizeEvent.Width - 2, 1))
case tomo.EventMouseDown:
element.drawing = true
mouseDownEvent := event.(tomo.EventMouseDown)
element.lastMousePos = image.Pt (
mouseDownEvent.X,
mouseDownEvent.Y)
case tomo.EventMouseUp:
element.drawing = false
mouseUpEvent := event.(tomo.EventMouseUp)
mousePos := image.Pt (
mouseUpEvent.X,
mouseUpEvent.Y)
element.core.PushRegion (artist.Line (
element.core, element.color, 1,
element.lastMousePos, mousePos))
element.lastMousePos = mousePos
case tomo.EventMouseMove:
if !element.drawing { return }
mouseMoveEvent := event.(tomo.EventMouseMove)
mousePos := image.Pt (
mouseMoveEvent.X,
mouseMoveEvent.Y)
element.core.PushRegion (artist.Line (
element.core, element.color, 1,
element.lastMousePos, mousePos))
element.lastMousePos = mousePos
}
return
func (element *Mouse) Resize (width, height int) {
element.core.AllocateCanvas(width, height)
artist.FillRectangle (
element.core,
theme.AccentPattern(),
element.Bounds())
artist.StrokeRectangle (
element.core,
artist.NewUniform(color.Black), 1,
element.Bounds())
artist.Line (
element.core, artist.NewUniform(color.White), 3,
image.Pt(1, 1),
image.Pt(width - 2, height - 2))
artist.Line (
element.core, artist.NewUniform(color.White), 1,
image.Pt(1, height - 2),
image.Pt(width - 2, 1))
}
func (element *Mouse) HandleMouseDown (x, y int, button tomo.Button) {
element.drawing = true
element.lastMousePos = image.Pt(x, y)
}
func (element *Mouse) HandleMouseUp (x, y int, button tomo.Button) {
element.drawing = false
mousePos := image.Pt(x, y)
element.core.PushRegion (artist.Line (
element.core, element.color, 1,
element.lastMousePos, mousePos))
element.lastMousePos = mousePos
}
func (element *Mouse) HandleMouseMove (x, y int) {
if !element.drawing { return }
mousePos := image.Pt(x, y)
element.core.PushRegion (artist.Line (
element.core, element.color, 1,
element.lastMousePos, mousePos))
element.lastMousePos = mousePos
}
func (element *Mouse) HandleScroll (x, y int, deltaX, deltaY float64) { }