Add the files
123
Example/AddContactForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class AddContactForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.lblAccount = new System.Windows.Forms.Label();
|
||||
this.txtAccount = new System.Windows.Forms.TextBox();
|
||||
this.txtInvitation = new System.Windows.Forms.TextBox();
|
||||
this.lblInvitation = new System.Windows.Forms.Label();
|
||||
this.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblAccount
|
||||
//
|
||||
this.lblAccount.AutoSize = true;
|
||||
this.lblAccount.Location = new System.Drawing.Point(4, 21);
|
||||
this.lblAccount.Name = "lblAccount";
|
||||
this.lblAccount.Size = new System.Drawing.Size(106, 13);
|
||||
this.lblAccount.TabIndex = 0;
|
||||
this.lblAccount.Text = "Messenger address:*";
|
||||
//
|
||||
// txtAccount
|
||||
//
|
||||
this.txtAccount.CharacterCasing = System.Windows.Forms.CharacterCasing.Lower;
|
||||
this.txtAccount.Location = new System.Drawing.Point(115, 18);
|
||||
this.txtAccount.Name = "txtAccount";
|
||||
this.txtAccount.Size = new System.Drawing.Size(250, 20);
|
||||
this.txtAccount.TabIndex = 1;
|
||||
//
|
||||
// txtInvitation
|
||||
//
|
||||
this.txtInvitation.Location = new System.Drawing.Point(115, 47);
|
||||
this.txtInvitation.Name = "txtInvitation";
|
||||
this.txtInvitation.Size = new System.Drawing.Size(250, 20);
|
||||
this.txtInvitation.TabIndex = 2;
|
||||
//
|
||||
// lblInvitation
|
||||
//
|
||||
this.lblInvitation.AutoSize = true;
|
||||
this.lblInvitation.Location = new System.Drawing.Point(12, 50);
|
||||
this.lblInvitation.Name = "lblInvitation";
|
||||
this.lblInvitation.Size = new System.Drawing.Size(98, 13);
|
||||
this.lblInvitation.TabIndex = 4;
|
||||
this.lblInvitation.Text = "Invitation message:";
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(209, 84);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 3;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
this.btnOK.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(290, 84);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 4;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// AddContactForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(373, 119);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.txtInvitation);
|
||||
this.Controls.Add(this.lblInvitation);
|
||||
this.Controls.Add(this.txtAccount);
|
||||
this.Controls.Add(this.lblAccount);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "AddContactForm";
|
||||
this.Text = "Add New Contact";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblAccount;
|
||||
private System.Windows.Forms.TextBox txtAccount;
|
||||
private System.Windows.Forms.TextBox txtInvitation;
|
||||
private System.Windows.Forms.Label lblInvitation;
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
}
|
||||
}
|
||||
50
Example/AddContactForm.cs
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class AddContactForm : Form
|
||||
{
|
||||
public AddContactForm(string account)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (!String.IsNullOrEmpty(account))
|
||||
{
|
||||
this.account = account;
|
||||
txtAccount.Text = account;
|
||||
}
|
||||
}
|
||||
|
||||
private string account;
|
||||
public string Account
|
||||
{
|
||||
get
|
||||
{
|
||||
return account;
|
||||
}
|
||||
}
|
||||
|
||||
private string invitationMessage;
|
||||
public string InvitationMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
return invitationMessage;
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_Click(object sender, EventArgs e)
|
||||
{
|
||||
account = txtAccount.Text;
|
||||
invitationMessage = txtInvitation.Text;
|
||||
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Example/AddContactForm.resx
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
240
Example/ContactCardForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class ContactCardForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.pnlSpace = new System.Windows.Forms.Panel();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.lblSpaceTitle = new System.Windows.Forms.LinkLabel();
|
||||
this.lblDisplayName = new System.Windows.Forms.Label();
|
||||
this.picDisplayImage = new System.Windows.Forms.PictureBox();
|
||||
this.pnlAlbum = new System.Windows.Forms.Panel();
|
||||
this.tlpnlAlbum = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.lnkAlbumName = new System.Windows.Forms.LinkLabel();
|
||||
this.pnlBlog = new System.Windows.Forms.Panel();
|
||||
this.lnkBlogContent = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkBlogTitle = new System.Windows.Forms.LinkLabel();
|
||||
this.pnlProfile = new System.Windows.Forms.Panel();
|
||||
this.ttips = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.pnlSpace.SuspendLayout();
|
||||
this.panel3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picDisplayImage)).BeginInit();
|
||||
this.pnlAlbum.SuspendLayout();
|
||||
this.pnlBlog.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pnlSpace
|
||||
//
|
||||
this.pnlSpace.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
|
||||
this.pnlSpace.Controls.Add(this.panel3);
|
||||
this.pnlSpace.Controls.Add(this.picDisplayImage);
|
||||
this.pnlSpace.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.pnlSpace.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlSpace.Name = "pnlSpace";
|
||||
this.pnlSpace.Padding = new System.Windows.Forms.Padding(10);
|
||||
this.pnlSpace.Size = new System.Drawing.Size(272, 76);
|
||||
this.pnlSpace.TabIndex = 1;
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Controls.Add(this.lblSpaceTitle);
|
||||
this.panel3.Controls.Add(this.lblDisplayName);
|
||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel3.Location = new System.Drawing.Point(69, 10);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(193, 56);
|
||||
this.panel3.TabIndex = 2;
|
||||
//
|
||||
// lblSpaceTitle
|
||||
//
|
||||
this.lblSpaceTitle.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lblSpaceTitle.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblSpaceTitle.Location = new System.Drawing.Point(0, 23);
|
||||
this.lblSpaceTitle.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.lblSpaceTitle.Name = "lblSpaceTitle";
|
||||
this.lblSpaceTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||
this.lblSpaceTitle.Size = new System.Drawing.Size(193, 19);
|
||||
this.lblSpaceTitle.TabIndex = 2;
|
||||
this.lblSpaceTitle.TabStop = true;
|
||||
this.lblSpaceTitle.Text = "Space Title";
|
||||
this.lblSpaceTitle.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblSpaceTitle_LinkClicked);
|
||||
//
|
||||
// lblDisplayName
|
||||
//
|
||||
this.lblDisplayName.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lblDisplayName.Location = new System.Drawing.Point(0, 0);
|
||||
this.lblDisplayName.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.lblDisplayName.Name = "lblDisplayName";
|
||||
this.lblDisplayName.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||
this.lblDisplayName.Size = new System.Drawing.Size(193, 23);
|
||||
this.lblDisplayName.TabIndex = 1;
|
||||
this.lblDisplayName.Text = "Display Name";
|
||||
//
|
||||
// picDisplayImage
|
||||
//
|
||||
this.picDisplayImage.BackColor = System.Drawing.Color.White;
|
||||
this.picDisplayImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.picDisplayImage.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.picDisplayImage.Location = new System.Drawing.Point(10, 10);
|
||||
this.picDisplayImage.Name = "picDisplayImage";
|
||||
this.picDisplayImage.Size = new System.Drawing.Size(59, 56);
|
||||
this.picDisplayImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.picDisplayImage.TabIndex = 1;
|
||||
this.picDisplayImage.TabStop = false;
|
||||
//
|
||||
// pnlAlbum
|
||||
//
|
||||
this.pnlAlbum.BackColor = System.Drawing.Color.Linen;
|
||||
this.pnlAlbum.Controls.Add(this.tlpnlAlbum);
|
||||
this.pnlAlbum.Controls.Add(this.lnkAlbumName);
|
||||
this.pnlAlbum.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.pnlAlbum.Location = new System.Drawing.Point(0, 76);
|
||||
this.pnlAlbum.Name = "pnlAlbum";
|
||||
this.pnlAlbum.Padding = new System.Windows.Forms.Padding(5);
|
||||
this.pnlAlbum.Size = new System.Drawing.Size(272, 65);
|
||||
this.pnlAlbum.TabIndex = 2;
|
||||
//
|
||||
// tlpnlAlbum
|
||||
//
|
||||
this.tlpnlAlbum.ColumnCount = 6;
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
|
||||
this.tlpnlAlbum.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tlpnlAlbum.Location = new System.Drawing.Point(5, 17);
|
||||
this.tlpnlAlbum.Name = "tlpnlAlbum";
|
||||
this.tlpnlAlbum.RowCount = 1;
|
||||
this.tlpnlAlbum.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tlpnlAlbum.Size = new System.Drawing.Size(262, 43);
|
||||
this.tlpnlAlbum.TabIndex = 1;
|
||||
//
|
||||
// lnkAlbumName
|
||||
//
|
||||
this.lnkAlbumName.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lnkAlbumName.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkAlbumName.Location = new System.Drawing.Point(5, 5);
|
||||
this.lnkAlbumName.Name = "lnkAlbumName";
|
||||
this.lnkAlbumName.Size = new System.Drawing.Size(262, 12);
|
||||
this.lnkAlbumName.TabIndex = 0;
|
||||
this.lnkAlbumName.TabStop = true;
|
||||
this.lnkAlbumName.Text = "Album Name";
|
||||
this.lnkAlbumName.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkAlbumName_LinkClicked);
|
||||
//
|
||||
// pnlBlog
|
||||
//
|
||||
this.pnlBlog.BackColor = System.Drawing.Color.Linen;
|
||||
this.pnlBlog.Controls.Add(this.lnkBlogContent);
|
||||
this.pnlBlog.Controls.Add(this.lnkBlogTitle);
|
||||
this.pnlBlog.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.pnlBlog.Location = new System.Drawing.Point(0, 141);
|
||||
this.pnlBlog.Name = "pnlBlog";
|
||||
this.pnlBlog.Padding = new System.Windows.Forms.Padding(5);
|
||||
this.pnlBlog.Size = new System.Drawing.Size(272, 58);
|
||||
this.pnlBlog.TabIndex = 3;
|
||||
//
|
||||
// lnkBlogContent
|
||||
//
|
||||
this.lnkBlogContent.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lnkBlogContent.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkBlogContent.Location = new System.Drawing.Point(5, 17);
|
||||
this.lnkBlogContent.Name = "lnkBlogContent";
|
||||
this.lnkBlogContent.Size = new System.Drawing.Size(262, 36);
|
||||
this.lnkBlogContent.TabIndex = 1;
|
||||
this.lnkBlogContent.TabStop = true;
|
||||
this.lnkBlogContent.Text = "Blog Content";
|
||||
this.lnkBlogContent.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkBlogContent_LinkClicked);
|
||||
//
|
||||
// lnkBlogTitle
|
||||
//
|
||||
this.lnkBlogTitle.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lnkBlogTitle.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkBlogTitle.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.lnkBlogTitle.Location = new System.Drawing.Point(5, 5);
|
||||
this.lnkBlogTitle.Name = "lnkBlogTitle";
|
||||
this.lnkBlogTitle.Size = new System.Drawing.Size(262, 12);
|
||||
this.lnkBlogTitle.TabIndex = 0;
|
||||
this.lnkBlogTitle.TabStop = true;
|
||||
this.lnkBlogTitle.Text = "Blog Title";
|
||||
this.lnkBlogTitle.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkBlogTitle_LinkClicked);
|
||||
//
|
||||
// pnlProfile
|
||||
//
|
||||
this.pnlProfile.BackColor = System.Drawing.Color.Linen;
|
||||
this.pnlProfile.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlProfile.Location = new System.Drawing.Point(0, 199);
|
||||
this.pnlProfile.Name = "pnlProfile";
|
||||
this.pnlProfile.Padding = new System.Windows.Forms.Padding(5);
|
||||
this.pnlProfile.Size = new System.Drawing.Size(272, 35);
|
||||
this.pnlProfile.TabIndex = 4;
|
||||
//
|
||||
// ContactCardForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(272, 234);
|
||||
this.Controls.Add(this.pnlProfile);
|
||||
this.Controls.Add(this.pnlBlog);
|
||||
this.Controls.Add(this.pnlAlbum);
|
||||
this.Controls.Add(this.pnlSpace);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "ContactCardForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "ContactCard";
|
||||
this.Load += new System.EventHandler(this.ContactCardForm_Load);
|
||||
this.pnlSpace.ResumeLayout(false);
|
||||
this.panel3.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.picDisplayImage)).EndInit();
|
||||
this.pnlAlbum.ResumeLayout(false);
|
||||
this.pnlBlog.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel pnlSpace;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.LinkLabel lblSpaceTitle;
|
||||
private System.Windows.Forms.Label lblDisplayName;
|
||||
private System.Windows.Forms.PictureBox picDisplayImage;
|
||||
private System.Windows.Forms.Panel pnlAlbum;
|
||||
private System.Windows.Forms.TableLayoutPanel tlpnlAlbum;
|
||||
private System.Windows.Forms.LinkLabel lnkAlbumName;
|
||||
private System.Windows.Forms.Panel pnlBlog;
|
||||
private System.Windows.Forms.Panel pnlProfile;
|
||||
private System.Windows.Forms.LinkLabel lnkBlogContent;
|
||||
private System.Windows.Forms.LinkLabel lnkBlogTitle;
|
||||
private System.Windows.Forms.ToolTip ttips;
|
||||
|
||||
}
|
||||
}
|
||||
109
Example/ContactCardForm.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using MSNPSharp;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class ContactCardForm : Form
|
||||
{
|
||||
private ContactCard card = null;
|
||||
|
||||
public ContactCardForm(ContactCard cc)
|
||||
{
|
||||
InitializeComponent();
|
||||
card = cc;
|
||||
}
|
||||
|
||||
private void ContactCardForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
lblDisplayName.Text = card.DisplayName;
|
||||
lblSpaceTitle.Text = (card.Space != null) ? card.Space.Title : String.Empty;
|
||||
|
||||
if (String.IsNullOrEmpty(card.DisplayImageUrl))
|
||||
{
|
||||
picDisplayImage.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
picDisplayImage.LoadAsync(card.DisplayImageUrl);
|
||||
}
|
||||
|
||||
if (card.Album != null)
|
||||
{
|
||||
lnkAlbumName.Text = card.Album.Title;
|
||||
int col = 0;
|
||||
foreach (ThumbnailImage img in card.Album.Photos) //Setting the thumbnail pictures.
|
||||
{
|
||||
PictureBox lnkPic = new PictureBox();
|
||||
lnkPic.Dock = DockStyle.Fill;
|
||||
lnkPic.Margin = new Padding(6);
|
||||
lnkPic.BorderStyle = BorderStyle.FixedSingle;
|
||||
lnkPic.SizeMode = PictureBoxSizeMode.Zoom;
|
||||
lnkPic.BackColor = Color.White;
|
||||
lnkPic.LoadAsync(img.ThumbnailUrl);
|
||||
|
||||
tlpnlAlbum.Controls.Add(lnkPic, col, 0);
|
||||
lnkPic.Tag = col;
|
||||
lnkPic.Visible = true;
|
||||
lnkPic.Click += new EventHandler(lnkPic_Click);
|
||||
ttips.SetToolTip(lnkPic, img.ToolTip);
|
||||
col++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pnlAlbum.Visible = false;
|
||||
}
|
||||
|
||||
if (card.NewPost != null)
|
||||
{
|
||||
lnkBlogTitle.Text = card.NewPost.Title;
|
||||
ttips.SetToolTip(lnkBlogTitle, card.NewPost.Description);
|
||||
lnkBlogContent.Text = card.NewPost.Description;
|
||||
ttips.SetToolTip(lnkBlogContent, card.NewPost.Description);
|
||||
}
|
||||
else
|
||||
{
|
||||
pnlBlog.Visible = false;
|
||||
}
|
||||
|
||||
Text = card.DisplayName + "'s ContactCard";
|
||||
}
|
||||
|
||||
void lnkPic_Click(object sender, EventArgs e)
|
||||
{
|
||||
Process.Start(card.Album.Photos[(int)((PictureBox)sender).Tag].Url);
|
||||
}
|
||||
|
||||
void lnkPic_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(card.Album.Photos[(int)((LinkLabel)sender).Tag].Url);
|
||||
}
|
||||
|
||||
private void lblSpaceTitle_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(card.Space.Url);
|
||||
}
|
||||
|
||||
private void lnkAlbumName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(card.Album.Url);
|
||||
}
|
||||
|
||||
private void lnkBlogTitle_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(card.NewPost.Url);
|
||||
}
|
||||
|
||||
private void lnkBlogContent_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(card.NewPost.Url);
|
||||
}
|
||||
}
|
||||
}
|
||||
123
Example/ContactCardForm.resx
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ttips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
1077
Example/ConversationForm.cs
Normal file
135
Example/ConversationForm.resx
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="tsMessage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>274, 14</value>
|
||||
</metadata>
|
||||
<metadata name="onlineUsersDropDown.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>397, 18</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="dlgColor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>158, 20</value>
|
||||
</metadata>
|
||||
<metadata name="openCustomEmoticonDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 57</value>
|
||||
</metadata>
|
||||
</root>
|
||||
876
Example/DotMSNClient.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,876 @@
|
|||
using System.Windows.Forms;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class ClientForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.ImageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.userMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.sendIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.sendOIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.sendMIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.importContactsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createCircleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.blockMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.unblockMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.openImageDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.tmrKeepOnLine = new System.Windows.Forms.Timer(this.components);
|
||||
this.tmrNews = new System.Windows.Forms.Timer(this.components);
|
||||
this.sortContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.toolStripSortByStatus = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSortBygroup = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripDeleteGroup = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.groupContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.toolTipChangePhoto = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.WhatsUpPanel = new System.Windows.Forms.Panel();
|
||||
this.lblNewsLink = new System.Windows.Forms.LinkLabel();
|
||||
this.lblNews = new System.Windows.Forms.Label();
|
||||
this.pbNewsPicture = new System.Windows.Forms.PictureBox();
|
||||
this.cmdNext = new System.Windows.Forms.Button();
|
||||
this.cmdPrev = new System.Windows.Forms.Button();
|
||||
this.lblWhatsup = new System.Windows.Forms.Label();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.propertyGrid = new System.Windows.Forms.PropertyGrid();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.pnlTreeViewsContainer = new System.Windows.Forms.Panel();
|
||||
this.treeViewFilterList = new System.Windows.Forms.TreeView();
|
||||
this.treeViewFavoriteList = new System.Windows.Forms.TreeView();
|
||||
this.SortPanel = new System.Windows.Forms.Panel();
|
||||
this.txtSearch = new System.Windows.Forms.TextBox();
|
||||
this.btnAddNew = new System.Windows.Forms.Button();
|
||||
this.btnSortBy = new System.Windows.Forms.Button();
|
||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.displayImageBox = new System.Windows.Forms.PictureBox();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.pnlLogin = new System.Windows.Forms.Panel();
|
||||
this.pnlNameAndPM = new System.Windows.Forms.Panel();
|
||||
this.btnSetMusic = new System.Windows.Forms.Button();
|
||||
this.lblPM = new System.Windows.Forms.TextBox();
|
||||
this.lblName = new System.Windows.Forms.TextBox();
|
||||
this.cbRobotMode = new System.Windows.Forms.CheckBox();
|
||||
this.accountTextBox = new System.Windows.Forms.TextBox();
|
||||
this.loginButton = new System.Windows.Forms.Button();
|
||||
this.passwordTextBox = new System.Windows.Forms.TextBox();
|
||||
this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.comboPlaces = new System.Windows.Forms.ComboBox();
|
||||
this.comboStatus = new System.Windows.Forms.ComboBox();
|
||||
this.statusBar = new System.Windows.Forms.Label();
|
||||
this.userMenuStrip.SuspendLayout();
|
||||
this.sortContextMenu.SuspendLayout();
|
||||
this.groupContextMenu.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.WhatsUpPanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbNewsPicture)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.pnlTreeViewsContainer.SuspendLayout();
|
||||
this.SortPanel.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.tableLayoutPanel4.SuspendLayout();
|
||||
this.tableLayoutPanel5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.displayImageBox)).BeginInit();
|
||||
this.panel1.SuspendLayout();
|
||||
this.tableLayoutPanel6.SuspendLayout();
|
||||
this.pnlLogin.SuspendLayout();
|
||||
this.pnlNameAndPM.SuspendLayout();
|
||||
this.tableLayoutPanel7.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ImageList1
|
||||
//
|
||||
this.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
|
||||
this.ImageList1.ImageSize = new System.Drawing.Size(10, 10);
|
||||
this.ImageList1.TransparentColor = System.Drawing.Color.Transparent;
|
||||
//
|
||||
// userMenuStrip
|
||||
//
|
||||
this.userMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.sendIMMenuItem,
|
||||
this.sendOIMMenuItem,
|
||||
this.sendMIMMenuItem,
|
||||
this.toolStripMenuItem3,
|
||||
this.importContactsMenuItem,
|
||||
this.createCircleMenuItem,
|
||||
this.toolStripMenuItem2,
|
||||
this.blockMenuItem,
|
||||
this.unblockMenuItem,
|
||||
this.deleteMenuItem});
|
||||
this.userMenuStrip.Name = "contextMenuStrip1";
|
||||
this.userMenuStrip.Size = new System.Drawing.Size(201, 192);
|
||||
//
|
||||
// sendIMMenuItem
|
||||
//
|
||||
this.sendIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
|
||||
this.sendIMMenuItem.Name = "sendIMMenuItem";
|
||||
this.sendIMMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.sendIMMenuItem.Text = "Send Instant Message";
|
||||
this.sendIMMenuItem.Click += new System.EventHandler(this.sendMessageToolStripMenuItem_Click);
|
||||
//
|
||||
// sendOIMMenuItem
|
||||
//
|
||||
this.sendOIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
|
||||
this.sendOIMMenuItem.Name = "sendOIMMenuItem";
|
||||
this.sendOIMMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.sendOIMMenuItem.Text = "Send Offline Message";
|
||||
this.sendOIMMenuItem.Click += new System.EventHandler(this.sendOfflineMessageToolStripMenuItem_Click);
|
||||
//
|
||||
// sendMIMMenuItem
|
||||
//
|
||||
this.sendMIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
|
||||
this.sendMIMMenuItem.Name = "sendMIMMenuItem";
|
||||
this.sendMIMMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.sendMIMMenuItem.Text = "Send Mobile Message";
|
||||
this.sendMIMMenuItem.Click += new System.EventHandler(this.sendMIMMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem3
|
||||
//
|
||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
this.toolStripMenuItem3.Size = new System.Drawing.Size(197, 6);
|
||||
//
|
||||
// importContactsMenuItem
|
||||
//
|
||||
this.importContactsMenuItem.Name = "importContactsMenuItem";
|
||||
this.importContactsMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.importContactsMenuItem.Text = "Import Contacts";
|
||||
this.importContactsMenuItem.Click += new System.EventHandler(this.importContactsMenuItem_Click);
|
||||
//
|
||||
// createCircleMenuItem
|
||||
//
|
||||
this.createCircleMenuItem.Name = "createCircleMenuItem";
|
||||
this.createCircleMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.createCircleMenuItem.Text = "Circle Tests";
|
||||
this.createCircleMenuItem.Click += new System.EventHandler(this.createCircleMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem2
|
||||
//
|
||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(197, 6);
|
||||
//
|
||||
// blockMenuItem
|
||||
//
|
||||
this.blockMenuItem.Name = "blockMenuItem";
|
||||
this.blockMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.blockMenuItem.Text = "Block";
|
||||
this.blockMenuItem.Click += new System.EventHandler(this.blockToolStripMenuItem_Click);
|
||||
//
|
||||
// unblockMenuItem
|
||||
//
|
||||
this.unblockMenuItem.Name = "unblockMenuItem";
|
||||
this.unblockMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.unblockMenuItem.Text = "Unblock";
|
||||
this.unblockMenuItem.Click += new System.EventHandler(this.unblockMenuItem_Click);
|
||||
//
|
||||
// deleteMenuItem
|
||||
//
|
||||
this.deleteMenuItem.Name = "deleteMenuItem";
|
||||
this.deleteMenuItem.Size = new System.Drawing.Size(200, 22);
|
||||
this.deleteMenuItem.Text = "Delete";
|
||||
this.deleteMenuItem.Click += new System.EventHandler(this.deleteMenuItem_Click);
|
||||
//
|
||||
// openFileDialog
|
||||
//
|
||||
this.openFileDialog.Multiselect = true;
|
||||
//
|
||||
// openImageDialog
|
||||
//
|
||||
this.openImageDialog.Filter = "Supported Images|*.png;*.jpg;*.jpeg;*.gif";
|
||||
this.openImageDialog.Multiselect = true;
|
||||
this.openImageDialog.Title = "Select display image";
|
||||
//
|
||||
// tmrKeepOnLine
|
||||
//
|
||||
this.tmrKeepOnLine.Interval = 1000;
|
||||
//
|
||||
// tmrNews
|
||||
//
|
||||
this.tmrNews.Interval = 5000;
|
||||
this.tmrNews.Tick += new System.EventHandler(this.tmrNews_Tick);
|
||||
//
|
||||
// sortContextMenu
|
||||
//
|
||||
this.sortContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripSortByStatus,
|
||||
this.toolStripSortBygroup});
|
||||
this.sortContextMenu.Name = "sortContextMenu";
|
||||
this.sortContextMenu.ShowCheckMargin = true;
|
||||
this.sortContextMenu.ShowImageMargin = false;
|
||||
this.sortContextMenu.Size = new System.Drawing.Size(140, 48);
|
||||
//
|
||||
// toolStripSortByStatus
|
||||
//
|
||||
this.toolStripSortByStatus.Checked = true;
|
||||
this.toolStripSortByStatus.CheckOnClick = true;
|
||||
this.toolStripSortByStatus.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.toolStripSortByStatus.Name = "toolStripSortByStatus";
|
||||
this.toolStripSortByStatus.ShowShortcutKeys = false;
|
||||
this.toolStripSortByStatus.Size = new System.Drawing.Size(139, 22);
|
||||
this.toolStripSortByStatus.Text = "Sort by status";
|
||||
this.toolStripSortByStatus.Click += new System.EventHandler(this.toolStripSortByStatus_Click);
|
||||
//
|
||||
// toolStripSortBygroup
|
||||
//
|
||||
this.toolStripSortBygroup.CheckOnClick = true;
|
||||
this.toolStripSortBygroup.Name = "toolStripSortBygroup";
|
||||
this.toolStripSortBygroup.ShowShortcutKeys = false;
|
||||
this.toolStripSortBygroup.Size = new System.Drawing.Size(139, 22);
|
||||
this.toolStripSortBygroup.Text = "Sort by group";
|
||||
this.toolStripSortBygroup.Click += new System.EventHandler(this.toolStripSortBygroup_Click);
|
||||
//
|
||||
// toolStripDeleteGroup
|
||||
//
|
||||
this.toolStripDeleteGroup.Name = "toolStripDeleteGroup";
|
||||
this.toolStripDeleteGroup.Size = new System.Drawing.Size(142, 22);
|
||||
this.toolStripDeleteGroup.Text = "Delete group";
|
||||
this.toolStripDeleteGroup.Click += new System.EventHandler(this.toolStripDeleteGroup_Click);
|
||||
//
|
||||
// groupContextMenu
|
||||
//
|
||||
this.groupContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripDeleteGroup});
|
||||
this.groupContextMenu.Name = "sortContextMenu";
|
||||
this.groupContextMenu.ShowCheckMargin = true;
|
||||
this.groupContextMenu.ShowImageMargin = false;
|
||||
this.groupContextMenu.Size = new System.Drawing.Size(143, 26);
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.WhatsUpPanel, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.splitContainer1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.statusBar, 0, 3);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 128F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 57F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(643, 634);
|
||||
this.tableLayoutPanel1.TabIndex = 3;
|
||||
//
|
||||
// WhatsUpPanel
|
||||
//
|
||||
this.WhatsUpPanel.BackColor = System.Drawing.Color.White;
|
||||
this.WhatsUpPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.WhatsUpPanel.Controls.Add(this.lblNewsLink);
|
||||
this.WhatsUpPanel.Controls.Add(this.lblNews);
|
||||
this.WhatsUpPanel.Controls.Add(this.pbNewsPicture);
|
||||
this.WhatsUpPanel.Controls.Add(this.cmdNext);
|
||||
this.WhatsUpPanel.Controls.Add(this.cmdPrev);
|
||||
this.WhatsUpPanel.Controls.Add(this.lblWhatsup);
|
||||
this.WhatsUpPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.WhatsUpPanel.Location = new System.Drawing.Point(3, 551);
|
||||
this.WhatsUpPanel.Name = "WhatsUpPanel";
|
||||
this.WhatsUpPanel.Size = new System.Drawing.Size(637, 50);
|
||||
this.WhatsUpPanel.TabIndex = 8;
|
||||
//
|
||||
// lblNewsLink
|
||||
//
|
||||
this.lblNewsLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblNewsLink.Location = new System.Drawing.Point(506, 25);
|
||||
this.lblNewsLink.Name = "lblNewsLink";
|
||||
this.lblNewsLink.Size = new System.Drawing.Size(69, 21);
|
||||
this.lblNewsLink.TabIndex = 5;
|
||||
this.lblNewsLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.lblNewsLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblNewsLink_LinkClicked);
|
||||
//
|
||||
// lblNews
|
||||
//
|
||||
this.lblNews.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblNews.AutoEllipsis = true;
|
||||
this.lblNews.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblNews.Location = new System.Drawing.Point(97, 3);
|
||||
this.lblNews.Name = "lblNews";
|
||||
this.lblNews.Size = new System.Drawing.Size(402, 42);
|
||||
this.lblNews.TabIndex = 4;
|
||||
this.lblNews.Text = " *";
|
||||
this.lblNews.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// pbNewsPicture
|
||||
//
|
||||
this.pbNewsPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pbNewsPicture.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pbNewsPicture.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.pbNewsPicture.Location = new System.Drawing.Point(589, 1);
|
||||
this.pbNewsPicture.Name = "pbNewsPicture";
|
||||
this.pbNewsPicture.Size = new System.Drawing.Size(45, 45);
|
||||
this.pbNewsPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pbNewsPicture.TabIndex = 3;
|
||||
this.pbNewsPicture.TabStop = false;
|
||||
//
|
||||
// cmdNext
|
||||
//
|
||||
this.cmdNext.Location = new System.Drawing.Point(42, 22);
|
||||
this.cmdNext.Name = "cmdNext";
|
||||
this.cmdNext.Size = new System.Drawing.Size(22, 22);
|
||||
this.cmdNext.TabIndex = 2;
|
||||
this.cmdNext.Text = ">";
|
||||
this.cmdNext.UseVisualStyleBackColor = true;
|
||||
this.cmdNext.Click += new System.EventHandler(this.cmdNext_Click);
|
||||
//
|
||||
// cmdPrev
|
||||
//
|
||||
this.cmdPrev.Location = new System.Drawing.Point(15, 22);
|
||||
this.cmdPrev.Name = "cmdPrev";
|
||||
this.cmdPrev.Size = new System.Drawing.Size(22, 22);
|
||||
this.cmdPrev.TabIndex = 1;
|
||||
this.cmdPrev.Text = "<";
|
||||
this.cmdPrev.UseVisualStyleBackColor = true;
|
||||
this.cmdPrev.Click += new System.EventHandler(this.cmdPrev_Click);
|
||||
//
|
||||
// lblWhatsup
|
||||
//
|
||||
this.lblWhatsup.AutoSize = true;
|
||||
this.lblWhatsup.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.lblWhatsup.Location = new System.Drawing.Point(11, 3);
|
||||
this.lblWhatsup.Name = "lblWhatsup";
|
||||
this.lblWhatsup.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblWhatsup.TabIndex = 0;
|
||||
this.lblWhatsup.Text = "What\'s Up";
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(3, 131);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Panel1.Controls.Add(this.propertyGrid);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tableLayoutPanel2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(637, 413);
|
||||
this.splitContainer1.SplitterDistance = 252;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// propertyGrid
|
||||
//
|
||||
this.propertyGrid.BackColor = System.Drawing.Color.White;
|
||||
this.propertyGrid.CommandsBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128)))));
|
||||
this.propertyGrid.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.propertyGrid.HelpBackColor = System.Drawing.Color.White;
|
||||
this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar;
|
||||
this.propertyGrid.Location = new System.Drawing.Point(0, 0);
|
||||
this.propertyGrid.Name = "propertyGrid";
|
||||
this.propertyGrid.Size = new System.Drawing.Size(252, 413);
|
||||
this.propertyGrid.TabIndex = 5;
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 1;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.Controls.Add(this.pnlTreeViewsContainer, 0, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.SortPanel, 0, 0);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(1);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 2;
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(381, 413);
|
||||
this.tableLayoutPanel2.TabIndex = 0;
|
||||
//
|
||||
// pnlTreeViewsContainer
|
||||
//
|
||||
this.pnlTreeViewsContainer.Controls.Add(this.treeViewFilterList);
|
||||
this.pnlTreeViewsContainer.Controls.Add(this.treeViewFavoriteList);
|
||||
this.pnlTreeViewsContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlTreeViewsContainer.Location = new System.Drawing.Point(3, 32);
|
||||
this.pnlTreeViewsContainer.Name = "pnlTreeViewsContainer";
|
||||
this.pnlTreeViewsContainer.Size = new System.Drawing.Size(375, 378);
|
||||
this.pnlTreeViewsContainer.TabIndex = 3;
|
||||
//
|
||||
// treeViewFilterList
|
||||
//
|
||||
this.treeViewFilterList.BackColor = System.Drawing.Color.White;
|
||||
this.treeViewFilterList.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.treeViewFilterList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeViewFilterList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.treeViewFilterList.FullRowSelect = true;
|
||||
this.treeViewFilterList.HideSelection = false;
|
||||
this.treeViewFilterList.Indent = 20;
|
||||
this.treeViewFilterList.ItemHeight = 20;
|
||||
this.treeViewFilterList.Location = new System.Drawing.Point(0, 0);
|
||||
this.treeViewFilterList.Name = "treeViewFilterList";
|
||||
this.treeViewFilterList.ShowLines = false;
|
||||
this.treeViewFilterList.ShowPlusMinus = false;
|
||||
this.treeViewFilterList.ShowRootLines = false;
|
||||
this.treeViewFilterList.Size = new System.Drawing.Size(375, 378);
|
||||
this.treeViewFilterList.TabIndex = 5;
|
||||
this.treeViewFilterList.Visible = false;
|
||||
this.treeViewFilterList.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseDoubleClick);
|
||||
this.treeViewFilterList.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
|
||||
//
|
||||
// treeViewFavoriteList
|
||||
//
|
||||
this.treeViewFavoriteList.AllowDrop = true;
|
||||
this.treeViewFavoriteList.BackColor = System.Drawing.Color.White;
|
||||
this.treeViewFavoriteList.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.treeViewFavoriteList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeViewFavoriteList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.treeViewFavoriteList.FullRowSelect = true;
|
||||
this.treeViewFavoriteList.HideSelection = false;
|
||||
this.treeViewFavoriteList.ImageIndex = 0;
|
||||
this.treeViewFavoriteList.ImageList = this.ImageList1;
|
||||
this.treeViewFavoriteList.Indent = 15;
|
||||
this.treeViewFavoriteList.ItemHeight = 20;
|
||||
this.treeViewFavoriteList.Location = new System.Drawing.Point(0, 0);
|
||||
this.treeViewFavoriteList.Name = "treeViewFavoriteList";
|
||||
this.treeViewFavoriteList.SelectedImageIndex = 0;
|
||||
this.treeViewFavoriteList.ShowLines = false;
|
||||
this.treeViewFavoriteList.ShowPlusMinus = false;
|
||||
this.treeViewFavoriteList.ShowRootLines = false;
|
||||
this.treeViewFavoriteList.Size = new System.Drawing.Size(375, 378);
|
||||
this.treeViewFavoriteList.TabIndex = 4;
|
||||
this.treeViewFavoriteList.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseDoubleClick);
|
||||
this.treeViewFavoriteList.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragDrop);
|
||||
this.treeViewFavoriteList.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragEnter);
|
||||
this.treeViewFavoriteList.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
|
||||
this.treeViewFavoriteList.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeViewFavoriteList_ItemDrag);
|
||||
this.treeViewFavoriteList.DragOver += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragOver);
|
||||
//
|
||||
// SortPanel
|
||||
//
|
||||
this.SortPanel.BackColor = System.Drawing.Color.White;
|
||||
this.SortPanel.Controls.Add(this.txtSearch);
|
||||
this.SortPanel.Controls.Add(this.btnAddNew);
|
||||
this.SortPanel.Controls.Add(this.btnSortBy);
|
||||
this.SortPanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.SortPanel.Location = new System.Drawing.Point(1, 1);
|
||||
this.SortPanel.Margin = new System.Windows.Forms.Padding(1);
|
||||
this.SortPanel.Name = "SortPanel";
|
||||
this.SortPanel.Size = new System.Drawing.Size(379, 27);
|
||||
this.SortPanel.TabIndex = 2;
|
||||
//
|
||||
// txtSearch
|
||||
//
|
||||
this.txtSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtSearch.ForeColor = System.Drawing.SystemColors.ScrollBar;
|
||||
this.txtSearch.Location = new System.Drawing.Point(6, 4);
|
||||
this.txtSearch.Name = "txtSearch";
|
||||
this.txtSearch.Size = new System.Drawing.Size(279, 21);
|
||||
this.txtSearch.TabIndex = 9;
|
||||
this.txtSearch.Text = "Search contacts";
|
||||
this.txtSearch.TextChanged += new System.EventHandler(this.txtSearch_TextChanged);
|
||||
this.txtSearch.Leave += new System.EventHandler(this.txtSearch_Leave);
|
||||
this.txtSearch.Enter += new System.EventHandler(this.txtSearch_Enter);
|
||||
//
|
||||
// btnAddNew
|
||||
//
|
||||
this.btnAddNew.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAddNew.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.btnAddNew.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.btnAddNew.Location = new System.Drawing.Point(334, 2);
|
||||
this.btnAddNew.Name = "btnAddNew";
|
||||
this.btnAddNew.Size = new System.Drawing.Size(44, 22);
|
||||
this.btnAddNew.TabIndex = 7;
|
||||
this.btnAddNew.Text = "+";
|
||||
this.btnAddNew.UseVisualStyleBackColor = true;
|
||||
this.btnAddNew.Click += new System.EventHandler(this.btnAddNew_Click);
|
||||
//
|
||||
// btnSortBy
|
||||
//
|
||||
this.btnSortBy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSortBy.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.btnSortBy.Cursor = System.Windows.Forms.Cursors.Arrow;
|
||||
this.btnSortBy.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.btnSortBy.Location = new System.Drawing.Point(290, 2);
|
||||
this.btnSortBy.Name = "btnSortBy";
|
||||
this.btnSortBy.Size = new System.Drawing.Size(44, 22);
|
||||
this.btnSortBy.TabIndex = 0;
|
||||
this.btnSortBy.Text = "sort";
|
||||
this.btnSortBy.UseVisualStyleBackColor = true;
|
||||
this.btnSortBy.Click += new System.EventHandler(this.btnSortBy_Click);
|
||||
//
|
||||
// tableLayoutPanel3
|
||||
//
|
||||
this.tableLayoutPanel3.BackColor = System.Drawing.Color.White;
|
||||
this.tableLayoutPanel3.BackgroundImage = global::MSNPSharpClient.Properties.Resources.app_banner;
|
||||
this.tableLayoutPanel3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.tableLayoutPanel3.ColumnCount = 2;
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 380F));
|
||||
this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 1, 0);
|
||||
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
||||
this.tableLayoutPanel3.RowCount = 1;
|
||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel3.Size = new System.Drawing.Size(637, 122);
|
||||
this.tableLayoutPanel3.TabIndex = 9;
|
||||
//
|
||||
// tableLayoutPanel4
|
||||
//
|
||||
this.tableLayoutPanel4.ColumnCount = 1;
|
||||
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel5, 0, 0);
|
||||
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel4.Location = new System.Drawing.Point(260, 3);
|
||||
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
|
||||
this.tableLayoutPanel4.RowCount = 1;
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 126F));
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 126F));
|
||||
this.tableLayoutPanel4.Size = new System.Drawing.Size(374, 116);
|
||||
this.tableLayoutPanel4.TabIndex = 0;
|
||||
//
|
||||
// tableLayoutPanel5
|
||||
//
|
||||
this.tableLayoutPanel5.ColumnCount = 2;
|
||||
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 87F));
|
||||
this.tableLayoutPanel5.Controls.Add(this.displayImageBox, 1, 0);
|
||||
this.tableLayoutPanel5.Controls.Add(this.panel1, 0, 0);
|
||||
this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel5.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel5.Name = "tableLayoutPanel5";
|
||||
this.tableLayoutPanel5.RowCount = 1;
|
||||
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
|
||||
this.tableLayoutPanel5.Size = new System.Drawing.Size(368, 120);
|
||||
this.tableLayoutPanel5.TabIndex = 0;
|
||||
//
|
||||
// displayImageBox
|
||||
//
|
||||
this.displayImageBox.BackColor = System.Drawing.Color.White;
|
||||
this.displayImageBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.displayImageBox.Location = new System.Drawing.Point(284, 3);
|
||||
this.displayImageBox.Name = "displayImageBox";
|
||||
this.displayImageBox.Size = new System.Drawing.Size(80, 80);
|
||||
this.displayImageBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.displayImageBox.TabIndex = 3;
|
||||
this.displayImageBox.TabStop = false;
|
||||
this.displayImageBox.Click += new System.EventHandler(this.displayImageBox_Click);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.tableLayoutPanel6);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(275, 114);
|
||||
this.panel1.TabIndex = 4;
|
||||
//
|
||||
// tableLayoutPanel6
|
||||
//
|
||||
this.tableLayoutPanel6.ColumnCount = 1;
|
||||
this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel6.Controls.Add(this.pnlLogin, 0, 0);
|
||||
this.tableLayoutPanel6.Controls.Add(this.tableLayoutPanel7, 0, 1);
|
||||
this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel6.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel6.Name = "tableLayoutPanel6";
|
||||
this.tableLayoutPanel6.RowCount = 2;
|
||||
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
|
||||
this.tableLayoutPanel6.Size = new System.Drawing.Size(275, 114);
|
||||
this.tableLayoutPanel6.TabIndex = 5;
|
||||
//
|
||||
// pnlLogin
|
||||
//
|
||||
this.pnlLogin.Controls.Add(this.pnlNameAndPM);
|
||||
this.pnlLogin.Controls.Add(this.cbRobotMode);
|
||||
this.pnlLogin.Controls.Add(this.accountTextBox);
|
||||
this.pnlLogin.Controls.Add(this.loginButton);
|
||||
this.pnlLogin.Controls.Add(this.passwordTextBox);
|
||||
this.pnlLogin.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlLogin.Location = new System.Drawing.Point(3, 3);
|
||||
this.pnlLogin.Name = "pnlLogin";
|
||||
this.pnlLogin.Size = new System.Drawing.Size(269, 73);
|
||||
this.pnlLogin.TabIndex = 1;
|
||||
//
|
||||
// pnlNameAndPM
|
||||
//
|
||||
this.pnlNameAndPM.Controls.Add(this.btnSetMusic);
|
||||
this.pnlNameAndPM.Controls.Add(this.lblPM);
|
||||
this.pnlNameAndPM.Controls.Add(this.lblName);
|
||||
this.pnlNameAndPM.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlNameAndPM.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlNameAndPM.Name = "pnlNameAndPM";
|
||||
this.pnlNameAndPM.Size = new System.Drawing.Size(269, 73);
|
||||
this.pnlNameAndPM.TabIndex = 15;
|
||||
this.pnlNameAndPM.Visible = false;
|
||||
//
|
||||
// btnSetMusic
|
||||
//
|
||||
this.btnSetMusic.Location = new System.Drawing.Point(233, 25);
|
||||
this.btnSetMusic.Name = "btnSetMusic";
|
||||
this.btnSetMusic.Size = new System.Drawing.Size(33, 22);
|
||||
this.btnSetMusic.TabIndex = 8;
|
||||
this.btnSetMusic.Tag = "0";
|
||||
this.btnSetMusic.Text = "M";
|
||||
this.btnSetMusic.UseVisualStyleBackColor = true;
|
||||
this.btnSetMusic.Click += new System.EventHandler(this.btnSetMusic_Click);
|
||||
//
|
||||
// lblPM
|
||||
//
|
||||
this.lblPM.Location = new System.Drawing.Point(3, 26);
|
||||
this.lblPM.Name = "lblPM";
|
||||
this.lblPM.Size = new System.Drawing.Size(228, 21);
|
||||
this.lblPM.TabIndex = 7;
|
||||
this.lblPM.Leave += new System.EventHandler(this.lblName_Leave);
|
||||
//
|
||||
// lblName
|
||||
//
|
||||
this.lblName.Location = new System.Drawing.Point(3, 1);
|
||||
this.lblName.Name = "lblName";
|
||||
this.lblName.Size = new System.Drawing.Size(263, 21);
|
||||
this.lblName.TabIndex = 6;
|
||||
this.lblName.Leave += new System.EventHandler(this.lblName_Leave);
|
||||
//
|
||||
// cbRobotMode
|
||||
//
|
||||
this.cbRobotMode.AutoSize = true;
|
||||
this.cbRobotMode.Location = new System.Drawing.Point(3, 54);
|
||||
this.cbRobotMode.Name = "cbRobotMode";
|
||||
this.cbRobotMode.Size = new System.Drawing.Size(136, 19);
|
||||
this.cbRobotMode.TabIndex = 11;
|
||||
this.cbRobotMode.Text = "Provisioned Account";
|
||||
this.cbRobotMode.UseVisualStyleBackColor = true;
|
||||
this.cbRobotMode.CheckedChanged += new System.EventHandler(this.cbRobotMode_CheckedChanged);
|
||||
//
|
||||
// accountTextBox
|
||||
//
|
||||
this.accountTextBox.Location = new System.Drawing.Point(3, 2);
|
||||
this.accountTextBox.Name = "accountTextBox";
|
||||
this.accountTextBox.Size = new System.Drawing.Size(263, 21);
|
||||
this.accountTextBox.TabIndex = 9;
|
||||
this.accountTextBox.Text = "example@escargot.chat";
|
||||
this.accountTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.login_KeyPress);
|
||||
//
|
||||
// loginButton
|
||||
//
|
||||
this.loginButton.Location = new System.Drawing.Point(145, 50);
|
||||
this.loginButton.Name = "loginButton";
|
||||
this.loginButton.Size = new System.Drawing.Size(121, 22);
|
||||
this.loginButton.TabIndex = 8;
|
||||
this.loginButton.Tag = "0";
|
||||
this.loginButton.Text = "> Sign in";
|
||||
this.loginButton.UseVisualStyleBackColor = true;
|
||||
this.loginButton.Click += new System.EventHandler(this.loginButton_Click);
|
||||
//
|
||||
// passwordTextBox
|
||||
//
|
||||
this.passwordTextBox.Location = new System.Drawing.Point(3, 27);
|
||||
this.passwordTextBox.Name = "passwordTextBox";
|
||||
this.passwordTextBox.PasswordChar = '*';
|
||||
this.passwordTextBox.Size = new System.Drawing.Size(263, 21);
|
||||
this.passwordTextBox.TabIndex = 10;
|
||||
this.passwordTextBox.Text = "sneakysource";
|
||||
this.passwordTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.login_KeyPress);
|
||||
//
|
||||
// tableLayoutPanel7
|
||||
//
|
||||
this.tableLayoutPanel7.ColumnCount = 2;
|
||||
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel7.Controls.Add(this.comboPlaces, 0, 0);
|
||||
this.tableLayoutPanel7.Controls.Add(this.comboStatus, 0, 0);
|
||||
this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel7.Location = new System.Drawing.Point(3, 82);
|
||||
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
|
||||
this.tableLayoutPanel7.RowCount = 1;
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel7.Size = new System.Drawing.Size(269, 29);
|
||||
this.tableLayoutPanel7.TabIndex = 0;
|
||||
//
|
||||
// comboPlaces
|
||||
//
|
||||
this.comboPlaces.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboPlaces.DropDownWidth = 220;
|
||||
this.comboPlaces.FormattingEnabled = true;
|
||||
this.comboPlaces.Location = new System.Drawing.Point(137, 3);
|
||||
this.comboPlaces.Name = "comboPlaces";
|
||||
this.comboPlaces.Size = new System.Drawing.Size(129, 23);
|
||||
this.comboPlaces.TabIndex = 6;
|
||||
this.comboPlaces.Visible = false;
|
||||
this.comboPlaces.SelectedIndexChanged += new System.EventHandler(this.comboPlaces_SelectedIndexChanged);
|
||||
//
|
||||
// comboStatus
|
||||
//
|
||||
this.comboStatus.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||
this.comboStatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboStatus.FormattingEnabled = true;
|
||||
this.comboStatus.ItemHeight = 15;
|
||||
this.comboStatus.Items.AddRange(new object[] {
|
||||
"Online",
|
||||
"Busy",
|
||||
"Away",
|
||||
"Hidden",
|
||||
"Offline"});
|
||||
this.comboStatus.Location = new System.Drawing.Point(3, 3);
|
||||
this.comboStatus.Name = "comboStatus";
|
||||
this.comboStatus.Size = new System.Drawing.Size(128, 21);
|
||||
this.comboStatus.TabIndex = 5;
|
||||
this.comboStatus.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboStatus_DrawItem);
|
||||
this.comboStatus.SelectedIndexChanged += new System.EventHandler(this.comboStatus_SelectedIndexChanged);
|
||||
this.comboStatus.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.comboStatus_KeyPress);
|
||||
//
|
||||
// statusBar
|
||||
//
|
||||
this.statusBar.AutoSize = true;
|
||||
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.statusBar.Location = new System.Drawing.Point(3, 604);
|
||||
this.statusBar.Name = "statusBar";
|
||||
this.statusBar.Size = new System.Drawing.Size(637, 30);
|
||||
this.statusBar.TabIndex = 10;
|
||||
this.statusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// ClientForm
|
||||
//
|
||||
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.ClientSize = new System.Drawing.Size(643, 634);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.MinimumSize = new System.Drawing.Size(640, 480);
|
||||
this.Name = "ClientForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "MSNPSharp Example Client for Escargot";
|
||||
this.Load += new System.EventHandler(this.ClientForm_Load);
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ClientForm_FormClosing);
|
||||
this.userMenuStrip.ResumeLayout(false);
|
||||
this.sortContextMenu.ResumeLayout(false);
|
||||
this.groupContextMenu.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.WhatsUpPanel.ResumeLayout(false);
|
||||
this.WhatsUpPanel.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbNewsPicture)).EndInit();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.pnlTreeViewsContainer.ResumeLayout(false);
|
||||
this.SortPanel.ResumeLayout(false);
|
||||
this.SortPanel.PerformLayout();
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
this.tableLayoutPanel4.ResumeLayout(false);
|
||||
this.tableLayoutPanel5.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.displayImageBox)).EndInit();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel6.ResumeLayout(false);
|
||||
this.pnlLogin.ResumeLayout(false);
|
||||
this.pnlLogin.PerformLayout();
|
||||
this.pnlNameAndPM.ResumeLayout(false);
|
||||
this.pnlNameAndPM.PerformLayout();
|
||||
this.tableLayoutPanel7.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private OpenFileDialog openFileDialog;
|
||||
private OpenFileDialog openImageDialog;
|
||||
private System.Windows.Forms.Timer tmrKeepOnLine;
|
||||
private System.Windows.Forms.Timer tmrNews;
|
||||
private ImageList ImageList1;
|
||||
private ContextMenuStrip userMenuStrip;
|
||||
private ToolStripMenuItem sendIMMenuItem;
|
||||
private ToolStripMenuItem blockMenuItem;
|
||||
private ToolStripSeparator toolStripMenuItem2;
|
||||
private ToolStripMenuItem unblockMenuItem;
|
||||
private ToolStripMenuItem sendOIMMenuItem;
|
||||
private ToolStripSeparator toolStripMenuItem3;
|
||||
private ToolStripMenuItem sendMIMMenuItem;
|
||||
private ContextMenuStrip sortContextMenu;
|
||||
private ToolStripMenuItem toolStripSortByStatus;
|
||||
private ToolStripMenuItem toolStripSortBygroup;
|
||||
private ToolStripMenuItem toolStripDeleteGroup;
|
||||
private ContextMenuStrip groupContextMenu;
|
||||
private ToolStripMenuItem importContactsMenuItem;
|
||||
private ToolStripMenuItem createCircleMenuItem;
|
||||
private ToolStripMenuItem deleteMenuItem;
|
||||
private ToolTip toolTipChangePhoto;
|
||||
private TableLayoutPanel tableLayoutPanel1;
|
||||
private Panel WhatsUpPanel;
|
||||
private LinkLabel lblNewsLink;
|
||||
private Label lblNews;
|
||||
private PictureBox pbNewsPicture;
|
||||
private Button cmdNext;
|
||||
private Button cmdPrev;
|
||||
private Label lblWhatsup;
|
||||
private SplitContainer splitContainer1;
|
||||
private PropertyGrid propertyGrid;
|
||||
private TableLayoutPanel tableLayoutPanel2;
|
||||
private Panel SortPanel;
|
||||
private TextBox txtSearch;
|
||||
private Button btnAddNew;
|
||||
private Button btnSortBy;
|
||||
private TableLayoutPanel tableLayoutPanel3;
|
||||
private Panel pnlTreeViewsContainer;
|
||||
private TreeView treeViewFavoriteList;
|
||||
private Label statusBar;
|
||||
private TreeView treeViewFilterList;
|
||||
private TableLayoutPanel tableLayoutPanel4;
|
||||
private TableLayoutPanel tableLayoutPanel5;
|
||||
private Panel panel1;
|
||||
private TableLayoutPanel tableLayoutPanel6;
|
||||
private Panel pnlLogin;
|
||||
private Panel pnlNameAndPM;
|
||||
private Button btnSetMusic;
|
||||
private TextBox lblPM;
|
||||
private TextBox lblName;
|
||||
private CheckBox cbRobotMode;
|
||||
private TextBox accountTextBox;
|
||||
private Button loginButton;
|
||||
private TextBox passwordTextBox;
|
||||
private TableLayoutPanel tableLayoutPanel7;
|
||||
private ComboBox comboPlaces;
|
||||
private ComboBox comboStatus;
|
||||
private PictureBox displayImageBox;
|
||||
|
||||
}
|
||||
}
|
||||
2343
Example/DotMSNClient.cs
Normal file
257
Example/DotMSNClient.csproj
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{BDF3E472-EFE8-44D6-AFB6-062DD929D56F}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon>MSNPSharp_logo.ico</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>DotMSNClient</AssemblyName>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>MSNPSharpClient</RootNamespace>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<StartupObject>MSNPSharpClient.ClientForm</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||
<OldToolsVersion>2.0</OldToolsVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>true</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Data">
|
||||
<Name>System.Data</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing">
|
||||
<Name>System.Drawing</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms">
|
||||
<Name>System.Windows.Forms</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.XML</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="MSNPSharp_logo.ico" />
|
||||
<None Include="Resources\Color_fontHS.png" />
|
||||
<None Include="Resources\app_banner.png" />
|
||||
<None Include="Resources\loading.gif" />
|
||||
<None Include="Resources\YahooMessenger_logo.png" />
|
||||
<None Include="Resources\msn_ico.ico" />
|
||||
<None Include="Resources\MSNPSharp_logo_small.ico" />
|
||||
<None Include="Resources\MSNPSharp_logo.ico" />
|
||||
<None Include="Resources\status\open.png" />
|
||||
<None Include="Resources\status\online.png" />
|
||||
<None Include="Resources\status\offline.png" />
|
||||
<None Include="Resources\status\idle.png" />
|
||||
<None Include="Resources\status\hidden.png" />
|
||||
<None Include="Resources\status\closed.png" />
|
||||
<None Include="Resources\status\circle.png" />
|
||||
<None Include="Resources\status\busy.png" />
|
||||
<None Include="Resources\status\away.png" />
|
||||
<None Include="Resources\file.png" />
|
||||
<None Include="Resources\nudge.png" />
|
||||
<None Include="Resources\yahoo_ico.ico" />
|
||||
<None Include="Resources\smileys\tongueout.gif" />
|
||||
<None Include="Resources\smileys\smiley.gif" />
|
||||
<None Include="Resources\smileys\sad.gif" />
|
||||
<None Include="Resources\smileys\biggrin.gif" />
|
||||
<None Include="Resources\smileys\wink.gif" />
|
||||
<None Include="Resources\inner_emoicon.png" />
|
||||
<Compile Include="AddContactForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="AddContactForm.Designer.cs">
|
||||
<DependentUpon>AddContactForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConversationForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FileTransferForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FileTransferForm.Designer.cs">
|
||||
<DependentUpon>FileTransferForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DotMSNClient.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DotMSNClient.Designer.cs">
|
||||
<DependentUpon>DotMSNClient.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ImportContacts.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ImportContacts.Designer.cs">
|
||||
<DependentUpon>ImportContacts.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MusicForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MusicForm.Designer.cs">
|
||||
<DependentUpon>MusicForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RemoveContactForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RemoveContactForm.Designer.cs">
|
||||
<DependentUpon>RemoveContactForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ReverseAddedForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ReverseAddedForm.Designer.cs">
|
||||
<DependentUpon>ReverseAddedForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RtfRichTextBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="TraceForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="TraceForm.Designer.cs">
|
||||
<DependentUpon>TraceForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="AddContactForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>AddContactForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ConversationForm.resx">
|
||||
<DependentUpon>ConversationForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FileTransferForm.resx">
|
||||
<DependentUpon>FileTransferForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DotMSNClient.resx">
|
||||
<DependentUpon>DotMSNClient.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ImportContacts.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ImportContacts.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MusicForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>MusicForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="RemoveContactForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>RemoveContactForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ReverseAddedForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ReverseAddedForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="TraceForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>TraceForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MSNPSharp\MSNPSharp.csproj">
|
||||
<Project>{97CB2DC7-2FE8-4AF5-84D0-6B9872A5E960}</Project>
|
||||
<Name>MSNPSharp</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
13
Example/DotMSNClient.csproj.user
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory />
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>en-US</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
150
Example/DotMSNClient.resx
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>118, 17</value>
|
||||
</metadata>
|
||||
<metadata name="userMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>776, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>506, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openImageDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>228, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tmrKeepOnLine.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>639, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tmrNews.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="sortContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<metadata name="groupContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>163, 56</value>
|
||||
</metadata>
|
||||
<metadata name="toolTipChangePhoto.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>322, 56</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>76</value>
|
||||
</metadata>
|
||||
</root>
|
||||
164
Example/FileTransferForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class FileTransferForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.lblFile = new System.Windows.Forms.Label();
|
||||
this.txtFilePath = new System.Windows.Forms.TextBox();
|
||||
this.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lblSize = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblFile
|
||||
//
|
||||
this.lblFile.AutoSize = true;
|
||||
this.lblFile.Location = new System.Drawing.Point(18, 8);
|
||||
this.lblFile.Name = "lblFile";
|
||||
this.lblFile.Size = new System.Drawing.Size(29, 12);
|
||||
this.lblFile.TabIndex = 0;
|
||||
this.lblFile.Text = "File";
|
||||
//
|
||||
// txtFilePath
|
||||
//
|
||||
this.txtFilePath.Location = new System.Drawing.Point(64, 6);
|
||||
this.txtFilePath.Name = "txtFilePath";
|
||||
this.txtFilePath.Size = new System.Drawing.Size(270, 21);
|
||||
this.txtFilePath.TabIndex = 3;
|
||||
this.txtFilePath.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(64, 94);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(164, 37);
|
||||
this.btnOK.TabIndex = 6;
|
||||
this.btnOK.Tag = "OK";
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(237, 94);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(97, 37);
|
||||
this.btnCancel.TabIndex = 7;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// progressBar
|
||||
//
|
||||
this.progressBar.Location = new System.Drawing.Point(64, 56);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(270, 21);
|
||||
this.progressBar.Step = 1;
|
||||
this.progressBar.TabIndex = 8;
|
||||
this.progressBar.Visible = false;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.button1.Location = new System.Drawing.Point(254, 30);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(80, 21);
|
||||
this.button1.TabIndex = 9;
|
||||
this.button1.Text = "Browse...";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// saveFileDialog
|
||||
//
|
||||
this.saveFileDialog.Filter = "*.*|*.*";
|
||||
this.saveFileDialog.RestoreDirectory = true;
|
||||
this.saveFileDialog.Title = "Save as...";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(18, 34);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(29, 12);
|
||||
this.label1.TabIndex = 10;
|
||||
this.label1.Text = "Size";
|
||||
//
|
||||
// lblSize
|
||||
//
|
||||
this.lblSize.AutoSize = true;
|
||||
this.lblSize.Location = new System.Drawing.Point(61, 34);
|
||||
this.lblSize.Name = "lblSize";
|
||||
this.lblSize.Size = new System.Drawing.Size(35, 12);
|
||||
this.lblSize.TabIndex = 11;
|
||||
this.lblSize.Text = "bytes";
|
||||
//
|
||||
// FileTransferForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(345, 142);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.lblSize);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.progressBar);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.txtFilePath);
|
||||
this.Controls.Add(this.lblFile);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "FileTransferForm";
|
||||
this.Text = "File Transfer";
|
||||
this.Load += new System.EventHandler(this.FileTransferForm_Load);
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FileTransferForm_FormClosing);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblFile;
|
||||
private System.Windows.Forms.TextBox txtFilePath;
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.ProgressBar progressBar;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.SaveFileDialog saveFileDialog;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label lblSize;
|
||||
}
|
||||
}
|
||||
172
Example/FileTransferForm.cs
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
using MSNPSharp;
|
||||
using MSNPSharp.Core;
|
||||
using MSNPSharp.DataTransfer;
|
||||
|
||||
|
||||
public partial class FileTransferForm : Form
|
||||
{
|
||||
MSNSLPInvitationEventArgs invite;
|
||||
private bool transferFinished;
|
||||
|
||||
public FileTransferForm(MSNSLPInvitationEventArgs invite)
|
||||
{
|
||||
this.invite = invite;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void FileTransferForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
string appPath = Path.GetFullPath(".");
|
||||
|
||||
Text = "File Transfer: " + invite.TransferProperties.RemoteContact.Mail;
|
||||
txtFilePath.Text = Path.Combine(appPath, invite.Filename);
|
||||
lblSize.Text = invite.FileSize.ToString() + " bytes";
|
||||
|
||||
invite.TransferSession.TransferStarted += (TransferSession_TransferStarted);
|
||||
invite.TransferSession.TransferProgressed += (TransferSession_TransferProgressed);
|
||||
invite.TransferSession.TransferAborted += (TransferSession_TransferAborted);
|
||||
invite.TransferSession.TransferFinished += (TransferSession_TransferFinished);
|
||||
}
|
||||
|
||||
void TransferSession_TransferStarted(object sender, EventArgs e)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new EventHandler<EventArgs>(TransferSession_TransferStarted), sender, e);
|
||||
return;
|
||||
}
|
||||
|
||||
progressBar.Visible = true;
|
||||
lblSize.Text = "Transfer started";
|
||||
}
|
||||
|
||||
void TransferSession_TransferProgressed(object sender, P2PTransferProgressedEventArgs e)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new EventHandler<P2PTransferProgressedEventArgs>(TransferSession_TransferProgressed), sender, e);
|
||||
return;
|
||||
}
|
||||
progressBar.Visible = true;
|
||||
progressBar.Value = e.Percent;
|
||||
lblSize.Text = "Transferred: " + e.Transferred + " / " + e.TotalSize;
|
||||
}
|
||||
|
||||
void TransferSession_TransferFinished(object sender, EventArgs e)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new EventHandler<EventArgs>(TransferSession_TransferFinished), sender, e);
|
||||
return;
|
||||
}
|
||||
|
||||
transferFinished = true;
|
||||
|
||||
btnOK.Text = "Open File";
|
||||
btnOK.Tag = "OPENFILE";
|
||||
btnCancel.Visible = true;
|
||||
|
||||
lblSize.Text = "Transfer finished";
|
||||
progressBar.Visible = false;
|
||||
progressBar.Value = 0;
|
||||
}
|
||||
|
||||
void TransferSession_TransferAborted(object sender, EventArgs e)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new EventHandler<EventArgs>(TransferSession_TransferAborted), sender, e);
|
||||
return;
|
||||
}
|
||||
|
||||
btnOK.Text = "Close";
|
||||
btnOK.Tag = "CLOSE";
|
||||
lblSize.Text = "Transfer aborted";
|
||||
|
||||
progressBar.Visible = false;
|
||||
progressBar.Value = 0;
|
||||
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
txtFilePath.Text = saveFileDialog.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (transferFinished)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
invite.Accept = false;
|
||||
invite.TransferHandler.RejectTransfer(invite);
|
||||
|
||||
btnCancel.Visible = false;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (btnOK.Tag.ToString())
|
||||
{
|
||||
case "OK":
|
||||
|
||||
invite.TransferSession.DataStream = new FileStream(txtFilePath.Text, FileMode.Create, FileAccess.Write);
|
||||
invite.TransferSession.AutoCloseStream = true;
|
||||
invite.Accept = true;
|
||||
invite.TransferHandler.AcceptTransfer(invite);
|
||||
|
||||
btnCancel.Visible = false;
|
||||
|
||||
lblSize.Text = "Waiting to start...";
|
||||
|
||||
btnOK.Text = "Abort Transfer";
|
||||
btnOK.Tag = "ABORT";
|
||||
break;
|
||||
|
||||
case "ABORT":
|
||||
invite.TransferHandler.CloseSession(invite.TransferSession);
|
||||
btnOK.Text = "Close";
|
||||
btnOK.Tag = "CLOSE";
|
||||
break;
|
||||
|
||||
case "OPENFILE":
|
||||
Process.Start(txtFilePath.Text);
|
||||
Close();
|
||||
break;
|
||||
|
||||
case "CLOSE":
|
||||
Close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void FileTransferForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
invite.TransferSession.TransferStarted -= (TransferSession_TransferStarted);
|
||||
invite.TransferSession.TransferProgressed -= (TransferSession_TransferProgressed);
|
||||
invite.TransferSession.TransferAborted -= (TransferSession_TransferAborted);
|
||||
invite.TransferSession.TransferFinished -= (TransferSession_TransferFinished);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
123
Example/FileTransferForm.resx
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
120
Example/ImportContacts.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class ImportContacts
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.lblInvitation = new System.Windows.Forms.Label();
|
||||
this.txtInvitation = new System.Windows.Forms.TextBox();
|
||||
this.browseFile = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// openFileDialog
|
||||
//
|
||||
this.openFileDialog.DefaultExt = "ctt";
|
||||
this.openFileDialog.Filter = "Messenger Contact List|*.ctt";
|
||||
this.openFileDialog.Title = "Select Contact File";
|
||||
//
|
||||
// lblInvitation
|
||||
//
|
||||
this.lblInvitation.AutoSize = true;
|
||||
this.lblInvitation.Location = new System.Drawing.Point(12, 20);
|
||||
this.lblInvitation.Name = "lblInvitation";
|
||||
this.lblInvitation.Size = new System.Drawing.Size(96, 13);
|
||||
this.lblInvitation.TabIndex = 0;
|
||||
this.lblInvitation.Text = "Invitation Message";
|
||||
//
|
||||
// txtInvitation
|
||||
//
|
||||
this.txtInvitation.Location = new System.Drawing.Point(114, 17);
|
||||
this.txtInvitation.Name = "txtInvitation";
|
||||
this.txtInvitation.Size = new System.Drawing.Size(342, 20);
|
||||
this.txtInvitation.TabIndex = 1;
|
||||
this.txtInvitation.Text = "Accept me :)";
|
||||
//
|
||||
// browseFile
|
||||
//
|
||||
this.browseFile.Location = new System.Drawing.Point(114, 43);
|
||||
this.browseFile.Name = "browseFile";
|
||||
this.browseFile.Size = new System.Drawing.Size(134, 23);
|
||||
this.browseFile.TabIndex = 2;
|
||||
this.browseFile.Text = "Browse Contact File...";
|
||||
this.browseFile.UseVisualStyleBackColor = true;
|
||||
this.browseFile.Click += new System.EventHandler(this.browseFile_Click);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.button1.Location = new System.Drawing.Point(283, 73);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(84, 23);
|
||||
this.button1.TabIndex = 3;
|
||||
this.button1.Text = "OK";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.button2.Location = new System.Drawing.Point(373, 73);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(83, 23);
|
||||
this.button2.TabIndex = 4;
|
||||
this.button2.Text = "Cancel";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// ImportContacts
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(466, 108);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.browseFile);
|
||||
this.Controls.Add(this.txtInvitation);
|
||||
this.Controls.Add(this.lblInvitation);
|
||||
this.Name = "ImportContacts";
|
||||
this.Text = "Import Contacts";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog;
|
||||
private System.Windows.Forms.Label lblInvitation;
|
||||
private System.Windows.Forms.TextBox txtInvitation;
|
||||
private System.Windows.Forms.Button browseFile;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
}
|
||||
}
|
||||
73
Example/ImportContacts.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using MSNPSharp;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class ImportContacts : Form
|
||||
{
|
||||
public ImportContacts()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
private string invitationMessage = String.Empty;
|
||||
public string InvitationMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
return invitationMessage;
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> _contacts = new List<string>();
|
||||
public List<string> Contacts
|
||||
{
|
||||
get
|
||||
{
|
||||
return _contacts;
|
||||
}
|
||||
}
|
||||
|
||||
private void browseFile_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (DialogResult.OK == openFileDialog.ShowDialog(this))
|
||||
{
|
||||
Contacts.Clear();
|
||||
invitationMessage = txtInvitation.Text;
|
||||
try
|
||||
{
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(File.ReadAllText(openFileDialog.FileName));
|
||||
|
||||
XmlNodeList contacts = doc.GetElementsByTagName("contact");
|
||||
foreach (XmlNode contactNode in contacts)
|
||||
{
|
||||
if (ClientType.PassportMember == (ClientType)Convert.ToInt32(contactNode.Attributes["type"].Value))
|
||||
{
|
||||
Contacts.Add(contactNode.InnerText.ToLower(System.Globalization.CultureInfo.InvariantCulture));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
}
|
||||
MessageBox.Show(Contacts.Count.ToString() + " contacts to be imported.");
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
123
Example/ImportContacts.resx
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
BIN
Example/MSNPSharp_logo.ico
Normal file
|
After Width: | Height: | Size: 91 KiB |
142
Example/MusicForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class MusicForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.lblArtist = new System.Windows.Forms.Label();
|
||||
this.lblSong = new System.Windows.Forms.Label();
|
||||
this.lblAlbum = new System.Windows.Forms.Label();
|
||||
this.txtArtist = new System.Windows.Forms.TextBox();
|
||||
this.txtSong = new System.Windows.Forms.TextBox();
|
||||
this.txtAlbum = new System.Windows.Forms.TextBox();
|
||||
this.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblArtist
|
||||
//
|
||||
this.lblArtist.AutoSize = true;
|
||||
this.lblArtist.Location = new System.Drawing.Point(18, 9);
|
||||
this.lblArtist.Name = "lblArtist";
|
||||
this.lblArtist.Size = new System.Drawing.Size(30, 13);
|
||||
this.lblArtist.TabIndex = 0;
|
||||
this.lblArtist.Text = "Artist";
|
||||
//
|
||||
// lblSong
|
||||
//
|
||||
this.lblSong.AutoSize = true;
|
||||
this.lblSong.Location = new System.Drawing.Point(16, 35);
|
||||
this.lblSong.Name = "lblSong";
|
||||
this.lblSong.Size = new System.Drawing.Size(32, 13);
|
||||
this.lblSong.TabIndex = 1;
|
||||
this.lblSong.Text = "Song";
|
||||
//
|
||||
// lblAlbum
|
||||
//
|
||||
this.lblAlbum.AutoSize = true;
|
||||
this.lblAlbum.Location = new System.Drawing.Point(12, 59);
|
||||
this.lblAlbum.Name = "lblAlbum";
|
||||
this.lblAlbum.Size = new System.Drawing.Size(36, 13);
|
||||
this.lblAlbum.TabIndex = 2;
|
||||
this.lblAlbum.Text = "Album";
|
||||
//
|
||||
// txtArtist
|
||||
//
|
||||
this.txtArtist.Location = new System.Drawing.Point(64, 6);
|
||||
this.txtArtist.Name = "txtArtist";
|
||||
this.txtArtist.Size = new System.Drawing.Size(297, 20);
|
||||
this.txtArtist.TabIndex = 3;
|
||||
//
|
||||
// txtSong
|
||||
//
|
||||
this.txtSong.Location = new System.Drawing.Point(64, 32);
|
||||
this.txtSong.Name = "txtSong";
|
||||
this.txtSong.Size = new System.Drawing.Size(297, 20);
|
||||
this.txtSong.TabIndex = 4;
|
||||
//
|
||||
// txtAlbum
|
||||
//
|
||||
this.txtAlbum.Location = new System.Drawing.Point(64, 56);
|
||||
this.txtAlbum.Name = "txtAlbum";
|
||||
this.txtAlbum.Size = new System.Drawing.Size(297, 20);
|
||||
this.txtAlbum.TabIndex = 5;
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(204, 82);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 6;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(285, 82);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(76, 23);
|
||||
this.btnCancel.TabIndex = 7;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// MusicForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(374, 113);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.txtAlbum);
|
||||
this.Controls.Add(this.txtSong);
|
||||
this.Controls.Add(this.txtArtist);
|
||||
this.Controls.Add(this.lblAlbum);
|
||||
this.Controls.Add(this.lblSong);
|
||||
this.Controls.Add(this.lblArtist);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "MusicForm";
|
||||
this.Text = "I am Listening...";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblArtist;
|
||||
private System.Windows.Forms.Label lblSong;
|
||||
private System.Windows.Forms.Label lblAlbum;
|
||||
private System.Windows.Forms.TextBox txtArtist;
|
||||
private System.Windows.Forms.TextBox txtSong;
|
||||
private System.Windows.Forms.TextBox txtAlbum;
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
}
|
||||
}
|
||||
44
Example/MusicForm.cs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class MusicForm : Form
|
||||
{
|
||||
public MusicForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
public string Artist
|
||||
{
|
||||
get
|
||||
{
|
||||
return txtArtist.Text;
|
||||
}
|
||||
}
|
||||
|
||||
public string Song
|
||||
{
|
||||
get
|
||||
{
|
||||
return txtSong.Text;
|
||||
}
|
||||
}
|
||||
|
||||
public string Album
|
||||
{
|
||||
get
|
||||
{
|
||||
return txtSong.Text;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
120
Example/MusicForm.resx
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
20
Example/Properties/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: ComVisibleAttribute(false)]
|
||||
[assembly: CLSCompliantAttribute(false)]
|
||||
[assembly: AssemblyTitleAttribute("MSNPSharp Example Client")]
|
||||
[assembly: AssemblyDescriptionAttribute(".NET MSN Messenger library Example Client")]
|
||||
[assembly: AssemblyCopyrightAttribute("Copyright (c) 2002-2011, Bas Geertsema, Xih Solutions (http://www.xihsolutions.net), Thiago.Sayao, Pang Wu, Ethem Evlice.")]
|
||||
[assembly: AssemblyProductAttribute("MSNPSharp")]
|
||||
[assembly: AssemblyDelaySignAttribute(false)]
|
||||
[assembly: GuidAttribute("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
// Major.Minor.Build.SVNRevision
|
||||
[assembly: AssemblyVersionAttribute("3.2.1.2668")]
|
||||
[assembly: AssemblyFileVersionAttribute("3.2.1.2668")]
|
||||
[assembly: AssemblyCompanyAttribute("MSNPSharp")]
|
||||
[assembly: AssemblyTrademarkAttribute("MSNPSharp")]
|
||||
303
Example/Properties/Resources.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace MSNPSharpClient.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MSNPSharpClient.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap app_banner {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("app_banner", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap away {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("away", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap biggrin {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("biggrin", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap busy {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("busy", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap circle {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("circle", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap closed {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("closed", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Color_fontHS {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Color_fontHS", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap file {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("file", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap hidden {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("hidden", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap idle {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("idle", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap inner_emoticon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("inner_emoticon", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap loading {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("loading", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon msn_ico {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("msn_ico", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon MSNPSharp_logo_small_ico {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MSNPSharp_logo_small_ico", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap nudge {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("nudge", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap offline {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("offline", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap online {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("online", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap open {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("open", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap sad {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("sad", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap smiley {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("smiley", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap tongueout {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("tongueout", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap wink {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("wink", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon yahoo_ico {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("yahoo_ico", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap YahooMessenger_logo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("YahooMessenger_logo", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
193
Example/Properties/Resources.resx
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="yahoo_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\yahoo_ico.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="sad" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\smileys\sad.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="nudge" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\nudge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MSNPSharp_logo_small_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MSNPSharp_logo_small.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="biggrin" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\smileys\biggrin.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="away" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\away.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="msn_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\msn_ico.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="idle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\idle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="loading" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\loading.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="wink" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\smileys\wink.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="busy" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\busy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="hidden" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\hidden.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="online" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\online.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="offline" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\offline.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\circle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="closed" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\closed.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="YahooMessenger_logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\YahooMessenger_logo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\status\open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="tongueout" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\smileys\tongueout.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="smiley" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\smileys\smiley.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="inner_emoticon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\inner_emoicon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="app_banner" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\app_banner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Color_fontHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Color_fontHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
102
Example/RemoveContactForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class RemoveContactForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.cbRemove = new System.Windows.Forms.CheckBox();
|
||||
this.cbBlock = new System.Windows.Forms.CheckBox();
|
||||
this.btnRemove = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cbRemove
|
||||
//
|
||||
this.cbRemove.AutoSize = true;
|
||||
this.cbRemove.Location = new System.Drawing.Point(12, 21);
|
||||
this.cbRemove.Name = "cbRemove";
|
||||
this.cbRemove.Size = new System.Drawing.Size(201, 17);
|
||||
this.cbRemove.TabIndex = 0;
|
||||
this.cbRemove.Text = "Remove this user from my contact list";
|
||||
this.cbRemove.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cbBlock
|
||||
//
|
||||
this.cbBlock.AutoSize = true;
|
||||
this.cbBlock.Location = new System.Drawing.Point(12, 44);
|
||||
this.cbBlock.Name = "cbBlock";
|
||||
this.cbBlock.Size = new System.Drawing.Size(75, 17);
|
||||
this.cbBlock.TabIndex = 1;
|
||||
this.cbBlock.Text = "Also block";
|
||||
this.cbBlock.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnRemove
|
||||
//
|
||||
this.btnRemove.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnRemove.Location = new System.Drawing.Point(24, 76);
|
||||
this.btnRemove.Name = "btnRemove";
|
||||
this.btnRemove.Size = new System.Drawing.Size(99, 23);
|
||||
this.btnRemove.TabIndex = 2;
|
||||
this.btnRemove.Text = "Remove contact";
|
||||
this.btnRemove.UseVisualStyleBackColor = true;
|
||||
this.btnRemove.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(129, 76);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 3;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// RemoveContactForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(217, 113);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnRemove);
|
||||
this.Controls.Add(this.cbBlock);
|
||||
this.Controls.Add(this.cbRemove);
|
||||
this.Name = "RemoveContactForm";
|
||||
this.Text = "Remove Contact";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox cbRemove;
|
||||
private System.Windows.Forms.CheckBox cbBlock;
|
||||
private System.Windows.Forms.Button btnRemove;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
}
|
||||
}
|
||||
40
Example/RemoveContactForm.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class RemoveContactForm : Form
|
||||
{
|
||||
|
||||
public bool RemoveFromAddressBook
|
||||
{
|
||||
get
|
||||
{
|
||||
return cbRemove.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Block
|
||||
{
|
||||
get
|
||||
{
|
||||
return cbBlock.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
public RemoveContactForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void btn_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Example/RemoveContactForm.resx
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
BIN
Example/Resources/Color_fontHS.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
Example/Resources/MSNPSharp_logo.ico
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
Example/Resources/MSNPSharp_logo_small.ico
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Example/Resources/YahooMessenger_logo.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
Example/Resources/app_banner.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
Example/Resources/file.png
Normal file
|
After Width: | Height: | Size: 917 B |
BIN
Example/Resources/inner_emoicon.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
Example/Resources/loading.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
Example/Resources/msn_ico.ico
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Example/Resources/nudge.png
Normal file
|
After Width: | Height: | Size: 823 B |
BIN
Example/Resources/smileys/biggrin.gif
Normal file
|
After Width: | Height: | Size: 230 B |
BIN
Example/Resources/smileys/sad.gif
Normal file
|
After Width: | Height: | Size: 236 B |
BIN
Example/Resources/smileys/smiley.gif
Normal file
|
After Width: | Height: | Size: 244 B |
BIN
Example/Resources/smileys/tongueout.gif
Normal file
|
After Width: | Height: | Size: 248 B |
BIN
Example/Resources/smileys/wink.gif
Normal file
|
After Width: | Height: | Size: 243 B |
BIN
Example/Resources/status/away.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/status/busy.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/status/circle.png
Normal file
|
After Width: | Height: | Size: 190 B |
BIN
Example/Resources/status/closed.png
Normal file
|
After Width: | Height: | Size: 179 B |
BIN
Example/Resources/status/hidden.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/status/idle.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/status/offline.png
Normal file
|
After Width: | Height: | Size: 151 B |
BIN
Example/Resources/status/online.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/status/open.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
Example/Resources/yahoo_ico.ico
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
151
Example/ReverseAddedForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class ReverseAddedForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.lblAdded = new System.Windows.Forms.Label();
|
||||
this.gbMembership = new System.Windows.Forms.GroupBox();
|
||||
this.rbBlock = new System.Windows.Forms.RadioButton();
|
||||
this.rbAllow = new System.Windows.Forms.RadioButton();
|
||||
this.cbContactList = new System.Windows.Forms.CheckBox();
|
||||
this.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.gbMembership.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblAdded
|
||||
//
|
||||
this.lblAdded.AutoSize = true;
|
||||
this.lblAdded.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.lblAdded.Location = new System.Drawing.Point(12, 9);
|
||||
this.lblAdded.Name = "lblAdded";
|
||||
this.lblAdded.Size = new System.Drawing.Size(226, 13);
|
||||
this.lblAdded.TabIndex = 0;
|
||||
this.lblAdded.Text = "{0} has added you to their contact list.";
|
||||
//
|
||||
// gbMembership
|
||||
//
|
||||
this.gbMembership.Controls.Add(this.rbBlock);
|
||||
this.gbMembership.Controls.Add(this.rbAllow);
|
||||
this.gbMembership.Location = new System.Drawing.Point(15, 36);
|
||||
this.gbMembership.Name = "gbMembership";
|
||||
this.gbMembership.Size = new System.Drawing.Size(441, 74);
|
||||
this.gbMembership.TabIndex = 1;
|
||||
this.gbMembership.TabStop = false;
|
||||
this.gbMembership.Text = "Add contact to:";
|
||||
//
|
||||
// rbBlock
|
||||
//
|
||||
this.rbBlock.AutoSize = true;
|
||||
this.rbBlock.Location = new System.Drawing.Point(15, 42);
|
||||
this.rbBlock.Name = "rbBlock";
|
||||
this.rbBlock.Size = new System.Drawing.Size(421, 17);
|
||||
this.rbBlock.TabIndex = 1;
|
||||
this.rbBlock.Text = "Blocked List (User can not see my online status and can not send instant messages" +
|
||||
")";
|
||||
this.rbBlock.UseVisualStyleBackColor = true;
|
||||
this.rbBlock.CheckedChanged += new System.EventHandler(this.rbBlock_CheckedChanged);
|
||||
//
|
||||
// rbAllow
|
||||
//
|
||||
this.rbAllow.AutoSize = true;
|
||||
this.rbAllow.Checked = true;
|
||||
this.rbAllow.Location = new System.Drawing.Point(15, 19);
|
||||
this.rbAllow.Name = "rbAllow";
|
||||
this.rbAllow.Size = new System.Drawing.Size(352, 17);
|
||||
this.rbAllow.TabIndex = 0;
|
||||
this.rbAllow.TabStop = true;
|
||||
this.rbAllow.Text = "Allowed List (User can see my status and can send instant messages)";
|
||||
this.rbAllow.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cbContactList
|
||||
//
|
||||
this.cbContactList.AutoSize = true;
|
||||
this.cbContactList.Checked = true;
|
||||
this.cbContactList.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbContactList.Location = new System.Drawing.Point(30, 125);
|
||||
this.cbContactList.Name = "cbContactList";
|
||||
this.cbContactList.Size = new System.Drawing.Size(169, 17);
|
||||
this.cbContactList.TabIndex = 2;
|
||||
this.cbContactList.Text = "Add this user to my contact list";
|
||||
this.cbContactList.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(302, 125);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 3;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
this.btnOK.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(381, 125);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 4;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
|
||||
//
|
||||
// ReverseAddedForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(470, 156);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.cbContactList);
|
||||
this.Controls.Add(this.gbMembership);
|
||||
this.Controls.Add(this.lblAdded);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ReverseAddedForm";
|
||||
this.Text = "Pending Contact {0}";
|
||||
this.gbMembership.ResumeLayout(false);
|
||||
this.gbMembership.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblAdded;
|
||||
private System.Windows.Forms.GroupBox gbMembership;
|
||||
private System.Windows.Forms.RadioButton rbAllow;
|
||||
private System.Windows.Forms.RadioButton rbBlock;
|
||||
private System.Windows.Forms.CheckBox cbContactList;
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
}
|
||||
}
|
||||
51
Example/ReverseAddedForm.cs
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using MSNPSharp;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
public partial class ReverseAddedForm : Form
|
||||
{
|
||||
public ReverseAddedForm(Contact contact)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Text = String.Format(Text, contact.Mail);
|
||||
lblAdded.Text = String.Format(lblAdded.Text, contact.Name + " (" + contact.Mail + ")");
|
||||
}
|
||||
|
||||
public bool Blocked
|
||||
{
|
||||
get
|
||||
{
|
||||
return rbBlock.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AddToContactList
|
||||
{
|
||||
get
|
||||
{
|
||||
return cbContactList.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
private void rbBlock_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (rbBlock.Checked)
|
||||
{
|
||||
cbContactList.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Example/ReverseAddedForm.resx
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
427
Example/RtfRichTextBox.cs
Normal file
|
|
@ -0,0 +1,427 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
using MSNPSharp;
|
||||
|
||||
public class RtfRichTextBox : RichTextBox
|
||||
{
|
||||
[DllImport("gdiplus.dll")]
|
||||
private static extern uint GdipEmfToWmfBits(IntPtr _hEmf, uint _bufferSize, byte[] _buffer, int _mappingMode, EmfToWmfBitsFlags _flags);
|
||||
|
||||
#region .cctor
|
||||
static bool hasGdiPlus = false;
|
||||
static RtfRichTextBox()
|
||||
{
|
||||
try
|
||||
{
|
||||
if(!Settings.IsMono)
|
||||
{
|
||||
//We are in M$ Windows!
|
||||
GdipEmfToWmfBits(IntPtr.Zero, 0, null, 0, 0);
|
||||
hasGdiPlus = true;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
private float xDpi;
|
||||
private float yDpi;
|
||||
|
||||
private RtfColor textColor = RtfColor.Black;
|
||||
private RtfColor highlightColor = RtfColor.White;
|
||||
private Dictionary<string, Bitmap> emotions = new Dictionary<string, Bitmap>();
|
||||
private Dictionary<RtfColor, string> rtfColor = new Dictionary<RtfColor, string>();
|
||||
private Dictionary<string, string> rtfFontFamily = new Dictionary<string, string>();
|
||||
|
||||
public RtfRichTextBox()
|
||||
{
|
||||
rtfColor.Add(RtfColor.Aqua, @"\red0\green255\blue255");
|
||||
rtfColor.Add(RtfColor.Black, @"\red0\green0\blue0");
|
||||
rtfColor.Add(RtfColor.Blue, @"\red0\green0\blue255");
|
||||
rtfColor.Add(RtfColor.Fuchsia, @"\red255\green0\blue255");
|
||||
rtfColor.Add(RtfColor.Gray, @"\red128\green128\blue128");
|
||||
rtfColor.Add(RtfColor.Green, @"\red0\green128\blue0");
|
||||
rtfColor.Add(RtfColor.Lime, @"\red0\green255\blue0");
|
||||
rtfColor.Add(RtfColor.Maroon, @"\red128\green0\blue0");
|
||||
rtfColor.Add(RtfColor.Navy, @"\red0\green0\blue128");
|
||||
rtfColor.Add(RtfColor.Olive, @"\red128\green128\blue0");
|
||||
rtfColor.Add(RtfColor.Purple, @"\red128\green0\blue128");
|
||||
rtfColor.Add(RtfColor.Red, @"\red255\green0\blue0");
|
||||
rtfColor.Add(RtfColor.Silver, @"\red192\green192\blue192");
|
||||
rtfColor.Add(RtfColor.Teal, @"\red0\green128\blue128");
|
||||
rtfColor.Add(RtfColor.White, @"\red255\green255\blue255");
|
||||
rtfColor.Add(RtfColor.Yellow, @"\red255\green255\blue0");
|
||||
|
||||
rtfFontFamily.Add(FontFamily.GenericMonospace.Name, @"\fmodern");
|
||||
rtfFontFamily.Add(FontFamily.GenericSansSerif.Name, @"\fswiss");
|
||||
rtfFontFamily.Add(FontFamily.GenericSerif.Name, @"\froman");
|
||||
rtfFontFamily.Add("UNKNOWN", @"\fnil");
|
||||
|
||||
using (Graphics graphics = CreateGraphics())
|
||||
{
|
||||
xDpi = graphics.DpiX;
|
||||
yDpi = graphics.DpiY;
|
||||
}
|
||||
}
|
||||
|
||||
public RtfRichTextBox(RtfColor _textColor)
|
||||
: this()
|
||||
{
|
||||
textColor = _textColor;
|
||||
}
|
||||
|
||||
public RtfRichTextBox(RtfColor _textColor, RtfColor _highlightColor)
|
||||
: this()
|
||||
{
|
||||
textColor = _textColor;
|
||||
highlightColor = _highlightColor;
|
||||
}
|
||||
|
||||
public void AppendRtf(string _rtf)
|
||||
{
|
||||
Select(TextLength, 0);
|
||||
SelectionColor = Color.Black;
|
||||
SelectedRtf = _rtf;
|
||||
}
|
||||
|
||||
public void AppendTextAsRtf(string _text)
|
||||
{
|
||||
AppendTextAsRtf(_text, Font);
|
||||
}
|
||||
|
||||
public void AppendTextAsRtf(string _text, Font _font)
|
||||
{
|
||||
AppendTextAsRtf(_text, _font, textColor);
|
||||
}
|
||||
|
||||
public void AppendTextAsRtf(string _text, Font _font, RtfColor _textColor)
|
||||
{
|
||||
AppendTextAsRtf(_text, _font, _textColor, highlightColor);
|
||||
}
|
||||
|
||||
public void AppendTextAsRtf(string _text, Font _font, RtfColor _textColor, RtfColor _backColor)
|
||||
{
|
||||
Select(TextLength, 0);
|
||||
InsertTextAsRtf(_text, _font, _textColor, _backColor);
|
||||
}
|
||||
|
||||
private string GetColorTable(RtfColor _textColor, RtfColor _backColor)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(@"{\colortbl ;");
|
||||
builder.Append(rtfColor[_textColor]);
|
||||
builder.Append(";");
|
||||
builder.Append(rtfColor[_backColor]);
|
||||
builder.Append(@";}\n");
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private string GetDocumentArea(string _text, Font _font)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(@"\viewkind4\uc1\pard\cf1\f0\fs20");
|
||||
builder.Append(@"\highlight2");
|
||||
if (_font.Bold)
|
||||
{
|
||||
builder.Append(@"\b");
|
||||
}
|
||||
if (_font.Italic)
|
||||
{
|
||||
builder.Append(@"\i");
|
||||
}
|
||||
if (_font.Strikeout)
|
||||
{
|
||||
builder.Append(@"\strike");
|
||||
}
|
||||
if (_font.Underline)
|
||||
{
|
||||
builder.Append(@"\ul");
|
||||
}
|
||||
builder.Append(@"\f0");
|
||||
builder.Append(@"\fs");
|
||||
builder.Append((int)Math.Round((double)(2f * _font.SizeInPoints)));
|
||||
builder.Append(" ");
|
||||
builder.Append(_text.Replace("\n", @"\par "));
|
||||
builder.Append(@"\highlight0");
|
||||
if (_font.Bold)
|
||||
{
|
||||
builder.Append(@"\b0");
|
||||
}
|
||||
if (_font.Italic)
|
||||
{
|
||||
builder.Append(@"\i0");
|
||||
}
|
||||
if (_font.Strikeout)
|
||||
{
|
||||
builder.Append(@"\strike0");
|
||||
}
|
||||
if (_font.Underline)
|
||||
{
|
||||
builder.Append(@"\ulnone");
|
||||
}
|
||||
builder.Append(@"\f0");
|
||||
builder.Append(@"\fs20");
|
||||
builder.Append(@"\cf0\fs17}");
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private string GetFontTable(Font _font)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(@"{\fonttbl{\f0");
|
||||
builder.Append(@"\");
|
||||
if (rtfFontFamily.ContainsKey(_font.FontFamily.Name))
|
||||
{
|
||||
builder.Append(rtfFontFamily[_font.FontFamily.Name]);
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Append(rtfFontFamily["UNKNOWN"]);
|
||||
}
|
||||
builder.Append(@"\fcharset0 ");
|
||||
builder.Append(_font.Name);
|
||||
builder.Append(";}}");
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private string GetImagePrefix(Image _image)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int picw = (int)Math.Round((double)((((float)_image.Width) / xDpi) * 2540f));
|
||||
int pich = (int)Math.Round((double)((((float)_image.Height) / yDpi) * 2540f));
|
||||
int picwgoal = (int)Math.Round((double)((((float)_image.Width) / xDpi) * 1440f));
|
||||
int pichgoal = (int)Math.Round((double)((((float)_image.Height) / yDpi) * 1440f));
|
||||
builder.Append(@"{\pict\wmetafile8");
|
||||
builder.Append(@"\picw");
|
||||
builder.Append(picw);
|
||||
builder.Append(@"\pich");
|
||||
builder.Append(pich);
|
||||
builder.Append(@"\picwgoal");
|
||||
builder.Append(picwgoal);
|
||||
builder.Append(@"\pichgoal");
|
||||
builder.Append(pichgoal);
|
||||
builder.Append(" ");
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private string GetRtfImage(Image _image)
|
||||
{
|
||||
MemoryStream stream = null;
|
||||
Graphics graphics = null;
|
||||
Metafile image = null;
|
||||
string ret;
|
||||
try
|
||||
{
|
||||
stream = new MemoryStream();
|
||||
using (graphics = CreateGraphics())
|
||||
{
|
||||
IntPtr hdc = graphics.GetHdc();
|
||||
image = new Metafile(stream, hdc);
|
||||
graphics.ReleaseHdc(hdc);
|
||||
}
|
||||
using (graphics = Graphics.FromImage(image))
|
||||
{
|
||||
graphics.DrawImage(_image, new Rectangle(0, 0, _image.Width, _image.Height));
|
||||
}
|
||||
IntPtr henhmetafile = image.GetHenhmetafile();
|
||||
uint num = GdipEmfToWmfBits(henhmetafile, 0, null, 1, EmfToWmfBitsFlags.EmfToWmfBitsFlagsDefault);
|
||||
byte[] buffer = new byte[num];
|
||||
GdipEmfToWmfBits(henhmetafile, num, buffer, 1, EmfToWmfBitsFlags.EmfToWmfBitsFlagsDefault);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 0; i < buffer.Length; i++)
|
||||
{
|
||||
builder.Append(string.Format("{0:X2}", buffer[i]));
|
||||
}
|
||||
ret = builder.ToString();
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (graphics != null)
|
||||
{
|
||||
graphics.Dispose();
|
||||
}
|
||||
if (image != null)
|
||||
{
|
||||
image.Dispose();
|
||||
}
|
||||
if (stream != null)
|
||||
{
|
||||
stream.Close();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void InsertEmotion()
|
||||
{
|
||||
if (hasGdiPlus)
|
||||
{
|
||||
foreach (string emoticon in emotions.Keys)
|
||||
{
|
||||
int start = Find(emoticon, RichTextBoxFinds.None);
|
||||
if (start > -1)
|
||||
{
|
||||
Select(start, emoticon.Length);
|
||||
InsertImage(emotions[emoticon]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void InsertImage(Image _image)
|
||||
{
|
||||
if (hasGdiPlus)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033");
|
||||
builder.Append(GetFontTable(Font));
|
||||
builder.Append(GetImagePrefix(_image));
|
||||
builder.Append(GetRtfImage(_image));
|
||||
builder.Append(@"}");
|
||||
|
||||
SelectedRtf = builder.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public void InsertRtf(string _rtf)
|
||||
{
|
||||
SelectedRtf = _rtf;
|
||||
}
|
||||
|
||||
public void InsertTextAsRtf(string _text)
|
||||
{
|
||||
InsertTextAsRtf(_text, Font);
|
||||
}
|
||||
|
||||
public void InsertTextAsRtf(string _text, Font _font)
|
||||
{
|
||||
InsertTextAsRtf(_text, _font, textColor);
|
||||
}
|
||||
|
||||
public void InsertTextAsRtf(string _text, Font _font, RtfColor _textColor)
|
||||
{
|
||||
InsertTextAsRtf(_text, _font, _textColor, highlightColor);
|
||||
}
|
||||
|
||||
public void InsertTextAsRtf(string _text, Font _font, RtfColor _textColor, RtfColor _backColor)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033");
|
||||
builder.Append(GetFontTable(_font));
|
||||
builder.Append(GetColorTable(_textColor, _backColor));
|
||||
builder.Append(GetDocumentArea(_text, _font));
|
||||
|
||||
SelectedRtf = builder.ToString();
|
||||
}
|
||||
|
||||
private string RemoveBadChars(string _originalRtf)
|
||||
{
|
||||
return _originalRtf.Replace("\0", "");
|
||||
}
|
||||
|
||||
public Dictionary<string, Bitmap> Emotions
|
||||
{
|
||||
get
|
||||
{
|
||||
return emotions;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasEmotion
|
||||
{
|
||||
get
|
||||
{
|
||||
if (hasGdiPlus)
|
||||
{
|
||||
foreach (string emoticon in emotions.Keys)
|
||||
{
|
||||
if (Text.IndexOf(emoticon, StringComparison.CurrentCultureIgnoreCase) > -1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public RtfColor HiglightColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return highlightColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
highlightColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Rtf
|
||||
{
|
||||
get
|
||||
{
|
||||
return RemoveBadChars(base.Rtf);
|
||||
}
|
||||
set
|
||||
{
|
||||
base.Rtf = value;
|
||||
}
|
||||
}
|
||||
|
||||
public RtfColor TextColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return textColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
textColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
[Flags]
|
||||
private enum EmfToWmfBitsFlags
|
||||
{
|
||||
EmfToWmfBitsFlagsDefault = 0,
|
||||
EmfToWmfBitsFlagsEmbedEmf = 1,
|
||||
EmfToWmfBitsFlagsIncludePlaceable = 2,
|
||||
EmfToWmfBitsFlagsNoXORClip = 4
|
||||
}
|
||||
|
||||
public enum RtfColor
|
||||
{
|
||||
Black,
|
||||
Maroon,
|
||||
Green,
|
||||
Olive,
|
||||
Navy,
|
||||
Purple,
|
||||
Teal,
|
||||
Gray,
|
||||
Silver,
|
||||
Red,
|
||||
Lime,
|
||||
Yellow,
|
||||
Blue,
|
||||
Fuchsia,
|
||||
Aqua,
|
||||
White
|
||||
}
|
||||
}
|
||||
};
|
||||
165
Example/TraceForm.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
namespace MSNPSharpClient
|
||||
{
|
||||
partial class TraceForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TraceForm));
|
||||
this.tsbStart = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsbStop = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tsbClear = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripLabelLevel = new System.Windows.Forms.ToolStripLabel();
|
||||
this.toolStripComboBoxLevel = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.rtbTrace = new System.Windows.Forms.RichTextBox();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tsbStart
|
||||
//
|
||||
this.tsbStart.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.tsbStart.Enabled = false;
|
||||
this.tsbStart.Image = ((System.Drawing.Image)(resources.GetObject("tsbStart.Image")));
|
||||
this.tsbStart.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.tsbStart.Name = "tsbStart";
|
||||
this.tsbStart.Size = new System.Drawing.Size(35, 22);
|
||||
this.tsbStart.Text = "Start";
|
||||
this.tsbStart.ToolTipText = "Start Tracing";
|
||||
this.tsbStart.Click += new System.EventHandler(this.tsbStart_Click);
|
||||
//
|
||||
// tsbStop
|
||||
//
|
||||
this.tsbStop.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.tsbStop.Image = ((System.Drawing.Image)(resources.GetObject("tsbStop.Image")));
|
||||
this.tsbStop.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.tsbStop.Name = "tsbStop";
|
||||
this.tsbStop.Size = new System.Drawing.Size(35, 22);
|
||||
this.tsbStop.Text = "Stop";
|
||||
this.tsbStop.ToolTipText = "Stop Tracing";
|
||||
this.tsbStop.Click += new System.EventHandler(this.tsbStop_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// tsbClear
|
||||
//
|
||||
this.tsbClear.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.tsbClear.Image = ((System.Drawing.Image)(resources.GetObject("tsbClear.Image")));
|
||||
this.tsbClear.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.tsbClear.Name = "tsbClear";
|
||||
this.tsbClear.Size = new System.Drawing.Size(38, 22);
|
||||
this.tsbClear.Text = "Clear";
|
||||
this.tsbClear.ToolTipText = "Clear All";
|
||||
this.tsbClear.Click += new System.EventHandler(this.tsbClear_Click);
|
||||
//
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tsbStart,
|
||||
this.tsbStop,
|
||||
this.toolStripSeparator1,
|
||||
this.tsbClear,
|
||||
this.toolStripSeparator2,
|
||||
this.toolStripLabelLevel,
|
||||
this.toolStripComboBoxLevel});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(661, 25);
|
||||
this.toolStrip1.TabIndex = 1;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// toolStripLabelLevel
|
||||
//
|
||||
this.toolStripLabelLevel.Name = "toolStripLabelLevel";
|
||||
this.toolStripLabelLevel.Size = new System.Drawing.Size(40, 22);
|
||||
this.toolStripLabelLevel.Text = "Level: ";
|
||||
//
|
||||
// toolStripComboBoxLevel
|
||||
//
|
||||
this.toolStripComboBoxLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.toolStripComboBoxLevel.Items.AddRange(new object[] {
|
||||
"Verbose",
|
||||
"Info",
|
||||
"Warning",
|
||||
"Error",
|
||||
"Off"});
|
||||
this.toolStripComboBoxLevel.Name = "toolStripComboBoxLevel";
|
||||
this.toolStripComboBoxLevel.Size = new System.Drawing.Size(121, 25);
|
||||
this.toolStripComboBoxLevel.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxLevel_SelectedIndexChanged);
|
||||
//
|
||||
// rtbTrace
|
||||
//
|
||||
this.rtbTrace.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rtbTrace.Location = new System.Drawing.Point(0, 30);
|
||||
this.rtbTrace.Name = "rtbTrace";
|
||||
this.rtbTrace.Size = new System.Drawing.Size(661, 457);
|
||||
this.rtbTrace.TabIndex = 0;
|
||||
this.rtbTrace.Text = "";
|
||||
//
|
||||
// TraceForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(661, 488);
|
||||
this.Controls.Add(this.toolStrip1);
|
||||
this.Controls.Add(this.rtbTrace);
|
||||
this.Name = "TraceForm";
|
||||
this.Text = "TraceForm";
|
||||
this.Load += new System.EventHandler(this.TraceForm_Load);
|
||||
this.toolStrip1.ResumeLayout(false);
|
||||
this.toolStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStripButton tsbStart;
|
||||
private System.Windows.Forms.ToolStripButton tsbStop;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripButton tsbClear;
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.RichTextBox rtbTrace;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabelLevel;
|
||||
private System.Windows.Forms.ToolStripComboBox toolStripComboBoxLevel;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
291
Example/TraceForm.cs
Normal file
|
|
@ -0,0 +1,291 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Security.Permissions;
|
||||
|
||||
namespace MSNPSharpClient
|
||||
{
|
||||
using MSNPSharp;
|
||||
|
||||
public partial class TraceForm : Form
|
||||
{
|
||||
RichTextBoxTraceListener rtbTraceListener = null;
|
||||
public TraceForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Icon = Properties.Resources.MSNPSharp_logo_small_ico;
|
||||
rtbTraceListener = new RichTextBoxTraceListener(rtbTrace);
|
||||
Trace.Listeners.Add(rtbTraceListener);
|
||||
|
||||
FormClosing += new FormClosingEventHandler(TraceForm_FormClosing);
|
||||
}
|
||||
|
||||
void TraceForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
rtbTraceListener.Close();
|
||||
Trace.Listeners.Remove(rtbTraceListener);
|
||||
}
|
||||
|
||||
private void tsbClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
rtbTrace.Clear();
|
||||
}
|
||||
|
||||
private void tsbStop_Click(object sender, EventArgs e)
|
||||
{
|
||||
rtbTraceListener.Stop();
|
||||
tsbStart.Enabled = true;
|
||||
tsbStop.Enabled = false;
|
||||
}
|
||||
|
||||
private void tsbStart_Click(object sender, EventArgs e)
|
||||
{
|
||||
rtbTraceListener.Resume();
|
||||
tsbStart.Enabled = false;
|
||||
tsbStop.Enabled = true;
|
||||
}
|
||||
|
||||
private void TraceForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
toolStripComboBoxLevel.SelectedItem = "Verbose";
|
||||
}
|
||||
|
||||
private void toolStripComboBoxLevel_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
MSNPSharp.Settings.TraceSwitch.Level = (TraceLevel)Enum.Parse(typeof(TraceLevel), toolStripComboBoxLevel.SelectedItem.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class TraceWriter : TextWriter
|
||||
{
|
||||
private RichTextBox richTextBox = null;
|
||||
private delegate void WriteHandler(string buffer, RichTextBox rtb);
|
||||
private const int MaxBufferLen = 1024;
|
||||
private StringBuilder buffer = new StringBuilder(MaxBufferLen);
|
||||
private DateTime lastInputTime = DateTime.Now;
|
||||
private Thread writeThread = null;
|
||||
private Queue<char> messageQueue = new Queue<char>(MaxBufferLen);
|
||||
private bool canClose = false;
|
||||
private bool userClick = false;
|
||||
private int selectionStart = 0;
|
||||
private int selectionLength = 0;
|
||||
|
||||
protected virtual void WriteBuffer()
|
||||
{
|
||||
StringBuilder trace = new StringBuilder(MaxBufferLen);
|
||||
while (!canClose)
|
||||
{
|
||||
lock (messageQueue)
|
||||
{
|
||||
|
||||
while (messageQueue.Count > 0)
|
||||
{
|
||||
trace.EnsureCapacity(buffer.Length < MaxBufferLen ? MaxBufferLen : MaxBufferLen + 2);
|
||||
trace.Append(messageQueue.Dequeue());
|
||||
}
|
||||
}
|
||||
|
||||
if (trace.Length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
richTextBox.BeginInvoke(new WriteHandler(OutPut), new object[] { trace.ToString(), richTextBox });
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
trace.Remove(0, trace.Length);
|
||||
}
|
||||
|
||||
Thread.Sleep(Settings.IsMono ? 5000 : 100);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OutPut(string buffer, RichTextBox rtb)
|
||||
{
|
||||
if (selectionStart == rtb.Text.Length)
|
||||
userClick = false;
|
||||
|
||||
rtb.AppendText(buffer);
|
||||
if (userClick)
|
||||
{
|
||||
rtb.Select(selectionStart, selectionLength);
|
||||
rtb.ScrollToCaret();
|
||||
}
|
||||
}
|
||||
|
||||
public TraceWriter(RichTextBox outputRTB)
|
||||
{
|
||||
richTextBox = outputRTB;
|
||||
richTextBox.Click += new EventHandler(richTextBox_Click);
|
||||
richTextBox.KeyDown += new KeyEventHandler(richTextBox_KeyDown);
|
||||
writeThread = new Thread(new ThreadStart(WriteBuffer));
|
||||
writeThread.Start();
|
||||
}
|
||||
|
||||
void richTextBox_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
userClick = true;
|
||||
selectionStart = richTextBox.SelectionStart;
|
||||
selectionLength = richTextBox.SelectionLength;
|
||||
}
|
||||
|
||||
void richTextBox_Click(object sender, EventArgs e)
|
||||
{
|
||||
userClick = true;
|
||||
selectionStart = richTextBox.SelectionStart;
|
||||
selectionLength = richTextBox.SelectionLength;
|
||||
}
|
||||
|
||||
public override void Write(char value)
|
||||
{
|
||||
if (richTextBox != null && buffer != null)
|
||||
{
|
||||
lock (messageQueue)
|
||||
{
|
||||
messageQueue.Enqueue(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
canClose = true;
|
||||
base.Close();
|
||||
}
|
||||
|
||||
public override Encoding Encoding
|
||||
{
|
||||
get { return Encoding.Default; }
|
||||
}
|
||||
}
|
||||
|
||||
[HostProtection(SecurityAction.LinkDemand, Synchronization = true)]
|
||||
public class RichTextBoxTraceListener : TraceListener
|
||||
{
|
||||
// Fields
|
||||
private TraceWriter writer = null;
|
||||
private object syncObject = new object();
|
||||
private bool stop = false;
|
||||
|
||||
// Methods
|
||||
public RichTextBoxTraceListener()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public RichTextBoxTraceListener(RichTextBox rtb)
|
||||
: base(string.Empty)
|
||||
{
|
||||
writer = new TraceWriter(rtb);
|
||||
}
|
||||
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
if (this.writer != null)
|
||||
{
|
||||
this.writer.Close();
|
||||
}
|
||||
this.writer = null;
|
||||
this.stop = true;
|
||||
}
|
||||
|
||||
private bool EnsureWriter()
|
||||
{
|
||||
lock (syncObject)
|
||||
{
|
||||
if (writer == null || stop == true) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Flush()
|
||||
{
|
||||
if (!EnsureWriter()) return;
|
||||
this.writer.Flush();
|
||||
}
|
||||
|
||||
private static Encoding GetEncodingWithFallback(Encoding encoding)
|
||||
{
|
||||
Encoding encoding2 = (Encoding)encoding.Clone();
|
||||
encoding2.EncoderFallback = EncoderFallback.ReplacementFallback;
|
||||
encoding2.DecoderFallback = DecoderFallback.ReplacementFallback;
|
||||
return encoding2;
|
||||
}
|
||||
|
||||
public override void Write (string message)
|
||||
{
|
||||
if (!EnsureWriter ())
|
||||
return;
|
||||
if (base.NeedIndent)
|
||||
{
|
||||
this.WriteIndent ();
|
||||
}
|
||||
|
||||
if (!Settings.IsMono)
|
||||
{
|
||||
this.writer.Write ("[" + DateTime.Now.ToString ("u") + "] " + message);
|
||||
}
|
||||
}
|
||||
|
||||
public override void WriteLine(string message)
|
||||
{
|
||||
if (!EnsureWriter()) return;
|
||||
if (base.NeedIndent)
|
||||
{
|
||||
this.WriteIndent();
|
||||
}
|
||||
this.writer.WriteLine("[" + DateTime.Now.ToString("u") + "] " + message);
|
||||
base.NeedIndent = true;
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
lock (syncObject)
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void Resume()
|
||||
{
|
||||
lock (syncObject)
|
||||
{
|
||||
stop = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Properties
|
||||
public TraceWriter Writer
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.writer;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.writer = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
169
Example/TraceForm.resx
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="tsbStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbStop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbClear.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||