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; } }
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; } }
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; }
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; }
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); }
private void RosterItem_RosterItemChanged(object sender, RosterItemEventArgs e) { ContactListPanel.GetContactItem(e.RosterItem.Jid.ToString()).TextLineOne = e.RosterItem.GetDisplayName(); }
// Resume ContactList layout private void OnRosterEnd(object sender, EventArgs e) { ContactListPanel.ResumeLayout(); }
// Suspend ContactList layout for performance private void OnRosterBegin(object sender, EventArgs e) { XmppGlobal.Presence.SetPresence(Availability.Available, "Online"); ContactListPanel.SuspendLayout(); }