mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +00:00
03db2817ac
Key had an unfortunate association with keyboard input.
This is an API change. The following rewrites were run to fixup
Gio code:
$ gofmt -r 'pointer.InputOp{Key:a} -> pointer.InputOp{Tag:a}' -w .
$ gofmt -r 'pointer.InputOp{Key:a, Grab:b} -> pointer.InputOp{Tag:a, Grab:b}' -w .
$ gofmt -r 'key.InputOp{Key:a} -> key.InputOp{Tag:a}' -w .
$ gofmt -r 'key.InputOp{Key:a, Focus:b} -> key.InputOp{Tag:a, Focus:b}' -w .
$ gofmt -r 'event.Key -> event.Tag' -w .
Signed-off-by: Elias Naur <mail@eliasnaur.com>
49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
/*
|
|
Package event contains the types for event handling.
|
|
|
|
The Queue interface is the protocol for receiving external events.
|
|
|
|
For example:
|
|
|
|
var queue event.Queue = ...
|
|
|
|
for _, e := range queue.Events(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 event types.
|
|
|
|
The following example declares a handler ready for key input:
|
|
|
|
import gioui.org/io/key
|
|
|
|
ops := new(op.Ops)
|
|
var h *Handler = ...
|
|
key.InputOp{Tag: h}.Add(ops)
|
|
|
|
*/
|
|
package event
|
|
|
|
// Queue maps an event handler key to the events
|
|
// available to the handler.
|
|
type Queue interface {
|
|
// Events returns the available events for an
|
|
// event handler tag.
|
|
Events(t Tag) []Event
|
|
}
|
|
|
|
// Tag is the stable identifier for an event handler.
|
|
// For a handler h, the tag is typically &h.
|
|
type Tag interface{}
|
|
|
|
// Event is the marker interface for events.
|
|
type Event interface {
|
|
ImplementsEvent()
|
|
}
|