atomize-element-interface #2
@ -26,58 +26,47 @@ func NewMouse () (element *Mouse) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (element *Mouse) Handle (event tomo.Event) {
|
func (element *Mouse) Resize (width, height int) {
|
||||||
switch event.(type) {
|
element.core.AllocateCanvas(width, height)
|
||||||
case tomo.EventResize:
|
artist.FillRectangle (
|
||||||
resizeEvent := event.(tomo.EventResize)
|
element.core,
|
||||||
element.core.AllocateCanvas (
|
theme.AccentPattern(),
|
||||||
resizeEvent.Width,
|
element.Bounds())
|
||||||
resizeEvent.Height)
|
artist.StrokeRectangle (
|
||||||
artist.FillRectangle (
|
element.core,
|
||||||
element.core,
|
artist.NewUniform(color.Black), 1,
|
||||||
theme.AccentPattern(),
|
element.Bounds())
|
||||||
element.Bounds())
|
artist.Line (
|
||||||
artist.StrokeRectangle (
|
element.core, artist.NewUniform(color.White), 3,
|
||||||
element.core,
|
image.Pt(1, 1),
|
||||||
artist.NewUniform(color.Black), 1,
|
image.Pt(width - 2, height - 2))
|
||||||
element.Bounds())
|
artist.Line (
|
||||||
artist.Line (
|
element.core, artist.NewUniform(color.White), 1,
|
||||||
element.core, artist.NewUniform(color.White), 3,
|
image.Pt(1, height - 2),
|
||||||
image.Pt(1, 1),
|
image.Pt(width - 2, 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) 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) { }
|
||||||
|
Reference in New Issue
Block a user