guilds_tree.go 761 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "github.com/diamondburned/arikawa/v3/discord"
  4. "github.com/rivo/tview"
  5. )
  6. type GuildsTree struct {
  7. *tview.TreeView
  8. }
  9. func newGuildsTree() *GuildsTree {
  10. gt := &GuildsTree{
  11. TreeView: tview.NewTreeView(),
  12. }
  13. root := tview.NewTreeNode("")
  14. gt.SetRoot(root)
  15. gt.SetTopLevel(1)
  16. gt.SetSelectedFunc(gt.onSelected)
  17. gt.SetBorder(true)
  18. gt.SetBorderPadding(cfg.BorderPadding())
  19. return gt
  20. }
  21. func (gt *GuildsTree) newGuild(n *tview.TreeNode, gid discord.GuildID) error {
  22. g, err := discordState.Cabinet.Guild(gid)
  23. if err != nil {
  24. return err
  25. }
  26. gn := tview.NewTreeNode(g.Name)
  27. gn.SetReference(g.ID)
  28. n.AddChild(gn)
  29. return nil
  30. }
  31. func (gt *GuildsTree) onSelected(n *tview.TreeNode) {
  32. ref := n.GetReference()
  33. if ref == nil {
  34. }
  35. }