Skip to content

Commit

Permalink
Merge pull request #2336 from andydotxyz/fix/2329
Browse files Browse the repository at this point in the history
Add Alignment to Select
  • Loading branch information
andydotxyz authored Jul 29, 2021
2 parents 2ce1063 + b21c82b commit 7720e49
Show file tree
Hide file tree
Showing 88 changed files with 381 additions and 254 deletions.
6 changes: 3 additions & 3 deletions container/testdata/doctabs/desktop/tapped_all_tabs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@
<rectangle fillColor="background" size="73x142"/>
<container pos="0,4" size="73x142">
<widget size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test1</text>
<text pos="8,4" size="57x20">Test1</text>
</widget>
<widget pos="0,32" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test2</text>
<text pos="8,4" size="57x20">Test2</text>
</widget>
<widget pos="0,65" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test3</text>
<text pos="8,4" size="57x20">Test3</text>
</widget>
<widget pos="0,98" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="57x20">Another</text>
Expand Down
6 changes: 3 additions & 3 deletions container/testdata/doctabs/mobile/tapped_all_tabs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,13 @@
<rectangle fillColor="background" size="73x142"/>
<container pos="0,4" size="73x142">
<widget size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test1</text>
<text pos="8,4" size="57x20">Test1</text>
</widget>
<widget pos="0,32" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test2</text>
<text pos="8,4" size="57x20">Test2</text>
</widget>
<widget pos="0,65" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="38x20">Test3</text>
<text pos="8,4" size="57x20">Test3</text>
</widget>
<widget pos="0,98" size="73x28" type="*widget.menuItem">
<text pos="8,4" size="57x20">Another</text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand All @@ -75,14 +75,14 @@
<rectangle fillColor="background" size="75x110"/>
<container pos="0,4" size="75x110">
<widget size="75x28" type="*widget.menuItem">
<text pos="8,4" size="36x20">File 1</text>
<text pos="8,4" size="59x20">File 1</text>
</widget>
<widget pos="0,32" size="75x28" type="*widget.menuItem">
<text pos="8,4" size="36x20">File 2</text>
<text pos="8,4" size="59x20">File 2</text>
</widget>
<widget pos="0,65" size="75x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="75x28"/>
<text pos="8,4" size="39x20">Older</text>
<text pos="8,4" size="59x20">Older</text>
<image pos="55,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand All @@ -76,13 +76,13 @@
<container pos="0,4" size="75x110">
<widget size="75x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="75x28"/>
<text pos="8,4" size="36x20">File 1</text>
<text pos="8,4" size="59x20">File 1</text>
</widget>
<widget pos="0,32" size="75x28" type="*widget.menuItem">
<text pos="8,4" size="36x20">File 2</text>
<text pos="8,4" size="59x20">File 2</text>
</widget>
<widget pos="0,65" size="75x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Older</text>
<text pos="8,4" size="59x20">Older</text>
<image pos="55,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand All @@ -75,14 +75,14 @@
<rectangle fillColor="background" size="75x110"/>
<container pos="0,4" size="75x110">
<widget size="75x28" type="*widget.menuItem">
<text pos="8,4" size="36x20">File 1</text>
<text pos="8,4" size="59x20">File 1</text>
</widget>
<widget pos="0,32" size="75x28" type="*widget.menuItem">
<text pos="8,4" size="36x20">File 2</text>
<text pos="8,4" size="59x20">File 2</text>
</widget>
<widget pos="0,65" size="75x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="75x28"/>
<text pos="8,4" size="39x20">Older</text>
<text pos="8,4" size="59x20">Older</text>
<image pos="55,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<rectangle fillColor="background" size="55x77"/>
<container pos="0,4" size="55x77">
<widget size="55x28" type="*widget.menuItem">
<text pos="8,4" size="35x20">Copy</text>
<text pos="8,4" size="39x20">Copy</text>
</widget>
<widget pos="0,32" size="55x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Paste</text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<rectangle fillColor="background" size="55x77"/>
<container pos="0,4" size="55x77">
<widget size="55x28" type="*widget.menuItem">
<text pos="8,4" size="35x20">Copy</text>
<text pos="8,4" size="39x20">Copy</text>
</widget>
<widget pos="0,32" size="55x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Paste</text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@
<rectangle fillColor="background" size="84x110"/>
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@
<container pos="0,4" size="84x110">
<widget size="84x28" type="*widget.menuItem">
<rectangle fillColor="focus" size="84x28"/>
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="68x20">New</text>
</widget>
<widget pos="0,32" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
<text pos="8,4" size="68x20">Open</text>
</widget>
<widget pos="0,65" size="84x28" type="*widget.menuItem">
<text pos="8,4" size="48x20">Recent</text>
<text pos="8,4" size="68x20">Recent</text>
<image pos="64,4" rsc="menuExpandIcon" size="iconInlineSize"/>
</widget>
</container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<rectangle fillColor="background" size="55x77"/>
<container pos="0,4" size="55x77">
<widget size="55x28" type="*widget.menuItem">
<text pos="8,4" size="32x20">New</text>
<text pos="8,4" size="39x20">New</text>
</widget>
<widget pos="0,32" size="55x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Open</text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<rectangle fillColor="background" size="55x77"/>
<container pos="0,4" size="55x77">
<widget size="55x28" type="*widget.menuItem">
<text pos="8,4" size="35x20">Copy</text>
<text pos="8,4" size="39x20">Copy</text>
</widget>
<widget pos="0,32" size="55x28" type="*widget.menuItem">
<text pos="8,4" size="39x20">Paste</text>
Expand Down
2 changes: 1 addition & 1 deletion internal/driver/glfw/window_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1370,7 +1370,7 @@ func TestWindow_SetPadded(t *testing.T) {
if hasNativeMenu() {
menuHeight = 0
} else {
menuHeight = widget.NewToolbar(widget.NewToolbarAction(theme.ContentCutIcon(), func() {})).MinSize().Height
menuHeight = canvas.NewText("", color.Black).MinSize().Height + theme.Padding()*2
}
fyne.CurrentApp().Settings().SetTheme(theme.DarkTheme())
tests := []struct {
Expand Down
9 changes: 9 additions & 0 deletions widget/menu.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ var _ fyne.Tappable = (*Menu)(nil)
// Menu is a widget for displaying a fyne.Menu.
type Menu struct {
widget.Base
alignment fyne.TextAlign
Items []fyne.CanvasObject
OnDismiss func()
activeItem *menuItem
Expand Down Expand Up @@ -262,6 +263,14 @@ func (r *menuRenderer) MinSize() fyne.Size {
func (r *menuRenderer) Refresh() {
r.layoutActiveChild()
r.ShadowingRenderer.RefreshShadow()

for _, i := range r.m.Items {
if txt, ok := i.(*menuItem); ok {
txt.alignment = r.m.alignment
txt.Refresh()
}
}

canvas.Refresh(r.m)
}

Expand Down
10 changes: 7 additions & 3 deletions widget/menu_item.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ type menuItem struct {
Item *fyne.MenuItem
Parent *Menu

child *Menu
alignment fyne.TextAlign
child *Menu
}

// newMenuItem creates a new menuItem.
func newMenuItem(item *fyne.MenuItem, parent *Menu) *menuItem {
i := &menuItem{Item: item, Parent: parent}
i.alignment = parent.alignment
i.ExtendBaseWidget(i)
return i
}
Expand All @@ -43,6 +45,7 @@ func (i *menuItem) CreateRenderer() fyne.WidgetRenderer {
background := canvas.NewRectangle(theme.HoverColor())
background.Hide()
text := canvas.NewText(i.Item.Label, theme.ForegroundColor())
text.Alignment = i.alignment
objects := []fyne.CanvasObject{background, text}
var icon *canvas.Image
if i.Item.ChildMenu != nil {
Expand Down Expand Up @@ -188,7 +191,7 @@ func (r *menuItemRenderer) Layout(size fyne.Size) {
if r.i.Item.Disabled {
r.text.Color = theme.DisabledColor()
}
r.text.Resize(r.text.MinSize())
r.text.Resize(size.Subtract(fyne.NewSize(theme.Padding()*4, theme.Padding()*2)))
r.text.Move(fyne.NewPos(padding.Width/2+r.checkSpace(), padding.Height/2))

if r.icon != nil {
Expand Down Expand Up @@ -231,7 +234,7 @@ func (r *menuItemRenderer) Refresh() {
r.background.Hide()
}
r.background.Refresh()

r.text.Alignment = r.i.alignment
if r.i.Item.Disabled {
r.text.Color = theme.DisabledColor()
r.checkIcon.Resource = theme.NewDisabledResource(theme.ConfirmIcon())
Expand All @@ -247,6 +250,7 @@ func (r *menuItemRenderer) Refresh() {
r.checkIcon.Hide()
}
r.checkIcon.Refresh()
canvas.Refresh(r.i)
}

func (r *menuItemRenderer) minSizeUnchanged() bool {
Expand Down
Loading

0 comments on commit 7720e49

Please sign in to comment.