From 1418e1b9dc41d8f69bccb8de0fe0f1fb6835ce11 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Mon, 26 Feb 2018 22:54:39 -0500 Subject: Split UI library and widgets --- ui/borders.go | 73 ----------------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 ui/borders.go (limited to 'ui/borders.go') diff --git a/ui/borders.go b/ui/borders.go deleted file mode 100644 index 08071ad..0000000 --- a/ui/borders.go +++ /dev/null @@ -1,73 +0,0 @@ -package ui - -import ( - tb "github.com/nsf/termbox-go" -) - -const ( - BORDER_LEFT = 1 << iota - BORDER_TOP = 1 << iota - BORDER_RIGHT = 1 << iota - BORDER_BOTTOM = 1 << iota -) - -type Bordered struct { - borders uint - content Drawable - onInvalidate func(d Drawable) -} - -func NewBordered(content Drawable, borders uint) *Bordered { - b := &Bordered{ - borders: borders, - content: content, - } - content.OnInvalidate(b.contentInvalidated) - return b -} - -func (bordered *Bordered) contentInvalidated(d Drawable) { - bordered.Invalidate() -} - -func (bordered *Bordered) Invalidate() { - if bordered.onInvalidate != nil { - bordered.onInvalidate(bordered) - } -} - -func (bordered *Bordered) OnInvalidate(onInvalidate func(d Drawable)) { - bordered.onInvalidate = onInvalidate -} - -func (bordered *Bordered) Draw(ctx *Context) { - x := 0 - y := 0 - width := ctx.Width() - height := ctx.Height() - cell := tb.Cell{ - Ch: ' ', - Fg: tb.ColorBlack, - Bg: tb.ColorWhite, - } - if bordered.borders&BORDER_LEFT != 0 { - ctx.Fill(0, 0, 1, ctx.Height(), cell) - x += 1 - width -= 1 - } - if bordered.borders&BORDER_TOP != 0 { - ctx.Fill(0, 0, ctx.Width(), 1, cell) - y += 1 - height -= 1 - } - if bordered.borders&BORDER_RIGHT != 0 { - ctx.Fill(ctx.Width()-1, 0, 1, ctx.Height(), cell) - width -= 1 - } - if bordered.borders&BORDER_BOTTOM != 0 { - ctx.Fill(0, ctx.Height()-1, ctx.Width(), 1, cell) - height -= 1 - } - subctx := ctx.Subcontext(x, y, width, height) - bordered.content.Draw(subctx) -} -- cgit 1.4.1-2-gfad0