9 public class ChannelControl
: IChannelControl
12 IDiscussionPanel messages
;
13 ConnectionControl connCtrl
;
15 public ChannelControl(IrcChannel chan
, ConnectionControl connCtrl
)
18 this.connCtrl
= connCtrl
;
21 chan
.NewUserList
+= NewUserListHandler
;
22 chan
.MessageReceived
+= MessageReceivedHandler
;
25 public void SendMessage(string message
)
27 chan
.SendMessage(message
);
30 public string ChannelName
{
36 public void CloseChannel()
40 void UpdatePresentation()
42 messages
= GuiFactory
.Factory
.GetDiscussionPanel(connCtrl
.Presentation
, this);
43 connCtrl
.AddChildDiscussion(messages
);
44 Logger
.Debug("Added new chan");
47 #region Events handlers
48 void NewUserListHandler(object sender
, UserListEventArgs e
)
50 Logger
.Debug("New user list for : " + chan
.Name
);
52 string[] usersList
= new string[e
.Users
.Length
];
53 for (int i
= 0; i
< e
.Users
.Length
; i
++)
54 usersList
[i
] = e
.Users
[i
].ToString();
56 Array
.Sort
<string>(usersList
, StringComparer
.InvariantCultureIgnoreCase
);
58 messages
.AddUsers(usersList
);
62 void MessageReceivedHandler(object sender
, ChannelMessageEventArgs e
)
64 Logger
.Debug("Message received from chan : " + chan
.Name
);
65 bool isHl
= e
.Message
.IndexOf(chan
.ParentConnection
.Nick
) != -1;
66 messages
.AddNewMessage(e
.Author
, e
.Message
, isHl
);