view.go 813 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package ui
  2. import (
  3. "github.com/rivo/tview"
  4. )
  5. type View struct {
  6. *tview.Flex
  7. GuildsTree *GuildsTree
  8. ChannelsTree *ChannelsTree
  9. MessagesText *MessagesText
  10. MessageInput *MessageInput
  11. app *Application
  12. }
  13. func newView(app *Application) *View {
  14. v := &View{
  15. Flex: tview.NewFlex(),
  16. GuildsTree: newGuildsTree(app),
  17. ChannelsTree: newChannelsTree(app),
  18. MessagesText: newMessagesText(app),
  19. MessageInput: newMessageInput(app),
  20. app: app,
  21. }
  22. left := tview.NewFlex().
  23. SetDirection(tview.FlexRow).
  24. AddItem(v.GuildsTree, 10, 1, false).
  25. AddItem(v.ChannelsTree, 0, 1, false)
  26. right := tview.NewFlex().
  27. SetDirection(tview.FlexRow).
  28. AddItem(v.MessagesText, 0, 1, false).
  29. AddItem(v.MessageInput, 3, 1, false)
  30. v.AddItem(left, 0, 1, false)
  31. v.AddItem(right, 0, 4, false)
  32. return v
  33. }