From c3c7cc9b3503417afe11a8067095534a751dfd04 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 26 Mar 2019 19:57:44 +0200 Subject: Change things --- ui/room-view.go | 54 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 24 deletions(-) (limited to 'ui/room-view.go') diff --git a/ui/room-view.go b/ui/room-view.go index 2931372..78ace59 100644 --- a/ui/room-view.go +++ b/ui/room-view.go @@ -26,6 +26,8 @@ import ( "github.com/mattn/go-runewidth" + "maunium.net/go/gomuks/debug" + "maunium.net/go/mauview" "maunium.net/go/mautrix" @@ -78,15 +80,15 @@ func NewRoomView(parent *MainView, room *rooms.Room) *RoomView { input: mauview.NewInputArea(), Room: room, - topicScreen: &mauview.ProxyScreen{OffsetX: 0, OffsetY: 0, Height: TopicBarHeight}, - contentScreen: &mauview.ProxyScreen{OffsetX: 0, OffsetY: StatusBarHeight}, - statusScreen: &mauview.ProxyScreen{OffsetX: 0, Height: StatusBarHeight}, - inputScreen: &mauview.ProxyScreen{OffsetX: 0}, + topicScreen: &mauview.ProxyScreen{OffsetX: 0, OffsetY: 0, Height: TopicBarHeight}, + contentScreen: &mauview.ProxyScreen{OffsetX: 0, OffsetY: StatusBarHeight}, + statusScreen: &mauview.ProxyScreen{OffsetX: 0, Height: StatusBarHeight}, + inputScreen: &mauview.ProxyScreen{OffsetX: 0}, ulBorderScreen: &mauview.ProxyScreen{OffsetY: StatusBarHeight, Width: UserListBorderWidth}, - ulScreen: &mauview.ProxyScreen{OffsetY: StatusBarHeight, Width: UserListWidth}, + ulScreen: &mauview.ProxyScreen{OffsetY: StatusBarHeight, Width: UserListWidth}, - parent: parent, - config: parent.config, + parent: parent, + config: parent.config, } view.content = NewMessageView(view) @@ -98,7 +100,8 @@ func NewRoomView(parent *MainView, room *rooms.Room) *RoomView { view.topic. SetText(strings.Replace(room.GetTopic(), "\n", " ", -1)). - SetTextColor(tcell.ColorDarkGreen) + SetTextColor(tcell.ColorWhite). + SetBackgroundColor(tcell.ColorDarkGreen) view.status.SetBackgroundColor(tcell.ColorDimGray) @@ -185,12 +188,10 @@ const ( UserListWidth = 20 StaticHorizontalSpace = UserListBorderWidth + UserListWidth - TopicBarHeight = 1 - StatusBarHeight = 1 - InputBarHeight = 1 - StaticVerticalSpace = TopicBarHeight + StatusBarHeight + InputBarHeight + TopicBarHeight = 1 + StatusBarHeight = 1 - MaxInputHeight + MaxInputHeight = 5 ) func (view *RoomView) Draw(screen mauview.Screen) { @@ -199,15 +200,6 @@ func (view *RoomView) Draw(screen mauview.Screen) { return } - // Calculate actual grid based on view rectangle and constants defined above. - var ( - contentHeight = height - StaticVerticalSpace - contentWidth = width - StaticHorizontalSpace - ) - if view.config.Preferences.HideUserList { - contentWidth = width - } - if view.prevScreen != screen { view.topicScreen.Parent = screen view.contentScreen.Parent = screen @@ -218,6 +210,8 @@ func (view *RoomView) Draw(screen mauview.Screen) { view.prevScreen = screen } + debug.Print(screen) + view.input.PrepareDraw(width) inputHeight := view.input.GetTextHeight() if inputHeight > MaxInputHeight { @@ -225,7 +219,11 @@ func (view *RoomView) Draw(screen mauview.Screen) { } else if inputHeight < 1 { inputHeight = 1 } - contentHeight -= inputHeight + contentHeight := height - inputHeight - TopicBarHeight - StatusBarHeight + contentWidth := width - StaticHorizontalSpace + if view.config.Preferences.HideUserList { + contentWidth = width + } view.topicScreen.Width = width view.contentScreen.Width = contentWidth @@ -261,7 +259,15 @@ func (view *RoomView) OnPasteEvent(event mauview.PasteEvent) bool { } func (view *RoomView) OnMouseEvent(event mauview.MouseEvent) bool { - return view.content.OnMouseEvent(event) + switch { + case view.contentScreen.IsInArea(event.Position()): + return view.content.OnMouseEvent(view.contentScreen.OffsetMouseEvent(event)) + case view.topicScreen.IsInArea(event.Position()): + return view.topic.OnMouseEvent(view.topicScreen.OffsetMouseEvent(event)) + case view.inputScreen.IsInArea(event.Position()): + return view.input.OnMouseEvent(view.inputScreen.OffsetMouseEvent(event)) + } + return false } func (view *RoomView) SetCompletions(completions []string) { -- cgit v1.2.3