mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
widget: report whether Value changed after Enum.Update and Bool.Update
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+5
-2
@@ -14,8 +14,10 @@ type Bool struct {
|
|||||||
gesture gesture.Click
|
gesture gesture.Click
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the checked state according to incoming events.
|
// Update the checked state according to incoming events,
|
||||||
func (b *Bool) Update(gtx *layout.Context) {
|
// and reports whether Value changed.
|
||||||
|
func (b *Bool) Update(gtx *layout.Context) bool {
|
||||||
|
was := b.Value
|
||||||
for _, e := range b.gesture.Events(gtx) {
|
for _, e := range b.gesture.Events(gtx) {
|
||||||
switch e.Type {
|
switch e.Type {
|
||||||
case gesture.TypeClick:
|
case gesture.TypeClick:
|
||||||
@@ -26,6 +28,7 @@ func (b *Bool) Update(gtx *layout.Context) {
|
|||||||
b.Value = !b.Value
|
b.Value = !b.Value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return b.Value != was
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bool) Layout(gtx *layout.Context) {
|
func (b *Bool) Layout(gtx *layout.Context) {
|
||||||
|
|||||||
+5
-2
@@ -21,8 +21,10 @@ func index(vs []string, t string) int {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the Value according to incoming events.
|
// Update the Value according to incoming events, and
|
||||||
func (e *Enum) Update(gtx *layout.Context) {
|
// reports whether Value changed.
|
||||||
|
func (e *Enum) Update(gtx *layout.Context) bool {
|
||||||
|
was := e.Value
|
||||||
for i := range e.clicks {
|
for i := range e.clicks {
|
||||||
for _, ev := range e.clicks[i].Events(gtx) {
|
for _, ev := range e.clicks[i].Events(gtx) {
|
||||||
switch ev.Type {
|
switch ev.Type {
|
||||||
@@ -31,6 +33,7 @@ func (e *Enum) Update(gtx *layout.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return e.Value != was
|
||||||
}
|
}
|
||||||
|
|
||||||
// Layout adds the event handler for key.
|
// Layout adds the event handler for key.
|
||||||
|
|||||||
Reference in New Issue
Block a user