1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using agsXMPP;
using agsXMPP.Collections;
using agsXMPP.protocol;
using agsXMPP.protocol.client;
namespace WindowsFormsApplication2.tests
{
public partial class Test_recep : Form
{
public Test_recep()
{
InitializeComponent();
}
private System.ComponentModel.Container components = null;
private agsXMPP.XmppClientConnection _connection;
private Jid m_Jid;
private System.Windows.Forms.StatusBar statusBar1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button cmdSend;
private System.Windows.Forms.RichTextBox rtfSend;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.RichTextBox rtfChat;
private string _nickname;
public Test_recep(Jid jid, XmppClientConnection con, string nickname)
{
m_Jid = jid;
_connection = con;
_nickname = nickname;
InitializeComponent();
this.Text = "Chat with " + nickname;
Util.ChatForms.Add(m_Jid.Bare.ToLower(), this);
con.MessageGrabber.Add(jid, new BareJidComparer(), new MessageCB(MessageCallback), null);
}
public Test_recep(Jid jid, XmppClientConnection con, string nickname, bool privateChat)
{
m_Jid = jid;
_connection = con;
_nickname = nickname;
InitializeComponent();
this.Text = "Chat with " + nickname;
Util.ChatForms.Add(m_Jid.Bare.ToLower(), this);
if (privateChat)
con.MessageGrabber.Add(jid, new BareJidComparer(), new MessageCB(MessageCallback), null);
else
con.MessageGrabber.Add(jid, new FullJidComparer(), new MessageCB(MessageCallback), null);
}
public Jid Jid
{
get { return m_Jid; }
set { m_Jid = value; }
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
Util.ChatForms.Remove(m_Jid.Bare.ToLower());
_connection.MessageGrabber.Remove(m_Jid);
_connection = null;
}
#region Form-Designer Code
// the designer code (not important)
#endregion
private void OutgoingMessage(agsXMPP.protocol.client.Message msg)
{
rtfChat.SelectionColor = Color.Blue;
rtfChat.AppendText("Me said: ");
rtfChat.SelectionColor = Color.Black;
rtfChat.AppendText(msg.Body);
rtfChat.AppendText("\r\n");
}
public void IncomingMessage(agsXMPP.protocol.client.Message msg)
{
rtfChat.SelectionColor = Color.Red;
rtfChat.AppendText(_nickname + " said: ");
rtfChat.SelectionColor = Color.Black;
rtfChat.AppendText(msg.Body);
rtfChat.AppendText("\r\n");
}
private void cmdSend_Click(object sender, System.EventArgs e)
{
agsXMPP.protocol.client.Message msg = new agsXMPP.protocol.client.Message();
msg.Type = MessageType.chat;
msg.To = m_Jid;
msg.Body = rtfSend.Text;
_connection.Send(msg);
OutgoingMessage(msg);
rtfSend.Text = "";
}
private void MessageCallback(object sender, agsXMPP.protocol.client.Message msg, object data)
{
if (InvokeRequired)
{
BeginInvoke(new MessageCB(MessageCallback), new object[] { sender, msg, data });
return;
}
if (msg.Body != null)
IncomingMessage(msg);
}
}
} |
Partager