From db1b2cd53f5dc7bfbfb6ee54ad0bb0882ea2cc03 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 10 Jan 2018 22:03:56 -0500 Subject: Renderer scaffolding --- ui/types.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ui/types.go (limited to 'ui/types.go') diff --git a/ui/types.go b/ui/types.go new file mode 100644 index 0000000..a7918b5 --- /dev/null +++ b/ui/types.go @@ -0,0 +1,47 @@ +package ui + +const ( + Valid = 0 + InvalidateTabs = 1 << iota + InvalidateSidebar + InvalidateStatusBar +) + +const ( + InvalidateAll = InvalidateTabs | InvalidateSidebar | InvalidateStatusBar +) + +type Geometry struct { + row int + col int + width int + height int +} + +type AercTab interface { + Name() string + Invalid() bool + Render(at Geometry) +} + +type UIState struct { + Exit bool + InvalidPanes uint + + Panes struct { + TabList Geometry + TabView Geometry + Sidebar Geometry + StatusBar Geometry + } + + Tabs []AercTab + SelectedTab int + + Prompt struct { + Prompt *string + Text *string + Index int + Scroll int + } +} -- cgit v1.2.3