private void t_LeftRoom(ChatRoomTabPage sender, EventArgs e) { _rooms.Remove(sender.Occupant.ToString().ToLower()); tabRooms.TabPages.Remove(sender); sender.LeftRoom -= new ChatRoomTabPage.LeftRoomDelegate(t_LeftRoom); if (tabRooms.TabCount == 0) { txtHistory.Clear(); txtOutgoingMessage.Clear(); lstUsers.DataSource = null; lstUsers.Items.Clear(); lblNotInRoom.Visible = true; grpChatRoom.Text = string.Empty; } else tabRooms.TabIndex = 0; }
public void JoinRoom( JabberID occupantJID) { if ( _rooms.Contains(occupantJID.ToString().ToLower()) ) { ChatRoomTabPage t = (ChatRoomTabPage)_rooms[occupantJID.ToString().ToLower()]; tabRooms.SelectedTab = t; } else { ChatRoomTabPage t = new ChatRoomTabPage(occupantJID, this, _sm); tabRooms.TabPages.Add(t); _rooms.Add(occupantJID.ToString().ToLower(), t); lblNotInRoom.Visible = false; t.LeftRoom += new ChatRoomTabPage.LeftRoomDelegate(t_LeftRoom); t.ChangedNickName += new ChatRoomTabPage.ChangedNickNameDelegate(t_ChangedNickName); t.JoinRoom(); } }
private void t_ChangedNickName(ChatRoomTabPage sender, ChangeNickNameEventArgs e) { _rooms.Remove(e.OldOccupant.ToString().ToLower()); _rooms.Add(e.NewOccupant.ToString().ToLower(), sender); }
public static bool ProcessRoomMessage(string msg, ChatRoomTabPage rm) { try { if ( msg.StartsWith(Leave) || msg.StartsWith(Part) ) rm.LeaveRoom(); else if ( msg.StartsWith(Topic) ) rm.ChangeSubject(GetCommandValue(Topic, msg)); else if ( msg.StartsWith(Subject) ) rm.ChangeSubject(GetCommandValue(Subject, msg)); else if ( msg.StartsWith(Nick) ) rm.ChangeNickName(new JabberID(rm.Room.ToString(), GetCommandValue(Nick, msg))); else if ( msg.StartsWith(Invite) ) rm.Invite(JabberID.Parse(GetCommandValue(Invite, msg))); else if ( msg.StartsWith(Message) ) { string[] parts = GetCommandParts(msg); if ( parts.Length < 3 ) throw new ArgumentException("Unsupported number of command arguments"); string[] messageContent = new string[parts.Length - 3]; Array.Copy(parts, 2, messageContent, 0, parts.Length - 2); rm.SendPrivateMessage(parts[1], string.Join(" ", messageContent)); } else if ( msg.StartsWith(Clear) ) rm.ClearMessageHistory(); else return false; return true; } catch ( Exception ex) { MessageBox.Show(string.Concat("Error processing command: ", ex.Message)); return false; } }