feat: increase instance list row height
This commit is contained in:
+10
-2
@@ -40,6 +40,10 @@ const (
|
||||
instancePortColumnWeight = 9
|
||||
instanceStatusColumnWeight = 10
|
||||
instanceActionColumnWeight = 18
|
||||
instanceActionIconSize = unit.Dp(16)
|
||||
instanceActionIconInset = unit.Dp(7)
|
||||
instanceStandardRowHeight = instanceActionIconSize + 2*instanceActionIconInset
|
||||
instanceListRowMinHeight = 2 * instanceStandardRowHeight
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -1137,6 +1141,10 @@ func (s *Shell) instanceTable(gtx layout.Context) layout.Dimensions {
|
||||
|
||||
func (s *Shell) instanceListRow(row InstanceRow) layout.Widget {
|
||||
return func(gtx layout.Context) layout.Dimensions {
|
||||
minimumHeight := gtx.Dp(instanceListRowMinHeight)
|
||||
if gtx.Constraints.Min.Y < minimumHeight {
|
||||
gtx.Constraints.Min.Y = minimumHeight
|
||||
}
|
||||
return layout.Background{}.Layout(gtx,
|
||||
func(gtx layout.Context) layout.Dimensions {
|
||||
if s.selectedInstanceID == row.ID {
|
||||
@@ -1305,8 +1313,8 @@ func (s *Shell) instanceIconButton(click *widget.Clickable, icon *widget.Icon, d
|
||||
gtx = gtx.Disabled()
|
||||
}
|
||||
style := material.IconButton(s.theme, click, icon, description)
|
||||
style.Size = unit.Dp(16)
|
||||
style.Inset = layout.UniformInset(unit.Dp(7))
|
||||
style.Size = instanceActionIconSize
|
||||
style.Inset = layout.UniformInset(instanceActionIconInset)
|
||||
style.Background = color.NRGBA{}
|
||||
style.Color = iconColor
|
||||
return style.Layout(gtx)
|
||||
|
||||
@@ -3,6 +3,7 @@ package ui
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"image"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
@@ -10,6 +11,8 @@ import (
|
||||
"time"
|
||||
|
||||
"gioui.org/layout"
|
||||
"gioui.org/op"
|
||||
"gioui.org/unit"
|
||||
"gioui.org/widget/material"
|
||||
)
|
||||
|
||||
@@ -83,6 +86,24 @@ func TestInstanceListColumnWeightsPrioritizeDirectoryAndCompactAction(t *testing
|
||||
}
|
||||
}
|
||||
|
||||
func TestInstanceListRowsUseDoubleStandardHeightAtEveryDPIScale(t *testing.T) {
|
||||
if instanceListRowMinHeight != 2*instanceStandardRowHeight {
|
||||
t.Fatalf("row height = %v, want two times standard height %v", instanceListRowMinHeight, instanceStandardRowHeight)
|
||||
}
|
||||
shell := NewShell(material.NewTheme())
|
||||
for _, scale := range []float32{1, 2} {
|
||||
gtx := layout.Context{
|
||||
Ops: new(op.Ops),
|
||||
Constraints: layout.Constraints{Max: image.Pt(1200, 400)},
|
||||
Metric: unit.Metric{PxPerDp: scale, PxPerSp: scale},
|
||||
}
|
||||
dimensions := shell.instanceListRow(shell.rows[0])(gtx)
|
||||
if want := gtx.Dp(instanceListRowMinHeight); dimensions.Size.Y != want {
|
||||
t.Fatalf("scale %.0f row height = %d, want %d", scale, dimensions.Size.Y, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestShellDeletesOnlyTheRequestedInstance(t *testing.T) {
|
||||
shell := NewShell(material.NewTheme())
|
||||
target := shell.rows[1]
|
||||
|
||||
Reference in New Issue
Block a user