4 "github.com/layeh/barnard/uiterm"
5 "github.com/layeh/gumble/gumble"
10 Channel *gumble.Channel
13 func (ti TreeItem) String() string {
17 if ti.Channel != nil {
18 return ti.Channel.Name
23 func (ti TreeItem) TreeItemStyle(fg, bg uiterm.Attribute, active bool) (uiterm.Attribute, uiterm.Attribute) {
24 if ti.Channel != nil {
33 func (b *Barnard) TreeItemSelect(ui *uiterm.Ui, tree *uiterm.Tree, item uiterm.TreeItem) {
34 treeItem := item.(TreeItem)
35 if treeItem.Channel != nil {
36 b.Client.Self.Move(treeItem.Channel)
40 func (b *Barnard) TreeItem(item uiterm.TreeItem) []uiterm.TreeItem {
42 if ti, ok := item.(TreeItem); !ok {
43 root := b.Client.Channels[0]
47 return []uiterm.TreeItem{
56 if treeItem.User != nil {
60 users := []uiterm.TreeItem{}
61 for _, user := range treeItem.Channel.Users {
62 users = append(users, TreeItem{
67 channels := []uiterm.TreeItem{}
68 for _, subchannel := range treeItem.Channel.Children {
69 channels = append(channels, TreeItem{
74 return append(users, channels...)