4 "layeh.com/barnard/uiterm"
5 "layeh.com/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 {
46 if ti, ok := item.(TreeItem); !ok {
47 root := b.Client.Channels[0]
51 return []uiterm.TreeItem{
60 if treeItem.User != nil {
64 users := []uiterm.TreeItem{}
65 for _, user := range treeItem.Channel.Users {
66 users = append(users, TreeItem{
71 channels := []uiterm.TreeItem{}
72 for _, subchannel := range treeItem.Channel.Children {
73 channels = append(channels, TreeItem{
78 return append(users, channels...)