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(active bool) (uiterm.Attribute, uiterm.Attribute) {
24 fg := uiterm.ColorDefault
25 bg := uiterm.ColorBlack
26 if ti.Channel != nil {
30 bg |= uiterm.AttrReverse
35 func (b *Barnard) TreeItemSelect(ui *uiterm.Ui, tree *uiterm.Tree, item uiterm.TreeItem) {
36 treeItem := item.(TreeItem)
37 if treeItem.Channel != nil {
38 b.Client.Self().Move(treeItem.Channel)
42 func (b *Barnard) TreeItem(item uiterm.TreeItem) []uiterm.TreeItem {
44 if ti, ok := item.(TreeItem); !ok {
45 root := b.Client.Channels()[0]
49 return []uiterm.TreeItem{
58 if treeItem.User != nil {
62 users := []uiterm.TreeItem{}
63 for _, user := range treeItem.Channel.Users() {
64 users = append(users, TreeItem{
69 channels := []uiterm.TreeItem{}
70 for _, subchannel := range treeItem.Channel.Channels() {
71 channels = append(channels, TreeItem{
76 return append(users, channels...)