From 648ca983f6b2ef29378c32d1ebb6d67798f4af6d Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 13 Jan 2019 12:39:06 -0500 Subject: Add basic account widget, populate real acct views --- widgets/account.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 widgets/account.go (limited to 'widgets/account.go') diff --git a/widgets/account.go b/widgets/account.go new file mode 100644 index 0000000..a2c5ce7 --- /dev/null +++ b/widgets/account.go @@ -0,0 +1,41 @@ +package widgets + +import ( + "git.sr.ht/~sircmpwn/aerc2/config" + "git.sr.ht/~sircmpwn/aerc2/lib/ui" +) + +type AccountView struct { + conf *config.AccountConfig + grid *ui.Grid + onInvalidate func(d ui.Drawable) +} + +func NewAccountView(conf *config.AccountConfig, + statusbar ui.Drawable) *AccountView { + + grid := ui.NewGrid().Rows([]ui.GridSpec{ + {ui.SIZE_WEIGHT, 1}, + {ui.SIZE_EXACT, 1}, + }).Columns([]ui.GridSpec{ + {ui.SIZE_EXACT, 20}, + {ui.SIZE_WEIGHT, 1}, + }) + grid.AddChild(ui.NewBordered( + ui.NewFill('s'), ui.BORDER_RIGHT)).Span(2, 1) + grid.AddChild(ui.NewFill('.')).At(0, 1) + grid.AddChild(statusbar).At(1, 1) + return &AccountView{conf: conf, grid: grid} +} + +func (acct *AccountView) OnInvalidate(onInvalidate func(d ui.Drawable)) { + acct.grid.OnInvalidate(onInvalidate) +} + +func (acct *AccountView) Invalidate() { + acct.grid.Invalidate() +} + +func (acct *AccountView) Draw(ctx *ui.Context) { + acct.grid.Draw(ctx) +} -- cgit v1.2.3