io/pointer: print all types in Type.String

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
Pierre Curto
2021-10-17 11:42:48 +02:00
committed by Elias Naur
parent 4d22a926a9
commit ae5219e4d4
2 changed files with 42 additions and 0 deletions
+16
View File
@@ -265,6 +265,22 @@ func (op InputOp) Add(o *op.Ops) {
}
func (t Type) String() string {
if t == Cancel {
return "Cancel"
}
var buf strings.Builder
for tt := Type(1); tt > 0; tt <<= 1 {
if t&tt > 0 {
if buf.Len() > 0 {
buf.WriteByte('|')
}
buf.WriteString((t & tt).string())
}
}
return buf.String()
}
func (t Type) string() string {
switch t {
case Press:
return "Press"
+26
View File
@@ -8,6 +8,32 @@ import (
"gioui.org/op"
)
func TestTypeString(t *testing.T) {
for _, tc := range []struct {
typ Type
res string
}{
{Cancel, "Cancel"},
{Press, "Press"},
{Release, "Release"},
{Move, "Move"},
{Drag, "Drag"},
{Enter, "Enter"},
{Leave, "Leave"},
{Scroll, "Scroll"},
{Enter | Leave, "Enter|Leave"},
{Press | Release, "Press|Release"},
{Enter | Leave | Press | Release, "Press|Release|Enter|Leave"},
{Move | Scroll, "Move|Scroll"},
} {
t.Run(tc.res, func(t *testing.T) {
if want, got := tc.res, tc.typ.String(); want != got {
t.Errorf("got %q; want %q", got, want)
}
})
}
}
func TestTransformChecks(t *testing.T) {
defer func() {
if err := recover(); err == nil {