Ejemplo n.º 1
0
 private void chatPanel_MessageNotification(BitChat chat, BitChat.Peer messageSender, string message)
 {
     if (!chat.Mute)
     {
         _sndMessageNotification.Play();
     }
 }
Ejemplo n.º 2
0
 public bool IsThisDownloadPeerSet(BitChat.Peer fromPeer)
 {
     lock (peerLock)
     {
         return((_peer != null) && (fromPeer.Equals(_peer)));
     }
 }
Ejemplo n.º 3
0
        internal void peer_StateChanged(object sender, EventArgs e)
        {
            BitChat.Peer peer = sender as BitChat.Peer;

            string message;

            if (peer.IsOnline)
            {
                message = peer.PeerCertificate.IssuedTo.Name + " is online";
            }
            else
            {
                message = peer.PeerCertificate.IssuedTo.Name + " is offline";
            }

            AddMessage(new ChatMessageInfoItem(message, DateTime.Now));

            if (!_chatItem.Selected)
            {
                _chatItem.SetNewMessage(message);
            }

            if (_chat.NetworkType == BitChatClient.Network.BitChatNetworkType.PrivateChat)
            {
                _chatItem.SetTitle(peer.PeerCertificate.IssuedTo.Name);
                this.Title = peer.PeerCertificate.IssuedTo.Name + " <" + peer.PeerCertificate.IssuedTo.EmailAddress.Address + ">";
            }
        }
Ejemplo n.º 4
0
        public frmMessageInfo(BitChat.Peer selfPeer, MessageItem message)
        {
            _message = message;

            this.SuspendLayout();

            InitializeComponent();

            chatMessageDisplay                  = new ChatMessageTextItem(selfPeer, _message);
            chatMessageDisplay.Anchor           = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            chatMessageDisplay.Width            = chatMessagePanel.Width - 30;
            chatMessageDisplay.ContextMenuStrip = null;

            if (chatMessageDisplay.Height > 150)
            {
                chatMessagePanel.Height = 140;
            }
            else
            {
                chatMessagePanel.Height = chatMessageDisplay.Height + 10;

                int heightDiff = 150 - chatMessagePanel.Height;

                this.Height   -= heightDiff;
                listView1.Top -= heightDiff;
                btnClose.Top  -= heightDiff;
            }

            chatMessagePanel.Controls.Add(chatMessageDisplay);

            this.ResumeLayout();
        }
 private void chat_MessageReceived(BitChat.Peer peer, MessageItem message)
 {
     if (message.Type != MessageType.Info)
     {
         MessageNotification(_chat, peer, message.Message);
     }
 }
        private void chat_FileAdded(BitChat.Peer peer, MessageItem message, SharedFile sharedFile)
        {
            ChatMessageFileItem fileItem = new ChatMessageFileItem(peer, message, sharedFile);

            AddMessage(fileItem, true);

            fileItem.ShareFile += FileItem_ShareFile;
        }
        private void chat_PeerAdded(BitChat sender, BitChat.Peer peer)
        {
            _chat.WriteInfoMessage(peer.PeerCertificate.IssuedTo.Name + " joined chat");

            if (sender.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat)
            {
                this.Title = peer.PeerCertificate.IssuedTo.Name + " <" + peer.PeerCertificate.IssuedTo.EmailAddress.Address + ">";
            }
        }
Ejemplo n.º 8
0
 public void RemoveDownloadPeer(BitChat.Peer peer)
 {
     lock (peerLock)
     {
         if ((_peer != null) && (peer.Equals(_peer)))
         {
             _peer = null;
         }
     }
 }
Ejemplo n.º 9
0
        private void _chat_PeerAdded(BitChat sender, BitChat.Peer peer)
        {
            AddMessage(new ChatMessageInfoItem(peer.PeerCertificate.IssuedTo.Name + " joined chat", DateTime.Now));

            if (sender.NetworkType == BitChatClient.Network.BitChatNetworkType.PrivateChat)
            {
                _chatItem.SetTitle(peer.PeerCertificate.IssuedTo.Name);
                this.Title = peer.PeerCertificate.IssuedTo.Name + " <" + peer.PeerCertificate.IssuedTo.EmailAddress.Address + ">";
            }
        }
Ejemplo n.º 10
0
        private void chat_PeerAdded(BitChat chat, BitChat.Peer peer)
        {
            if (_chat.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat)
            {
                SetTitle(peer.PeerCertificate.IssuedTo.Name);

                _peer = peer;
                peer.ProfileImageChanged += peer_ProfileImageChanged;
                peer.StateChanged        += peer_StateChanged;
            }
        }
Ejemplo n.º 11
0
 private void chat_FileAdded(BitChat.Peer peer, MessageItem message, BitChatCore.FileSharing.SharedFile sharedFile)
 {
     if (peer.IsSelf)
     {
         SetLastMessage("file was shared", message.MessageDate, true);
     }
     else
     {
         SetLastMessage(peer.PeerCertificate.IssuedTo.Name + " shared a file", message.MessageDate, true);
     }
 }
 private void chat_MessageDeliveryNotification(BitChat.Peer sender, MessageItem message)
 {
     foreach (Control item in customListView1.Controls)
     {
         ChatMessageTextItem msgItem = item as ChatMessageTextItem;
         if ((msgItem != null) && (msgItem.Message.MessageNumber == message.MessageNumber))
         {
             msgItem.DeliveryNotification(message);
             break;
         }
     }
 }
Ejemplo n.º 13
0
        private void peer_StateChanged(object sender, EventArgs e)
        {
            BitChat.Peer peer = sender as BitChat.Peer;

            if (peer.IsOnline)
            {
                MessageNotification(_chat, null, peer.PeerCertificate.IssuedTo.Name + " is online");
            }
            else
            {
                MessageNotification(_chat, null, peer.PeerCertificate.IssuedTo.Name + " is offline");
            }
        }
Ejemplo n.º 14
0
        private void _chat_MessageReceived(BitChat.Peer sender, string message)
        {
            bool myMessage = sender.PeerCertificate.IssuedTo.EmailAddress.Address.Equals(_chat.LocalCertificate.IssuedTo.EmailAddress.Address);

            AddMessage(new ChatMessageItem(sender, message, DateTime.Now, myMessage));

            if (!_chatItem.Selected)
            {
                _chatItem.SetNewMessage(sender.PeerCertificate.IssuedTo.Name + ": " + message);
            }

            ShowPeerTypingNotification(sender.PeerCertificate.IssuedTo.Name, false);
        }
        private void chat_FileAdded(BitChat.Peer peer, MessageItem message, SharedFile sharedFile)
        {
            SharedFileItem item = new SharedFileItem(sharedFile, _chat);

            item.FileRemoved += sharedFile_FileRemoved;
            item.ShareFile   += view_ShareFile;

            lstFiles.AddItem(item);

            if (!peer.IsSelf)
            {
                MessageNotification(_chat, null, peer.PeerCertificate.IssuedTo.Name + " shared a file");
            }
        }
Ejemplo n.º 16
0
            public bool SetDownloadPeer(BitChat.Peer peer)
            {
                lock (peerLock)
                {
                    if ((_peer == null) || (peer == null))
                    {
                        _peer         = peer;
                        _lastResponse = DateTime.UtcNow;
                        return(true);
                    }
                }

                return(false);
            }
Ejemplo n.º 17
0
        internal void AddPeer(BitChat.Peer peer)
        {
            lock (_peers)
            {
                if (!_peers.Contains(peer))
                {
                    _peers.Add(peer);

                    if (PeerCountUpdate != null)
                    {
                        RaiseEventPeerCountUpdate();
                    }
                }
            }
        }
Ejemplo n.º 18
0
        internal void AddSeeder(BitChat.Peer seeder)
        {
            lock (_seeders)
            {
                if (!_seeders.Contains(seeder))
                {
                    _seeders.Add(seeder);

                    if (PeerCountUpdate != null)
                    {
                        RaiseEventPeerCountUpdate();
                    }
                }
            }
        }
Ejemplo n.º 19
0
        private void peer_StateChanged(object sender, EventArgs e)
        {
            BitChat.Peer peer = sender as BitChat.Peer;

            SetTitle(peer.PeerCertificate.IssuedTo.Name);

            if (peer.IsOnline)
            {
                peer_ProfileImageChanged(sender, e);
            }
            else
            {
                SetImageIcon(null);
            }
        }
Ejemplo n.º 20
0
        internal bool PeerExists(BitChat.Peer peer)
        {
            lock (_seeders)
            {
                if (_seeders.Contains(peer))
                {
                    return(true);
                }
            }

            lock (_peers)
            {
                return(_peers.Contains(peer));
            }
        }
Ejemplo n.º 21
0
        private void chatPanel_MessageNotification(BitChat chat, BitChat.Peer messageSender, string message)
        {
            if (!chat.Mute && (!this.Visible || !ApplicationIsActivated()))
            {
                if ((messageSender == null) || (chat.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat))
                {
                    notifyIcon1.ShowBalloonTip(30000, chat.NetworkDisplayName + " - Bit Chat", message, ToolTipIcon.Info);
                }
                else
                {
                    notifyIcon1.ShowBalloonTip(30000, chat.NetworkDisplayName + " - Bit Chat", messageSender.PeerCertificate.IssuedTo.Name + ": " + message, ToolTipIcon.Info);
                }

                _sndMessageNotification.Play();
            }
        }
Ejemplo n.º 22
0
        private void chatPanel_MessageNotification(BitChat sender, BitChat.Peer messageSender, string message)
        {
            if (!this.Visible || !ApplicationIsActivated())
            {
                if (messageSender == null)
                {
                    notifyIcon1.ShowBalloonTip(30000, sender.NetworkName + " - Bit Chat", message, ToolTipIcon.Info);
                }
                else
                {
                    notifyIcon1.ShowBalloonTip(30000, sender.NetworkName + " - Bit Chat", messageSender.PeerCertificate.IssuedTo.Name + ": " + message, ToolTipIcon.Info);
                }

                sndMessageNotification.Play();
            }
        }
Ejemplo n.º 23
0
        public UserListItem(BitChat.Peer peer)
        {
            InitializeComponent();

            _peer = peer;

            _peer.StateChanged         += peer_StateChanged;
            _peer.NetworkStatusUpdated += peer_NetworkStatusUpdated;
            _peer.ProfileImageChanged  += peer_ProfileImageChanged;

            if (_peer.PeerCertificate.IssuedTo.FieldExists(CertificateProfileFlags.Name))
            {
                string name = _peer.PeerCertificate.IssuedTo.Name;

                if (name.Length > 0)
                {
                    labIcon.Text = name.Substring(0, 1).ToUpper();

                    int x = name.LastIndexOf(" ", StringComparison.CurrentCultureIgnoreCase);
                    if (x > 0)
                    {
                        labIcon.Text += name.Substring(x + 1, 1).ToUpper();
                    }
                    else if (name.Length > 1)
                    {
                        labIcon.Text += name.Substring(1, 1).ToLower();
                    }
                }
                else
                {
                    labIcon.Text = "";
                }

                labName.Text = name;
            }
            else
            {
                labIcon.Text      = "";
                labName.Text      = "{missing name}";
                labName.ForeColor = Color.Red;
            }

            labEmail.Text = _peer.PeerCertificate.IssuedTo.EmailAddress.Address;

            peer_StateChanged(null, null);
            peer_NetworkStatusUpdated(null, null);
        }
Ejemplo n.º 24
0
        private void chat_PeerTyping(BitChat chat, BitChat.Peer peer)
        {
            //show typing notification
            if ((_chat.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat) && !peer.IsSelf)
            {
                labLastMessage.Text = "typing...";
            }
            else
            {
                labLastMessage.Text = peer.PeerCertificate.IssuedTo.Name + " is typing...";
            }

            labLastMessage.ForeColor = Color.FromArgb(255, 213, 89);

            timerTypingNotification.Stop();
            timerTypingNotification.Start();
        }
Ejemplo n.º 25
0
        public ChatMessageItem(BitChat.Peer senderPeer, string message, DateTime date, bool myMessage)
        {
            InitializeComponent();

            _senderPeer = senderPeer;
            _date       = date;

            lblUsername.Text = _senderPeer.PeerCertificate.IssuedTo.Name;
            txtMessage.Text  = message;
            lblDateTime.Text = date.ToShortTimeString();

            if (myMessage)
            {
                lblUsername.ForeColor = Color.FromArgb(63, 186, 228);
            }

            OnResize(EventArgs.Empty);
        }
        private void chat_MessageReceived(BitChat.Peer sender, MessageItem message)
        {
            if (message.Type == MessageType.Info)
            {
                AddMessage(new ChatMessageInfoItem(message), sender.IsSelf);
            }
            else
            {
                AddMessage(new ChatMessageTextItem(sender, message), sender.IsSelf);

                string msg = message.Message;

                if (msg.Length > 100)
                {
                    msg = msg.Substring(0, 100);
                }

                ShowPeerTypingNotification(sender.PeerCertificate.IssuedTo.Name, false);
            }
        }
Ejemplo n.º 27
0
        private void chat_MessageReceived(BitChat.Peer peer, MessageItem message)
        {
            if (message.Type != MessageType.Info)
            {
                string msg = message.Message;

                if (msg.Length > 100)
                {
                    msg = msg.Substring(0, 100);
                }

                if (peer.IsSelf)
                {
                    SetLastMessage(msg, message.MessageDate, true);
                }
                else
                {
                    SetLastMessage(peer.PeerCertificate.IssuedTo.Name + ": " + msg, message.MessageDate, true);
                }
            }
        }
Ejemplo n.º 28
0
        public ChatListItem(BitChat chat)
        {
            InitializeComponent();

            _chat = chat;

            SetTitle(_chat.NetworkDisplayName);
            labLastMessage.Text = "";
            SetLastMessageDate();
            ResetUnreadMessageCount();

            _chat.FileAdded       += chat_FileAdded;
            _chat.MessageReceived += chat_MessageReceived;
            _chat.PeerAdded       += chat_PeerAdded;
            _chat.PeerTyping      += chat_PeerTyping;

            if (_chat.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat)
            {
                foreach (BitChat.Peer peer in _chat.GetPeerList())
                {
                    if (!peer.IsSelf)
                    {
                        _peer = peer;
                        peer.ProfileImageChanged += peer_ProfileImageChanged;
                        peer.StateChanged        += peer_StateChanged;
                    }
                }
            }
            else
            {
                SetImageIcon(_chat.GroupImage);

                _chat.GroupImageChanged += chat_GroupImageChanged;
            }

            this.GoOffline = (_chat.NetworkStatus == BitChatCore.Network.BitChatNetworkStatus.Offline);

            _chatPanel      = new BitChatPanel(_chat, this);
            _chatPanel.Dock = DockStyle.Fill;
        }
Ejemplo n.º 29
0
        internal void RemovePeerOrSeeder(BitChat.Peer peer)
        {
            //remove from peers
            lock (_peers)
            {
                if (_peers.Remove(peer))
                {
                    if (PeerCountUpdate != null)
                    {
                        RaiseEventPeerCountUpdate();
                    }
                }
            }

            //remove from seeds
            lock (_seeders)
            {
                if (_seeders.Remove(peer))
                {
                    if (PeerCountUpdate != null)
                    {
                        RaiseEventPeerCountUpdate();
                    }
                }
            }

            //remove from downloading blocks
            if (_downloadingBlocks != null)
            {
                lock (_downloadingBlocks)
                {
                    foreach (FileBlockDownloadManager download in _downloadingBlocks)
                    {
                        download.RemoveDownloadPeer(peer);
                    }
                }
            }
        }
        private void peer_StateChanged(object sender, EventArgs e)
        {
            BitChat.Peer peer = sender as BitChat.Peer;

            string message;

            if (peer.IsOnline)
            {
                message = peer.PeerCertificate.IssuedTo.Name + " is online";
            }
            else
            {
                message = peer.PeerCertificate.IssuedTo.Name + " is offline";
            }

            _chat.WriteInfoMessage(message);

            if (_chat.NetworkType == BitChatCore.Network.BitChatNetworkType.PrivateChat)
            {
                _view.Title = peer.PeerCertificate.IssuedTo.Name + " <" + peer.PeerCertificate.IssuedTo.EmailAddress.Address + ">";
            }

            MessageNotification(_chat, null, message);
        }
Ejemplo n.º 31
0
 public void RemoveDownloadPeer(BitChat.Peer peer)
 {
     lock (peerLock)
     {
         if ((_peer != null) && (peer.Equals(_peer)))
             _peer = null;
     }
 }
Ejemplo n.º 32
0
            public bool SetDownloadPeer(BitChat.Peer peer)
            {
                lock (peerLock)
                {
                    if ((_peer == null) || (peer == null))
                    {
                        _peer = peer;
                        _lastResponse = DateTime.UtcNow;
                        return true;
                    }
                }

                return false;
            }