diff --git a/gesture/gesture.go b/gesture/gesture.go index df4df32c..0e103863 100644 --- a/gesture/gesture.go +++ b/gesture/gesture.go @@ -125,6 +125,16 @@ func (c *Click) Add(ops *op.Ops) { op.Add(ops) } +// Hovered returns whether a pointer is inside the area. +func (c *Click) Hovered() bool { + return c.entered +} + +// Pressed returns whether a pointer is pressing. +func (c *Click) Pressed() bool { + return c.pressed +} + // Events returns the next click event, if any. func (c *Click) Events(q event.Queue) []ClickEvent { var events []ClickEvent diff --git a/widget/bool.go b/widget/bool.go index 916cdadc..c1209669 100644 --- a/widget/bool.go +++ b/widget/bool.go @@ -20,6 +20,16 @@ func (b *Bool) Changed() bool { 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() } diff --git a/widget/button.go b/widget/button.go index db3e34c9..9e081d3c 100644 --- a/widget/button.go +++ b/widget/button.go @@ -58,6 +58,16 @@ func (b *Clickable) Clicked() bool { return true } +// Hovered returns whether pointer is over the element. +func (b *Clickable) Hovered() bool { + return b.click.Hovered() +} + +// Pressed returns whether pointer is pressing the element. +func (b *Clickable) Pressed() bool { + return b.click.Pressed() +} + // Clicks returns and clear the clicks since the last call to Clicks. func (b *Clickable) Clicks() []Click { clicks := b.clicks