op: add package op for operations

Extract operation types from package ui into package op.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-09-30 15:41:15 +02:00
parent eba1b3a95f
commit 8cf35a1f97
27 changed files with 225 additions and 227 deletions
+2 -2
View File
@@ -7,7 +7,7 @@ import (
"gioui.org/internal/ops"
"gioui.org/io/event"
"gioui.org/io/key"
"gioui.org/ui"
"gioui.org/op"
)
type TextInputState uint8
@@ -44,7 +44,7 @@ func (q *keyQueue) InputState() TextInputState {
return q.state
}
func (q *keyQueue) Frame(root *ui.Ops, events *handlerEvents) {
func (q *keyQueue) Frame(root *op.Ops, events *handlerEvents) {
if q.handlers == nil {
q.handlers = make(map[event.Key]*keyHandler)
}
+8 -8
View File
@@ -11,7 +11,7 @@ import (
"gioui.org/internal/ops"
"gioui.org/io/event"
"gioui.org/io/pointer"
"gioui.org/ui"
"gioui.org/op"
)
type pointerQueue struct {
@@ -42,7 +42,7 @@ type pointerInfo struct {
type pointerHandler struct {
area int
active bool
transform ui.TransformOp
transform op.TransformOp
wantsGrab bool
}
@@ -52,7 +52,7 @@ type areaOp struct {
}
type areaNode struct {
trans ui.TransformOp
trans op.TransformOp
next int
area areaOp
}
@@ -64,7 +64,7 @@ const (
areaEllipse
)
func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents, t ui.TransformOp, area, node int, pass bool) {
func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents, t op.TransformOp, area, node int, pass bool) {
for encOp, ok := r.Decode(); ok; encOp, ok = r.Decode() {
switch opconst.OpType(encOp.Data[0]) {
case opconst.TypePush:
@@ -86,8 +86,8 @@ func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents, t u
})
node = len(q.hitTree) - 1
case opconst.TypeTransform:
op := ops.DecodeTransformOp(encOp.Data)
t = t.Multiply(ui.TransformOp(op))
dop := ops.DecodeTransformOp(encOp.Data)
t = t.Multiply(op.TransformOp(dop))
case opconst.TypePointerInput:
op := decodePointerInputOp(encOp.Data, encOp.Refs)
q.hitTree = append(q.hitTree, hitNode{
@@ -158,7 +158,7 @@ func (q *pointerQueue) init() {
}
}
func (q *pointerQueue) Frame(root *ui.Ops, events *handlerEvents) {
func (q *pointerQueue) Frame(root *op.Ops, events *handlerEvents) {
q.init()
for _, h := range q.handlers {
// Reset handler.
@@ -167,7 +167,7 @@ func (q *pointerQueue) Frame(root *ui.Ops, events *handlerEvents) {
q.hitTree = q.hitTree[:0]
q.areas = q.areas[:0]
q.reader.Reset(root)
q.collectHandlers(&q.reader, events, ui.TransformOp{}, -1, -1, false)
q.collectHandlers(&q.reader, events, op.TransformOp{}, -1, -1, false)
for k, h := range q.handlers {
if !h.active {
q.dropHandler(k)
+4 -4
View File
@@ -12,7 +12,7 @@ import (
"gioui.org/io/key"
"gioui.org/io/pointer"
"gioui.org/io/profile"
"gioui.org/ui"
"gioui.org/op"
)
// Router is a Queue implementation that routes events from
@@ -53,7 +53,7 @@ func (q *Router) Events(k event.Key) []event.Event {
return events
}
func (q *Router) Frame(ops *ui.Ops) {
func (q *Router) Frame(ops *op.Ops) {
q.handlers.Clear()
q.wakeup = false
q.profHandlers = q.profHandlers[:0]
@@ -160,12 +160,12 @@ func decodeProfileOp(d []byte, refs []interface{}) profile.Op {
}
}
func decodeInvalidateOp(d []byte) ui.InvalidateOp {
func decodeInvalidateOp(d []byte) op.InvalidateOp {
bo := binary.LittleEndian
if opconst.OpType(d[0]) != opconst.TypeInvalidate {
panic("invalid op")
}
var o ui.InvalidateOp
var o op.InvalidateOp
if nanos := bo.Uint64(d[1:]); nanos > 0 {
o.At = time.Unix(0, int64(nanos))
}