Beispiel #1
0
        private void RosterItem_AvatarChanged(object sender, EventArgs e)
        {
            RosterItem  ri = (RosterItem)sender;
            ContactItem ci = ContactListPanel.GetContactItem(ri.Jid.Bare);

            if (ci != null)
            {
                ci.Image = ri.Avatar;
            }
        }
Beispiel #2
0
        private void PresenceChanged(object sender, PresenceItemEventArgs e)
        {
            RosterItem ri = (RosterItem)sender;

            jabber.protocol.client.Presence pres = ri.GetPresence();

            if (pres == null)
            {
                pres = e.Item;
            }

            ContactItem ci = null;

            if (pres != null)
            {
                ci = ContactListPanel.GetContactItem(ri.Jid.Bare);

                if (pres.Status != null)
                {
                    ci.TextLineTwo = pres.Status;
                }
                else if (pres.Show != null)
                {
                    ci.TextLineTwo = pres.Show;
                }
                else
                {
                    ci.TextLineTwo = "Online";
                }
            }

            switch (pres.Type)
            {
            case jabber.protocol.client.PresenceType.available:
                if (!(ci == null))
                {
                    ci.Enabled = true;
                    ci.Visible = true;
                    ci.Image   = ri.Avatar;
                }
                break;

            case jabber.protocol.client.PresenceType.unavailable:
                if (ci != null)
                {
                    ci.Enabled = false;
                    ci.Visible = false;
                }
                break;
            }
        }
Beispiel #3
0
        private void OnConnect(object sender, EventArgs e)
        {
            // Switch from login mode to contact list mode
            ContactListPanel.Show();
            LoginPanel.Hide();

            LogoffMenu.Enabled = true;
            AddBuddyToolStripMenuItem.Enabled    = true;
            ServerDiscoToolStripMenuItem.Enabled = true;

            PopulateAwayMessages();

            UserLabel.Text         = XmppGlobal.Connection.Username;
            StatusChooser1.Text    = "Online";
            StatusChooser1.Enabled = true;
        }
Beispiel #4
0
        private void Connection_Disconnected(object sender, EventArgs e)
        {
            // Switch from contact list mode to login mode
            LoginPanel.Show();
            ContactListPanel.Hide();
            ContactListPanel.Controls.Clear();

            LogoffMenu.Enabled = false;
            AddBuddyToolStripMenuItem.Enabled    = false;
            ServerDiscoToolStripMenuItem.Enabled = false;

            StatusChooser1.Text    = "Offline";
            StatusChooser1.Enabled = false;
            StatusPanel.Controls.Remove(away_status_bar);
            away_status_bar = null;

            ConnectingLabel.Visible   = false;
            ConnectingSpinner.Visible = false;
            ConnectButton.Enabled     = true;
            AcceptButton = ConnectButton;
        }
Beispiel #5
0
        private void GotRosterItem(object sender, RosterItemEventArgs e)
        {
            if ((e.Item.ParentNode.ParentNode as XmlElement).GetAttribute("type") != "result")
            {
                return;
            }

            if (e.Item.Subscription != jabber.protocol.iq.Subscription.both && e.Item.Subscription != jabber.protocol.iq.Subscription.to)
            {
                return;
            }

            string group = "Unfiled";

            if (e.RosterItem.JabberRosterItem.GetGroups().Length > 0)
            {
                group = e.RosterItem.JabberRosterItem.GetGroups()[0].GroupName;
            }

            ContactItem ci = new ContactItem(e.RosterItem.GetDisplayName(), "Offline", null);

            ci.Tag     = e.RosterItem.Jid.Bare;
            ci.Visible = false;
            ci.Image   = XmppImages.DefaultAvatar;

            ContactListPanel.AddContactItem(ci, group);

            e.RosterItem.PresenceChanged   += new EventHandler <PresenceItemEventArgs> (PresenceChanged);
            e.RosterItem.ActionImageAdded  += new EventHandler <ActionImageEventArgs> (ActionImageAdded);
            e.RosterItem.AvatarChanged     += new EventHandler(RosterItem_AvatarChanged);
            e.RosterItem.RosterItemChanged += new EventHandler <RosterItemEventArgs> (RosterItem_RosterItemChanged);

            e.RosterItem.ContextMenu.Items[0].Click += new EventHandler(InstantMessageMenuItem_Clicked);
            e.RosterItem.ContextMenu.Items[1].Click += new EventHandler(GetInformationMenuItem_Click);
            e.RosterItem.ContextMenu.Items[3].Click += new EventHandler(RenameMenuItem_Click);

            ci.MouseDown   += new MouseEventHandler(ContactItem_MouseDown);
            ci.DoubleClick += new EventHandler(ContactItem_DoubleClick);
        }
Beispiel #6
0
 private void RosterItem_RosterItemChanged(object sender, RosterItemEventArgs e)
 {
     ContactListPanel.GetContactItem(e.RosterItem.Jid.ToString()).TextLineOne = e.RosterItem.GetDisplayName();
 }
Beispiel #7
0
 // Resume ContactList layout
 private void OnRosterEnd(object sender, EventArgs e)
 {
     ContactListPanel.ResumeLayout();
 }
Beispiel #8
0
 // Suspend ContactList layout for performance
 private void OnRosterBegin(object sender, EventArgs e)
 {
     XmppGlobal.Presence.SetPresence(Availability.Available, "Online");
     ContactListPanel.SuspendLayout();
 }