| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright 2015 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // Package mouse defines an event for mouse input.
- //
- // See the golang.org/x/mobile/app package for details on the event model.
- package mouse // import "golang.org/x/mobile/event/mouse"
- import (
- "fmt"
- "golang.org/x/mobile/event/key"
- )
- // Event is a mouse event.
- type Event struct {
- // X and Y are the mouse location, in pixels.
- X, Y float32
- // Button is the mouse button being pressed or released. Its value may be
- // zero, for a mouse move or drag without any button change.
- Button Button
- // TODO: have a field to hold what other buttons are down, for detecting
- // drags or button-chords.
- // Modifiers is a bitmask representing a set of modifier keys:
- // key.ModShift, key.ModAlt, etc.
- Modifiers key.Modifiers
- // Direction is the direction of the mouse event: DirPress, DirRelease,
- // or DirNone (for mouse moves or drags).
- Direction Direction
- // TODO: add a Device ID, for multiple input devices?
- // TODO: add a time.Time?
- }
- // Button is a mouse button.
- type Button int32
- // IsWheel reports whether the button is for a scroll wheel.
- func (b Button) IsWheel() bool {
- return b < 0
- }
- // TODO: have a separate axis concept for wheel up/down? How does that relate
- // to joystick events?
- const (
- ButtonNone Button = +0
- ButtonLeft Button = +1
- ButtonMiddle Button = +2
- ButtonRight Button = +3
- ButtonWheelUp Button = -1
- ButtonWheelDown Button = -2
- ButtonWheelLeft Button = -3
- ButtonWheelRight Button = -4
- )
- // Direction is the direction of the mouse event.
- type Direction uint8
- const (
- DirNone Direction = 0
- DirPress Direction = 1
- DirRelease Direction = 2
- // DirStep is a simultaneous press and release, such as a single step of a
- // mouse wheel.
- //
- // Its value equals DirPress | DirRelease.
- DirStep Direction = 3
- )
- func (d Direction) String() string {
- switch d {
- case DirNone:
- return "None"
- case DirPress:
- return "Press"
- case DirRelease:
- return "Release"
- case DirStep:
- return "Step"
- default:
- return fmt.Sprintf("mouse.Direction(%d)", d)
- }
- }
|