From 22cbd9fa58512ffdcc975bab37a55467d5e10968 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 8 Sep 2022 01:01:22 +0900 Subject: Implement height range (--height ~[VALUE][%]) Close #2953 --- src/tui/dummy.go | 13 +++++++------ src/tui/light.go | 7 +++++++ src/tui/tcell.go | 2 ++ src/tui/tui.go | 1 + 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src/tui') diff --git a/src/tui/dummy.go b/src/tui/dummy.go index 297a887e..adecd6fc 100644 --- a/src/tui/dummy.go +++ b/src/tui/dummy.go @@ -27,12 +27,13 @@ const ( StrikeThrough = Attr(1 << 7) ) -func (r *FullscreenRenderer) Init() {} -func (r *FullscreenRenderer) Pause(bool) {} -func (r *FullscreenRenderer) Resume(bool, bool) {} -func (r *FullscreenRenderer) Clear() {} -func (r *FullscreenRenderer) Refresh() {} -func (r *FullscreenRenderer) Close() {} +func (r *FullscreenRenderer) Init() {} +func (r *FullscreenRenderer) Resize(maxHeightFunc func(int) int) {} +func (r *FullscreenRenderer) Pause(bool) {} +func (r *FullscreenRenderer) Resume(bool, bool) {} +func (r *FullscreenRenderer) Clear() {} +func (r *FullscreenRenderer) Refresh() {} +func (r *FullscreenRenderer) Close() {} func (r *FullscreenRenderer) GetChar() Event { return Event{} } func (r *FullscreenRenderer) MaxX() int { return 0 } diff --git a/src/tui/light.go b/src/tui/light.go index 0546caa8..20b7b9d5 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -189,6 +189,10 @@ func (r *LightRenderer) Init() { } } +func (r *LightRenderer) Resize(maxHeightFunc func(int) int) { + r.maxHeightFunc = maxHeightFunc +} + func (r *LightRenderer) makeSpace() { r.stderr("\n") r.csi("G") @@ -676,6 +680,9 @@ func (r *LightRenderer) MaxX() int { } func (r *LightRenderer) MaxY() int { + if r.height == 0 { + r.updateTerminalSize() + } return r.height } diff --git a/src/tui/tcell.go b/src/tui/tcell.go index 85ef1dd8..1f9a832b 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -99,6 +99,8 @@ const ( AttrClear = Attr(1 << 8) ) +func (r *FullscreenRenderer) Resize(maxHeightFunc func(int) int) {} + func (r *FullscreenRenderer) defaultTheme() *ColorTheme { if _screen.Colors() >= 256 { return Dark256 diff --git a/src/tui/tui.go b/src/tui/tui.go index eb09da40..c6d71c12 100644 --- a/src/tui/tui.go +++ b/src/tui/tui.go @@ -358,6 +358,7 @@ func MakeTransparentBorder() BorderStyle { type Renderer interface { Init() + Resize(maxHeightFunc func(int) int) Pause(clear bool) Resume(clear bool, sigcont bool) Clear() -- cgit v1.2.3