Files
gio-patched/widget/bool.go
T
Elias Naur 665e23693f widget: [API] add child widget argument to Clickable.Layout
To make the semantic relation between the clickable area and its
content clear, it will be important for the clickable clip operation
to cover all of the clickable content.

API change: users of widget.Clickable must now pass the clickable
content to Layout.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-12-01 17:23:54 +01:00

47 lines
817 B
Go

// SPDX-License-Identifier: Unlicense OR MIT
package widget
import (
"gioui.org/layout"
)
type Bool struct {
Value bool
clk Clickable
changed bool
}
// Changed reports whether Value has changed since the last
// call to Changed.
func (b *Bool) Changed() bool {
changed := b.changed
b.changed = false
return changed
}
// Hovered returns whether pointer is over the element.
func (b *Bool) Hovered() bool {
return b.clk.Hovered()
}
// Pressed returns whether pointer is pressing the element.
func (b *Bool) Pressed() bool {
return b.clk.Pressed()
}
func (b *Bool) History() []Press {
return b.clk.History()
}
func (b *Bool) Layout(gtx layout.Context, w layout.Widget) layout.Dimensions {
dims := b.clk.Layout(gtx, w)
for b.clk.Clicked() {
b.Value = !b.Value
b.changed = true
}
return dims
}