-
Notifications
You must be signed in to change notification settings - Fork 83
/
gesture.go
39 lines (30 loc) · 1.01 KB
/
gesture.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package mouse
import (
"time"
"github.com/oakmound/oak/physics"
"github.com/oakmound/shiny/gesture"
)
// A GestureEvent is a conversion of a shiny Gesture to our local type so we
// don't need to import shiny variables in more places.
// GestureEvents contain information about mouse events that are not single actions,
// like drags, holds, and double clicks.
// Todo: standardize events to also use vectors for their position
type GestureEvent struct {
Drag bool
LongPress bool
DoublePress bool
InitialPos physics.Vector
CurrentPos physics.Vector
Time time.Time
}
// FromShinyGesture converts a shiny gesture.Event to a GestureEvent
func FromShinyGesture(shinyGesture gesture.Event) GestureEvent {
return GestureEvent{
shinyGesture.Drag,
shinyGesture.LongPress,
shinyGesture.DoublePress,
physics.NewVector(float64(shinyGesture.InitialPos.X), float64(shinyGesture.InitialPos.Y)),
physics.NewVector(float64(shinyGesture.CurrentPos.X), float64(shinyGesture.CurrentPos.Y)),
shinyGesture.Time,
}
}