diff --git a/widget/material/checkable.go b/widget/material/checkable.go index 24febe2a..2bc13416 100644 --- a/widget/material/checkable.go +++ b/widget/material/checkable.go @@ -41,6 +41,9 @@ func (c *checkable) layout(gtx layout.Context, checked bool) layout.Dimensions { return layout.UniformInset(unit.Dp(2)).Layout(gtx, func(gtx layout.Context) layout.Dimensions { size := gtx.Px(c.Size) icon.Color = c.IconColor + if gtx.Queue == nil { + icon.Color = mulAlpha(icon.Color, 150) + } icon.Layout(gtx, unit.Px(float32(size))) return layout.Dimensions{ Size: image.Point{X: size, Y: size}, diff --git a/widget/material/editor.go b/widget/material/editor.go index 2b2a9fe6..97a10fdd 100644 --- a/widget/material/editor.go +++ b/widget/material/editor.go @@ -52,13 +52,20 @@ func (e EditorStyle) Layout(gtx layout.Context) layout.Dimensions { gtx.Constraints.Min.Y = h } dims = e.Editor.Layout(gtx, e.shaper, e.Font, e.TextSize) + disabled := gtx.Queue == nil if e.Editor.Len() > 0 { - paint.ColorOp{Color: e.Color}.Add(gtx.Ops) + textColor := e.Color + if disabled { + textColor = mulAlpha(textColor, 150) + } + paint.ColorOp{Color: textColor}.Add(gtx.Ops) e.Editor.PaintText(gtx) } else { call.Add(gtx.Ops) } - paint.ColorOp{Color: e.Color}.Add(gtx.Ops) - e.Editor.PaintCaret(gtx) + if !disabled { + paint.ColorOp{Color: e.Color}.Add(gtx.Ops) + e.Editor.PaintCaret(gtx) + } return dims } diff --git a/widget/material/progressbar.go b/widget/material/progressbar.go index 85ce91de..173a9c0b 100644 --- a/widget/material/progressbar.go +++ b/widget/material/progressbar.go @@ -64,7 +64,11 @@ func (p ProgressBarStyle) Layout(gtx layout.Context) layout.Dimensions { }), layout.Stacked(func(gtx layout.Context) layout.Dimensions { fillWidth := (progressBarWidth / 100) * float32(progress) - return shader(fillWidth, p.Color) + fillColor := p.Color + if gtx.Queue == nil { + fillColor = mulAlpha(fillColor, 200) + } + return shader(fillWidth, fillColor) }), ) } diff --git a/widget/material/switch.go b/widget/material/switch.go index 684c1d9f..e05fa524 100644 --- a/widget/material/switch.go +++ b/widget/material/switch.go @@ -47,12 +47,20 @@ func (s SwitchStyle) Layout(gtx layout.Context) layout.Dimensions { X: float32(trackWidth), Y: float32(trackHeight), }} + col := s.Color.Disabled + if s.Switch.Value { + col = s.Color.Enabled + } + if gtx.Queue == nil { + col = mulAlpha(col, 150) + } + trackColor := mulAlpha(col, 150) op.TransformOp{}.Offset(f32.Point{Y: trackOff}).Add(gtx.Ops) clip.Rect{ Rect: trackRect, NE: trackCorner, NW: trackCorner, SE: trackCorner, SW: trackCorner, }.Op(gtx.Ops).Add(gtx.Ops) - paint.ColorOp{Color: rgb(0x9b9b9b)}.Add(gtx.Ops) + paint.ColorOp{Color: trackColor}.Add(gtx.Ops) paint.PaintOp{Rect: trackRect}.Add(gtx.Ops) stack.Pop() @@ -79,11 +87,9 @@ func (s SwitchStyle) Layout(gtx layout.Context) layout.Dimensions { // Compute thumb offset and color. stack = op.Push(gtx.Ops) - col := s.Color.Disabled if s.Switch.Value { off := trackWidth - thumbSize op.TransformOp{}.Offset(f32.Point{X: float32(off)}).Add(gtx.Ops) - col = s.Color.Enabled } // Draw thumb shadow, a translucent disc slightly larger than the