mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 18:35:34 +00:00
apps/gophers: update to merged input queue API
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@ module gioui.org/apps
|
|||||||
go 1.12
|
go 1.12
|
||||||
|
|
||||||
require (
|
require (
|
||||||
gioui.org/ui v0.0.0-20190603140838-df791f2e9b17
|
gioui.org/ui v0.0.0-20190608085857-a35118d5228e
|
||||||
github.com/google/go-github/v24 v24.0.1
|
github.com/google/go-github/v24 v24.0.1
|
||||||
golang.org/x/exp v0.0.0-20190321205749-f0864edee7f3
|
golang.org/x/exp v0.0.0-20190321205749-f0864edee7f3
|
||||||
golang.org/x/image v0.0.0-20190321063152-3fc05d484e9f
|
golang.org/x/image v0.0.0-20190321063152-3fc05d484e9f
|
||||||
|
|||||||
+16
-19
@@ -28,6 +28,7 @@ import (
|
|||||||
gdraw "gioui.org/ui/draw"
|
gdraw "gioui.org/ui/draw"
|
||||||
"gioui.org/ui/f32"
|
"gioui.org/ui/f32"
|
||||||
"gioui.org/ui/gesture"
|
"gioui.org/ui/gesture"
|
||||||
|
"gioui.org/ui/input"
|
||||||
"gioui.org/ui/key"
|
"gioui.org/ui/key"
|
||||||
"gioui.org/ui/layout"
|
"gioui.org/ui/layout"
|
||||||
"gioui.org/ui/measure"
|
"gioui.org/ui/measure"
|
||||||
@@ -51,8 +52,7 @@ type App struct {
|
|||||||
cfg *ui.Config
|
cfg *ui.Config
|
||||||
faces measure.Faces
|
faces measure.Faces
|
||||||
|
|
||||||
pqueue *pointer.Queue
|
queue *input.Queue
|
||||||
kqueue *key.Queue
|
|
||||||
|
|
||||||
fab *ActionButton
|
fab *ActionButton
|
||||||
|
|
||||||
@@ -176,10 +176,8 @@ func (a *App) run() error {
|
|||||||
a.w.Redraw()
|
a.w.Redraw()
|
||||||
case e := <-a.w.Events():
|
case e := <-a.w.Events():
|
||||||
switch e := e.(type) {
|
switch e := e.(type) {
|
||||||
case pointer.Event:
|
case input.Event:
|
||||||
a.pqueue.Push(e)
|
a.queue.Add(e)
|
||||||
case key.Event:
|
|
||||||
a.kqueue.Push(e)
|
|
||||||
if e, ok := e.(key.Chord); ok {
|
if e, ok := e.(key.Chord); ok {
|
||||||
switch e.Name {
|
switch e.Name {
|
||||||
case key.NameEscape:
|
case key.NameEscape:
|
||||||
@@ -234,8 +232,8 @@ func (a *App) run() error {
|
|||||||
al.End(dims)
|
al.End(dims)
|
||||||
}
|
}
|
||||||
a.w.Draw(ops)
|
a.w.Draw(ops)
|
||||||
a.w.SetTextInput(a.kqueue.Frame(ops))
|
a.queue.Frame(ops)
|
||||||
a.pqueue.Frame(ops)
|
a.w.SetTextInput(a.queue.InputState())
|
||||||
a.faces.Frame()
|
a.faces.Frame()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -247,8 +245,7 @@ func newApp(w *app.Window) *App {
|
|||||||
a := &App{
|
a := &App{
|
||||||
w: w,
|
w: w,
|
||||||
updateUsers: make(chan []*user),
|
updateUsers: make(chan []*user),
|
||||||
pqueue: new(pointer.Queue),
|
queue: new(input.Queue),
|
||||||
kqueue: new(key.Queue),
|
|
||||||
}
|
}
|
||||||
a.usersList = &layout.List{Axis: layout.Vertical}
|
a.usersList = &layout.List{Axis: layout.Vertical}
|
||||||
a.fab = &ActionButton{
|
a.fab = &ActionButton{
|
||||||
@@ -385,7 +382,7 @@ func (a *App) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
|||||||
if a.selectedUser == nil {
|
if a.selectedUser == nil {
|
||||||
return a.layoutUsers(ops, cs)
|
return a.layoutUsers(ops, cs)
|
||||||
} else {
|
} else {
|
||||||
a.selectedUser.Update(a.cfg, a.pqueue)
|
a.selectedUser.Update(a.cfg, a.queue)
|
||||||
return a.selectedUser.Layout(ops, cs)
|
return a.selectedUser.Layout(ops, cs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -402,9 +399,9 @@ func newUserPage(ctx context.Context, user *user, redraw redrawer, faces measure
|
|||||||
return up
|
return up
|
||||||
}
|
}
|
||||||
|
|
||||||
func (up *userPage) Update(cfg *ui.Config, pqueue pointer.Events) {
|
func (up *userPage) Update(cfg *ui.Config, queue input.Events) {
|
||||||
up.cfg = cfg
|
up.cfg = cfg
|
||||||
up.commitsList.Update(up.cfg, pqueue)
|
up.commitsList.Update(up.cfg, queue)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (up *userPage) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
func (up *userPage) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
||||||
@@ -478,9 +475,9 @@ func (up *userPage) fetchCommits(ctx context.Context) {
|
|||||||
|
|
||||||
func (a *App) layoutUsers(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
func (a *App) layoutUsers(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
||||||
c := a.cfg
|
c := a.cfg
|
||||||
a.fab.Update(c, a.pqueue)
|
a.fab.Update(c, a.queue)
|
||||||
a.edit.Update(c, a.pqueue, a.kqueue)
|
a.edit.Update(c, a.queue)
|
||||||
a.edit2.Update(c, a.pqueue, a.kqueue)
|
a.edit2.Update(c, a.queue)
|
||||||
st := layout.Stack{Alignment: layout.Center}
|
st := layout.Stack{Alignment: layout.Center}
|
||||||
st.Init(ops, cs)
|
st.Init(ops, cs)
|
||||||
cs = st.Rigid()
|
cs = st.Rigid()
|
||||||
@@ -538,7 +535,7 @@ func (a *App) layoutUsers(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
|||||||
return st.Layout(c1, c2)
|
return st.Layout(c1, c2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *ActionButton) Update(c *ui.Config, q pointer.Events) {
|
func (a *ActionButton) Update(c *ui.Config, q input.Events) {
|
||||||
a.cfg = c
|
a.cfg = c
|
||||||
a.btnsClicker.Update(q)
|
a.btnsClicker.Update(q)
|
||||||
a.btnClicker.Update(q)
|
a.btnClicker.Update(q)
|
||||||
@@ -562,7 +559,7 @@ func (a *ActionButton) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens
|
|||||||
func (a *App) layoutContributors(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
func (a *App) layoutContributors(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
||||||
c := a.cfg
|
c := a.cfg
|
||||||
l := a.usersList
|
l := a.usersList
|
||||||
l.Update(c, a.pqueue)
|
l.Update(c, a.queue)
|
||||||
if l.Dragging() {
|
if l.Dragging() {
|
||||||
key.OpHideInput{}.Add(ops)
|
key.OpHideInput{}.Add(ops)
|
||||||
}
|
}
|
||||||
@@ -581,7 +578,7 @@ func (a *App) layoutContributors(ops *ui.Ops, cs layout.Constraints) layout.Dime
|
|||||||
func (a *App) user(ops *ui.Ops, cs layout.Constraints, c *ui.Config, index int) layout.Dimens {
|
func (a *App) user(ops *ui.Ops, cs layout.Constraints, c *ui.Config, index int) layout.Dimens {
|
||||||
u := a.users[index]
|
u := a.users[index]
|
||||||
click := &a.userClicks[index]
|
click := &a.userClicks[index]
|
||||||
for _, r := range click.Update(a.pqueue) {
|
for _, r := range click.Update(a.queue) {
|
||||||
if r.Type == gesture.TypeClick {
|
if r.Type == gesture.TypeClick {
|
||||||
a.selectedUser = newUserPage(a.ctx, u, a.w.Redraw, a.faces)
|
a.selectedUser = newUserPage(a.ctx, u, a.w.Redraw, a.faces)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user