diff options
Diffstat (limited to 'pkg/gui/context')
-rw-r--r-- | pkg/gui/context/list_context_trait.go | 8 | ||||
-rw-r--r-- | pkg/gui/context/menu_context.go | 16 |
2 files changed, 15 insertions, 9 deletions
diff --git a/pkg/gui/context/list_context_trait.go b/pkg/gui/context/list_context_trait.go index de88d3d3b..54e3ab9ea 100644 --- a/pkg/gui/context/list_context_trait.go +++ b/pkg/gui/context/list_context_trait.go @@ -14,7 +14,7 @@ type ListContextTrait struct { list types.IList getDisplayStrings func(startIdx int, length int) [][]string // Alignment for each column. If nil, the default is left alignment - columnAlignments []utils.Alignment + getColumnAlignments func() []utils.Alignment // Some contexts, like the commit context, will highlight the path from the selected commit // to its parents, because it's ambiguous otherwise. For these, we need to refresh the viewport // so that we show the highlighted path. @@ -82,9 +82,13 @@ func (self *ListContextTrait) HandleFocusLost(opts types.OnFocusLostOpts) error // OnFocus assumes that the content of the context has already been rendered to the view. OnRender is the function which actually renders the content to the view func (self *ListContextTrait) HandleRender() error { self.list.RefreshSelectedIdx() + var columnAlignments []utils.Alignment + if self.getColumnAlignments != nil { + columnAlignments = self.getColumnAlignments() + } content := utils.RenderDisplayStrings( self.getDisplayStrings(0, self.list.Len()), - self.columnAlignments, + columnAlignments, ) self.GetViewTrait().SetContent(content) self.c.Render() diff --git a/pkg/gui/context/menu_context.go b/pkg/gui/context/menu_context.go index a353a4e0d..4a174c019 100644 --- a/pkg/gui/context/menu_context.go +++ b/pkg/gui/context/menu_context.go @@ -35,10 +35,10 @@ func NewMenuContext( Focusable: true, HasUncontrolledBounds: true, })), - getDisplayStrings: viewModel.GetDisplayStrings, - list: viewModel, - c: c, - columnAlignments: []utils.Alignment{utils.AlignRight, utils.AlignLeft}, + getDisplayStrings: viewModel.GetDisplayStrings, + list: viewModel, + c: c, + getColumnAlignments: func() []utils.Alignment { return viewModel.columnAlignment }, }, } } @@ -54,8 +54,9 @@ func (self *MenuContext) GetSelectedItemId() string { } type MenuViewModel struct { - c *ContextCommon - menuItems []*types.MenuItem + c *ContextCommon + menuItems []*types.MenuItem + columnAlignment []utils.Alignment *FilteredListViewModel[*types.MenuItem] } @@ -73,8 +74,9 @@ func NewMenuViewModel(c *ContextCommon) *MenuViewModel { return self } -func (self *MenuViewModel) SetMenuItems(items []*types.MenuItem) { +func (self *MenuViewModel) SetMenuItems(items []*types.MenuItem, columnAlignment []utils.Alignment) { self.menuItems = items + self.columnAlignment = columnAlignment } // TODO: move into presentation package |