From 14903e0cdcd3ba78face2cbe0ad0287da269a1ea Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 22 May 2018 22:06:48 +0300 Subject: Add bare mode and fix terminal resize bug. Fixes #48 --- ui/view-main.go | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) (limited to 'ui/view-main.go') diff --git a/ui/view-main.go b/ui/view-main.go index 74a6ce1..bda5d80 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -48,6 +48,18 @@ type MainView struct { gmx ifc.Gomuks config *config.Config parent *GomuksUI + + hideUserList bool + hideRoomList bool + bareDisplay bool +} + +func (view *MainView) ShowRoomList() bool { + return !view.bareDisplay && !view.hideRoomList +} + +func (view *MainView) ShowUserList() bool { + return !view.bareDisplay && !view.hideUserList } func (ui *GomuksUI) NewMainView() tview.Primitive { @@ -63,10 +75,11 @@ func (ui *GomuksUI) NewMainView() tview.Primitive { parent: ui, } - mainView.SetDirection(tview.FlexColumn) - mainView.AddItem(mainView.roomList, 25, 0, false) - mainView.AddItem(widget.NewBorder(), 1, 0, false) - mainView.AddItem(mainView.roomView, 0, 1, true) + mainView. + SetDirection(tview.FlexColumn). + AddItem(mainView.roomList, 25, 0, false). + AddItem(widget.NewBorder(), 1, 0, false). + AddItem(mainView.roomView, 0, 1, true) mainView.BumpFocus(nil) ui.mainView = mainView @@ -74,6 +87,15 @@ func (ui *GomuksUI) NewMainView() tview.Primitive { return mainView } +func (view *MainView) Draw(screen tcell.Screen) { + if !view.ShowRoomList() { + view.roomView.SetRect(view.GetRect()) + view.roomView.Draw(screen) + } else { + view.Flex.Draw(screen) + } +} + func (view *MainView) BumpFocus(roomView *RoomView) { view.lastFocusTime = time.Now() view.MarkRead(roomView) @@ -195,16 +217,20 @@ func (view *MainView) KeyEventHandler(roomView *RoomView, key *tcell.EventKey) * view.BumpFocus(roomView) k := key.Key() + c := key.Rune() if key.Modifiers() == tcell.ModCtrl || key.Modifiers() == tcell.ModAlt { - switch k { - case tcell.KeyDown: + switch { + case k == tcell.KeyDown: view.SwitchRoom(view.roomList.Next()) - case tcell.KeyUp: + case k == tcell.KeyUp: view.SwitchRoom(view.roomList.Previous()) - case tcell.KeyEnter: + case k == tcell.KeyEnter: searchModal := NewFuzzySearchModal(view, 42, 12) view.parent.views.AddPage("fuzzy-search-modal", searchModal, true, true) view.parent.app.SetFocus(searchModal) + case c == 'l': + view.bareDisplay = !view.bareDisplay + view.parent.Render() default: return key } -- cgit v1.2.3