From ec57d716c79e4eafbf4269e3bd5183a02159e581 Mon Sep 17 00:00:00 2001 From: Jan Hensel Date: Mon, 1 Jul 2024 17:18:26 +0200 Subject: [PATCH] fix: cohere editor status visualization slightly --- internal/ui/panes/composite_editor_ui_pane.go | 45 +++++++++++++------ internal/ui/panes/string_editor_ui_pane.go | 17 ++----- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/internal/ui/panes/composite_editor_ui_pane.go b/internal/ui/panes/composite_editor_ui_pane.go index 15168ae3..f40a0616 100644 --- a/internal/ui/panes/composite_editor_ui_pane.go +++ b/internal/ui/panes/composite_editor_ui_pane.go @@ -33,22 +33,11 @@ func (p *CompositeEditorPane) Draw() { x, y, w, h := p.Dims() // draw background - style := p.Stylesheet.Editor - status := p.e.GetStatus() - c := '?' - switch status { - case edit.EditorDescendantActive: - c = '.' - case edit.EditorFocussed: - c = '*' - case edit.EditorInactive: - c = ' ' - case edit.EditorSelected: - c = '>' - } + style := getAlteredStyleForEditorStatus(p.Stylesheet.Editor, p.e.GetStatus()) + p.Renderer.DrawBox(x, y, w, h, style) p.Renderer.DrawText(x+1, y, w-2, 1, style, util.TruncateAt(p.e.GetName(), w-2)) - p.Renderer.DrawText(x, y, 1, 1, style.Bolded(), string(c)) + p.Renderer.DrawText(x, y, 1, 1, style.Bolded(), string(getRuneForEditorStatus(p.e.GetStatus()))) // draw all subpanes for _, subpane := range p.subpanes { @@ -58,6 +47,34 @@ func (p *CompositeEditorPane) Draw() { } } +func getRuneForEditorStatus(status edit.EditorStatus) rune { + switch status { + case edit.EditorDescendantActive: + return '.' + case edit.EditorFocussed: + return '*' + case edit.EditorInactive: + return ' ' + case edit.EditorSelected: + return '>' + } + return '?' +} + +func getAlteredStyleForEditorStatus(baseStyle styling.DrawStyling, status edit.EditorStatus) styling.DrawStyling { + switch status { + case edit.EditorInactive: + return baseStyle.LightenedBG(10) + case edit.EditorSelected: + return baseStyle + case edit.EditorDescendantActive: + return baseStyle.DarkenedBG(10) + case edit.EditorFocussed: + return baseStyle.DarkenedBG(20).Bolded() + } + return baseStyle +} + // Undraw ensures that the cursor is hidden. func (p *CompositeEditorPane) Undraw() { for _, subpane := range p.subpanes { diff --git a/internal/ui/panes/string_editor_ui_pane.go b/internal/ui/panes/string_editor_ui_pane.go index 67f93935..e2d53f70 100644 --- a/internal/ui/panes/string_editor_ui_pane.go +++ b/internal/ui/panes/string_editor_ui_pane.go @@ -29,22 +29,11 @@ func (p *StringEditorPane) Draw() { if p.IsVisible() { x, y, w, h := p.Dims() - baseStyle := p.Stylesheet.Editor + status := p.e.GetStatus() + baseStyle := getAlteredStyleForEditorStatus(p.Stylesheet.Editor, status) boxStyle := baseStyle fieldStyle := baseStyle labelStyle := baseStyle - status := p.e.GetStatus() - c := '?' - switch status { - case edit.EditorDescendantActive: - c = '.' - case edit.EditorFocussed: - c = '*' - case edit.EditorInactive: - c = ' ' - case edit.EditorSelected: - c = '>' - } nameWidth := 8 modeWidth := 5 @@ -52,7 +41,7 @@ func (p *StringEditorPane) Draw() { p.Renderer.DrawBox(x, y, w, h, boxStyle) p.Renderer.DrawText(x+padding, y, nameWidth, h, labelStyle, p.e.GetName()) - p.Renderer.DrawText(x, y, 1, 1, boxStyle.Bolded(), string(c)) + p.Renderer.DrawText(x, y, 1, 1, boxStyle.Bolded(), string(getRuneForEditorStatus(status))) if status == edit.EditorFocussed { switch p.e.GetMode() {