From bc6798c4ca15d9b0deb9dc8bdf9aa5ae8cbd5e6f Mon Sep 17 00:00:00 2001 From: Egon Elbre Date: Sun, 17 Jan 2021 18:28:45 +0200 Subject: [PATCH] widget/material: add hovered to RadioButton Signed-off-by: Egon Elbre --- widget/enum.go | 9 ++++++++- widget/material/radiobutton.go | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/widget/enum.go b/widget/enum.go index 39d1eb3c..883d0c26 100644 --- a/widget/enum.go +++ b/widget/enum.go @@ -10,7 +10,8 @@ import ( ) type Enum struct { - Value string + Value string + Hovered string changed bool @@ -56,6 +57,12 @@ func (e *Enum) Layout(gtx layout.Context, key string) layout.Dimensions { } } } + if e.Hovered == key { + e.Hovered = "" + } + if clk.Hovered() { + e.Hovered = key + } clk.Add(gtx.Ops) } diff --git a/widget/material/radiobutton.go b/widget/material/radiobutton.go index 1c4f2a88..24e9537d 100644 --- a/widget/material/radiobutton.go +++ b/widget/material/radiobutton.go @@ -36,7 +36,7 @@ func RadioButton(th *Theme, group *widget.Enum, key, label string) RadioButtonSt // Layout updates enum and displays the radio button. func (r RadioButtonStyle) Layout(gtx layout.Context) layout.Dimensions { - dims := r.layout(gtx, r.Group.Value == r.Key, false) + dims := r.layout(gtx, r.Group.Value == r.Key, r.Group.Hovered == r.Key) gtx.Constraints.Min = dims.Size r.Group.Layout(gtx, r.Key) return dims