summaryrefslogtreecommitdiffstats
path: root/pkg/gui/context
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/context')
-rw-r--r--pkg/gui/context/list_context_trait.go8
-rw-r--r--pkg/gui/context/menu_context.go16
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