Files
gio/ui/input/input.go
T
Elias Naur b68c9c23c8 ui/input: expand package documentation
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-08-11 12:31:39 +02:00

47 lines
976 B
Go

// SPDX-License-Identifier: Unlicense OR MIT
/*
Package input exposes a unified interface for receiving input
events.
For example:
var queue input.Queue = ...
for e, ok := queue.Next(h); ok; e, ok = queue.Next(h) {
switch e.(type) {
...
}
}
In general, handlers must be declared before events become
available. Other packages such as pointer and key provide
the means for declaring handlers for specific input types.
The following example marks a handler ready for key input:
import gioui.org/ui/input
import gioui.org/ui/key
var ops ui.Ops
var h *Handler = ...
key.HandlerOp{Key: h}.Add(ops)
*/
package input
// Queue maps an event handler key to the events
// available to the handler.
type Queue interface {
Next(k Key) (Event, bool)
}
// Key is the stable identifier for an event handler.
// For a handler h, the key is typically &h.
type Key interface{}
// Event is the marker interface for events.
type Event interface {
ImplementsEvent()
}