mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +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
|
||||
}
|
||||
|
||||
// Update the checked state according to incoming events.
|
||||
func (b *Bool) Update(gtx *layout.Context) {
|
||||
// Update the checked state according to incoming events,
|
||||
// and reports whether Value changed.
|
||||
func (b *Bool) Update(gtx *layout.Context) bool {
|
||||
was := b.Value
|
||||
for _, e := range b.gesture.Events(gtx) {
|
||||
switch e.Type {
|
||||
case gesture.TypeClick:
|
||||
@@ -26,6 +28,7 @@ func (b *Bool) Update(gtx *layout.Context) {
|
||||
b.Value = !b.Value
|
||||
}
|
||||
}
|
||||
return b.Value != was
|
||||
}
|
||||
|
||||
func (b *Bool) Layout(gtx *layout.Context) {
|
||||
|
||||
+5
-2
@@ -21,8 +21,10 @@ func index(vs []string, t string) int {
|
||||
return -1
|
||||
}
|
||||
|
||||
// Update the Value according to incoming events.
|
||||
func (e *Enum) Update(gtx *layout.Context) {
|
||||
// Update the Value according to incoming events, and
|
||||
// reports whether Value changed.
|
||||
func (e *Enum) Update(gtx *layout.Context) bool {
|
||||
was := e.Value
|
||||
for i := range e.clicks {
|
||||
for _, ev := range e.clicks[i].Events(gtx) {
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user