mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +00:00
b68c9c23c8
Signed-off-by: Elias Naur <mail@eliasnaur.com>
47 lines
976 B
Go
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()
|
|
}
|