Package gesture provides gesture events such as long presses and drags. These are higher level than underlying mouse and touch events.



    This section is empty.


    This section is empty.


    This section is empty.


    type Event

    type Event struct {
    	// Type is the gesture type.
    	Type Type
    	// Drag, LongPress and DoublePress are set when the gesture is recognized as
    	// a drag, etc.
    	// Note that these status fields can be lost during a gesture's events over
    	// time: LongPress can be set for the first press of a double press, but
    	// unset on the second press.
    	Drag        bool
    	LongPress   bool
    	DoublePress bool
    	// InitialPos is the initial position of the button press or touch that
    	// started this gesture.
    	InitialPos Point
    	// CurrentPos is the current position of the button or touch event.
    	CurrentPos Point
    	// Time is the event's time.
    	Time time.Time

      Event is a gesture event.

      type EventFilter

      type EventFilter struct {
      	EventDeque screen.EventDeque
      	// contains filtered or unexported fields

        EventFilter generates gesture events from lower level mouse and touch events.

        func (*EventFilter) Filter

        func (f *EventFilter) Filter(e interface{}) interface{}

          Filter filters the event. It can return e, a different event, or nil to consume the event. It can also trigger side effects such as pushing new events onto its EventDeque.

          type Point

          type Point struct {
          	X, Y float32

            Point is a mouse or touch location, in pixels.

            type Type

            type Type uint8

              Type describes the type of a touch event.

              const (
              	// TypeStart and TypeEnd are the start and end of a gesture. A gesture
              	// spans multiple events.
              	TypeStart Type = 0
              	TypeEnd   Type = 1
              	// TypeIsXxx is when the gesture is recognized as a long press, double
              	// press or drag. For example, a mouse button press won't generate a
              	// TypeIsLongPress immediately, but if a threshold duration passes without
              	// the corresponding mouse button release, a TypeIsLongPress event is sent.
              	// Once a TypeIsXxx event is sent, the corresponding Event.Xxx bool field
              	// is set for this and subsequent events. For example, a TypeTap event by
              	// itself doesn't say whether or not it is a single tap or the first tap of
              	// a double tap. If the app needs to distinguish these two sorts of taps,
              	// it can wait until a TypeEnd or TypeIsDoublePress event is seen. If a
              	// TypeEnd is seen before TypeIsDoublePress, or equivalently, if the
              	// TypeEnd event's DoublePress field is false, the gesture is a single tap.
              	// These attributes aren't exclusive. A long press drag is perfectly valid.
              	// The uncommon "double press" instead of "double tap" terminology is
              	// because, in this package, taps are associated with button releases, not
              	// button presses. Note also that "double" really means "at least two".
              	TypeIsLongPress   Type = 10
              	TypeIsDoublePress Type = 11
              	TypeIsDrag        Type = 12
              	// TypeTap and TypeDrag are tap and drag events.
              	// For 'flinging' drags, to simulate inertia, look to the Velocity field of
              	// the TypeEnd event.
              	// TODO: implement velocity.
              	TypeTap  Type = 20
              	TypeDrag Type = 21

              func (Type) String

              func (t Type) String() string

              Source Files