diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-01-13 12:39:06 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-01-13 12:39:06 -0500 |
commit | 648ca983f6b2ef29378c32d1ebb6d67798f4af6d (patch) | |
tree | 4e7ab40def0adafbb0e8170a26bd610ff035cafc /widgets/account.go | |
parent | 2f5c1db63c55173d15a7ab17a9b75564fabd3648 (diff) | |
download | aerc-648ca983f6b2ef29378c32d1ebb6d67798f4af6d.tar.gz |
Add basic account widget, populate real acct views
Diffstat (limited to 'widgets/account.go')
-rw-r--r-- | widgets/account.go | 41 |
1 files changed, 41 insertions, 0 deletions
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) +} |