Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
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();
            }
        }
Ejemplo n.º 3
0
 private void t_ChangedNickName(ChatRoomTabPage sender, ChangeNickNameEventArgs e)
 {
     _rooms.Remove(e.OldOccupant.ToString().ToLower());
     _rooms.Add(e.NewOccupant.ToString().ToLower(), sender);
 }
Ejemplo n.º 4
0
        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;
            }
        }