v3.0 - System Update - Reworked storage and network systems.
|
@ -14,30 +14,31 @@ namespace MSGer.tk
|
||||||
public AboutBox1()
|
public AboutBox1()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.Text = String.Format(Language.GetCuurentLanguage().Strings["about"], AssemblyTitle);
|
this.Text = String.Format(Language.Translate("about"), AssemblyTitle);
|
||||||
this.labelProductName.Text = AssemblyProduct;
|
this.labelProductName.Text = AssemblyProduct;
|
||||||
this.labelVersion.Text = String.Format(Language.GetCuurentLanguage().Strings["about_version"], AssemblyVersion);
|
this.labelVersion.Text = String.Format(Language.Translate("about_version"), AssemblyVersion);
|
||||||
this.labelCopyright.Text = AssemblyCopyright;
|
this.labelCopyright.Text = AssemblyCopyright;
|
||||||
|
|
||||||
labelLicenseLink.Text = "https://www.gnu.org/copyleft/gpl.html"; //2014.04.18. - Frissitve: 2014.04.25.
|
labelLicenseLink.Text = "https://www.gnu.org/copyleft/gpl.html"; //2014.04.18. - Frissitve: 2014.04.25.
|
||||||
List<string> desc = new List<string>(); //2014.04.18.
|
List<string> desc = new List<string>(); //2014.04.18.
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_programmer"]); //2014.04.18.
|
desc.Add(Language.Translate("about_programmer")); //2014.04.18.
|
||||||
desc.Add("SzNP");
|
desc.Add("SzNP");
|
||||||
desc.Add("http://sznp.tk");
|
desc.Add("http://sznp.tk");
|
||||||
desc.Add("");
|
desc.Add("");
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_specialthanks"]);
|
desc.Add(Language.Translate("about_specialthanks"));
|
||||||
desc.Add("Jonathan Kay");
|
desc.Add("Jonathan Kay");
|
||||||
desc.Add("http://messengergeek.com");
|
desc.Add("http://messengergeek.com");
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_specthanks1"]);
|
desc.Add(Language.Translate("about_specthanks1"));
|
||||||
|
desc.Add("");
|
||||||
|
desc.Add(Language.Translate("about_specthanks2"));
|
||||||
desc.Add("");
|
desc.Add("");
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_specthanks2"]);
|
|
||||||
desc.Add("Allen Anderson");
|
desc.Add("Allen Anderson");
|
||||||
desc.Add("http://www.codeproject.com/Articles/4012/C-List-View-v");
|
desc.Add("http://www.codeproject.com/Articles/4012/C-List-View-v");
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_specthanks3"]);
|
desc.Add(Language.Translate("about_specthanks3"));
|
||||||
desc.Add("");
|
desc.Add("");
|
||||||
desc.Add("Khendys Gordon");
|
desc.Add("Khendys Gordon");
|
||||||
desc.Add("http://www.codeproject.com/Articles/4544/Insert-Plain-Text-and-Images-into-RichTextBox-at-R");
|
desc.Add("http://www.codeproject.com/Articles/4544/Insert-Plain-Text-and-Images-into-RichTextBox-at-R");
|
||||||
desc.Add(Language.GetCuurentLanguage().Strings["about_specthanks4"]);
|
desc.Add(Language.Translate("about_specthanks4"));
|
||||||
textBoxDescription.Lines = desc.ToArray();
|
textBoxDescription.Lines = desc.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,42 +16,74 @@ namespace MSGer.tk
|
||||||
public AddPartner()
|
public AddPartner()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.Text = Language.GetCuurentLanguage().Strings["addcontact"];
|
this.Text = Language.Translate("addcontact");
|
||||||
label1.Text = Language.GetCuurentLanguage().Strings["addcontact"];
|
label1.Text = Language.Translate("addcontact");
|
||||||
label2.Text = Language.GetCuurentLanguage().Strings["addcontact_nameemail"];
|
label2.Text = Language.Translate("addcontact_nameemail");
|
||||||
searchbtn.Text = Language.GetCuurentLanguage().Strings["addcontact_search"];
|
searchbtn.Text = Language.Translate("addcontact_search");
|
||||||
glacialList1.Columns[0].Text = Language.GetCuurentLanguage().Strings["reg_username"];
|
glacialList1.Columns[0].Text = Language.Translate("reg_username");
|
||||||
gobtn.Text = Language.GetCuurentLanguage().Strings["addcontact_add"];
|
gobtn.Text = Language.Translate("addcontact_add");
|
||||||
}
|
}
|
||||||
|
|
||||||
string[] username;
|
/*string[] username;
|
||||||
int[] uid;
|
int[] uid;
|
||||||
string[] message;
|
string[] message;
|
||||||
int[] online;
|
int[] online;
|
||||||
string[] shownname;
|
string[] shownname;
|
||||||
string[] email;
|
string[] email;*/
|
||||||
|
List<UserInfo> FoundUsers = new List<UserInfo>();
|
||||||
|
|
||||||
private void searchbtn_Click(object sender, EventArgs e)
|
private void searchbtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
glacialList1.Items.Clear();
|
glacialList1.Items.Clear();
|
||||||
string[] people = Networking.SendRequest("findpeople", nameText.Text, 0, true).Split('ͦ'); //2014.04.18. 0:07 - Még nem készítettem el
|
//string[] people = Networking.SendRequest("findpeople", nameText.Text, 0, true).Split('ͦ'); //2014.04.18. 0:07 - Még nem készítettem el
|
||||||
for (int x = 0, y = 0; x + 5 < people.Length; x += 6, y++)
|
/*byte[][] tmpret = Networking.SendUpdate(Networking.UpdateType.FindPeople, Encoding.Unicode.GetBytes(nameText.Text), false);
|
||||||
|
if (tmpret == null)
|
||||||
{
|
{
|
||||||
username = new string[people.Length / 6];
|
glacialList1.Items.Add(Language.Translate("networking_alone"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < tmpret.Length; i++)
|
||||||
|
{
|
||||||
|
byte[] tmpb = tmpret[i];
|
||||||
|
string tmpstr = Encoding.Unicode.GetString(tmpb, 1, tmpb.Length - 1); //0. byte==UserID
|
||||||
|
string[] people = tmpstr.Split('ͦ');
|
||||||
|
for (int x = 0, y = 0; x + 5 < people.Length; x += 6, y++)
|
||||||
|
{*/
|
||||||
|
/*username = new string[people.Length / 6];
|
||||||
uid = new int[people.Length / 6];
|
uid = new int[people.Length / 6];
|
||||||
message = new string[people.Length / 6];
|
message = new string[people.Length / 6];
|
||||||
online = new int[people.Length / 6];
|
online = new int[people.Length / 6];
|
||||||
shownname = new string[people.Length / 6];
|
shownname = new string[people.Length / 6];
|
||||||
email = new string[people.Length / 6];
|
email = new string[people.Length / 6];*/
|
||||||
|
|
||||||
username[y] = people[x];
|
//username[y] = people[x];
|
||||||
uid[y] = Int32.Parse(people[x + 1]);
|
/*var tmp = new UserInfo();
|
||||||
message[y] = people[x + 2];
|
tmp.UserName = people[x];
|
||||||
online[y] = Int32.Parse(people[x + 3]);
|
tmp.UserID = Int32.Parse(people[x + 1]);
|
||||||
shownname[y] = people[x + 4];
|
tmp.Message = people[x + 2];
|
||||||
email[y] = people[x + 5];
|
tmp.State = Int32.Parse(people[x + 3]);
|
||||||
|
tmp.Name = people[x + 4];
|
||||||
|
tmp.Email = people[x + 5];
|
||||||
|
|
||||||
glacialList1.Items.Add(username[y]);
|
if (!FoundUsers.Contains(tmp)) //2014.08.19.
|
||||||
|
{
|
||||||
|
|
||||||
|
//glacialList1.Items.Add(username[y]);
|
||||||
|
glacialList1.Items.Add(tmp.UserName);
|
||||||
|
|
||||||
|
FoundUsers.Add(tmp); //2014.08.16.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//2014.09.09. - Miután először az egészet megcsináltam, néhány nappal később az egészet elölről kezdem
|
||||||
|
foreach (var tmp in UserInfo.KnownUsers)
|
||||||
|
{
|
||||||
|
if ((tmp.UserName.Contains(nameText.Text) || tmp.Name.Contains(nameText.Text) || tmp.UserID.ToString() == nameText.Text) && !FoundUsers.Contains(tmp))
|
||||||
|
{
|
||||||
|
glacialList1.Items.Add(tmp.UserName);
|
||||||
|
|
||||||
|
FoundUsers.Add(tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,15 +93,20 @@ namespace MSGer.tk
|
||||||
if (item >= glacialList1.Items.Count)
|
if (item >= glacialList1.Items.Count)
|
||||||
return;
|
return;
|
||||||
//2014.04.18. - Partnerinformáció mutatása
|
//2014.04.18. - Partnerinformáció mutatása
|
||||||
|
//2014.08.16. - Megvalósítás
|
||||||
|
//(new PartnerInformation(FoundUsers[item].Name, FoundUsers[item].State, FoundUsers[item].Message, FoundUsers[item].UserName, FoundUsers[item].UserID, FoundUsers[item].Email)).ShowDialog(); //2014.08.16.
|
||||||
|
if (FoundUsers.Count < item)
|
||||||
|
(new PartnerInformation(FoundUsers[item])).ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void gobtn_Click(object sender, EventArgs e)
|
private void gobtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (glacialList1.SelectedItems.Count == 0)
|
if (glacialList1.SelectedItems.Count == 0 || FoundUsers.Count == 0)
|
||||||
return;
|
return;
|
||||||
string username = ((GLItem)glacialList1.SelectedItems[0]).Text;
|
string username = ((GLItem)glacialList1.SelectedItems[0]).Text;
|
||||||
string response = Networking.SendRequest("adduser", username, 0, true);
|
string response = Networking.SendRequest("adduser", username, 0, true);
|
||||||
if (Networking.SendRequest("adduser", username, 0, true) == "Success")
|
//if (Networking.SendRequest("adduser", username, 0, true) == "Success")
|
||||||
|
if (response == "Success")
|
||||||
MessageBox.Show("Felhasználó felvéve az ismerőseid közé.");
|
MessageBox.Show("Felhasználó felvéve az ismerőseid közé.");
|
||||||
else
|
else
|
||||||
MessageBox.Show("Nem sikerült felvenni a felhasználót az ismerőseid közé.\nLehet, hogy már felvetted, vagy valami hiba történt.\n(" + response + ")");
|
MessageBox.Show("Nem sikerült felvenni a felhasználót az ismerőseid közé.\nLehet, hogy már felvetted, vagy valami hiba történt.\n(" + response + ")");
|
||||||
|
|
19
MSGer.tk/ChatForm.Designer.cs
generated
|
@ -28,7 +28,7 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.messageTextBox = new MSGer.tk.ExExRichTextBox();
|
this.messageTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
this.recentMsgTextBox = new Khendys.Controls.ExRichTextBox();
|
this.recentMsgTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
@ -36,6 +36,7 @@
|
||||||
this.partnerMsg = new Khendys.Controls.ExRichTextBox();
|
this.partnerMsg = new Khendys.Controls.ExRichTextBox();
|
||||||
this.partnerName = new Khendys.Controls.ExRichTextBox();
|
this.partnerName = new Khendys.Controls.ExRichTextBox();
|
||||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||||
|
this.showicons = new System.Windows.Forms.CheckBox();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -150,12 +151,24 @@
|
||||||
//
|
//
|
||||||
this.openFileDialog1.FileName = "openFileDialog1";
|
this.openFileDialog1.FileName = "openFileDialog1";
|
||||||
//
|
//
|
||||||
|
// showicons
|
||||||
|
//
|
||||||
|
this.showicons.AutoSize = true;
|
||||||
|
this.showicons.Location = new System.Drawing.Point(150, 392);
|
||||||
|
this.showicons.Name = "showicons";
|
||||||
|
this.showicons.Size = new System.Drawing.Size(76, 17);
|
||||||
|
this.showicons.TabIndex = 5;
|
||||||
|
this.showicons.Text = "showicons";
|
||||||
|
this.showicons.UseVisualStyleBackColor = true;
|
||||||
|
this.showicons.CheckedChanged += new System.EventHandler(this.showicons_CheckedChanged);
|
||||||
|
//
|
||||||
// ChatForm
|
// ChatForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
this.ClientSize = new System.Drawing.Size(564, 422);
|
this.ClientSize = new System.Drawing.Size(564, 422);
|
||||||
|
this.Controls.Add(this.showicons);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.recentMsgTextBox);
|
this.Controls.Add(this.recentMsgTextBox);
|
||||||
|
@ -166,12 +179,13 @@
|
||||||
this.Load += new System.EventHandler(this.ChatForm_Load);
|
this.Load += new System.EventHandler(this.ChatForm_Load);
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private ExExRichTextBox messageTextBox;
|
private Khendys.Controls.ExRichTextBox messageTextBox;
|
||||||
private Khendys.Controls.ExRichTextBox recentMsgTextBox;
|
private Khendys.Controls.ExRichTextBox recentMsgTextBox;
|
||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
@ -179,5 +193,6 @@
|
||||||
public Khendys.Controls.ExRichTextBox partnerMsg;
|
public Khendys.Controls.ExRichTextBox partnerMsg;
|
||||||
public Khendys.Controls.ExRichTextBox statusLabel;
|
public Khendys.Controls.ExRichTextBox statusLabel;
|
||||||
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||||
|
private System.Windows.Forms.CheckBox showicons;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -25,50 +25,58 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
public static List<ChatForm> ChatWindows = new List<ChatForm>();
|
public static List<ChatForm> ChatWindows = new List<ChatForm>();
|
||||||
public List<int> ChatPartners = new List<int>();
|
public List<int> ChatPartners = new List<int>();
|
||||||
public List<string> PendingMessages = new List<string>();
|
//public List<string> PendingMessages = new List<string>();
|
||||||
public Thread UpdateT;
|
//public Thread UpdateT;
|
||||||
public ChatForm()
|
public ChatForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
//Amint létrehozom, ez a kód lefut - Nem számit, hogy megjelenik-e
|
//Amint létrehozom, ez a kód lefut - Nem számit, hogy megjelenik-e
|
||||||
|
|
||||||
|
this.Text = Language.Translate("chat_title");
|
||||||
|
showicons.Text = Language.Translate("chat_showicons");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChatForm_Load(object sender, EventArgs e)
|
private void ChatForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (ChatPartners.Count == 0)
|
if (ChatPartners.Count == 0)
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error"] + ": " + Language.GetCuurentLanguage().Strings["chat_nowindow"]);
|
MessageBox.Show(Language.Translate("error") + ": " + Language.Translate("chat_nowindow"));
|
||||||
if (ChatPartners.Count == 1)
|
if (ChatPartners.Count == 1)
|
||||||
{
|
{
|
||||||
partnerName.Text = UserInfo.Partners[ChatPartners[0]].Name;
|
partnerName.Text = UserInfo.Select(ChatPartners[0]).Name;
|
||||||
TextFormat.Parse(partnerName);
|
TextFormat.Parse(partnerName);
|
||||||
partnerMsg.Text = UserInfo.Partners[ChatPartners[0]].Message;
|
partnerMsg.Text = UserInfo.Select(ChatPartners[0]).Message;
|
||||||
TextFormat.Parse(partnerMsg);
|
TextFormat.Parse(partnerMsg);
|
||||||
switch(UserInfo.Partners[ChatPartners[0]].State)
|
switch (UserInfo.Select(ChatPartners[0]).State)
|
||||||
{
|
{
|
||||||
case "0":
|
case 0:
|
||||||
{
|
{
|
||||||
statusLabel.Text = Language.GetCuurentLanguage().Strings["offline"];
|
statusLabel.Text = Language.Translate("offline");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "1":
|
case 1:
|
||||||
{
|
{
|
||||||
statusLabel.Text = Language.GetCuurentLanguage().Strings["menu_file_status_online"];
|
statusLabel.Text = Language.Translate("menu_file_status_online");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "2":
|
case 2:
|
||||||
{
|
{
|
||||||
statusLabel.Text = Language.GetCuurentLanguage().Strings["menu_file_status_busy"];
|
statusLabel.Text = Language.Translate("menu_file_status_busy");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "3":
|
case 3:
|
||||||
{
|
{
|
||||||
statusLabel.Text = Language.GetCuurentLanguage().Strings["menu_file_status_away"];
|
statusLabel.Text = Language.Translate("menu_file_status_away");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("networking_alone");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateT = new Thread(new ThreadStart(UpdateMessages));
|
//UpdateT = new Thread(new ThreadStart(UpdateMessages));
|
||||||
UpdateT.Name = "Message Update Thread (" + partnerName.Text + ")";
|
//UpdateT.Name = "Message Update Thread (" + partnerName.Text + ")";
|
||||||
UpdateT.Start();
|
//UpdateT.Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +99,9 @@ namespace MSGer.tk
|
||||||
* Csinálja úgy, mint a képeknél, hogy a legutóbbi üzenetlekérés dátumához igazodjon, és csak a legújabb üzeneteket
|
* Csinálja úgy, mint a képeknél, hogy a legutóbbi üzenetlekérés dátumához igazodjon, és csak a legújabb üzeneteket
|
||||||
* töltse le
|
* töltse le
|
||||||
*/
|
*/
|
||||||
PendingMessages.Add(messageTextBox.Text);
|
//PendingMessages.Add(messageTextBox.Text);
|
||||||
|
if (!Networking.SendChatMessage(this, messageTextBox.Text))
|
||||||
|
MessageBox.Show(Language.Translate("networking_alone"));
|
||||||
messageTextBox.Focus();
|
messageTextBox.Focus();
|
||||||
messageTextBox.Text = "";
|
messageTextBox.Text = "";
|
||||||
messageTextBox.ReadOnly = false;
|
messageTextBox.ReadOnly = false;
|
||||||
|
@ -103,9 +113,9 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
if (messageTextBox.Text == "\n")
|
if (messageTextBox.Text == "\n")
|
||||||
messageTextBox.Text = "";
|
messageTextBox.Text = "";
|
||||||
#if emoticons
|
#if emoticons
|
||||||
TextFormat.Parse((ExExRichTextBox)sender);
|
TextFormat.Parse((ExExRichTextBox)sender);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,8 +123,8 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
Process.Start(e.LinkText);
|
Process.Start(e.LinkText);
|
||||||
}
|
}
|
||||||
public void UpdateMessages()
|
//public void UpdateMessages()
|
||||||
{
|
//{
|
||||||
/*
|
/*
|
||||||
* 2014.03.21.
|
* 2014.03.21.
|
||||||
* updatemessages: küldje el, hogy mikor kapott utoljára üzenetet ÉS az új üzeneteket,
|
* updatemessages: küldje el, hogy mikor kapott utoljára üzenetet ÉS az új üzeneteket,
|
||||||
|
@ -126,71 +136,35 @@ namespace MSGer.tk
|
||||||
* ----
|
* ----
|
||||||
* Az új üzeneteket egy listában tárolja, majd amikor továbbitja őket, törölje a listából fokozatosan
|
* Az új üzeneteket egy listában tárolja, majd amikor továbbitja őket, törölje a listából fokozatosan
|
||||||
* (ahogy összeállitja a karakterláncot, mindig törölje azt az üzenetet a listából
|
* (ahogy összeállitja a karakterláncot, mindig törölje azt az üzenetet a listából
|
||||||
|
*
|
||||||
|
* 2014.08.08.
|
||||||
|
* Az UpdateListAndChat thread kezelje ezt is,
|
||||||
|
* az updatemessages packet-et csak akkor küldje el, ha új üzenet érkezik,
|
||||||
|
* a régebbi üzeneteket (getrecentmessages) tárolja el lokálisan, mint minden egyéb adatát
|
||||||
*/
|
*/
|
||||||
while (ChatWindows.Count != 0 && !this.IsDisposed && MainForm.MainThread.IsAlive)
|
//while (ChatWindows.Count != 0 && !this.IsDisposed && MainForm.MainThread.IsAlive)
|
||||||
{
|
//{
|
||||||
try
|
//}
|
||||||
{
|
//}
|
||||||
string tmpstring = "";
|
|
||||||
for (int i = 0; i < ChatPartners.Count; i++)
|
|
||||||
{
|
|
||||||
tmpstring += UserInfo.Partners[ChatPartners[i]].UserID;
|
|
||||||
if (i + 1 < ChatPartners.Count)
|
|
||||||
tmpstring += ","; //Több emberrel is beszélhet
|
|
||||||
}
|
|
||||||
tmpstring += "ͦ"; //2014.03.27.
|
|
||||||
if (PendingMessages.Count == 0)
|
|
||||||
{
|
|
||||||
tmpstring += "NoMSG" + "ͦ";
|
|
||||||
}
|
|
||||||
while (PendingMessages.Count > 0)
|
|
||||||
{
|
|
||||||
tmpstring += PendingMessages[0] + "ͦ"; //Nem az i-nél tevékenykedik, hanem a 0-nál
|
|
||||||
PendingMessages.RemoveAt(0);
|
|
||||||
}
|
|
||||||
if (tmpstring.Length > 0)
|
|
||||||
{ //Küldje el a lekérést
|
|
||||||
string[] response = Networking.SendRequest("updatemessages", tmpstring, 0, true).Split('ͦ');
|
|
||||||
if (response == null || response.Length == 0 || response[0] == "Fail")
|
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["msgupdate_error"]);
|
|
||||||
//0 - Frissitési idő; 1 - Üzenetküldő; 2 - Üzenet; 3 - Üzenetküldés időpontja
|
|
||||||
if (response[0] != "NoChange")
|
|
||||||
{
|
|
||||||
for (int x = 0; x + 2 < response.Length; x += 3)
|
|
||||||
{
|
|
||||||
string[] cmd = response[x + 1].Split(' ');
|
|
||||||
switch (cmd[0])
|
|
||||||
{
|
|
||||||
case "//sendfile":
|
|
||||||
string[] ipportname = cmd[1].Split(':');
|
|
||||||
IPAddress ipAddr = IPAddress.Parse(ipportname[0]);
|
|
||||||
var permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
|
|
||||||
var ipEndPoint = new IPEndPoint(ipAddr, Int32.Parse(ipportname[1]));
|
|
||||||
var receiverSock = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
|
||||||
receiverSock.Connect(ipEndPoint);
|
|
||||||
var ns = new NetworkStream(receiverSock);
|
|
||||||
var fs = new FileStream(ipportname[2], FileMode.Create);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
TMessage = "\n" + ((Int32.Parse(response[x]) == CurrentUser.UserID) ? CurrentUser.Name : UserInfo.Partners[Int32.Parse(response[x])].Name) + " " + Language.GetCuurentLanguage().Strings["said"] + " (" + Program.UnixTimeToDateTime(response[x + 2]).ToString("yyyy.MM.dd. HH:mm:ss") + "):\n" + response[x + 1]+"\n";
|
|
||||||
this.Invoke(new LoginForm.MyDelegate(SetThreadValues));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(InvalidOperationException)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ChatForm_FormClosing(object sender, FormClosingEventArgs e)
|
private void ChatForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
ChatWindows.Remove(this);
|
ChatWindows.Remove(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string TMessage;
|
public static ChatForm GetChatFormByUsers(IEnumerable<int> users) //2014.08.08. - IEnumerable: 2014.08.16.
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ChatWindows.Count; i++)
|
||||||
|
{
|
||||||
|
if (ChatWindows[i].ChatPartners.HasSameElementsAs(users))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (i != ChatWindows.Count) ? ChatWindows[i] : null; //== --> !=: 2014.09.22.
|
||||||
|
}
|
||||||
|
|
||||||
|
//public static string TMessage;
|
||||||
|
public string TMessage;
|
||||||
public int SetThreadValues()
|
public int SetThreadValues()
|
||||||
{
|
{
|
||||||
recentMsgTextBox.AppendText(TMessage);
|
recentMsgTextBox.AppendText(TMessage);
|
||||||
|
@ -209,7 +183,8 @@ namespace MSGer.tk
|
||||||
Stream st = new FileStream(openFileDialog1.FileName, FileMode.Open);
|
Stream st = new FileStream(openFileDialog1.FileName, FileMode.Open);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (CurrentUser.CopyToMemoryOnFileSend)
|
//if (CurrentUser.CopyToMemoryOnFileSend)
|
||||||
|
if (new FileInfo(openFileDialog1.FileName).Length > Int64.Parse(Storage.Settings["filelen"]))
|
||||||
{
|
{
|
||||||
List<byte> buf = new List<byte>();
|
List<byte> buf = new List<byte>();
|
||||||
int b;
|
int b;
|
||||||
|
@ -222,7 +197,7 @@ namespace MSGer.tk
|
||||||
st = new MemoryStream(buf.ToArray(), false);
|
st = new MemoryStream(buf.ToArray(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(OutOfMemoryException)
|
catch (OutOfMemoryException)
|
||||||
{ //A MemoryStream-et nem hozza létre, ezzel elméletileg memóriát felszabadítva
|
{ //A MemoryStream-et nem hozza létre, ezzel elméletileg memóriát felszabadítva
|
||||||
st.Seek(0, SeekOrigin.Begin);
|
st.Seek(0, SeekOrigin.Begin);
|
||||||
}
|
}
|
||||||
|
@ -237,13 +212,14 @@ namespace MSGer.tk
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
string ret = Networking.SendRequest("setip", spform.Partners[0] + 'ͦ' + localIP.ToString() + ":" + Settings.Default.port + ":" + openFileDialog1.FileName, 0, true);
|
//string ret = Networking.SendRequest("setip", spform.Partners[0] + 'ͦ' + localIP.ToString() + ":" + Settings.Default.port + ":" + openFileDialog1.FileName, 0, true);
|
||||||
var ipAddr = IPAddress.Parse(ret);
|
//var ipAddr = IPAddress.Parse(ret);
|
||||||
|
IPAddress ipAddr = null; //Használja fel a partner ismert IP-címét
|
||||||
Socket sListener;
|
Socket sListener;
|
||||||
SocketPermission permission;
|
SocketPermission permission;
|
||||||
permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
|
permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
|
||||||
sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
||||||
var ipEndPoint = new IPEndPoint(ipAddr, Settings.Default.port);
|
var ipEndPoint = new IPEndPoint(ipAddr, Int32.Parse(Storage.Settings["port"]));
|
||||||
sListener.Listen(1);
|
sListener.Listen(1);
|
||||||
ST = st; //Átadja az adatfolyamot a nyilvánosabb változónak
|
ST = st; //Átadja az adatfolyamot a nyilvánosabb változónak
|
||||||
AsyncCallback aCallback = new AsyncCallback(SendFile_AcceptCallback);
|
AsyncCallback aCallback = new AsyncCallback(SendFile_AcceptCallback);
|
||||||
|
@ -262,5 +238,21 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
Console.WriteLine("SendFile: " + bytesRead + " / " + totalBytesToRead);
|
Console.WriteLine("SendFile: " + bytesRead + " / " + totalBytesToRead);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string CurrentMessage = "";
|
||||||
|
private void showicons_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (showicons.Checked)
|
||||||
|
{
|
||||||
|
CurrentMessage = messageTextBox.Text;
|
||||||
|
messageTextBox.Enabled = false;
|
||||||
|
TextFormat.Parse(messageTextBox);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
messageTextBox.Text = CurrentMessage;
|
||||||
|
messageTextBox.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
@ -14,20 +15,264 @@ namespace MSGer.tk
|
||||||
* Információátrendezés: Property-k használata; Minden felhasználóhoz egy-egy User class
|
* Információátrendezés: Property-k használata; Minden felhasználóhoz egy-egy User class
|
||||||
* Ez a class használható lenne az aktuális felhsaználó információinak tárolására
|
* Ez a class használható lenne az aktuális felhsaználó információinak tárolására
|
||||||
*/
|
*/
|
||||||
public static int UserID = 0;
|
//public static int UserID = 0;
|
||||||
|
public static int UserID
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_userid"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_userid", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_userid"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_userid"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_userid", "0");
|
||||||
|
Storage.LoggedInSettings["currentuser_userid"] = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
//public static int[] PartnerIDs = new int[1024];
|
//public static int[] PartnerIDs = new int[1024];
|
||||||
public static string Name = "";
|
//public static string Name = "";
|
||||||
|
public static string Name
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_name"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_name", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_name"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_name"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_name", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Name = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_name"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
//public static Language Language = Language.English; //2014.04.19.
|
//public static Language Language = Language.English; //2014.04.19.
|
||||||
public static Language Language;
|
//public static Language Language;
|
||||||
public static string Message = "";
|
public static Language Language
|
||||||
public static string State = "";
|
{
|
||||||
public static string UserName = "";
|
get
|
||||||
public static string Email = "";
|
{
|
||||||
/// <summary>
|
return Language.FromString(Storage.Settings["lang"]);
|
||||||
/// Átmásolja-e a memóriába az egész fájlt a küldés előtt.
|
}
|
||||||
/// Nagy méretű fájloknál nem ajánlott, különben igen a fájl esetleges elérhetetlensége miatt.
|
set
|
||||||
/// 2014.06.15.
|
{
|
||||||
/// </summary>
|
Storage.Settings["lang"] = value.ToString();
|
||||||
public static bool CopyToMemoryOnFileSend = true;
|
}
|
||||||
|
}
|
||||||
|
//public static string Message = "";
|
||||||
|
public static string Message
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_message"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_message", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_message"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_message"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_message", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Message = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_message"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string State = "";
|
||||||
|
public static int State
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_state"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_state", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_state"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_state"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_state", "0");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.State = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_state"] = value.ToString();
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string UserName = "";
|
||||||
|
public static string UserName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_username"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_username", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_username"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_username"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_username", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.UserName = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_username"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string Email = "";
|
||||||
|
public static string Email
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_email"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_email", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_email"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_email"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_email", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Email = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_email"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//private static IPAddress[] ips = new IPAddress[2];
|
||||||
|
/*public static IPAddress[] IPs //2014.08.29.
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.Settings.ContainsKey("myip"))
|
||||||
|
Storage.LoggedInSettings.Add("myip", "127.0.0.1");
|
||||||
|
string[] strs = Storage.LoggedInSettings["myip"].Split(';');
|
||||||
|
*var ips = new IPAddress[strs.Length];
|
||||||
|
for (int i = 0; i < ips.Length; i++)
|
||||||
|
{
|
||||||
|
ips[i] = IPAddress.Parse(strs[i]);
|
||||||
|
}*
|
||||||
|
IPAddress[] ips = strs.Select(entry => IPAddress.Parse(entry)).ToArray();
|
||||||
|
return ips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.Settings.ContainsKey("myip"))
|
||||||
|
Storage.Settings.Add("myip", "");
|
||||||
|
string[] strs = value.Select(entry => entry.ToString()).ToArray();
|
||||||
|
Storage.Settings["myip"] = String.Join(";", strs);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//public static IPAddress[] IPs { get; set; }
|
||||||
|
//private static List<IPAddress> ips = new List<IPAddress>();
|
||||||
|
/*public static List<IPAddress> IPs
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
ips = value;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
public static IPAddress IP;
|
||||||
|
/*public static IPAddress IP
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return IPAddress.Parse(Storage.Settings["myip"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Storage.Settings["myip"] = value.ToString();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
public static string[] Keys
|
||||||
|
{ //2014.09.08-09.
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keys"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keys", "");
|
||||||
|
var tmp = new string[100]; //Mindig 100 elemű tömb legyen
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).CopyTo(tmp, 0);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keys"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keys", "");
|
||||||
|
string x = "";
|
||||||
|
//Storage.LoggedInSettings["currentuser_keys"] = value.Select(new Func<string, string>(delegate { var x = ""; foreach (var item in value) { x += item + ";"; } return x; }));
|
||||||
|
foreach (var item in value)
|
||||||
|
{
|
||||||
|
x += item;
|
||||||
|
x += ";";
|
||||||
|
}
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"] = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static int KeyIndex
|
||||||
|
{ //2014.09.09.
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keyindex"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keyindex", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_keyindex"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keyindex"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keyindex", "0");
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"] = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static bool SendChanges = false;
|
||||||
|
///// <summary>
|
||||||
|
///// Átmásolja-e a memóriába az egész fájlt a küldés előtt.
|
||||||
|
///// Nagy méretű fájloknál nem ajánlott, különben igen a fájl esetleges elérhetetlensége miatt.
|
||||||
|
///// 2014.06.15.
|
||||||
|
///// </summary>
|
||||||
|
//public static bool CopyToMemoryOnFileSend = true; - Automatikusan érzékelje (2014.08.18.)
|
||||||
|
|
||||||
|
public static void SendUpdate()
|
||||||
|
{ //2014.08.30.
|
||||||
|
/*
|
||||||
|
* CurrentUser.SendUpdate()
|
||||||
|
* Bármi változás történik, elküldi mindenkinek
|
||||||
|
*/
|
||||||
|
if (!SendChanges)
|
||||||
|
return;
|
||||||
|
string retstr = "";
|
||||||
|
retstr += UserID + "_name=" + Name + "\n";
|
||||||
|
retstr += UserID + "_message=" + Message + "\n";
|
||||||
|
retstr += UserID + "_state=" + State + "\n";
|
||||||
|
retstr += UserID + "_username=" + UserName + "\n";
|
||||||
|
retstr += UserID + "_email=" + Email + "\n";
|
||||||
|
retstr += UserID + "_ispartner=" + false + "\n"; //Ellenőrizze le, amikor megkapja
|
||||||
|
retstr += UserID + "_lastupdate=" + Program.DateTimeToUnixTime(DateTime.Now);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
byte[][] resp = Networking.SendUpdate(Networking.UpdateType.ListUpdate, Encoding.Unicode.GetBytes(retstr), false);
|
||||||
|
bool fine = false;
|
||||||
|
if (resp == null || resp.Length == 0)
|
||||||
|
break;
|
||||||
|
//foreach (var item in resp) //Ha sehonnan nem kapott választ (egy perc után), újrapróbálkozik
|
||||||
|
foreach (var item in resp) //Ha sehonnan nem kapott választ (egy perc után), újrapróbálkozik
|
||||||
|
{
|
||||||
|
//if (item[4] == 0x01) //Az első 4 byte a UserID
|
||||||
|
if (Networking.ParsePacket(item).Data[0] == 0x01) //2014.09.19.
|
||||||
|
fine = true;
|
||||||
|
}
|
||||||
|
if (fine)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace MSGer.tk
|
namespace MSGer.tk
|
||||||
{
|
{
|
||||||
|
@ -13,10 +15,50 @@ namespace MSGer.tk
|
||||||
|
|
||||||
public Dictionary<string, string> Strings = new Dictionary<string, string>();
|
public Dictionary<string, string> Strings = new Dictionary<string, string>();
|
||||||
|
|
||||||
public Language(string lang)
|
private Language(string lang)
|
||||||
{
|
{
|
||||||
UsedLangs.Add(lang, this);
|
UsedLangs.Add(lang, this);
|
||||||
}
|
}
|
||||||
|
public Language() //2014.09.06.
|
||||||
|
{
|
||||||
|
if (!Directory.Exists("languages"))
|
||||||
|
Directory.CreateDirectory("languages");
|
||||||
|
string[] files = Directory.GetFiles("languages");
|
||||||
|
if (files.Length == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: No languages found.");
|
||||||
|
return; //Még nem jelentkezett be, ezért ki fog lépni
|
||||||
|
}
|
||||||
|
for (int x = 0; x < files.Length; x++)
|
||||||
|
{
|
||||||
|
string[] lines = File.ReadAllLines(files[x]);
|
||||||
|
var dict = lines.Select(l => l.Split('=')).ToDictionary(a => a[0], a => a[1]);
|
||||||
|
//(new Language(files[x].Split('\\')[files[x].Split('\\').Length - 1].Split('.')[0])).Strings = dict; //Eltárol egy új nyelvet, majd a szövegeket hozzátársítja
|
||||||
|
new Language(new FileInfo(files[x]).Name.Split('.')[0]).Strings = dict; //(FileInfo: 2014.09.01.) - Eltárol egy új nyelvet, majd a szövegeket hozzátársítja
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Language.FromString(Storage.Settings["lang"]) == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: Could not find language: " + Storage.Settings["lang"]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CurrentUser.Language = Language.FromString(Storage.Settings["lang"]);
|
||||||
|
if (CurrentUser.Language == null)
|
||||||
|
{
|
||||||
|
//MessageBox.Show("Error: The specified language is not found.\nTo quickly solve this, copy the preffered language file in languages folder to the same place with the name of \"" + Storage.Settings["lang"] + "\"\nYou can then change the language in your preferences later.");
|
||||||
|
//return;
|
||||||
|
if (Language.UsedLangs.ContainsKey("en"))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: The specified language (" + Storage.Settings["lang"] + ") is not found.\nThe program will use english that you can change later.");
|
||||||
|
Storage.Settings["lang"] = "en";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: The specified language (" + Storage.Settings["lang"] + "), nor enlish are found.\nPlease download translations.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return UsedLangs.FirstOrDefault(x => x.Value == this).Key;
|
return UsedLangs.FirstOrDefault(x => x.Value == this).Key;
|
||||||
|
@ -24,18 +66,30 @@ namespace MSGer.tk
|
||||||
public static Language FromString(string value)
|
public static Language FromString(string value)
|
||||||
{
|
{
|
||||||
Language tmp = null;
|
Language tmp = null;
|
||||||
try
|
/*try
|
||||||
{
|
{
|
||||||
tmp = UsedLangs[value];
|
tmp = UsedLangs[value];
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
}
|
}*/
|
||||||
|
UsedLangs.TryGetValue(value, out tmp);
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
public static Language GetCuurentLanguage()
|
public static Language GetCuurentLanguage()
|
||||||
{
|
{
|
||||||
return Language.FromString(Settings.Default.lang);
|
return Language.FromString(Storage.Settings["lang"]);
|
||||||
|
}
|
||||||
|
public static string Translate(string id)
|
||||||
|
{ //2014.08.19.
|
||||||
|
Language lang = GetCuurentLanguage();
|
||||||
|
if (lang.Strings.ContainsKey(id))
|
||||||
|
return lang.Strings[id];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Translation string not found: " + id + "\nIn file: " + lang + ".txt");
|
||||||
|
return "Str not found";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
17
MSGer.tk/LoginForm.Designer.cs
generated
|
@ -37,6 +37,7 @@
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.textBox3 = new System.Windows.Forms.TextBox();
|
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||||
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
|
@ -134,6 +135,20 @@
|
||||||
this.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue;
|
this.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue;
|
||||||
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.RegistrateLink);
|
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.RegistrateLink);
|
||||||
//
|
//
|
||||||
|
// linkLabel2
|
||||||
|
//
|
||||||
|
this.linkLabel2.AutoSize = true;
|
||||||
|
this.linkLabel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.linkLabel2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
|
this.linkLabel2.Location = new System.Drawing.Point(23, 175);
|
||||||
|
this.linkLabel2.Name = "linkLabel2";
|
||||||
|
this.linkLabel2.Size = new System.Drawing.Size(66, 13);
|
||||||
|
this.linkLabel2.TabIndex = 8;
|
||||||
|
this.linkLabel2.TabStop = true;
|
||||||
|
this.linkLabel2.Text = "forgotpass";
|
||||||
|
this.linkLabel2.VisitedLinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked);
|
||||||
|
//
|
||||||
// LoginForm
|
// LoginForm
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.button1;
|
this.AcceptButton = this.button1;
|
||||||
|
@ -141,6 +156,7 @@
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
this.ClientSize = new System.Drawing.Size(394, 471);
|
this.ClientSize = new System.Drawing.Size(394, 471);
|
||||||
|
this.Controls.Add(this.linkLabel2);
|
||||||
this.Controls.Add(this.linkLabel1);
|
this.Controls.Add(this.linkLabel1);
|
||||||
this.Controls.Add(this.textBox3);
|
this.Controls.Add(this.textBox3);
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button1);
|
||||||
|
@ -172,5 +188,6 @@
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button1;
|
||||||
private System.Windows.Forms.TextBox textBox3;
|
private System.Windows.Forms.TextBox textBox3;
|
||||||
private System.Windows.Forms.LinkLabel linkLabel1;
|
private System.Windows.Forms.LinkLabel linkLabel1;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel2;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,11 +15,11 @@ namespace MSGer.tk
|
||||||
public LoginForm_RegistrationForm()
|
public LoginForm_RegistrationForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
label1.Text = Language.GetCuurentLanguage().Strings["registration"];
|
label1.Text = Language.Translate("registration");
|
||||||
label2.Text = Language.GetCuurentLanguage().Strings["reg_code"];
|
label2.Text = Language.Translate("reg_code");
|
||||||
label3.Text = Language.GetCuurentLanguage().Strings["reg_username"];
|
label3.Text = Language.Translate("reg_username");
|
||||||
label4.Text = Language.GetCuurentLanguage().Strings["login_password"];
|
label4.Text = Language.Translate("login_password");
|
||||||
registerButton.Text = Language.GetCuurentLanguage().Strings["registration"];
|
registerButton.Text = Language.Translate("registration");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerButton_Click(object sender, EventArgs e)
|
private void registerButton_Click(object sender, EventArgs e)
|
||||||
|
@ -27,39 +27,44 @@ namespace MSGer.tk
|
||||||
registerButton.Enabled = false;
|
registerButton.Enabled = false;
|
||||||
if (codeText.TextLength == 0 || userText.TextLength == 0 || passText.TextLength == 0 || emailText.TextLength == 0)
|
if (codeText.TextLength == 0 || userText.TextLength == 0 || passText.TextLength == 0 || emailText.TextLength == 0)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_emptyfield"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("reg_emptyfield"), Language.Translate("error"));
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string response = Networking.SendRequest("register", codeText.Text + "ͦ" + userText.Text + "ͦ" + LoginForm.CalculateMD5Hash(passText.Text) + "ͦ" + emailText.Text, 2, false);
|
string response = Networking.SendRequest("register", codeText.Text + "ͦ" + userText.Text + "ͦ" + LoginForm.CalculateMD5Hash(passText.Text) + "ͦ" + emailText.Text, 2, false);
|
||||||
if(response=="code")
|
if(response=="code")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_codeerr"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("reg_codeerr"), Language.Translate("error"));
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
}
|
}
|
||||||
else if (response == "uname")
|
else if (response == "uname")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_nameerr"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("reg_nameerr"), Language.Translate("error"));
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
}
|
}
|
||||||
else if (response == "ulen")
|
else if (response == "ulen")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_namelen"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("reg_namelen"), Language.Translate("error"));
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
}
|
}
|
||||||
else if (response == "plen")
|
else if (response == "plen")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_passlen"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("reg_passlen"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "email")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_email"), Language.Translate("error"));
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
}
|
}
|
||||||
else if (response == "Success!")
|
else if (response == "Success!")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["reg_success"]);
|
MessageBox.Show(Language.Translate("reg_success"));
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["unknown_error"] + ":\n" + response);
|
MessageBox.Show(Language.Translate("unknown_error") + ":\n" + response);
|
||||||
registerButton.Enabled = true;
|
registerButton.Enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
using System;
|
//#define LOCAL_SERVER
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
@ -17,40 +19,43 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
public partial class LoginForm : Form
|
public partial class LoginForm : Form
|
||||||
{
|
{
|
||||||
public static string UserCode="";
|
public static string UserCode = "";
|
||||||
public static Thread LThread;
|
public static Thread LThread;
|
||||||
private void LoginForm_Load(object sender, EventArgs e)
|
private void LoginForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
List<string> tmp; //E-mail - 2014.04.02.
|
List<string> tmp; //E-mail - 2014.04.02.
|
||||||
if (Settings.Default.email.Length != 0)
|
if (Storage.Settings["email"].Length != 0)
|
||||||
tmp = Settings.Default.email.Split(',').ToList<string>();
|
tmp = Storage.Settings["email"].Split(',').ToList<string>();
|
||||||
else tmp = new List<string>();
|
else tmp = new List<string>();
|
||||||
//textBox1.Text = tmp[0];
|
//textBox1.Text = tmp[0];
|
||||||
//textBox1.Text = tmp[tmp.Count - 1]; //2014.07.08.
|
//textBox1.Text = tmp[tmp.Count - 1]; //2014.07.08.
|
||||||
tmp.Add("");
|
tmp.Add("");
|
||||||
textBox1.Text = tmp[Settings.Default.lastusedemail]; //2014.07.08.
|
textBox1.Text = tmp[Int32.Parse(Storage.Settings["lastusedemail"])]; //2014.07.08.
|
||||||
textBox1.AutoCompleteCustomSource.AddRange(tmp.ToArray());
|
textBox1.AutoCompleteCustomSource.AddRange(tmp.ToArray());
|
||||||
|
this.Activate();
|
||||||
|
this.Activate();
|
||||||
}
|
}
|
||||||
public LoginForm()
|
public LoginForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.Text = Language.GetCuurentLanguage().Strings["login"];
|
this.Text = Language.Translate("login");
|
||||||
label1.Text = Language.GetCuurentLanguage().Strings["login"];
|
label1.Text = Language.Translate("login");
|
||||||
label3.Text = Language.GetCuurentLanguage().Strings["login_password"];
|
label3.Text = Language.Translate("login_password");
|
||||||
button1.Text = Language.GetCuurentLanguage().Strings["login"];
|
button1.Text = Language.Translate("login");
|
||||||
linkLabel1.Text = Language.GetCuurentLanguage().Strings["registration"];
|
linkLabel1.Text = Language.Translate("registration");
|
||||||
|
linkLabel2.Text = Language.Translate("forgotpassword");
|
||||||
textBox3.Text = "";
|
textBox3.Text = "";
|
||||||
List<string> lines = new List<string>();
|
List<string> lines = new List<string>();
|
||||||
lines.Add(Language.GetCuurentLanguage().Strings["login_desc1"]);
|
lines.Add(Language.Translate("login_desc1"));
|
||||||
lines.Add("");
|
lines.Add("");
|
||||||
lines.Add(Language.GetCuurentLanguage().Strings["login_desc2"]);
|
lines.Add(Language.Translate("login_desc2"));
|
||||||
textBox3.Lines = lines.ToArray();
|
textBox3.Lines = lines.ToArray();
|
||||||
}
|
}
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void button1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (button1.Text == Language.GetCuurentLanguage().Strings["button_cancel"])
|
if (button1.Text == Language.Translate("button_cancel"))
|
||||||
{
|
{
|
||||||
ResetAfterLogin();
|
ResetAfterLogin(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -81,10 +86,6 @@ namespace MSGer.tk
|
||||||
// Spin for a while waiting for the started thread to become
|
// Spin for a while waiting for the started thread to become
|
||||||
// alive:
|
// alive:
|
||||||
while (!LThread.IsAlive) ;
|
while (!LThread.IsAlive) ;
|
||||||
|
|
||||||
// Put the Main thread to sleep for 1 millisecond to allow oThread
|
|
||||||
// to do some work:
|
|
||||||
Thread.Sleep(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public delegate int MyDelegate();
|
public delegate int MyDelegate();
|
||||||
|
@ -107,16 +108,29 @@ namespace MSGer.tk
|
||||||
Closeable = false;
|
Closeable = false;
|
||||||
Dispose(); //2014.04.04.
|
Dispose(); //2014.04.04.
|
||||||
}
|
}
|
||||||
|
textBox1.Enabled = false; //2014.09.01.
|
||||||
|
textBox2.Enabled = false; //2014.09.01.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public int ResetAfterLogin(bool stoplogint)
|
||||||
|
{
|
||||||
|
button1.Enabled = false;
|
||||||
|
Request.Abort();
|
||||||
|
if (stoplogint) //2014.09.01.
|
||||||
|
//{
|
||||||
|
LThread.Abort(); //2014.09.01.
|
||||||
|
//Networking.ReceiverConnection.Client.Shutdown(System.Net.Sockets.SocketShutdown.Receive); //2014.09.19.
|
||||||
|
//}
|
||||||
|
button1.Text = Language.Translate("login");
|
||||||
|
button1.Enabled = true;
|
||||||
|
linkLabel1.Enabled = true;
|
||||||
|
textBox1.Enabled = true; //2014.09.01.
|
||||||
|
textBox2.Enabled = true; //2014.09.01.
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
public int ResetAfterLogin()
|
public int ResetAfterLogin()
|
||||||
{
|
{ //2014.09.01.
|
||||||
Request.Abort();
|
return ResetAfterLogin(false); //Ha a thread hívja meg, ne állítsa le a thread-et
|
||||||
button1.Enabled = false;
|
|
||||||
button1.Text = Language.GetCuurentLanguage().Strings["login"];
|
|
||||||
button1.Enabled = true;
|
|
||||||
linkLabel1.Enabled = true;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
public static string UserText = ""; //2014.02.14.
|
public static string UserText = ""; //2014.02.14.
|
||||||
public static string PassText = "";
|
public static string PassText = "";
|
||||||
|
@ -131,20 +145,27 @@ namespace MSGer.tk
|
||||||
UserText = "";
|
UserText = "";
|
||||||
PassText = "";
|
PassText = "";
|
||||||
RegistLinkEn = false; //2014.03.27.
|
RegistLinkEn = false; //2014.03.27.
|
||||||
LButtonText = Language.GetCuurentLanguage().Strings["button_cancel"];
|
LButtonText = Language.Translate("button_cancel");
|
||||||
this.Invoke(new MyDelegate(SetLoginValues));
|
this.Invoke(new MyDelegate(SetLoginValues));
|
||||||
|
|
||||||
//HttpWebRequest httpWReq =
|
//HttpWebRequest httpWReq =
|
||||||
// (HttpWebRequest)WebRequest.Create("http://msger.tk/client.php");
|
// (HttpWebRequest)WebRequest.Create("http://msger.tk/client.php");
|
||||||
|
#if LOCAL_SERVER
|
||||||
|
HttpWebRequest httpWReq =
|
||||||
|
(HttpWebRequest)WebRequest.Create("http://localhost/ChatWithWords/client.php");
|
||||||
|
#else
|
||||||
HttpWebRequest httpWReq =
|
HttpWebRequest httpWReq =
|
||||||
(HttpWebRequest)WebRequest.Create("http://msger.url.ph/client.php");
|
(HttpWebRequest)WebRequest.Create("http://msger.url.ph/client.php");
|
||||||
|
#endif
|
||||||
|
|
||||||
Request = httpWReq; //2014.03.27.
|
Request = httpWReq; //2014.03.27.
|
||||||
|
|
||||||
ASCIIEncoding encoding = new ASCIIEncoding();
|
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||||
string postData = "username=" + UserText;
|
string postData = "username=" + UserText;
|
||||||
postData += "&password=" + CalculateMD5Hash(PassText);
|
postData += "&password=" + CalculateMD5Hash(PassText).ToLower(); //ToLower: 2014.10.24. 1:22 - Most már a PHP-nak is titkosítania kell többek közt MD5-tel
|
||||||
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
||||||
|
postData += "&port=" + Storage.Settings["port"]; //2014.08.29.
|
||||||
|
postData += "&isserver=" + Storage.Settings["isserver"]; //2014.09.26.
|
||||||
byte[] data = encoding.GetBytes(postData);
|
byte[] data = encoding.GetBytes(postData);
|
||||||
|
|
||||||
httpWReq.Method = "POST";
|
httpWReq.Method = "POST";
|
||||||
|
@ -162,7 +183,7 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
if (e.Status != WebExceptionStatus.RequestCanceled)
|
if (e.Status != WebExceptionStatus.RequestCanceled)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["connecterror"] + "\n" + e.Message, Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("connecterror") + "\n" + e.Message, Language.Translate("error"));
|
||||||
this.Invoke(new MyDelegate(ResetAfterLogin));
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -182,7 +203,7 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
if (e.Status != WebExceptionStatus.RequestCanceled)
|
if (e.Status != WebExceptionStatus.RequestCanceled)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["connecterror"] + "\n" + e.Message, Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("connecterror") + "\n" + e.Message, Language.Translate("error"));
|
||||||
this.Invoke(new MyDelegate(ResetAfterLogin));
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -199,7 +220,7 @@ namespace MSGer.tk
|
||||||
if (responseString[0] == '<')
|
if (responseString[0] == '<')
|
||||||
{
|
{
|
||||||
this.Invoke(new MyDelegate(ResetAfterLogin));
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error"] + ":\n" + responseString);
|
MessageBox.Show(Language.Translate("error") + ":\n" + responseString);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -212,31 +233,64 @@ namespace MSGer.tk
|
||||||
if (String.Compare(responseString, "Fail") == 0)
|
if (String.Compare(responseString, "Fail") == 0)
|
||||||
{
|
{
|
||||||
this.Invoke(new MyDelegate(ResetAfterLogin));
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error"] + ": " + Language.GetCuurentLanguage().Strings["login_badnamepass"], Language.GetCuurentLanguage().Strings["error"]);
|
MessageBox.Show(Language.Translate("error") + ": " + Language.Translate("login_badnamepass"), Language.Translate("error"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
//Elmenti az E-mail-t
|
//Elmenti az E-mail-t
|
||||||
if (!Settings.Default.email.Contains(UserText))
|
if (!Storage.Settings["email"].Contains(UserText))
|
||||||
{
|
{
|
||||||
if (Settings.Default.email.Length != 0) //2014.07.08.
|
if (Storage.Settings["email"].Length != 0) //2014.07.08.
|
||||||
Settings.Default.email += ",";
|
Storage.Settings["email"] += ",";
|
||||||
Settings.Default.email += UserText;
|
Storage.Settings["email"] += UserText;
|
||||||
}
|
}
|
||||||
else
|
//else - 2014.10.02. - Egyszer észrevettem a Google Code összehasonlítójával, hogy ez nem kéne ide
|
||||||
Settings.Default.lastusedemail = Settings.Default.email.Split(',').ToList<string>().IndexOf(UserText);
|
Storage.Settings["lastusedemail"] = Storage.Settings["email"].Split(',').ToList<string>().IndexOf(UserText).ToString();
|
||||||
Settings.Default.Save();
|
//Settings.Default.Save();
|
||||||
//Bejelentkezés
|
//Bejelentkezés
|
||||||
string[] respstr = responseString.Split('ͦ');
|
string[] respstr = responseString.Split('ͦ');
|
||||||
CurrentUser.UserID = Convert.ToInt32(respstr[0]); //Régebben ezt találtam, most meg az Int32.Parse-t... (2014.04.02.)
|
//CurrentUser.UserID = Convert.ToInt32(respstr[0]); //Régebben ezt találtam, most meg az Int32.Parse-t... (2014.04.02.)
|
||||||
CurrentUser.Name = respstr[1]; //2014.04.04.
|
//CurrentUser.Name = respstr[1]; //2014.04.04.
|
||||||
LoginForm.UserCode = CalculateMD5Hash(CalculateMD5Hash(PassText) + " Some text because why not " + CurrentUser.UserID).ToLower();
|
//respstr[1]:
|
||||||
|
|
||||||
|
if (respstr[3].Contains("Fail"))
|
||||||
|
{
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
MessageBox.Show(respstr[3]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string[] entries = respstr[3].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
IEnumerable<IPEndPoint> ips = entries.Select(entry => ((entry != ":") ? new IPEndPoint(IPAddress.Parse(entry.Split(':')[0]), Int32.Parse(entry.Split(':')[1])) : new IPEndPoint(IPAddress.Loopback, 0)));
|
||||||
|
//UserInfo.IPs.AddRange(ips); //2014.08.29.
|
||||||
|
/*foreach(var entry in ips) //2014.08.30.
|
||||||
|
{
|
||||||
|
UserInfo.IPs.Add(entry);
|
||||||
|
}*/
|
||||||
|
UserInfo.IPs = new HashSet<IPEndPoint>(ips); //2014.08.30.
|
||||||
|
//Storage.Settings["myip"] = respstr[2]; //2014.08.29. - A CurrentUser.IPs-en keresztül is lehet rá hivatkozni
|
||||||
|
CurrentUser.IP = IPAddress.Parse(respstr[2]); //2014.10.24. - Most már csak ott lehet rá hivatkozni, felesleges eltárolni
|
||||||
|
//CurrentUser.State = 1; //2014.08.31. 0:42 -- MainForm
|
||||||
|
//2014.09.19. - Bejelentkezés elküldése áthelyezve a MainForm-ba
|
||||||
|
|
||||||
|
CurrentUser.UserID = Int32.Parse(respstr[0]); //2014.09.01. - Áthelyeztem, hogy addig ne higgye bejelentkezettnek, amíg el nem küldi a többieknek
|
||||||
|
|
||||||
|
Storage.SaltKey = CalculateMD5Hash(PassText); //2014.08.07.
|
||||||
|
//Storage.FileName = CurrentUser.UserID.ToString() + ".db"; //2014.08.07.
|
||||||
|
Storage.FileName = respstr[0] + ".db"; //2014.09.01. - Felesleges számmá alakítani, majd vissza
|
||||||
|
|
||||||
|
CurrentUser.UserName = UserText; //2014.09.01. - Ha semmit nem tud saját magáról, és más sem, de nem ismerőse saját magának, akkor az itt beállított felhasználónév érvényesül
|
||||||
|
CurrentUser.Name = UserText; //2014.09.01.
|
||||||
|
string ReceivedPass = respstr[4]; //2014.10.24. 1:39
|
||||||
|
//LoginForm.UserCode = CalculateMD5Hash(CalculateMD5Hash(PassText) + " Some text because why not " + CurrentUser.UserID).ToLower();
|
||||||
|
LoginForm.UserCode = CalculateMD5Hash(ReceivedPass + " Some text because why not " + CurrentUser.UserID).ToLower();
|
||||||
|
|
||||||
Closeable = true;
|
Closeable = true;
|
||||||
this.Invoke(new MyDelegate(SetLoginValues));
|
this.Invoke(new MyDelegate(SetLoginValues));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string CalculateMD5Hash(string input)
|
public static string CalculateMD5Hash(string input)
|
||||||
{
|
{
|
||||||
// step 1, calculate MD5 hash from input
|
// step 1, calculate MD5 hash from input
|
||||||
|
@ -268,5 +322,28 @@ namespace MSGer.tk
|
||||||
if (CurrentUser.UserID == 0)
|
if (CurrentUser.UserID == 0)
|
||||||
Program.Exit();
|
Program.Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
if (textBox1.Text.Length == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Nincs megadva felhasználónév."); //Translate!
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (MessageBox.Show("Új jelszót kérsz a megadott névhez?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
string ret = Networking.SendRequest("resetpass", textBox1.Text, 0, false);
|
||||||
|
if (ret == "nouser")
|
||||||
|
MessageBox.Show("A megadott felhasználó nem létezik.");
|
||||||
|
else if (ret == "already")
|
||||||
|
MessageBox.Show("A link MÁR el lett küldve az E-mail címedre.");
|
||||||
|
else if (ret == "sent")
|
||||||
|
MessageBox.Show("A link elküldve az E-mail címedre.");
|
||||||
|
else if (ret.Contains("notsent"))
|
||||||
|
MessageBox.Show("A link NEM lett elküldve az E-mail címedre.\nHiba: " + ret.Remove(ret.IndexOf("notsent"), "notsent".Length + 1));
|
||||||
|
else
|
||||||
|
MessageBox.Show("Ismeretlen hiba:\n" + ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,6 +82,12 @@
|
||||||
<Compile Include="AddPartner.Designer.cs">
|
<Compile Include="AddPartner.Designer.cs">
|
||||||
<DependentUpon>AddPartner.cs</DependentUpon>
|
<DependentUpon>AddPartner.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="BeforeLogin.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="BeforeLogin.Designer.cs">
|
||||||
|
<DependentUpon>BeforeLogin.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ChatForm.cs">
|
<Compile Include="ChatForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -115,12 +121,19 @@
|
||||||
<Compile Include="LoginForm.Designer.cs">
|
<Compile Include="LoginForm.Designer.cs">
|
||||||
<DependentUpon>LoginForm.cs</DependentUpon>
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Networking.cs" />
|
||||||
<Compile Include="Notifier.cs">
|
<Compile Include="Notifier.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Notifier.Designer.cs">
|
<Compile Include="Notifier.Designer.cs">
|
||||||
<DependentUpon>Notifier.cs</DependentUpon>
|
<DependentUpon>Notifier.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="PartnerInformation.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PartnerInformation.Designer.cs">
|
||||||
|
<DependentUpon>PartnerInformation.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ProgressStatistic.cs" />
|
<Compile Include="ProgressStatistic.cs" />
|
||||||
<Compile Include="SettingsForm.cs">
|
<Compile Include="SettingsForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
|
@ -128,10 +141,10 @@
|
||||||
<Compile Include="SettingsForm.Designer.cs">
|
<Compile Include="SettingsForm.Designer.cs">
|
||||||
<DependentUpon>SettingsForm.cs</DependentUpon>
|
<DependentUpon>SettingsForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Storage.cs" />
|
||||||
<Compile Include="StreamHelper.cs" />
|
<Compile Include="StreamHelper.cs" />
|
||||||
<Compile Include="TextFormat.cs">
|
<Compile Include="TextFormat.cs" />
|
||||||
<SubType>Component</SubType>
|
<Compile Include="UpdateListAndChat.cs" />
|
||||||
</Compile>
|
|
||||||
<Compile Include="_MyNotifier.cs" />
|
<Compile Include="_MyNotifier.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
@ -146,12 +159,6 @@
|
||||||
<Compile Include="SelectPartnerForm.Designer.cs">
|
<Compile Include="SelectPartnerForm.Designer.cs">
|
||||||
<DependentUpon>SelectPartnerForm.cs</DependentUpon>
|
<DependentUpon>SelectPartnerForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Settings.cs" />
|
|
||||||
<Compile Include="Settings.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="TaskbarNotifier.cs">
|
<Compile Include="TaskbarNotifier.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -162,6 +169,9 @@
|
||||||
<EmbeddedResource Include="AddPartner.resx">
|
<EmbeddedResource Include="AddPartner.resx">
|
||||||
<DependentUpon>AddPartner.cs</DependentUpon>
|
<DependentUpon>AddPartner.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="BeforeLogin.resx">
|
||||||
|
<DependentUpon>BeforeLogin.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="ChatForm.resx">
|
<EmbeddedResource Include="ChatForm.resx">
|
||||||
<DependentUpon>ChatForm.cs</DependentUpon>
|
<DependentUpon>ChatForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
@ -180,6 +190,9 @@
|
||||||
<EmbeddedResource Include="Notifier.resx">
|
<EmbeddedResource Include="Notifier.resx">
|
||||||
<DependentUpon>Notifier.cs</DependentUpon>
|
<DependentUpon>Notifier.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="PartnerInformation.resx">
|
||||||
|
<DependentUpon>PartnerInformation.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
@ -199,10 +212,6 @@
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
</Compile>
|
</Compile>
|
||||||
<None Include="Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
|
|
11
MSGer.tk/MainForm.Designer.cs
generated
|
@ -130,7 +130,6 @@
|
||||||
this.notifyIcon1.ContextMenuStrip = this.iconMenu;
|
this.notifyIcon1.ContextMenuStrip = this.iconMenu;
|
||||||
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
|
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
|
||||||
this.notifyIcon1.Text = "MSGer.tk";
|
this.notifyIcon1.Text = "MSGer.tk";
|
||||||
this.notifyIcon1.Visible = true;
|
|
||||||
this.notifyIcon1.DoubleClick += new System.EventHandler(this.toolStripMenuItem4_Click);
|
this.notifyIcon1.DoubleClick += new System.EventHandler(this.toolStripMenuItem4_Click);
|
||||||
//
|
//
|
||||||
// iconMenu
|
// iconMenu
|
||||||
|
@ -692,7 +691,7 @@
|
||||||
this.üzenetküldésToolStripMenuItem.Name = "üzenetküldésToolStripMenuItem";
|
this.üzenetküldésToolStripMenuItem.Name = "üzenetküldésToolStripMenuItem";
|
||||||
this.üzenetküldésToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
this.üzenetküldésToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
this.üzenetküldésToolStripMenuItem.Text = "Üzenetküldés";
|
this.üzenetküldésToolStripMenuItem.Text = "Üzenetküldés";
|
||||||
this.üzenetküldésToolStripMenuItem.Click += new System.EventHandler(this.OpenSendMessage);
|
this.üzenetküldésToolStripMenuItem.Click += new System.EventHandler(this.PartnerMenu_SendMessage);
|
||||||
//
|
//
|
||||||
// emailKüldéseemailToolStripMenuItem
|
// emailKüldéseemailToolStripMenuItem
|
||||||
//
|
//
|
||||||
|
@ -711,6 +710,7 @@
|
||||||
this.információToolStripMenuItem.Name = "információToolStripMenuItem";
|
this.információToolStripMenuItem.Name = "információToolStripMenuItem";
|
||||||
this.információToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
this.információToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
this.információToolStripMenuItem.Text = "Információ";
|
this.információToolStripMenuItem.Text = "Információ";
|
||||||
|
this.információToolStripMenuItem.Click += new System.EventHandler(this.információToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator14
|
// toolStripSeparator14
|
||||||
//
|
//
|
||||||
|
@ -782,9 +782,12 @@
|
||||||
this.contactList.ItemHeight = 50;
|
this.contactList.ItemHeight = 50;
|
||||||
this.contactList.Location = new System.Drawing.Point(0, 134);
|
this.contactList.Location = new System.Drawing.Point(0, 134);
|
||||||
this.contactList.Name = "contactList";
|
this.contactList.Name = "contactList";
|
||||||
|
this.contactList.SelectedIndex = -1;
|
||||||
|
this.contactList.SelectionColor = System.Drawing.Color.Aqua;
|
||||||
this.contactList.Size = new System.Drawing.Size(624, 311);
|
this.contactList.Size = new System.Drawing.Size(624, 311);
|
||||||
this.contactList.TabIndex = 8;
|
this.contactList.TabIndex = 8;
|
||||||
this.contactList.ItemDoubleClicked += new System.EventHandler<int>(this.contactList_ItemDoubleClicked);
|
this.contactList.ItemDoubleClicked += new System.EventHandler<int>(this.contactList_ItemDoubleClicked);
|
||||||
|
this.contactList.ItemRightClicked += new System.EventHandler<int>(this.contactList_ItemRightClicked);
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
|
@ -816,7 +819,6 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.NotifyIcon notifyIcon1;
|
|
||||||
private System.Windows.Forms.MenuStrip menuStrip1;
|
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem fájlToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem fájlToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem kijelentkezésToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem kijelentkezésToolStripMenuItem;
|
||||||
|
@ -902,7 +904,8 @@
|
||||||
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
||||||
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem8;
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem8;
|
||||||
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
||||||
private SzNPProjects.RichListView contactList;
|
internal System.Windows.Forms.NotifyIcon notifyIcon1;
|
||||||
|
internal SzNPProjects.RichListView contactList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,9 @@ using System.Threading;
|
||||||
using CustomUIControls;
|
using CustomUIControls;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using SzNPProjects;
|
using SzNPProjects;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
|
||||||
namespace MSGer.tk
|
namespace MSGer.tk
|
||||||
{
|
{
|
||||||
|
@ -23,142 +26,161 @@ namespace MSGer.tk
|
||||||
public static LoginForm LoginDialog;
|
public static LoginForm LoginDialog;
|
||||||
public static Thread LThread;
|
public static Thread LThread;
|
||||||
public static Thread MainThread = null;
|
public static Thread MainThread = null;
|
||||||
public static bool PartnerListThreadActive = true;
|
//public static bool PartnerListThreadActive = true;
|
||||||
public static ToolStripMenuItem SelectPartnerSender = null;
|
//public static ToolStripMenuItem SelectPartnerSender = null;
|
||||||
public static Notifier taskbarNotifier;
|
public static Notifier taskbarNotifier;
|
||||||
public MainForm()
|
public MainForm()
|
||||||
{
|
{
|
||||||
|
BeforeLogin.SetText("Starting...");
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
//beforeloginform.Validate();
|
||||||
Thread.CurrentThread.Name = "Main Thread";
|
Thread.CurrentThread.Name = "Main Thread";
|
||||||
contactList.Items.Add(new RichListViewItem());
|
//contactList.Items.Add(new RichListViewItem()); - 2014.08.28. - Kommentálva, mivel most már itt,
|
||||||
contactList.Items[0].SubItems[0].Text = "Betöltés...";
|
//contactList.Items[0].SubItems[0].Text = "Loading..."; - 2014.08.28. - a konstruktorban tölti be, ami nem látszódik a felhasználó számára
|
||||||
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
|
||||||
this.WindowState = FormWindowState.Minimized; //2014.04.19.
|
this.WindowState = FormWindowState.Minimized; //2014.04.19.
|
||||||
|
|
||||||
#region Nyelvi beállitások
|
BeforeLogin.SetText("Loading program settings...");
|
||||||
if (!Directory.Exists("languages"))
|
Storage.Load(false); //Töltse be a nyelvet, legutóbb használt E-mail-t...
|
||||||
Directory.CreateDirectory("languages");
|
|
||||||
string[] files = Directory.GetFiles("languages");
|
|
||||||
if (files.Length == 0)
|
|
||||||
{
|
|
||||||
MessageBox.Show("Error: No languages found.");
|
|
||||||
return; //Még nem jelentkezett be, ezért ki fog lépni
|
|
||||||
}
|
|
||||||
for (int x = 0; x < files.Length; x++ )
|
|
||||||
{
|
|
||||||
string[] lines = File.ReadAllLines(files[x]);
|
|
||||||
var dict = lines.Select(l => l.Split('=')).ToDictionary(a => a[0], a => a[1]);
|
|
||||||
(new Language(files[x].Split('\\')[files[x].Split('\\').Length-1].Split('.')[0])).Strings = dict; //Eltárol egy új nyelvet, majd a szövegeket hozzátársítja
|
|
||||||
}
|
|
||||||
|
|
||||||
CurrentUser.Language = Language.FromString(Settings.Default.lang);
|
BeforeLogin.SetText("Checking available ports...");
|
||||||
if (CurrentUser.Language == null)
|
//2014.09.04. - Amint lehet állítsa be a helyes IP-t, majd azt hagyja úgy, akármi történjék
|
||||||
|
while (true)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Error: The specified language is not found.\nTo quickly solve this, copy the preffered language file in languages folder to the same place with the name of \"" + Settings.Default.lang + "\"\nYou can then change the language in your preferences later.");
|
//remoteEP = new IPEndPoint(IPAddress.Any, Int32.Parse(Storage.Settings["port"]));
|
||||||
return;
|
if (IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners().Select(entry => entry.Port).Contains(Int32.Parse(Storage.Settings["port"])))
|
||||||
|
Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString();
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
Networking.ReceiverConnection = new UdpClient(Int32.Parse(Storage.Settings["port"])); //2014.09.04.
|
||||||
|
Networking.SenderConnection.AllowNatTraversal(true); //2014.09.04.
|
||||||
|
|
||||||
|
BeforeLogin.SetText("Loading languages...");
|
||||||
|
//#region Nyelvi beállitások
|
||||||
|
new Language();
|
||||||
//MessageBox.Show("Nyelv: " + CurrentUser.Language.ToString());
|
//MessageBox.Show("Nyelv: " + CurrentUser.Language.ToString());
|
||||||
#endregion
|
//#endregion
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_translatemainf"));
|
||||||
#region Helyi beállitás
|
#region Helyi beállitás
|
||||||
try
|
//try
|
||||||
{
|
//{
|
||||||
fájlToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file"];
|
fájlToolStripMenuItem.Text = Language.Translate("menu_file");
|
||||||
kijelentkezésToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_logout"];
|
kijelentkezésToolStripMenuItem.Text = Language.Translate("menu_file_logout");
|
||||||
toolStripMenuItem1.Text = Language.GetCuurentLanguage().Strings["menu_file_loginnewuser"];
|
toolStripMenuItem1.Text = Language.Translate("menu_file_loginnewuser");
|
||||||
állapotToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_status"];
|
állapotToolStripMenuItem.Text = Language.Translate("menu_file_status");
|
||||||
elérhetőToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_status_online"];
|
elérhetőToolStripMenuItem.Text = Language.Translate("menu_file_status_online");
|
||||||
elfoglaltToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_status_busy"];
|
elfoglaltToolStripMenuItem.Text = Language.Translate("menu_file_status_busy");
|
||||||
nincsAGépnélToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_status_away"];
|
nincsAGépnélToolStripMenuItem.Text = Language.Translate("menu_file_status_away");
|
||||||
rejtveKapcsolódikToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_status_hidden"];
|
rejtveKapcsolódikToolStripMenuItem.Text = Language.Translate("menu_file_status_hidden");
|
||||||
fájlKüldéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_sendfile"];
|
fájlKüldéseToolStripMenuItem.Text = Language.Translate("menu_file_sendfile");
|
||||||
beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_openreceivedfiles"];
|
beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = Language.Translate("menu_file_openreceivedfiles");
|
||||||
üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_openrecentmsgs"];
|
üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_file_openrecentmsgs");
|
||||||
bezárásToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_close"];
|
bezárásToolStripMenuItem.Text = Language.Translate("menu_file_close");
|
||||||
kilépésToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_file_exit"];
|
kilépésToolStripMenuItem.Text = Language.Translate("menu_file_exit");
|
||||||
|
|
||||||
ismerősökToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts"];
|
ismerősökToolStripMenuItem.Text = Language.Translate("menu_contacts");
|
||||||
ismerősFelvételeToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_add"];
|
ismerősFelvételeToolStripMenuItem.Text = Language.Translate("menu_contacts_add");
|
||||||
ismerősSzerkesztéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_edit"];
|
ismerősSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_edit");
|
||||||
ismerősTörléseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_remove"];
|
ismerősTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_remove");
|
||||||
toolStripMenuItem3.Text = Language.GetCuurentLanguage().Strings["menu_contacts_invite"];
|
toolStripMenuItem3.Text = Language.Translate("menu_contacts_invite");
|
||||||
csoportLétrehozásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_makegroup"];
|
csoportLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makegroup");
|
||||||
kategóriaLétrehozásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_makecategory"];
|
kategóriaLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makecategory");
|
||||||
kategóriaSzerkesztéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_editcategory"];
|
kategóriaSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_editcategory");
|
||||||
kategóriaTörléseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_contacts_removecategory"];
|
kategóriaTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_removecategory");
|
||||||
|
|
||||||
műveletekToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations"];
|
műveletekToolStripMenuItem.Text = Language.Translate("menu_operations");
|
||||||
azonnaliÜzenetKüldéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_sendmsg"];
|
azonnaliÜzenetKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg");
|
||||||
egyébKüldéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_sendother"];
|
egyébKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother");
|
||||||
emailKüldéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_sendother_sendmail"];
|
emailKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother_sendmail");
|
||||||
fájlKüldéseToolStripMenuItem1.Text = Language.GetCuurentLanguage().Strings["menu_file_sendfile"]; //Ugyanaz a szöveg
|
fájlKüldéseToolStripMenuItem1.Text = Language.Translate("menu_file_sendfile"); //Ugyanaz a szöveg
|
||||||
ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_callcontact"];
|
ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = Language.Translate("menu_operations_callcontact");
|
||||||
videóhivásInditásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_videocall"];
|
videóhivásInditásaToolStripMenuItem.Text = Language.Translate("menu_operations_videocall");
|
||||||
onlineFájlokMegtekintéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_showonlinefiles"];
|
onlineFájlokMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_operations_showonlinefiles");
|
||||||
közösJátékToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_playgame"];
|
közösJátékToolStripMenuItem.Text = Language.Translate("menu_operations_playgame");
|
||||||
távsegitségKéréseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_askforhelp"];
|
távsegitségKéréseToolStripMenuItem.Text = Language.Translate("menu_operations_askforhelp");
|
||||||
|
|
||||||
eszközökToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools"];
|
eszközökToolStripMenuItem.Text = Language.Translate("menu_tools");
|
||||||
mindigLegfelülToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_alwaysontop"];
|
mindigLegfelülToolStripMenuItem.Text = Language.Translate("menu_tools_alwaysontop");
|
||||||
hangulatjelekToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_emoticons"];
|
hangulatjelekToolStripMenuItem.Text = Language.Translate("menu_tools_emoticons");
|
||||||
megjelenitendőKépVáltásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_changeimage"];
|
megjelenitendőKépVáltásaToolStripMenuItem.Text = Language.Translate("menu_tools_changeimage");
|
||||||
háttérMódositásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_changebackground"];
|
háttérMódositásaToolStripMenuItem.Text = Language.Translate("menu_tools_changebackground");
|
||||||
hangokÉsVideóBeállitásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_voicevideosettings"];
|
hangokÉsVideóBeállitásaToolStripMenuItem.Text = Language.Translate("menu_tools_voicevideosettings");
|
||||||
beállitásokToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_tools_settings"];
|
beállitásokToolStripMenuItem.Text = Language.Translate("menu_tools_settings");
|
||||||
|
|
||||||
súgóToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help"];
|
súgóToolStripMenuItem.Text = Language.Translate("menu_help");
|
||||||
témakörökToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_contents"];
|
témakörökToolStripMenuItem.Text = Language.Translate("menu_help_contents");
|
||||||
aSzolgáltatásÁllapotsaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_status"];
|
aSzolgáltatásÁllapotsaToolStripMenuItem.Text = Language.Translate("menu_help_status");
|
||||||
adatvédelmiNyilatkozatToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_privacypolicy"];
|
adatvédelmiNyilatkozatToolStripMenuItem.Text = Language.Translate("menu_help_privacypolicy");
|
||||||
használatiFeltételekToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_termsofuse"];
|
használatiFeltételekToolStripMenuItem.Text = Language.Translate("menu_help_termsofuse");
|
||||||
visszaélésBejelentéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_report"];
|
visszaélésBejelentéseToolStripMenuItem.Text = Language.Translate("menu_help_report");
|
||||||
segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_improveprogram"];
|
segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = Language.Translate("menu_help_improveprogram");
|
||||||
névjegyToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_help_about"];
|
névjegyToolStripMenuItem.Text = Language.Translate("menu_help_about");
|
||||||
|
|
||||||
textBox1.Text = Language.GetCuurentLanguage().Strings["searchbar"];
|
textBox1.Text = Language.Translate("searchbar");
|
||||||
contactList.Items[0].SubItems[0].Text = Language.GetCuurentLanguage().Strings["loading"];
|
//contactList.Items[0].SubItems[0].Text = Language.Translate("loading"); - 2014.08.28. - Nincs már rá szükség (hibát is ír, mivel nincs listaelem)
|
||||||
|
|
||||||
üzenetküldésToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["menu_operations_sendmsg"];
|
üzenetküldésToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg");
|
||||||
emailKüldéseemailToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_sendemail"];
|
emailKüldéseemailToolStripMenuItem.Text = Language.Translate("contact_sendemail");
|
||||||
toolStripMenuItem2.Text = Language.GetCuurentLanguage().Strings["contact_copyemail"];
|
toolStripMenuItem2.Text = Language.Translate("contact_copyemail");
|
||||||
információToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_info"];
|
információToolStripMenuItem.Text = Language.Translate("contact_info");
|
||||||
ismerősLetiltásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_block"];
|
ismerősLetiltásaToolStripMenuItem.Text = Language.Translate("contact_block");
|
||||||
ismerősTörléseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_remove"];
|
ismerősTörléseToolStripMenuItem.Text = Language.Translate("contact_remove");
|
||||||
becenévSzerkesztéseToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_editname"];
|
becenévSzerkesztéseToolStripMenuItem.Text = Language.Translate("contact_editname");
|
||||||
eseményértesitésekToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_eventnotifications"];
|
eseményértesitésekToolStripMenuItem.Text = Language.Translate("contact_eventnotifications");
|
||||||
beszélgetésnaplóMegnyitásaToolStripMenuItem.Text = Language.GetCuurentLanguage().Strings["contact_openchatlog"];
|
beszélgetésnaplóMegnyitásaToolStripMenuItem.Text = Language.Translate("contact_openchatlog");
|
||||||
|
|
||||||
toolStripMenuItem4.Text = Language.GetCuurentLanguage().Strings["iconmenu_show"];
|
toolStripMenuItem4.Text = Language.Translate("iconmenu_show");
|
||||||
toolStripMenuItem8.Text = Language.GetCuurentLanguage().Strings["menu_file_logout"];
|
toolStripMenuItem8.Text = Language.Translate("menu_file_logout");
|
||||||
toolStripMenuItem9.Text = Language.GetCuurentLanguage().Strings["menu_file_exit"];
|
toolStripMenuItem9.Text = Language.Translate("menu_file_exit");
|
||||||
}
|
//}
|
||||||
catch
|
//catch
|
||||||
{
|
//{
|
||||||
MessageBox.Show("Error while loading translations.");
|
//MessageBox.Show("Error while loading translations.");
|
||||||
}
|
//}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_loadtextformat"));
|
||||||
//2014.05.16.
|
//2014.05.16.
|
||||||
new TextFormat();
|
new TextFormat();
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_checkforupdates"));
|
||||||
//2014.04.25.
|
//2014.04.25.
|
||||||
|
//string response = Networking.SendRequest("checkforupdates",
|
||||||
|
/*byte[] response = Networking.SendUpdate(Networking.UpdateType.CheckForUpdates,
|
||||||
|
BitConverter.GetBytes(Int32.Parse(Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""))),
|
||||||
|
false);*/
|
||||||
string response = Networking.SendRequest("checkforupdates",
|
string response = Networking.SendRequest("checkforupdates",
|
||||||
Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""),
|
Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""),
|
||||||
0, false);
|
0, false);
|
||||||
if (response == "outofdate")
|
if (response == "outofdate")
|
||||||
|
//if(response[0]==0x00)
|
||||||
{
|
{
|
||||||
var res = MessageBox.Show(Language.GetCuurentLanguage().Strings["outofdate"], Language.GetCuurentLanguage().Strings["outofdate_caption"], MessageBoxButtons.YesNo);
|
var res = MessageBox.Show(Language.Translate("outofdate"), Language.Translate("outofdate_caption"), MessageBoxButtons.YesNo);
|
||||||
if (res == DialogResult.Yes)
|
if (res == DialogResult.Yes)
|
||||||
System.Diagnostics.Process.Start("http://msger.url.ph/download.php?version=latest");
|
System.Diagnostics.Process.Start("http://msger.url.ph/download.php?version=latest");
|
||||||
}
|
}
|
||||||
else if (response != "fine")
|
else if (response != "fine")
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error"] + ": " + response);
|
//else if (response[0]!=0x01)
|
||||||
|
MessageBox.Show(Language.Translate("error") + ": " + response);
|
||||||
|
|
||||||
|
//2014.09.06.
|
||||||
|
if (Storage.Settings["isserver"] == "")
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(Language.Translate("isserver_msg"), "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
Storage.Settings["isserver"] = "1";
|
||||||
|
else
|
||||||
|
Storage.Settings["isserver"] = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_loginform"));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LoginDialog = new LoginForm();
|
LoginDialog = new LoginForm();
|
||||||
|
BeforeLogin.Destroy();
|
||||||
LoginDialog.ShowDialog();
|
LoginDialog.ShowDialog();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -166,33 +188,161 @@ namespace MSGer.tk
|
||||||
ErrorHandling.FormError(LoginDialog, e);
|
ErrorHandling.FormError(LoginDialog, e);
|
||||||
}
|
}
|
||||||
//Nézzük, sikerült-e
|
//Nézzük, sikerült-e
|
||||||
if (CurrentUser.UserID != 0)
|
if (CurrentUser.UserID == 0)
|
||||||
{
|
return; //2014.09.06.
|
||||||
contactList.Enabled = false; //2014.03.05.
|
contactList.Enabled = false; //2014.03.05.
|
||||||
MainThread = Thread.CurrentThread;
|
MainThread = Thread.CurrentThread;
|
||||||
|
|
||||||
// Create the thread object, passing in the Alpha.Beta method
|
// Create the thread object, passing in the Alpha.Beta method
|
||||||
// via a ThreadStart delegate. This does not start the thread.
|
// via a ThreadStart delegate. This does not start the thread.
|
||||||
LThread = new Thread(new ThreadStart(UpdatePartnerList));
|
LThread = new Thread(new ThreadStart(new UpdateListAndChat().Run));
|
||||||
LThread.Name = "Update Partner List";
|
//LThread.Name = "Update Partner List";
|
||||||
|
LThread.Name = "Update Partnerlist and Chat";
|
||||||
|
|
||||||
|
Thread keepupthread = new Thread(new ThreadStart(Networking.KeepUpThread));
|
||||||
|
keepupthread.Name = "Keep Up Thread";
|
||||||
|
|
||||||
|
Thread keepupuserst = new Thread(new ThreadStart(Networking.KeepUpUsersThread)); //2014.09.26.
|
||||||
|
keepupuserst.Name = "Keep Up Users Thread";
|
||||||
|
|
||||||
|
Storage.Load(true); //2014.08.07.
|
||||||
|
|
||||||
|
//Temp - 2014.09.15.
|
||||||
|
/*Random rand = new Random();
|
||||||
|
Random rand2 = new Random();
|
||||||
|
string[] keys = new string[CurrentUser.Keys.Length];
|
||||||
|
for (int i = 0; i < CurrentUser.Keys.Length; i++)
|
||||||
|
{
|
||||||
|
string str = "";
|
||||||
|
for (int j = 0; j < 8; j++)
|
||||||
|
{
|
||||||
|
if (rand2.Next(0, 1) == 0)
|
||||||
|
str += (char)rand.Next('a', 'z');
|
||||||
|
else
|
||||||
|
str += (char)rand.Next('A', 'Z' + 1);
|
||||||
|
}
|
||||||
|
//CurrentUser.Keys[i] = str;
|
||||||
|
keys[i] = str;
|
||||||
|
}
|
||||||
|
CurrentUser.Keys = keys;*/
|
||||||
|
|
||||||
|
if (Storage.Settings["windowstate"] == "1") //2014.04.18. - 2014.08.08.
|
||||||
|
this.WindowState = FormWindowState.Maximized;
|
||||||
|
else if (Storage.Settings["windowstate"] == "2")
|
||||||
|
this.WindowState = FormWindowState.Minimized;
|
||||||
|
else if (Storage.Settings["windowstate"] == "3")
|
||||||
|
this.WindowState = FormWindowState.Normal;
|
||||||
|
|
||||||
|
/*#region Partnerlista betöltése
|
||||||
|
#endregion*/
|
||||||
|
//LoadPartnerList();
|
||||||
|
|
||||||
|
taskbarNotifier = new Notifier("popup-bg.bmp", Color.FromArgb(255, 0, 255), "close.bmp", 5000);
|
||||||
|
//taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor");
|
||||||
|
|
||||||
|
taskbarNotifier.Click += PopupClick;
|
||||||
|
taskbarNotifier.CloseClick += PopupCloseClick;
|
||||||
|
|
||||||
|
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
||||||
|
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
||||||
|
|
||||||
// Start the thread
|
// Start the thread
|
||||||
LThread.Start();
|
LThread.Start();
|
||||||
|
|
||||||
if (Settings.Default.windowstate == 1) //2014.04.18.
|
keepupthread.Start();
|
||||||
this.WindowState = FormWindowState.Maximized;
|
|
||||||
else if (Settings.Default.windowstate == 2)
|
|
||||||
this.WindowState = FormWindowState.Minimized;
|
|
||||||
else if (Settings.Default.windowstate == 3)
|
|
||||||
this.WindowState = FormWindowState.Normal;
|
|
||||||
|
|
||||||
taskbarNotifier = new Notifier("popup-bg.bmp", Color.FromArgb(255, 0, 255), "close.bmp", 5000);
|
keepupuserst.Start();
|
||||||
taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor");
|
|
||||||
|
|
||||||
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
//2014.08.19. - Küldje el a bejelentkezés hírét, hogy frissítéseket kapjon
|
||||||
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
//byte[] strb = Encoding.Unicode.GetBytes(Storage.Settings["myip"]);
|
||||||
|
byte[] strb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
|
||||||
|
byte[] tmpfinal = new byte[8 * UserInfo.KnownUsers.Count + strb.Length + 4]; //Hosszúság, IP, ismert felh. ID, frissítési idő
|
||||||
|
Array.Copy(BitConverter.GetBytes(strb.Length), tmpfinal, 4);
|
||||||
|
Array.Copy(strb, 0, tmpfinal, 4, strb.Length);
|
||||||
|
//if (tmpfinal.Length != 0)
|
||||||
|
if (UserInfo.KnownUsers.Count != 0)
|
||||||
|
{
|
||||||
|
//byte[] tmptmp = BitConverter.GetBytes(CurrentUser.UserID); //Felesleges, eleve elküldi a UserID-t
|
||||||
|
//Array.Copy(tmptmp, tmpfinal, 4);
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
byte[] tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].UserID);
|
||||||
|
Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4);
|
||||||
|
tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].LastUpdate);
|
||||||
|
Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Networking.ParseUpdateInfo(Networking.SendUpdate(Networking.UpdateType.LoginUser, tmpfinal, false));
|
||||||
|
|
||||||
|
notifyIcon1.Visible = true; //2014.09.22.
|
||||||
|
taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadPartnerList() //2014.08.28.
|
||||||
|
{
|
||||||
|
contactList.AutoUpdate = false;
|
||||||
|
UserInfo.AutoUpdate = false; //2014.09.26.
|
||||||
|
//string[] list = Networking.SendRequest("getlist", "", 0, true).Split('ͦ');
|
||||||
|
string[] list = Networking.SendRequest("getlist", "", 0, true).Split(new char[] { 'ͦ' }, StringSplitOptions.RemoveEmptyEntries); //2014.09.26.
|
||||||
|
if (list[0].Contains("Fail"))
|
||||||
|
MessageBox.Show(list[0]);
|
||||||
|
UserInfo.KnownUsers = UserInfo.KnownUsers.Select(entry => { entry.IsPartner = false; return entry; }).ToList(); //2014.09.26.
|
||||||
|
for (int i = 0; i + 1 < list.Length; i += 2)
|
||||||
|
{
|
||||||
|
string username = list[i];
|
||||||
|
int uid = Int32.Parse(list[i + 1]);
|
||||||
|
if (!UserInfo.IDIsInList(UserInfo.KnownUsers, uid))
|
||||||
|
{ //Ha nem tud róla semmit, akkor töltse le a felhasználónevét, és jelenítse meg azt
|
||||||
|
var tmp = new UserInfo();
|
||||||
|
tmp.UserID = uid;
|
||||||
|
tmp.UserName = username;
|
||||||
|
tmp.LastUpdate = 0; //Lényegében nem tud róla túl sokat, ezért ha lehet, frissítse
|
||||||
|
tmp.Name = username;
|
||||||
|
tmp.IsPartner = true;
|
||||||
|
UserInfo.KnownUsers.Add(tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UserInfo.Select(uid).IsPartner = true; //2014.09.26.
|
||||||
|
UserInfo.Select(uid).UserName = username; //2014.09.26. - Nem megváltoztatható, ha egy felhasználó megpróbálja, nem foglalkozik vele
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CurrentUser.State = 1; //2014.08.31. 0:48
|
||||||
|
UserInfo.AutoUpdate = true;
|
||||||
|
foreach (var entry in UserInfo.KnownUsers)
|
||||||
|
{
|
||||||
|
//if (entry.IsPartner)
|
||||||
|
//{
|
||||||
|
/*var pictb = new PictureBox();
|
||||||
|
string imgpath = entry.GetImage();
|
||||||
|
if (imgpath != "noimage.png" || File.Exists("noimage.png")) //2014.03.13.
|
||||||
|
pictb.ImageLocation = imgpath;
|
||||||
|
else
|
||||||
|
MessageBox.Show(Language.Translate("noimage_notfound"), "Hiba");
|
||||||
|
pictb.SizeMode = PictureBoxSizeMode.Zoom; //Megváltoztatva ScretchImage-ről
|
||||||
|
var listtext = new ExRichTextBox();
|
||||||
|
string state = "";
|
||||||
|
if (entry.State == 1)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_online") + ")";
|
||||||
|
else if (entry.State == 2)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_busy") + ")";
|
||||||
|
else if (entry.State == 3)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_away") + ")";
|
||||||
|
listtext.Text = entry.Name + state + "\n" + entry.Message;
|
||||||
|
listtext = TextFormat.Parse(listtext);
|
||||||
|
contactList.Items.Add(new RichListViewItem(new Control[] { pictb, listtext }));
|
||||||
|
entry.ListID = contactList.Items.Count - 1;*/
|
||||||
|
//contactList.Items.Add(new RichListViewItem(2));
|
||||||
|
entry.Update(); //Áthelyeztem, mert az értékek frissítésekor is szükség van rá
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
//UserInfo.AddCurrentUser(); //2014.09.01. - Feleslegesen csináltam meg
|
||||||
|
/*while (contactList.Items.Count > UserInfo.KnownUsers.Count)
|
||||||
|
contactList.Items.RemoveAt(UserInfo.KnownUsers.Count - 1);*/
|
||||||
|
contactList.AutoUpdate = true;
|
||||||
|
contactList.Enabled = true;
|
||||||
|
contactList.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
private void PopupCloseClick(object sender, EventArgs e)
|
private void PopupCloseClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -209,25 +359,54 @@ namespace MSGer.tk
|
||||||
this.Hide();
|
this.Hide();
|
||||||
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
Storage.Save(true); //2014.08.28.
|
||||||
SetOnlineState(null, null); //2014.04.11. - Erre nincs beállitva, ezért automatikusan 0-ra, azaz kijelentkeztetettre állítja az állapotát
|
SetOnlineState(null, null); //2014.04.11. - Erre nincs beállitva, ezért automatikusan 0-ra, azaz kijelentkeztetettre állítja az állapotát
|
||||||
CurrentUser.UserID = 0;
|
//CurrentUser.UserID = 0; - SetOnlineState-ben is benne van
|
||||||
PartnerListThreadActive = false;
|
contactList.Items.Clear(); //2014.09.19.
|
||||||
|
UserInfo.KnownUsers.Clear(); //2014.09.19.
|
||||||
|
/*CurrentUser.SendChanges = false; //2014.09.19. - A UserID=0-t még küldje el, de a többit ne - Pontosabban a UserID-t már a SetOnlineState is elküldi
|
||||||
|
CurrentUser.Email = ""; //2014.09.19.
|
||||||
|
CurrentUser.IP = null; //2014.09.19.
|
||||||
|
CurrentUser.KeyIndex = 0; //2014.09.19.
|
||||||
|
CurrentUser.Keys = null; //2014.09.19.
|
||||||
|
CurrentUser.Language = null; //2014.09.19.
|
||||||
|
CurrentUser.Message = ""; //2014.09.19.
|
||||||
|
CurrentUser.Name = ""; //2014.09.19.
|
||||||
|
CurrentUser.State = 0; //2014.09.19.*/
|
||||||
|
Storage.Dispose();
|
||||||
|
/*Networking.ReceiverConnection.Close();
|
||||||
|
Networking.ReceiverConnection = null;
|
||||||
|
Networking.SenderConnection.Close();
|
||||||
|
Networking.SenderConnection = null;*/
|
||||||
|
//PartnerListThreadActive = false;
|
||||||
|
LThread = null;
|
||||||
|
CurrentUser.SendChanges = false; //2014.08.30.
|
||||||
|
//foreach(var item in ChatForm.ChatWindows)
|
||||||
|
while (ChatForm.ChatWindows.Count > 0)
|
||||||
|
{ //2014.09.06. - A Close() hatására törli a gyűjteményből, ezért sorra végig fog haladni rajta
|
||||||
|
//item.Close();
|
||||||
|
ChatForm.ChatWindows[0].Close();
|
||||||
|
}
|
||||||
LoginDialog = new LoginForm(); //2014.04.04.
|
LoginDialog = new LoginForm(); //2014.04.04.
|
||||||
LoginDialog.ShowDialog();
|
LoginDialog.ShowDialog();
|
||||||
//Nézzük, sikerült-e
|
//Nézzük, sikerült-e
|
||||||
if (CurrentUser.UserID == 0)
|
if (CurrentUser.UserID == 0)
|
||||||
Close();
|
Close();
|
||||||
|
Storage.Load(true); //2014.08.07.
|
||||||
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
||||||
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
||||||
contactList.Items.Clear(); //2014.03.05.
|
//contactList.Items.Clear(); //2014.03.05.
|
||||||
contactList.Enabled = false; //2014.03.05.
|
//contactList.Enabled = false; //2014.03.05.
|
||||||
contactList.Items.Add(new RichListViewItem());
|
//contactList.Items.Add(new RichListViewItem());
|
||||||
contactList.Items[0].SubItems[0].Text = "Betöltés...";
|
//contactList.Items[0].SubItems[0].Text = "Betöltés...";
|
||||||
|
CurrentUser.SendChanges = true; //2014.08.30.
|
||||||
|
contactList.Items.Clear(); //2014.10.09. - Kijelentkezéskor hozzáad egy üres listelemet egy (Nem elérhető) felirattal, ezt tünteti el
|
||||||
|
LoadPartnerList();
|
||||||
this.Show();
|
this.Show();
|
||||||
PartnerListThreadActive = true; //2014.02.28. - Törli, majd újra létrehozza a listafrissitő thread-et, ha újra bejelentkezett
|
//PartnerListThreadActive = true; //2014.02.28. - Törli, majd újra létrehozza a listafrissitő thread-et, ha újra bejelentkezett
|
||||||
// Create the thread object, passing in the Alpha.Beta method
|
// Create the thread object, passing in the Alpha.Beta method
|
||||||
// via a ThreadStart delegate. This does not start the thread.
|
// via a ThreadStart delegate. This does not start the thread.
|
||||||
LThread = new Thread(new ThreadStart(UpdatePartnerList));
|
LThread = new Thread(new ThreadStart(new UpdateListAndChat().Run));
|
||||||
LThread.Name = "Update Partner List";
|
LThread.Name = "Update Partner List";
|
||||||
|
|
||||||
// Start the thread
|
// Start the thread
|
||||||
|
@ -236,7 +415,9 @@ namespace MSGer.tk
|
||||||
|
|
||||||
private void LoginNewUser(object sender, EventArgs e)
|
private void LoginNewUser(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
System.Diagnostics.Process.Start("MSGer.tk.exe");
|
Storage.Save(true); //2014.09.19.
|
||||||
|
//System.Diagnostics.Process.Start("MSGer.tk.exe");
|
||||||
|
Process.Start(((Program.ProcessName.Contains("vshost")) ? Program.ProcessName.Replace(".vshost", "") : Program.ProcessName) + ".exe", "multi");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetOnlineState(object sender, EventArgs e)
|
public void SetOnlineState(object sender, EventArgs e)
|
||||||
|
@ -248,19 +429,45 @@ namespace MSGer.tk
|
||||||
state = 2;
|
state = 2;
|
||||||
if (sender == nincsAGépnélToolStripMenuItem)
|
if (sender == nincsAGépnélToolStripMenuItem)
|
||||||
state = 3;
|
state = 3;
|
||||||
if (sender == rejtveKapcsolódikToolStripMenuItem)
|
//if (sender == rejtveKapcsolódikToolStripMenuItem) //Ha rejtve van, hagyja 0-n a state változót, azaz küldje el azt, hogy nincs bejelentkezve
|
||||||
state = 4;
|
//state = 4;
|
||||||
|
if (sender == null) //2014.08.30. - Erre nagyon sokáig nem volt felkészítve, és ezt kihasználtam a kijelentkezéshez
|
||||||
|
{
|
||||||
|
Networking.SendRequest("setstate", 0 + "", 0, true); //Kijelentkezés
|
||||||
|
//byte[] tmpb = Encoding.Unicode.GetBytes(Storage.Settings["myip"]);
|
||||||
|
byte[] tmpb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
|
||||||
|
byte[] sendb = new byte[4 + tmpb.Length];
|
||||||
|
Array.Copy(BitConverter.GetBytes(tmpb.Length), sendb, 4);
|
||||||
|
Array.Copy(tmpb, 0, sendb, 4, tmpb.Length);
|
||||||
|
Networking.SendUpdate(Networking.UpdateType.LogoutUser, sendb, false);
|
||||||
|
}
|
||||||
|
CurrentUser.State = state; //2014.08.28.
|
||||||
//HTTP
|
//HTTP
|
||||||
if (Networking.SendRequest("setstate", state + "", 0, true) != "Success")
|
//if (!Networking.SendUpdate(Networking.UpdateType.SetState, BitConverter.GetBytes(state), false)[0].Contains((byte)0x01))
|
||||||
MessageBox.Show("Hiba történt az állapot beállitása során.");
|
//var ret = Networking.SendUpdate(Networking.UpdateType.SetState, BitConverter.GetBytes(state), false); - 2014.09.09. - A CurrentUser.State-nél már elküldi
|
||||||
|
//if (ret == null || !ret[0].Contains((byte)0x01))
|
||||||
|
/*if (ret == null || ret.Length == 0)
|
||||||
|
return;
|
||||||
|
bool ok = false;
|
||||||
|
for (int i = 0; i < ret.Length; i++)
|
||||||
|
{
|
||||||
|
if(ret[i][4]==0x01) //Az első 4 byte a UserID
|
||||||
|
{
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
MessageBox.Show(Language.Translate("setstate_error"));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectPartner(object sender, EventArgs e)
|
private void SelectPartner(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SelectPartnerSender = (ToolStripMenuItem)sender;
|
//SelectPartnerSender = (ToolStripMenuItem)sender;
|
||||||
DialogResult dr = new DialogResult();
|
//DialogResult dr = new DialogResult();
|
||||||
var form = new SelectPartnerForm();
|
var form = new SelectPartnerForm((ToolStripMenuItem)sender);
|
||||||
dr = form.ShowDialog();
|
//dr = form.ShowDialog();
|
||||||
|
DialogResult dr = form.ShowDialog();
|
||||||
if (dr == DialogResult.OK)
|
if (dr == DialogResult.OK)
|
||||||
{
|
{
|
||||||
//2014.04.25.
|
//2014.04.25.
|
||||||
|
@ -270,14 +477,17 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
if (partners[i] != "") //2014.04.17.
|
if (partners[i] != "") //2014.04.17.
|
||||||
{
|
{
|
||||||
for (int j = 0; j < UserInfo.Partners.Count; j++)
|
for (int j = 0; j < UserInfo.KnownUsers.Count; j++)
|
||||||
{
|
{
|
||||||
|
if (!UserInfo.KnownUsers[j].IsPartner)
|
||||||
|
continue;
|
||||||
int tmp; //2014.04.17.
|
int tmp; //2014.04.17.
|
||||||
if (!Int32.TryParse(partners[i], out tmp))
|
if (!Int32.TryParse(partners[i], out tmp))
|
||||||
tmp = -1;
|
tmp = -1;
|
||||||
if (UserInfo.Partners[j].UserName == partners[i] || UserInfo.Partners[j].Email == partners[i] || UserInfo.Partners[j].UserID == tmp)
|
if (UserInfo.KnownUsers[j].UserName == partners[i] || UserInfo.KnownUsers[j].Email == partners[i] || UserInfo.KnownUsers[j].UserID == tmp)
|
||||||
{ //Egyezik a név, E-mail vagy ID - UserName: 2014.04.17.
|
{ //Egyezik a név, E-mail vagy ID - UserName: 2014.04.17.
|
||||||
tmpchat.ChatPartners.Add(j); //A Partners-beli indexét adja meg
|
//tmpchat.ChatPartners.Add(j); //A Partners-beli indexét adja meg
|
||||||
|
tmpchat.ChatPartners.Add(UserInfo.KnownUsers[j].UserID); //2014.08.28.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -285,129 +495,48 @@ namespace MSGer.tk
|
||||||
if (tmpchat.ChatPartners.Count != 0)
|
if (tmpchat.ChatPartners.Count != 0)
|
||||||
{
|
{
|
||||||
ChatForm.ChatWindows.Add(tmpchat);
|
ChatForm.ChatWindows.Add(tmpchat);
|
||||||
if (SelectPartnerSender == fájlKüldéseToolStripMenuItem)
|
//if (SelectPartnerSender == fájlKüldéseToolStripMenuItem)
|
||||||
|
if (sender == fájlKüldéseToolStripMenuItem)
|
||||||
{
|
{
|
||||||
tmpchat.Show();
|
tmpchat.Show();
|
||||||
tmpchat.OpenSendFile(form);
|
tmpchat.OpenSendFile(form);
|
||||||
}
|
}
|
||||||
if (SelectPartnerSender == azonnaliÜzenetKüldéseToolStripMenuItem)
|
//if (SelectPartnerSender == azonnaliÜzenetKüldéseToolStripMenuItem)
|
||||||
|
if (sender == azonnaliÜzenetKüldéseToolStripMenuItem)
|
||||||
{
|
{
|
||||||
tmpchat.Show();
|
tmpchat.Show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public delegate int MyDelegate();
|
//public delegate int MyDelegate();
|
||||||
public void UpdatePartnerList()
|
|
||||||
{
|
|
||||||
while (PartnerListThreadActive && MainThread.IsAlive)
|
|
||||||
{
|
|
||||||
string[] row = Networking.SendRequest("getlist", "", 0, true).Split('ͦ'); //Lekéri a listát, és különválogatja egyben - 2014.02.28.
|
|
||||||
CurrentUser.Name = row[0];
|
|
||||||
CurrentUser.Message = row[1];
|
|
||||||
CurrentUser.State = row[2];
|
|
||||||
CurrentUser.UserName = row[3];
|
|
||||||
CurrentUser.Email = row[4];
|
|
||||||
|
|
||||||
if (!this.IsDisposed)
|
|
||||||
{
|
|
||||||
this.Invoke((MethodInvoker)delegate
|
|
||||||
{
|
|
||||||
List<int> tmp;
|
|
||||||
if (Settings.Default.picupdatetime.Length != 0)
|
|
||||||
tmp = Settings.Default.picupdatetime.Split(',').Select(s => Int32.Parse(s)).ToList<int>();
|
|
||||||
else tmp = new List<int>();
|
|
||||||
List<UserInfo> tmpuser = UserInfo.Partners;
|
|
||||||
contactList.AutoUpdate = false;
|
|
||||||
var items = new List<Control[]>();
|
|
||||||
int i = 0;
|
|
||||||
for (int x = 5; x < row.Length - 1; x += 6) //Ezt az egyetlen számot (x+=3) kell módositani, és máris alkalmazkodott a hozzáadott adathoz
|
|
||||||
{ //-1: 2014.04.04. - A végére is odarak egy elválasztó jelet, ami miatt eggyel több elem lesz a tömbben
|
|
||||||
if (row.Length < 5) //2014.03.19. - Ha nincs ismerőse
|
|
||||||
break;
|
|
||||||
for (int y = 0; y < UserInfo.Partners.Count; y++)
|
|
||||||
{
|
|
||||||
if (UserInfo.Partners[y] != null && Int32.Parse(row[x + 3]) == UserInfo.Partners[y].UserID) //Ha null az értéke, már nem is ellenőrzi a másik feltételt
|
|
||||||
{ //Átrendezi a tömböt az új sorrendbe - Ha változott - 2014.03.07.
|
|
||||||
tmpuser[i] = UserInfo.Partners[y];
|
|
||||||
tmpuser[i].ListID = i; //És elmenti az új helyét - 2014.03.13.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i >= tmpuser.Count)
|
|
||||||
{
|
|
||||||
tmpuser.Add(new UserInfo());
|
|
||||||
}
|
|
||||||
tmpuser[i].UserID = Int32.Parse(row[x + 3]); //Beállitja az ID-ket
|
|
||||||
tmpuser[i].ListID = i;
|
|
||||||
tmpuser[i].Name = row[x];
|
|
||||||
tmpuser[i].Message = row[x + 1];
|
|
||||||
tmpuser[i].State = row[x + 2];
|
|
||||||
tmpuser[i].UserName = row[x + 4];
|
|
||||||
tmpuser[i].Email = row[x + 5];
|
|
||||||
string state = "";
|
|
||||||
if (row[x + 2] == "1")
|
|
||||||
state = " (Elérhető)";
|
|
||||||
if (row[x + 2] == "2")
|
|
||||||
state = " (Elfoglalt)";
|
|
||||||
if (row[x + 2] == "3")
|
|
||||||
state = " (Nincs a gépnél)";
|
|
||||||
var oneitem = new Control[2];
|
|
||||||
PictureBox item = new PictureBox();
|
|
||||||
if (tmp.Count <= 1) //2014.04.28.
|
|
||||||
tmp.Add(0);
|
|
||||||
tmpuser[i].PicUpdateTime = tmp[i];
|
|
||||||
string imgpath = tmpuser[i].GetImage();
|
|
||||||
if (imgpath != "noimage.png" || File.Exists("noimage.png")) //2014.03.13.
|
|
||||||
item.ImageLocation = imgpath;
|
|
||||||
else
|
|
||||||
MessageBox.Show("Az alap profilkép nem található.\nMásold be a noimage.png-t, vagy telepitsd újra a programot.\n(Ez az üzenet minden egyes ismerősödnél megjelenik.)", "Hiba");
|
|
||||||
item.SizeMode = PictureBoxSizeMode.StretchImage;
|
|
||||||
|
|
||||||
oneitem[0] = item;
|
|
||||||
ExRichTextBox item2 = new ExRichTextBox();
|
|
||||||
item2.Text = row[x] + " " + state + "\n" + row[x + 1];
|
|
||||||
item2 = TextFormat.Parse(item2);
|
|
||||||
oneitem[1] = item2;
|
|
||||||
items.Add(oneitem);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
Settings.Default.picupdatetime = String.Join(",", tmp.Select(ix => ix.ToString()).ToArray());
|
|
||||||
UserInfo.Partners = tmpuser;
|
|
||||||
contactList.Items.Clear();
|
|
||||||
this.contactList.SetItems(items);
|
|
||||||
contactList.AutoUpdate = true;
|
|
||||||
contactList.Enabled = true;
|
|
||||||
contactList.Refresh();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ClearSearchBar(object sender, EventArgs e)
|
private void ClearSearchBar(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if(textBox1.Text=="Ismerősök keresése...")
|
//if (textBox1.Text == "Ismerősök keresése...")
|
||||||
|
if (textBox1.Text == Language.Translate("searchbar"))
|
||||||
textBox1.Clear();
|
textBox1.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PutTextInSearchBar(object sender, EventArgs e)
|
private void PutTextInSearchBar(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (textBox1.Text == "")
|
if (textBox1.Text == "")
|
||||||
textBox1.Text = "Ismerősök keresése...";
|
//textBox1.Text = "Ismerősök keresése...";
|
||||||
|
textBox1.Text = Language.Translate("searchbar");
|
||||||
}
|
}
|
||||||
public static int RightClickedPartner = -1;
|
public static int RightClickedPartner = -1;
|
||||||
private void ContactItemRightClick(object sender, MouseEventArgs e)
|
/*private void ContactItemRightClick(object sender, MouseEventArgs e)
|
||||||
{/*
|
{
|
||||||
if (e.Button != MouseButtons.Right || contactList.HotItemIndex>=contactList.Items.Count)
|
if (e.Button != MouseButtons.Right || contactList.HotItemIndex>=contactList.Items.Count)
|
||||||
{ //Igy nem reagál arra sem, ha üres területre kattintunk
|
{ //Igy nem reagál arra sem, ha üres területre kattintunk
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
contactList.Items[contactList.HotItemIndex].Selected = true;
|
contactList.Items[contactList.HotItemIndex].Selected = true;
|
||||||
RightClickedPartner = contactList.HotItemIndex;
|
RightClickedPartner = contactList.HotItemIndex;
|
||||||
partnerMenu.Show(Cursor.Position);*/
|
partnerMenu.Show(Cursor.Position);
|
||||||
}
|
}*/
|
||||||
private void OpenSendMessage(object sender, EventArgs e) //2014.03.02. 0:17
|
/*private void OpenSendMessage(object sender, EventArgs e) //2014.03.02. 0:17
|
||||||
{/*
|
{
|
||||||
int tmp = contactList.HotItemIndex;
|
int tmp = contactList.HotItemIndex;
|
||||||
if (RightClickedPartner == -1)
|
if (RightClickedPartner == -1)
|
||||||
RightClickedPartner = tmp;
|
RightClickedPartner = tmp;
|
||||||
|
@ -435,13 +564,44 @@ namespace MSGer.tk
|
||||||
ChatForm.ChatWindows[ChatNum].Focus();
|
ChatForm.ChatWindows[ChatNum].Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
RightClickedPartner = -1;*/
|
RightClickedPartner = -1;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public static void OpenSendMessage(int uid)
|
||||||
|
{
|
||||||
|
//Üzenetküldő form
|
||||||
|
int ChatNum = -1;
|
||||||
|
//int uid = UserInfo.GetUserIDFromListID(e);
|
||||||
|
for (int i = 0; i < ChatForm.ChatWindows.Count; i++)
|
||||||
|
{
|
||||||
|
if (ChatForm.ChatWindows[i].ChatPartners.Count == 1 && ChatForm.ChatWindows[i].ChatPartners.Contains(uid))
|
||||||
|
{ //Vele, és csak vele beszél
|
||||||
|
ChatNum = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ChatNum == -1)
|
||||||
|
{ //Nincs még chatablaka
|
||||||
|
ChatForm.ChatWindows.Add(new ChatForm());
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].ChatPartners.Add(uid);
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Show();
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Focus(); //2014.08.08.
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChatForm.ChatWindows[ChatNum].Show();
|
||||||
|
ChatForm.ChatWindows[ChatNum].Focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnMainFormLoad(object sender, EventArgs e)
|
private void OnMainFormLoad(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (CurrentUser.UserID == 0)
|
if (CurrentUser.UserID == 0)
|
||||||
Program.Exit();
|
Program.Exit();
|
||||||
|
|
||||||
|
LoadPartnerList(); //Be kell töltenie a MainForm-nak, hogy hivatkozhasson rá
|
||||||
|
|
||||||
|
CurrentUser.SendChanges = true; //2014.08.30.
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InvitePartner(object sender, EventArgs e)
|
private void InvitePartner(object sender, EventArgs e)
|
||||||
|
@ -491,39 +651,49 @@ namespace MSGer.tk
|
||||||
|
|
||||||
private void contactList_ItemDoubleClicked(object sender, int e)
|
private void contactList_ItemDoubleClicked(object sender, int e)
|
||||||
{
|
{
|
||||||
int tmp = e;
|
int uid = UserInfo.GetUserIDFromListID(e);
|
||||||
if (RightClickedPartner == -1)
|
OpenSendMessage(uid);
|
||||||
RightClickedPartner = tmp;
|
|
||||||
if (RightClickedPartner == -1 || RightClickedPartner >= contactList.Items.Count)
|
|
||||||
return;
|
|
||||||
//Üzenetküldő form
|
|
||||||
int ChatNum = -1;
|
|
||||||
for (int i = 0; i < ChatForm.ChatWindows.Count; i++)
|
|
||||||
{
|
|
||||||
if (ChatForm.ChatWindows[i].ChatPartners.Count == 1 && ChatForm.ChatWindows[i].ChatPartners.Contains(RightClickedPartner))
|
|
||||||
{ //Vele, és csak vele beszél
|
|
||||||
ChatNum = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ChatNum == -1)
|
|
||||||
{ //Nincs még chatablaka
|
|
||||||
ChatForm.ChatWindows.Add(new ChatForm());
|
|
||||||
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].ChatPartners.Add(RightClickedPartner);
|
|
||||||
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChatForm.ChatWindows[ChatNum].Show();
|
|
||||||
ChatForm.ChatWindows[ChatNum].Focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
RightClickedPartner = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bezárásToolStripMenuItem_Click(object sender, EventArgs e)
|
private void bezárásToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.Hide();
|
this.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void információToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (RightClickedPartner == -1)
|
||||||
|
return;
|
||||||
|
/*string shownname = "";
|
||||||
|
int status = 0;
|
||||||
|
string message = "";
|
||||||
|
string username = "";
|
||||||
|
int userid = 0;
|
||||||
|
string email = "";*/
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
if (UserInfo.KnownUsers[i].ListID != RightClickedPartner)
|
||||||
|
continue;
|
||||||
|
(new PartnerInformation(UserInfo.KnownUsers[i])).ShowDialog();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//(new PartnerInformation(shownname, status, message, username, userid, email)).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contactList_ItemRightClicked(object sender, int e)
|
||||||
|
{
|
||||||
|
contactList.Items[e].Selected = true;
|
||||||
|
RightClickedPartner = e;
|
||||||
|
partnerMenu.Show(Cursor.Position);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PartnerMenu_SendMessage(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (RightClickedPartner == -1)
|
||||||
|
return;
|
||||||
|
int uid = UserInfo.GetUserIDFromListID(RightClickedPartner);
|
||||||
|
OpenSendMessage(uid);
|
||||||
|
RightClickedPartner = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
5
MSGer.tk/Notifier.Designer.cs
generated
|
@ -36,15 +36,18 @@
|
||||||
//
|
//
|
||||||
// CloseButton
|
// CloseButton
|
||||||
//
|
//
|
||||||
|
this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.CloseButton.Location = new System.Drawing.Point(241, 12);
|
this.CloseButton.Location = new System.Drawing.Point(241, 12);
|
||||||
this.CloseButton.Name = "CloseButton";
|
this.CloseButton.Name = "CloseButton";
|
||||||
this.CloseButton.Size = new System.Drawing.Size(31, 28);
|
this.CloseButton.Size = new System.Drawing.Size(31, 28);
|
||||||
this.CloseButton.TabIndex = 0;
|
this.CloseButton.TabIndex = 0;
|
||||||
this.CloseButton.TabStop = false;
|
this.CloseButton.TabStop = false;
|
||||||
|
this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click);
|
||||||
//
|
//
|
||||||
// Title
|
// Title
|
||||||
//
|
//
|
||||||
this.Title.AutoSize = true;
|
this.Title.AutoSize = true;
|
||||||
|
this.Title.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.Title.Location = new System.Drawing.Point(35, 26);
|
this.Title.Location = new System.Drawing.Point(35, 26);
|
||||||
this.Title.Name = "Title";
|
this.Title.Name = "Title";
|
||||||
this.Title.Size = new System.Drawing.Size(33, 13);
|
this.Title.Size = new System.Drawing.Size(33, 13);
|
||||||
|
@ -54,6 +57,7 @@
|
||||||
// Content
|
// Content
|
||||||
//
|
//
|
||||||
this.Content.AutoSize = true;
|
this.Content.AutoSize = true;
|
||||||
|
this.Content.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.Content.Location = new System.Drawing.Point(12, 58);
|
this.Content.Location = new System.Drawing.Point(12, 58);
|
||||||
this.Content.Name = "Content";
|
this.Content.Name = "Content";
|
||||||
this.Content.Size = new System.Drawing.Size(33, 26);
|
this.Content.Size = new System.Drawing.Size(33, 26);
|
||||||
|
@ -80,7 +84,6 @@
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||||
this.TopMost = true;
|
this.TopMost = true;
|
||||||
this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.CloseButton)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.CloseButton)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
|
@ -15,6 +15,8 @@ namespace MSGer.tk
|
||||||
{ //2014.04.15.
|
{ //2014.04.15.
|
||||||
private Rectangle WorkAreaRectangle;
|
private Rectangle WorkAreaRectangle;
|
||||||
private Timer NotifierTimer;
|
private Timer NotifierTimer;
|
||||||
|
|
||||||
|
public event EventHandler CloseClick; //2014.08.29.
|
||||||
public Notifier(string background, Color TransparentColor, string closebutton, int waittime) //waittime: 2014.04.17.
|
public Notifier(string background, Color TransparentColor, string closebutton, int waittime) //waittime: 2014.04.17.
|
||||||
{
|
{
|
||||||
if (!File.Exists(background))
|
if (!File.Exists(background))
|
||||||
|
@ -25,8 +27,12 @@ namespace MSGer.tk
|
||||||
this.BackgroundImage = Image.FromFile(background);
|
this.BackgroundImage = Image.FromFile(background);
|
||||||
this.TransparencyKey = TransparentColor;
|
this.TransparencyKey = TransparentColor;
|
||||||
CloseButton.ImageLocation = closebutton;
|
CloseButton.ImageLocation = closebutton;
|
||||||
this.Show();
|
var size = Image.FromFile(closebutton).Size;
|
||||||
this.Hide();
|
CloseButton.Left = CloseButton.Right - size.Width; //2014.08.29.
|
||||||
|
CloseButton.Width = size.Width; //2014.08.29.
|
||||||
|
CloseButton.Height = size.Height; //2014.08.29.
|
||||||
|
//this.Show();
|
||||||
|
//this.Hide();
|
||||||
NotifierTimer = new Timer();
|
NotifierTimer = new Timer();
|
||||||
NotifierTimer.Interval = waittime;
|
NotifierTimer.Interval = waittime;
|
||||||
NotifierTimer.Tick += NotifierTimer_Tick;
|
NotifierTimer.Tick += NotifierTimer_Tick;
|
||||||
|
@ -38,14 +44,14 @@ namespace MSGer.tk
|
||||||
this.Hide();
|
this.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Notifier(Image background, Color TransparentColor, Image closebutton)
|
public Notifier(Image background, Color TransparentColor, Image closebutton, int waittime) //waittime: 2014.08.28.
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.BackgroundImage = background;
|
this.BackgroundImage = background;
|
||||||
this.TransparencyKey = TransparentColor;
|
this.TransparencyKey = TransparentColor;
|
||||||
CloseButton.Image = closebutton;
|
CloseButton.Image = closebutton;
|
||||||
this.Show();
|
//this.Show();
|
||||||
this.Hide();
|
//this.Hide();
|
||||||
}
|
}
|
||||||
public void Show(string title, string content) //(kép) - 2014.04.15.
|
public void Show(string title, string content) //(kép) - 2014.04.15.
|
||||||
{
|
{
|
||||||
|
@ -53,9 +59,14 @@ namespace MSGer.tk
|
||||||
Title.Text = title;
|
Title.Text = title;
|
||||||
Content.Text = content;
|
Content.Text = content;
|
||||||
this.WindowState = FormWindowState.Normal;
|
this.WindowState = FormWindowState.Normal;
|
||||||
SetBounds(WorkAreaRectangle.Right - BackgroundImage.Width - 17, WorkAreaRectangle.Bottom - 1, BackgroundImage.Width, 0);
|
SetBounds(WorkAreaRectangle.Right - BackgroundImage.Width - 17, WorkAreaRectangle.Bottom - 100, BackgroundImage.Width, 100);
|
||||||
this.Show();
|
this.Show();
|
||||||
NotifierTimer.Start();
|
NotifierTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CloseButton_Click(object sender, EventArgs e)
|
||||||
|
{ //2014.08.29.
|
||||||
|
CloseClick(sender, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,13 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -17,30 +20,57 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
|
public static MainForm MainF;
|
||||||
|
public static string ProcessName = Process.GetCurrentProcess().ProcessName;
|
||||||
|
//public static BeforeLogin BeforeLForm;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static MainForm MainF;
|
|
||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main()
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
Process[] pname = Process.GetProcessesByName(ProcessName);
|
||||||
|
if (pname.Length > 1 && !(args.Length > 0 && args[0] == "multi"))
|
||||||
|
//Program.Exit(false);
|
||||||
|
Environment.Exit(0); //2014.09.26. - Felesleges bármi más műveletet végrehajtani, még nem is töltött be semmit
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
BeforeLogin.Create();
|
||||||
|
//BeforeLForm.Show();
|
||||||
Console.WriteLine("Starting MSGer.tk...");
|
Console.WriteLine("Starting MSGer.tk...");
|
||||||
|
AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MainF = new MainForm();
|
MainF = new MainForm();
|
||||||
|
//Console.WriteLine("Test: " + MainF.Test(MainF.Text));
|
||||||
|
//Console.WriteLine("Test: " + MainF.Test(MainF));
|
||||||
Application.Run(MainF);
|
Application.Run(MainF);
|
||||||
}
|
}
|
||||||
catch(FileNotFoundException e)
|
catch (FileNotFoundException e)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Egy fájl nem található.\nA fájl neve:\n" + e.FileName+"\nEnnél a műveletnél: "+e.TargetSite);
|
MessageBox.Show("Egy fájl nem található.\nA fájl neve:\n" + e.FileName + "\nEnnél a műveletnél: " + e.TargetSite);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
/*catch(Exception e)
|
||||||
{
|
{
|
||||||
ErrorHandling.FormError(MainF, e);
|
ErrorHandling.FormError(MainF, e);
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static readonly bool ShowFirstChangeExceptions = false;
|
||||||
|
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("An unhandled error occured\n" + ((Exception)e.ExceptionObject).Message + "\nHere: " + ((Exception)e.ExceptionObject).TargetSite + ((e.IsTerminating) ? "\nThe program will exit(?)." : "") + "\n\nExit?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
//Environment.Exit(0);
|
||||||
|
Program.Exit(CurrentUser.UserID != 0); //2014.09.26. - Ha be van jelentkezve, elmenti a beállításokat - Csak mert így tán a legegyszerűbb
|
||||||
|
}
|
||||||
|
|
||||||
|
static void CurrentDomain_FirstChanceException(object sender, System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
if (ShowFirstChangeExceptions)
|
||||||
|
MessageBox.Show("An error occured (a first change exception):\n" + e.Exception.Message + "\nHere: " + e.Exception.TargetSite);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0,
|
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0,
|
||||||
|
@ -55,85 +85,106 @@ namespace MSGer.tk
|
||||||
return time.ToLocalTime();
|
return time.ToLocalTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Exit()
|
public static string DateTimeToUnixTime(DateTime time) //2014.08.28.
|
||||||
{ //2014.04.12.
|
{
|
||||||
|
return ((time.Ticks - 621355968000000000) / 10000000).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void BeforeExit(bool savesettings)
|
||||||
|
{ //2014.09.01.
|
||||||
if (MainF != null)
|
if (MainF != null)
|
||||||
{
|
{
|
||||||
MainF.Hide();
|
MainF.Hide();
|
||||||
MainF.toolStripMenuItem4.Enabled = false; //2014.04.12.
|
MainF.toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
MainF.toolStripMenuItem8.Enabled = false; //2014.04.12.
|
MainF.toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
MainF.notifyIcon1.Dispose(); //2014.08.28.
|
||||||
if (CurrentUser.UserID != 0) //2014.04.18.
|
if (CurrentUser.UserID != 0) //2014.04.18.
|
||||||
{
|
{
|
||||||
|
CurrentUser.SendChanges = false; //2014.08.30.
|
||||||
MainF.SetOnlineState(null, null); //2014.04.12.)
|
MainF.SetOnlineState(null, null); //2014.04.12.)
|
||||||
if (MainF.WindowState == FormWindowState.Maximized) //2014.04.18.
|
if (MainF.WindowState == FormWindowState.Maximized) //2014.04.18. - 2014.08.08.
|
||||||
Settings.Default.windowstate = 1;
|
Storage.Settings["windowstate"] = "1";
|
||||||
else if (MainF.WindowState == FormWindowState.Minimized)
|
else if (MainF.WindowState == FormWindowState.Minimized)
|
||||||
Settings.Default.windowstate = 2;
|
Storage.Settings["windowstate"] = "2";
|
||||||
else if (MainF.WindowState == FormWindowState.Normal)
|
else if (MainF.WindowState == FormWindowState.Normal)
|
||||||
Settings.Default.windowstate = 3;
|
Storage.Settings["windowstate"] = "3";
|
||||||
Settings.Default.Save();
|
//Settings.Default.Save();
|
||||||
|
Storage.Save(true); //2014.08.07.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (savesettings) //2014.08.28.
|
||||||
|
Storage.Save(false); //2014.08.08.
|
||||||
|
if (Networking.ReceiverConnection != null)
|
||||||
|
Networking.ReceiverConnection.Close();
|
||||||
|
if (Networking.SenderConnection != null)
|
||||||
|
Networking.SenderConnection.Close();
|
||||||
|
}
|
||||||
|
public static void Exit(bool savesettings)
|
||||||
|
{ //2014.04.12.
|
||||||
|
BeforeExit(savesettings);
|
||||||
//CurrentUser.UserID = 0; - Felesleges, néha megáll itt, és úgy hajt végre egy bejelentkezést igénylő lekérést
|
//CurrentUser.UserID = 0; - Felesleges, néha megáll itt, és úgy hajt végre egy bejelentkezést igénylő lekérést
|
||||||
//Application.Exit();
|
//Application.Exit();
|
||||||
//Application.ExitThread();
|
//Application.ExitThread();
|
||||||
Environment.Exit(0); //Hatásosabb
|
Environment.Exit(0); //Hatásosabb
|
||||||
MessageBox.Show("Hiba: Nem sikerült leállítani a programot.");
|
MessageBox.Show("Hiba: Nem sikerült leállítani a programot.");
|
||||||
}
|
}
|
||||||
|
public static void Exit()
|
||||||
|
{ //2014.08.28. - Csak akkor ne mentse el a beállításokat, ha nem is töltötte még be őket
|
||||||
|
Exit(true);
|
||||||
|
}
|
||||||
|
public static void Restart(bool savesettings)
|
||||||
|
{ //2014.09.01.
|
||||||
|
BeforeExit(savesettings);
|
||||||
|
Process.Start(((ProcessName.Contains("vshost")) ? ProcessName.Replace(".vshost", "") : ProcessName) + ".exe");
|
||||||
|
Environment.Exit(0);
|
||||||
|
MessageBox.Show("Hiba: Nem sikerült leállítani a programot.");
|
||||||
}
|
}
|
||||||
static class Networking
|
|
||||||
{
|
|
||||||
private static int Tries = 0;
|
|
||||||
public static string SendRequest(string action, string data, int remnum, bool loggedin) //2014.02.18.
|
|
||||||
{
|
|
||||||
#if LOCAL_SERVER //2014.07.07. 22:00
|
|
||||||
HttpWebRequest httpWReq =
|
|
||||||
(HttpWebRequest)WebRequest.Create("http://localhost/ChatWithWords/client.php");
|
|
||||||
#else
|
|
||||||
HttpWebRequest httpWReq =
|
|
||||||
(HttpWebRequest)WebRequest.Create("http://msger.url.ph/client.php");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ASCIIEncoding encoding = new ASCIIEncoding();
|
|
||||||
string postData = "action=" + action;
|
|
||||||
if (loggedin) //2014.03.14.
|
|
||||||
postData += "&uid=" + CurrentUser.UserID;
|
|
||||||
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
|
||||||
if (loggedin) //2014.03.14.
|
|
||||||
postData += "&code=" + LoginForm.UserCode; //2014.02.13.
|
|
||||||
postData += "&data=" + Uri.EscapeUriString(data); //2014.02.13.
|
|
||||||
byte[] datax = encoding.GetBytes(postData);
|
|
||||||
|
|
||||||
httpWReq.Method = "POST";
|
|
||||||
httpWReq.ContentType = "application/x-www-form-urlencoded";
|
|
||||||
httpWReq.ContentLength = datax.Length;
|
|
||||||
|
|
||||||
using (Stream stream = httpWReq.GetRequestStream())
|
|
||||||
{
|
|
||||||
stream.Write(datax, 0, datax.Length);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Lista betöltése folyamatban...
|
static class EnumerableExtensions
|
||||||
|
{
|
||||||
|
public static bool HasSameElementsAs<T>(
|
||||||
|
this IEnumerable<T> first,
|
||||||
|
IEnumerable<T> second
|
||||||
|
)
|
||||||
|
{
|
||||||
|
var firstMap = first
|
||||||
|
.GroupBy(x => x)
|
||||||
|
.ToDictionary(x => x.Key, x => x.Count());
|
||||||
|
var secondMap = second
|
||||||
|
.GroupBy(x => x)
|
||||||
|
.ToDictionary(x => x.Key, x => x.Count());
|
||||||
|
return
|
||||||
|
firstMap.Keys.All(x =>
|
||||||
|
secondMap.Keys.Contains(x) && firstMap[x] == secondMap[x]
|
||||||
|
) &&
|
||||||
|
secondMap.Keys.All(x =>
|
||||||
|
firstMap.Keys.Contains(x) && secondMap[x] == firstMap[x]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
HttpWebResponse response;
|
public static bool Test(this object A, object B)
|
||||||
|
{
|
||||||
|
return object.ReferenceEquals(A, B);
|
||||||
|
}
|
||||||
|
|
||||||
try
|
///
|
||||||
|
/// Clones an object by using the .
|
||||||
|
///
|
||||||
|
/// The object to clone.
|
||||||
|
///
|
||||||
|
/// The object to be cloned must be serializable.
|
||||||
|
///
|
||||||
|
public static object Clone(object obj)
|
||||||
{
|
{
|
||||||
response = (HttpWebResponse)httpWReq.GetResponse();
|
using (MemoryStream buffer = new MemoryStream())
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
{
|
||||||
if (Tries > 10)
|
BinaryFormatter formatter = new BinaryFormatter();
|
||||||
{
|
formatter.Serialize(buffer, obj);
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error_network"] + ":\n" + e.Message + "\n\n" + Language.GetCuurentLanguage().Strings["error_network2"], Language.GetCuurentLanguage().Strings["error"]); //2014.04.25.
|
buffer.Position = 0;
|
||||||
Tries = 0;
|
object temp = formatter.Deserialize(buffer);
|
||||||
|
return temp;
|
||||||
}
|
}
|
||||||
Tries++;
|
|
||||||
return SendRequest(action, data, remnum, loggedin); //Újrapróbálkozik
|
|
||||||
}
|
|
||||||
string responseString;
|
|
||||||
responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
|
|
||||||
return responseString;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.2.2.0")]
|
[assembly: AssemblyVersion("3.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("2.2.2.0")]
|
[assembly: AssemblyFileVersion("3.0.0.0")]
|
||||||
|
|
|
@ -13,20 +13,22 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
public partial class SelectPartnerForm : Form
|
public partial class SelectPartnerForm : Form
|
||||||
{
|
{
|
||||||
public SelectPartnerForm()
|
public SelectPartnerForm(ToolStripMenuItem SelectPartnerSender) //paraméter: 2014.09.06.
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.Text = MainForm.SelectPartnerSender.Text; //2014.02.28.
|
this.Text = SelectPartnerSender.Text; //2014.02.28.
|
||||||
titleText.Text = MainForm.SelectPartnerSender.Text;
|
titleText.Text = SelectPartnerSender.Text;
|
||||||
|
|
||||||
cancelbtn.Text = Language.GetCuurentLanguage().Strings["button_cancel"];
|
cancelbtn.Text = Language.Translate("button_cancel");
|
||||||
|
|
||||||
partnerList.Items.Clear();
|
partnerList.Items.Clear();
|
||||||
for (int x = 0; x < UserInfo.Partners.Count; x++) //Partners
|
for (int x = 0; x < UserInfo.KnownUsers.Count; x++) //Partners
|
||||||
{
|
{
|
||||||
|
if (!UserInfo.KnownUsers[x].IsPartner)
|
||||||
|
continue;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
partnerList.Items.Add(UserInfo.Partners[x].UserName);
|
partnerList.Items.Add(UserInfo.KnownUsers[x].UserName);
|
||||||
}
|
}
|
||||||
catch (NullReferenceException)
|
catch (NullReferenceException)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,12 +16,12 @@ namespace MSGer.tk
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
listView1.Columns[0].Width = listView1.Width;
|
listView1.Columns[0].Width = listView1.Width;
|
||||||
this.Text = Language.GetCuurentLanguage().Strings["settings"];
|
this.Text = Language.Translate("settings");
|
||||||
glacialList1.Items[0].Text = Language.GetCuurentLanguage().Strings["settings_personal"];
|
glacialList1.Items[0].Text = Language.Translate("settings_personal");
|
||||||
personal.Text = Language.GetCuurentLanguage().Strings["settings_personal"];
|
personal.Text = Language.Translate("settings_personal");
|
||||||
label1.Text = Language.GetCuurentLanguage().Strings["name"];
|
label1.Text = Language.Translate("name");
|
||||||
label2.Text = Language.GetCuurentLanguage().Strings["message"];
|
label2.Text = Language.Translate("message");
|
||||||
label3.Text = Language.GetCuurentLanguage().Strings["language"];
|
label3.Text = Language.Translate("language");
|
||||||
nameText.Text = CurrentUser.Name;
|
nameText.Text = CurrentUser.Name;
|
||||||
messageText.Text = CurrentUser.Message;
|
messageText.Text = CurrentUser.Message;
|
||||||
|
|
||||||
|
@ -49,30 +49,46 @@ namespace MSGer.tk
|
||||||
|
|
||||||
private void okbtn_Click(object sender, EventArgs e)
|
private void okbtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
string lang="en";
|
string lang = "en";
|
||||||
foreach (var lng in Language.UsedLangs)
|
foreach (var lng in Language.UsedLangs)
|
||||||
{
|
{
|
||||||
if(listView1.SelectedItems[0].Text==lng.Value.Strings["currentlang"])
|
if (lng.Value.Strings.ContainsKey("currentlang") && listView1.SelectedItems[0].Text == lng.Value.Strings["currentlang"])
|
||||||
{
|
{
|
||||||
lang = lng.Key;
|
lang = lng.Key;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
string result = Networking.SendRequest("updatesettings", nameText.Text + "ͦ" + messageText.Text, 0, true);
|
//string result = Networking.SendRequest("updatesettings", nameText.Text + "ͦ" + messageText.Text, 0, true);
|
||||||
if (result != "Success")
|
//if (result != "Success")
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["error"] + ": " + result);
|
//MessageBox.Show(Language.Translate("error"] + ": " + result);
|
||||||
else
|
//List<byte> bytes = new List<byte>();
|
||||||
|
//bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.UserID + "ͦ" + nameText.Text + "ͦ" + messageText.Text));
|
||||||
|
//byte[][] result = Networking.SendUpdate(Networking.UpdateType.UpdateSettings, bytes.ToArray(), false);
|
||||||
|
CurrentUser.Name = nameText.Text;
|
||||||
|
CurrentUser.Message = messageText.Text;
|
||||||
|
/*List<byte> bytes = new List<byte>();
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.UserID));
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.Name.Length));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.Name));
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.Name.Length));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.Message));
|
||||||
|
byte[][] result = Networking.SendUpdate(Networking.UpdateType.ListUpdate, bytes.ToArray(), false);
|
||||||
|
if (result==null || !result[0].All(b => b == 0x00)) //Ha nincs online felhasználó, akkor is továbbhalad
|
||||||
|
{*/ //Azért nem kell ez az egész fentebbi rész, mert minden egyes változást elküld mindenkinek
|
||||||
|
if (Storage.Settings["lang"] != lang)
|
||||||
{
|
{
|
||||||
if (Settings.Default.lang != lang)
|
Storage.Settings["lang"] = lang;
|
||||||
{
|
//Settings.Default.Save();
|
||||||
Settings.Default.lang = lang;
|
MessageBox.Show(Language.Translate("restart_needed"));
|
||||||
Settings.Default.Save();
|
//System.Diagnostics.Process.Start("msger.tk.exe");
|
||||||
MessageBox.Show(Language.GetCuurentLanguage().Strings["restart_needed"]);
|
//Environment.Exit(0);
|
||||||
System.Diagnostics.Process.Start("msger.tk.exe");
|
//Program.Exit();
|
||||||
Environment.Exit(0);
|
Program.Restart(true);
|
||||||
}
|
}
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
/*}
|
||||||
|
else //Ha az összes ismert címről hibajelentés érkezik, jelezze a hibát
|
||||||
|
MessageBox.Show(Language.Translate("error"));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cancelbtn_Click(object sender, EventArgs e)
|
private void cancelbtn_Click(object sender, EventArgs e)
|
||||||
|
|
|
@ -4,6 +4,10 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Khendys.Controls;
|
||||||
|
using SzNPProjects;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
namespace MSGer.tk
|
namespace MSGer.tk
|
||||||
{
|
{
|
||||||
|
@ -13,58 +17,94 @@ namespace MSGer.tk
|
||||||
* 2014.03.07.
|
* 2014.03.07.
|
||||||
* Az összes szükséges felhasználó szükséges adatai
|
* Az összes szükséges felhasználó szükséges adatai
|
||||||
*/
|
*/
|
||||||
public int UserID { get; set; } //Az egész rendszerben egyedi azonosítója
|
//public int UserID { get; set; } //Az egész rendszerben egyedi azonosítója
|
||||||
public int ListID { get; set; } //A listabeli azonosítója
|
//public int ListID { get; set; } //A listabeli azonosítója
|
||||||
public static List<UserInfo> Partners = new List<UserInfo>();
|
//public static List<UserInfo> Partners = new List<UserInfo>();
|
||||||
private string name;
|
public static List<UserInfo> KnownUsers = new List<UserInfo>(); //2014.08.28.
|
||||||
|
public int UserID //Az egész rendszerben egyedi azonosítója
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
public int ListID //A listabeli azonosítója
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_listid"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_listid", "-1");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["userinfo_" + UserID + "_listid"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_listid"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_listid", "-1");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_listid"] = value.ToString();
|
||||||
|
//UpdateListID - 2014.08.30.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//private string name;
|
||||||
public string Name
|
public string Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return name;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_name"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_name", "");
|
||||||
|
return Storage.LoggedInSettings["userinfo_" + UserID + "_name"];
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
name = value;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_name"))
|
||||||
List<int> list=GetChatWindows();
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_name", "");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_name"] = value;
|
||||||
|
/*List<int> list=GetChatWindows();
|
||||||
for (int i = 0; i < list.Count; i++)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
||||||
{ //ChatForm
|
{ //ChatForm
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//private string message;
|
||||||
private string message;
|
|
||||||
public string Message
|
public string Message
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return message;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_message"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_message", "");
|
||||||
|
return Storage.LoggedInSettings["userinfo_" + UserID + "_message"];
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
message = value;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_message"))
|
||||||
List<int> list = GetChatWindows();
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_message", "");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_message"] = value;
|
||||||
|
/*List<int> list = GetChatWindows();
|
||||||
for (int i = 0; i < list.Count; i++)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
||||||
{ //ChatForm
|
{ //ChatForm
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//private int state;
|
||||||
private string state;
|
public int State
|
||||||
public string State
|
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return state;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_state"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_state", "-1");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["userinfo_" + UserID + "_state"]);
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
state = value;
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_state"))
|
||||||
List<int> list = GetChatWindows();
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_state", "-1");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_state"] = value.ToString();
|
||||||
|
/*List<int> list = GetChatWindows();
|
||||||
for (int i = 0; i < list.Count; i++)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
if (ChatForm.ChatWindows != null && ChatForm.ChatWindows[list[i]] != null && !ChatForm.ChatWindows[list[i]].IsDisposed)
|
||||||
|
@ -72,29 +112,140 @@ namespace MSGer.tk
|
||||||
string tmp = "Hiba";
|
string tmp = "Hiba";
|
||||||
switch (value)
|
switch (value)
|
||||||
{
|
{
|
||||||
case "0":
|
case 0:
|
||||||
tmp = Language.GetCuurentLanguage().Strings["offline"];
|
tmp = Language.Translate("offline");
|
||||||
break;
|
break;
|
||||||
case "1":
|
case 1:
|
||||||
tmp = Language.GetCuurentLanguage().Strings["menu_file_status_online"];
|
tmp = Language.Translate("menu_file_status_online");
|
||||||
break;
|
break;
|
||||||
case "2":
|
case 2:
|
||||||
tmp = Language.GetCuurentLanguage().Strings["menu_file_status_busy"];
|
tmp = Language.Translate("menu_file_status_busy");
|
||||||
break;
|
break;
|
||||||
case "3":
|
case 3:
|
||||||
tmp = Language.GetCuurentLanguage().Strings["menu_file_status_away"];
|
tmp = Language.Translate("menu_file_status_away");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//public string UserName { get; set; }
|
||||||
|
//public string Email { get; set; }
|
||||||
|
public string UserName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_username"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_username", "");
|
||||||
|
return Storage.LoggedInSettings["userinfo_" + UserID + "_username"];
|
||||||
}
|
}
|
||||||
public string UserName { get; set; }
|
set
|
||||||
public string Email { get; set; }
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_username"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_username", "");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_username"] = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string Email
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_email"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_email", "");
|
||||||
|
return Storage.LoggedInSettings["userinfo_" + UserID + "_email"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_email"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_email", "");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_email"] = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public bool IsPartner
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_ispartner"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_ispartner", "False");
|
||||||
|
return bool.Parse(Storage.LoggedInSettings["userinfo_" + UserID + "_ispartner"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_ispartner"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_ispartner", "False");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_ispartner"] = value.ToString();
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int LastUpdate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_lastupdate"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_lastupdate", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["userinfo_" + UserID + "_lastupdate"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_lastupdate"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_lastupdate", "0");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_lastupdate"] = value.ToString();
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string LoginCode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_logincode"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_logincode", "0");
|
||||||
|
return Storage.LoggedInSettings["userinfo_" + UserID + "_logincode"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("userinfo_" + UserID + "_logincode"))
|
||||||
|
Storage.LoggedInSettings.Add("userinfo_" + UserID + "_logincode", "0");
|
||||||
|
Storage.LoggedInSettings["userinfo_" + UserID + "_logincode"] = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private static HashSet<IPEndPoint> ips = new HashSet<IPEndPoint>();
|
||||||
|
public static HashSet<IPEndPoint> IPs
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
ips = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private static List<IPEndPoint> bannedips = new List<IPEndPoint>();
|
||||||
|
public static List<IPEndPoint> BannedIPs
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return bannedips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
bannedips = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static int BanTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public UserInfo()
|
public UserInfo()
|
||||||
{
|
{
|
||||||
|
//Console.WriteLine("Creating UserInfo."); //2014.10.09.
|
||||||
|
}
|
||||||
|
~UserInfo() //2014.10.09.
|
||||||
|
{
|
||||||
|
//Console.WriteLine("UserInfo destroying."); //2014.10.09.
|
||||||
}
|
}
|
||||||
public int PicUpdateTime = 0;
|
public int PicUpdateTime = 0;
|
||||||
public string GetImage()
|
public string GetImage()
|
||||||
|
@ -107,36 +258,284 @@ namespace MSGer.tk
|
||||||
* Eltárol helyileg is egy dátumot, és ha már frissitette egyszer a képet (újabb a helyi dátum, mint az adatbázisban),
|
* Eltárol helyileg is egy dátumot, és ha már frissitette egyszer a képet (újabb a helyi dátum, mint az adatbázisban),
|
||||||
* akkor nem csinál semmit. Ha régebbi, akkor a partner azóta frissitette, tehát szükséges a letöltés.
|
* akkor nem csinál semmit. Ha régebbi, akkor a partner azóta frissitette, tehát szükséges a letöltés.
|
||||||
*/
|
*/
|
||||||
string str = Networking.SendRequest("getimage", UserID + "ͦ" + PicUpdateTime, 2, true); //SetVars
|
string tmp = Path.GetTempPath();
|
||||||
|
if (!Directory.Exists(tmp + "\\MSGer.tk\\pictures")) //2014.08.16. - Áthelyezve, hogy mindig létrehozza, ha kell, és letöltse a képeket
|
||||||
|
Directory.CreateDirectory(tmp + "\\MSGer.tk\\pictures");
|
||||||
|
|
||||||
|
//2014.08.16. - A képeket azért nem menti felhasználónként, mert úgyis le tudja tölteni mindenkinek a képét szinte bárki, és amúgy is UserID-val van azonosítva
|
||||||
|
List<byte> sendb = new List<byte>();
|
||||||
|
sendb.AddRange(BitConverter.GetBytes(CurrentUser.UserID));
|
||||||
|
sendb.AddRange(BitConverter.GetBytes(UserID));
|
||||||
|
sendb.AddRange(BitConverter.GetBytes((File.Exists(tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png")) ? PicUpdateTime : 0));
|
||||||
|
byte[][] bytesb = Networking.SendUpdate(Networking.UpdateType.GetImage, sendb.ToArray(), false);
|
||||||
|
if (bytesb == null || bytesb.All(entry => entry.Length == 0)) //bytesb.All(...): 2014.09.01.
|
||||||
|
{
|
||||||
|
if (File.Exists(tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png"))
|
||||||
|
return tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png";
|
||||||
|
else
|
||||||
|
return "noimage.png";
|
||||||
|
}
|
||||||
|
bytesb = bytesb.Select(entry => Networking.ParsePacket(entry).Data).ToArray();
|
||||||
|
//int[] picupdatetimes = bytesb.Select(b => BitConverter.ToInt32(b, 4)).ToArray(); //Az első 4 byte a UserID
|
||||||
|
int[] picupdatetimes = bytesb.Select(b => BitConverter.ToInt32(b, 0)).ToArray();
|
||||||
|
int maxIndex = Array.IndexOf<int>(picupdatetimes, picupdatetimes.Max());
|
||||||
|
byte[] bytes = bytesb[maxIndex]; //Attól tölti le a képet, akinek a legfrissebb
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ez a funkció automatikusan elküldi a bejelentkezett felhasználó azonositóját,
|
* Ez a funkció automatikusan elküldi a bejelentkezett felhasználó azonositóját,
|
||||||
* a PHP szkript pedig leellenőrzi, hogy egymásnak partnerei-e, ezáltal nem nézheti meg akárki akárkinek a profilképét
|
* a PHP szkript pedig leellenőrzi, hogy egymásnak partnerei-e, ezáltal nem nézheti meg akárki akárkinek a profilképét
|
||||||
* (pedig a legtöbb helyen igy van, de szerintem jobb igy; lehet, hogy beállithatóvá teszem)
|
* (pedig a legtöbb helyen igy van, de szerintem jobb igy; lehet, hogy beállithatóvá teszem)
|
||||||
*/
|
*/
|
||||||
if (str == "Fail")
|
//if (str == "Fail" || str.Contains("NoChange"))
|
||||||
|
if (bytes[0] == 0x00) //Nincs kép, vagy hiba történt
|
||||||
{
|
{
|
||||||
return "noimage.png";
|
return "noimage.png";
|
||||||
}
|
}
|
||||||
|
else if (bytes[0] == 0x01)
|
||||||
|
{
|
||||||
|
return tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{ //Mentse el a képet
|
{ //Mentse el a képet
|
||||||
string tmp = Path.GetTempPath();
|
//string tmp = Path.GetTempPath();
|
||||||
if (!Directory.Exists(tmp + "\\MSGer.tk\\pictures"))
|
//if (!Directory.Exists(tmp + "\\MSGer.tk\\pictures"))
|
||||||
Directory.CreateDirectory(tmp + "\\MSGer.tk\\pictures");
|
//Directory.CreateDirectory(tmp + "\\MSGer.tk\\pictures");
|
||||||
File.WriteAllText(tmp + "\\MSGer.tk\\pictures\\" + ListID + ".png", str);
|
//File.WriteAllText(tmp + "\\MSGer.tk\\pictures\\" + ListID + ".png", str);
|
||||||
|
File.WriteAllBytes(tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png", bytes);
|
||||||
|
return tmp + "\\MSGer.tk\\pictures\\" + UserID + ".png"; //2014.08.16.
|
||||||
}
|
}
|
||||||
return "noimage.png";
|
//return "noimage.png";
|
||||||
}
|
}
|
||||||
public List<int> GetChatWindows()
|
public List<int> GetChatWindows()
|
||||||
{
|
{
|
||||||
List<int> retlist = new List<int>();
|
List<int> retlist = new List<int>();
|
||||||
for(int x=0; x<ChatForm.ChatWindows.Count; x++)
|
for (int x = 0; x < ChatForm.ChatWindows.Count; x++)
|
||||||
{
|
{
|
||||||
if(ChatForm.ChatWindows[x].ChatPartners.Contains(ListID))
|
if (ChatForm.ChatWindows[x].ChatPartners.Contains(UserID))
|
||||||
{
|
{
|
||||||
retlist.Add(x);
|
retlist.Add(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return retlist;
|
return retlist;
|
||||||
|
//return ChatForm.ChatWindows.FindAll(entry => entry.ChatPartners.Contains(UserID)).Select(cform => (ChatForm.ChatWindows.IndexOf(cform))); - 2014.09.19.
|
||||||
}
|
}
|
||||||
|
/*public static int GetListIDFromUserID(int UserID)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
if (UserInfo.KnownUsers[i].IsPartner && UserInfo.KnownUsers[i].UserID == UserID)
|
||||||
|
return UserInfo.KnownUsers[i].ListID;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}*/
|
||||||
|
public static void Load()
|
||||||
|
{
|
||||||
|
foreach (var entry in Storage.LoggedInSettings)
|
||||||
|
{
|
||||||
|
string[] tmp = entry.Key.Split('_');
|
||||||
|
if (tmp[0] != "userinfo")
|
||||||
|
continue;
|
||||||
|
var tmp2 = new UserInfo();
|
||||||
|
tmp2.UserID = Int32.Parse(tmp[1]);
|
||||||
|
if (!IDIsInList(KnownUsers, tmp2.UserID))
|
||||||
|
KnownUsers.Add(tmp2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static bool IDIsInList(List<UserInfo> list, int userid)
|
||||||
|
{
|
||||||
|
/*foreach(var entry in list)
|
||||||
|
{
|
||||||
|
if (entry.UserID == userid)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;*/
|
||||||
|
return (list.Count(entry => entry.UserID == userid) > 0); //2014.09.19.
|
||||||
|
}
|
||||||
|
public static UserInfo Select(int userid)
|
||||||
|
{
|
||||||
|
/*for (int i = 0; i < KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
if (KnownUsers[i].UserID == userid)
|
||||||
|
{
|
||||||
|
return KnownUsers[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;*/
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return KnownUsers.Single(entry => entry.UserID == userid); //2014.09.19.
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static int GetUserIDFromListID(int ListID)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
if (UserInfo.KnownUsers[i].IsPartner && UserInfo.KnownUsers[i].ListID == ListID)
|
||||||
|
return UserInfo.KnownUsers[i].UserID;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public static bool AutoUpdate { get; set; }
|
||||||
|
private Timer UpdateTimer = new Timer(); //2014.09.26. - Csak másodpercenként frissíti az ismerőslistát
|
||||||
|
public void Update()
|
||||||
|
{
|
||||||
|
if (!IsPartner || !AutoUpdate)
|
||||||
|
return;
|
||||||
|
if (!UpdateTimer.Enabled)
|
||||||
|
{
|
||||||
|
UpdateTimer.Interval = 500;
|
||||||
|
UpdateTimer.Tick += UpdateTimerTick;
|
||||||
|
UpdateTimer.Start();
|
||||||
|
}
|
||||||
|
//Partnerlista frissítése
|
||||||
|
/*if (Program.MainF.contactList.Items.Count >= ListID)
|
||||||
|
Program.MainF.contactList.Items.Add(new RichListViewItem());
|
||||||
|
var item = Program.MainF.contactList.Items[ListID];*/
|
||||||
|
/*var pictb = new PictureBox();
|
||||||
|
string imgpath = this.GetImage();
|
||||||
|
if (imgpath != "noimage.png" || File.Exists("noimage.png")) //2014.03.13.
|
||||||
|
pictb.ImageLocation = imgpath;
|
||||||
|
else
|
||||||
|
MessageBox.Show(Language.Translate("noimage_notfound"), "Hiba");
|
||||||
|
pictb.SizeMode = PictureBoxSizeMode.Zoom; //Megváltoztatva ScretchImage-ről
|
||||||
|
var listtext = new ExRichTextBox();
|
||||||
|
string state = "";
|
||||||
|
if (this.State == 1)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_online") + ")";
|
||||||
|
else if (this.State == 2)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_busy") + ")";
|
||||||
|
else if (this.State == 3)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_away") + ")";
|
||||||
|
else if (this.State == 0)
|
||||||
|
state = " (" + Language.Translate("offline") + ")";
|
||||||
|
else
|
||||||
|
state = " (" + Language.Translate("networking_alone") + ")";
|
||||||
|
listtext.Text = this.Name + state + "\n" + this.Message;
|
||||||
|
listtext = TextFormat.Parse(listtext);
|
||||||
|
//item.SubItems = new Control[] { pictb, listtext };
|
||||||
|
|
||||||
|
//if (ListID != -1)
|
||||||
|
//{
|
||||||
|
if (ListID == -1)
|
||||||
|
ListID = Program.MainF.contactList.Items.Count;
|
||||||
|
if (Program.MainF.contactList.Items.Count > ListID)
|
||||||
|
Program.MainF.contactList.Items.RemoveAt(ListID);
|
||||||
|
Program.MainF.contactList.Items.Insert(ListID, new RichListViewItem(new Control[] { pictb, listtext }));*/
|
||||||
|
/*if (Program.MainF.contactList.Items.Count <= ListID) //2014.09.26.
|
||||||
|
{ - Rájöttem, hogy amit eddig csináltam, az volt a legjobb - Ha egy elem változik, azt nem tudja érzékelni, csak a törlést és a hozzáadást
|
||||||
|
Program.MainF.contactList.Items.Insert(ListID, new RichListViewItem(new Control[] { pictb, listtext }));
|
||||||
|
}*/
|
||||||
|
//Program.MainF.contactList.Items[ListID].SubItems[0] = pictb;
|
||||||
|
//Program.MainF.contactList.Items[ListID].SubItems[1] = listtext;
|
||||||
|
//Program.MainF.contactList.Items[ListID] = new RichListViewItem(new Control[] { pictb, listtext });
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateTimerTick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
UpdateTimer.Stop();
|
||||||
|
//Partnerlista frissítése
|
||||||
|
/*var pictb = new PictureBox();
|
||||||
|
string imgpath = this.GetImage();
|
||||||
|
if (imgpath != "noimage.png" || File.Exists("noimage.png")) //2014.03.13.
|
||||||
|
pictb.ImageLocation = imgpath;
|
||||||
|
else
|
||||||
|
MessageBox.Show(Language.Translate("noimage_notfound"), "Hiba");
|
||||||
|
pictb.SizeMode = PictureBoxSizeMode.Zoom; //Megváltoztatva ScretchImage-ről
|
||||||
|
var listtext = new ExRichTextBox();
|
||||||
|
string state = "";
|
||||||
|
if (this.State == 1)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_online") + ")";
|
||||||
|
else if (this.State == 2)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_busy") + ")";
|
||||||
|
else if (this.State == 3)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_away") + ")";
|
||||||
|
else //if (this.State == 0)
|
||||||
|
state = " (" + Language.Translate("offline") + ")";
|
||||||
|
*else
|
||||||
|
state = " (" + Language.Translate("networking_alone") + ")";*
|
||||||
|
listtext.Text = this.Name + state + "\n" + this.Message;
|
||||||
|
listtext = TextFormat.Parse(listtext);*/
|
||||||
|
//2014.10.09.
|
||||||
|
string imgpath = this.GetImage();
|
||||||
|
if (!(imgpath != "noimage.png" || File.Exists("noimage.png"))) //2014.03.13. - 2014.10.09.
|
||||||
|
{
|
||||||
|
imgpath = "";
|
||||||
|
MessageBox.Show(Language.Translate("noimage_notfound"), Language.Translate("error"));
|
||||||
|
}
|
||||||
|
string state = "";
|
||||||
|
if (this.State == 1)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_online") + ")";
|
||||||
|
else if (this.State == 2)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_busy") + ")";
|
||||||
|
else if (this.State == 3)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_away") + ")";
|
||||||
|
else //if (this.State == 0)
|
||||||
|
state = " (" + Language.Translate("offline") + ")";
|
||||||
|
string text = this.Name + state + "\n" + this.Message;
|
||||||
|
|
||||||
|
if (ListID == -1)
|
||||||
|
{
|
||||||
|
//ListID = Program.MainF.contactList.Items.Except(Program.MainF.contactList.Items.TakeWhile(entry => entry.SubItems[1].Text != "")).TakeWhile(entry => entry.SubItems[1].Text == "").Count();
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < Program.MainF.contactList.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (Program.MainF.contactList.Items[i].SubItems[1].Text == "")
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ListID = i;
|
||||||
|
}
|
||||||
|
/*if (Program.MainF.contactList.Items.Count > ListID)
|
||||||
|
Program.MainF.contactList.Items.RemoveAt(ListID);
|
||||||
|
else //Ha nincs elég eleme a listának
|
||||||
|
{
|
||||||
|
int i = Program.MainF.contactList.Items.Count;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
Program.MainF.contactList.Items.Insert(i, new RichListViewItem());
|
||||||
|
} while (Program.MainF.contactList.Items.Count <= ListID);
|
||||||
|
}
|
||||||
|
Program.MainF.contactList.Items.Insert(ListID, new RichListViewItem(new Control[] { pictb, listtext }));*/
|
||||||
|
//2014.10.09.
|
||||||
|
bool tmp = Program.MainF.contactList.AutoUpdate;
|
||||||
|
Program.MainF.contactList.AutoUpdate = false;
|
||||||
|
while (Program.MainF.contactList.Items.Count <= ListID) //Azt is adja hozzá, ami a kész listaelem lesz
|
||||||
|
{
|
||||||
|
var pictb = new PictureBox();
|
||||||
|
pictb.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictb.ImageLocation = imgpath;
|
||||||
|
var listtext = new ExRichTextBox();
|
||||||
|
listtext.Text = text;
|
||||||
|
listtext = TextFormat.Parse(listtext);
|
||||||
|
Program.MainF.contactList.Items.Add(new RichListViewItem(new Control[] { pictb, listtext }));
|
||||||
|
//System.Threading.Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
((PictureBox)Program.MainF.contactList.Items[ListID].SubItems[0]).ImageLocation = imgpath;
|
||||||
|
Program.MainF.contactList.Items[ListID].SubItems[1].Text = text;
|
||||||
|
Program.MainF.contactList.Items[ListID].SubItems[1] = TextFormat.Parse((ExRichTextBox)Program.MainF.contactList.Items[ListID].SubItems[1]);
|
||||||
|
Program.MainF.contactList.AutoUpdate = tmp;
|
||||||
|
}
|
||||||
|
/*public static void AddCurrentUser()
|
||||||
|
{ //2014.09.01.
|
||||||
|
if (UserInfo.Select(CurrentUser.UserID) != null)
|
||||||
|
return;
|
||||||
|
var tmp = new UserInfo();
|
||||||
|
tmp.Email = CurrentUser.Email;
|
||||||
|
tmp.IsPartner = false; //Ha még nem adta hozzá, nem ismerősök
|
||||||
|
tmp.LastUpdate = Int32.Parse(Program.DateTimeToUnixTime(DateTime.Now));
|
||||||
|
tmp.Message = CurrentUser.Message;
|
||||||
|
tmp.Name = CurrentUser.Name;
|
||||||
|
tmp.PicUpdateTime = Int32.Parse(Program.DateTimeToUnixTime(DateTime.Now));
|
||||||
|
tmp.State = CurrentUser.State;
|
||||||
|
tmp.UserID = CurrentUser.UserID;
|
||||||
|
tmp.UserName = CurrentUser.UserName;
|
||||||
|
KnownUsers.Add(tmp);
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,8 @@ login=Login
|
||||||
button_cancel=Cancel
|
button_cancel=Cancel
|
||||||
login_password=Password
|
login_password=Password
|
||||||
registration=Registration
|
registration=Registration
|
||||||
login_desc1=You can use your username instead of your E-mail address.
|
forgotpassword=Forgot password
|
||||||
|
login_desc1=You can use your username or user ID instead of your E-mail address.
|
||||||
login_desc2=If you can't log in, restart the program. If it doesn't help and the problem is not with your username/password, please report the problem.
|
login_desc2=If you can't log in, restart the program. If it doesn't help and the problem is not with your username/password, please report the problem.
|
||||||
error=Error
|
error=Error
|
||||||
connecterror=Connecting to server failed.
|
connecterror=Connecting to server failed.
|
||||||
|
@ -71,6 +72,7 @@ reg_codeerr=The given code is invalid or already used.
|
||||||
reg_nameerr=The username is already taken.
|
reg_nameerr=The username is already taken.
|
||||||
reg_namelen=Incorrect username length. (At least 4 characters)
|
reg_namelen=Incorrect username length. (At least 4 characters)
|
||||||
reg_passlen=Incorrect password length. (At least 6 characters)
|
reg_passlen=Incorrect password length. (At least 6 characters)
|
||||||
|
reg_email=E-mail address is not specified or invalid.
|
||||||
reg_success=Registration succesful.
|
reg_success=Registration succesful.
|
||||||
unknown_error=Unknown error.
|
unknown_error=Unknown error.
|
||||||
addcontact=Add contact
|
addcontact=Add contact
|
||||||
|
@ -78,8 +80,9 @@ addcontact_nameemail=Name/E-mail/Username
|
||||||
addcontact_search=Search
|
addcontact_search=Search
|
||||||
addcontact_add=Add
|
addcontact_add=Add
|
||||||
chat_nowindow=The partner creating the window is not found.
|
chat_nowindow=The partner creating the window is not found.
|
||||||
|
chat_title=Chat
|
||||||
|
chat_showicons=Show emoticons
|
||||||
offline=Offline
|
offline=Offline
|
||||||
msgupdate_error=Failed to update messages.
|
|
||||||
said=said
|
said=said
|
||||||
about=About {0}
|
about=About {0}
|
||||||
about_version=Version: {0}
|
about_version=Version: {0}
|
||||||
|
@ -99,4 +102,13 @@ name=Name
|
||||||
message=Message
|
message=Message
|
||||||
language=Language
|
language=Language
|
||||||
restart_needed=The program will restart due to the changes made.
|
restart_needed=The program will restart due to the changes made.
|
||||||
|
noimage_notfound=Unable to find the "no image" image...\nCopy in "noimage.png" or reinstall the program.\n(This message appears at each of your contacts.)
|
||||||
|
userid=User ID
|
||||||
|
networking_alone=No other users available. You can only use offline functions.
|
||||||
|
setstate_error=An error occured while setting state.
|
||||||
|
isserver_msg=Do you want your client to function as a server too?\nThis means that the other clients will connect to it, and if the computer is beind a router you will need port forwarding.
|
||||||
|
beforelogin_translatemainf=Translating texts in the main window...
|
||||||
|
beforelogin_loadtextformat=Loading emoticons...
|
||||||
|
beforelogin_checkforupdates=Checking updates...
|
||||||
|
beforelogin_loginform=Showing login window...
|
||||||
currentlang=English
|
currentlang=English
|
||||||
|
|
|
@ -59,7 +59,8 @@ login=Bejelentkezés
|
||||||
button_cancel=Mégse
|
button_cancel=Mégse
|
||||||
login_password=Jelszó
|
login_password=Jelszó
|
||||||
registration=Regisztráció
|
registration=Regisztráció
|
||||||
login_desc1=Az e-mail helyett használható a felhasználóneved is.
|
forgotpassword=Elfelejtett jelszó
|
||||||
|
login_desc1=Az e-mail helyett használhatod a felhasználóneved is vagy a felhasználód azonosítószámát.
|
||||||
login_desc2=Ha nem tudsz bejelentkezni, próbáld meg újrainditani a programot. Ha az sem segít, és nem a felhasználóneveddel/jelszavaddal van a probléma, akkor jelentsd a problémát.
|
login_desc2=Ha nem tudsz bejelentkezni, próbáld meg újrainditani a programot. Ha az sem segít, és nem a felhasználóneveddel/jelszavaddal van a probléma, akkor jelentsd a problémát.
|
||||||
error=Hiba
|
error=Hiba
|
||||||
connecterror=Nem sikerült csatlakozni a szerverhez.
|
connecterror=Nem sikerült csatlakozni a szerverhez.
|
||||||
|
@ -71,6 +72,7 @@ reg_codeerr=A megadott kód nem létezik vagy már felhasználták.
|
||||||
reg_nameerr=A felhasználónév már foglalt.
|
reg_nameerr=A felhasználónév már foglalt.
|
||||||
reg_namelen=A felhasználónév hossza nem megfelelő. (Min. 4 karakter)
|
reg_namelen=A felhasználónév hossza nem megfelelő. (Min. 4 karakter)
|
||||||
reg_passlen=A jelszó hossza nem megfelelő. (Min. 6 karakter)
|
reg_passlen=A jelszó hossza nem megfelelő. (Min. 6 karakter)
|
||||||
|
reg_email=Az E-mail cím nincs megadva vagy helytelen.
|
||||||
reg_success=Sikeres regisztráció.
|
reg_success=Sikeres regisztráció.
|
||||||
unknown_error=Ismeretlen hiba
|
unknown_error=Ismeretlen hiba
|
||||||
addcontact=Ismerős felvétele
|
addcontact=Ismerős felvétele
|
||||||
|
@ -78,8 +80,9 @@ addcontact_nameemail=Név/E-mail/Felhasználónév
|
||||||
addcontact_search=Keresés
|
addcontact_search=Keresés
|
||||||
addcontact_add=Felvétel
|
addcontact_add=Felvétel
|
||||||
chat_nowindow=Az ablakot létrehozó partner nem található.
|
chat_nowindow=Az ablakot létrehozó partner nem található.
|
||||||
|
chat_title=Beszélgetés
|
||||||
|
chat_showicons=Hangulatjelek megjelenítése
|
||||||
offline=Nem elérhető
|
offline=Nem elérhető
|
||||||
msgupdate_error=Az üzenetek frissitése sikertelen.
|
|
||||||
said=üzenete
|
said=üzenete
|
||||||
about=A {0} programról
|
about=A {0} programról
|
||||||
about_version=Verzió: {0}
|
about_version=Verzió: {0}
|
||||||
|
@ -99,4 +102,13 @@ name=Név
|
||||||
message=Üzenet
|
message=Üzenet
|
||||||
language=Nyelv
|
language=Nyelv
|
||||||
restart_needed=A módosítások érvényesítésének érdekében a program újraindul.
|
restart_needed=A módosítások érvényesítésének érdekében a program újraindul.
|
||||||
|
noimage_notfound=Az "nincs kép" profilkép nem található.\nMásold be a noimage.png-t, vagy telepitsd újra a programot.\n(Ez az üzenet minden egyes ismerősödnél megjelenik.)
|
||||||
|
userid=Felh. ID
|
||||||
|
networking_alone=Nincs más elérhető felhasználó. Jelenleg csak az offline funkciókat használhatod.
|
||||||
|
setstate_error=Hiba történt az állapot beállitása során.
|
||||||
|
isserver_msg=Szeretnéd, hogy a kliensed szerverként is funkcionáljon?\nEz azt jelenti, hogy a többi kliens hozzá fog csatlakozni, és ha router mögött van a gép, port forwarding-ot kell alkalmazni.
|
||||||
|
beforelogin_translatemainf=Szövegek lefordítása a fő ablakon...
|
||||||
|
beforelogin_loadtextformat=Hangulatjelek betöltése...
|
||||||
|
beforelogin_checkforupdates=Frissítések ellenőrzése...
|
||||||
|
beforelogin_loginform=Bejelentkezőablak megjelenítése...
|
||||||
currentlang=Magyar
|
currentlang=Magyar
|
||||||
|
|
|
@ -44,3 +44,29 @@ D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\obj\Debug\MSG
|
||||||
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\obj\Debug\MSGer.tk.csproj.GenerateResource.Cache
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\obj\Debug\MSGer.tk.csproj.GenerateResource.Cache
|
||||||
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\bin\Debug\RichListView.dll
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\bin\Debug\RichListView.dll
|
||||||
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\bin\Debug\RichListView.pdb
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk (C#)\bin\Debug\RichListView.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\MSGer.tk.exe.config
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.exe
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\MSGer.tk.exe
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\MSGer.tk.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\GlacialList.dll
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\Khendys.Controls.ExRichTextBox.dll
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\RichListView.dll
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\RichListView.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\GlacialList.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\bin\Debug\Khendys.Controls.ExRichTextBox.pdb
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.csprojResolveAssemblyReference.cache
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.AboutBox1.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.AddPartner.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.ChatForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.InvitePartner.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.LoginForm_RegistrationForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.MainForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.LoginForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.Notifier.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.Properties.Resources.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.SelectPartnerForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.SettingsForm.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.csproj.GenerateResource.Cache
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.PartnerInformation.resources
|
||||||
|
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGer.tk\obj\Debug\MSGer.tk.BeforeLogin.resources
|
||||||
|
|
104
Versions/Less Closed Beta/v3.0/Changelog.txt
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
v3.0 (System update) - 2014.08.01., 08.07-08., 08.16-19., 08.28-30., 09.01., 09.04-06., 09.08-09., 09.15., 09.19., 09.22., 09.26., 09.29., 10.02., 10.09., 10.12., 10.18., 10.23-24.
|
||||||
|
----
|
||||||
|
- Magasfokú optimalizáció
|
||||||
|
- Automatikus kijelentkeztetés, ha megszakad a kapcsolat (PHP) <-- Már nincs is rá szükség
|
||||||
|
- A képfeltöltés elkezdve
|
||||||
|
- Opció a hangulatjelek megjelenítésére
|
||||||
|
- Mostantól csak egyetlen példányt enged futni, kivéve ha a "multi" paraméter meg van adva
|
||||||
|
- Rendszer teljes átszervezése
|
||||||
|
-- Nincs központi szerver <-- Pontosabban a terhelése csökkentve
|
||||||
|
-- A rendszer nyelvét használja alapértelmezetten, nem a magyart
|
||||||
|
-- A tárolási rendszert talán egy-két nap alatt megoldottam (titkosítás, stb.) - De még nem használta mindenhol azt a rendszert
|
||||||
|
-- Az üzeneteket is mostantól ugyanaz a thread frissíti, mint a partnerlistát elsősorban az UDP működése miatt
|
||||||
|
-- Ha üzenetet írnak, most már automatikusan megjelenik az ablak
|
||||||
|
-- A profilképeket mindenképpen elküldi mindenkinek, nem lehet beállítani
|
||||||
|
-- Partnerinformáció (MainForm, AddPartner, stb.)
|
||||||
|
-- RichListView: Az elemek kiválaszthatóak, ha üres területre kattintasz, megszünteti a kiválasztást
|
||||||
|
-- Metódus a szövegek lefordítására, így jobban végezhető a hibakeresés (Language.GetCurrentLanguage().Strings átírva 145 helyen Language.Translate-re)
|
||||||
|
-- Mostantól az összes ismert információt tárolja, amit a felhasználókról kap
|
||||||
|
-- UserID használata ListID helyett ahol lehet
|
||||||
|
-- Ideiglenesen kitilt minden IP-t, ahonnan nem érkezett válasz
|
||||||
|
-- Most már kiírja azt is, ha nem elérhető egy ismerős (eddig a listában nem jelzett semmit akkor)
|
||||||
|
-- A rejtve kapcsolódásnál még ugyanaz a kliens is azt hiszi, hogy nem elérhető
|
||||||
|
-- BeforeLogin form hozzáadva, mostantól jelzi, hogy mit csinál bejelentkezés előtt, ha lassú lenne (leginkább a frissítésellenőrzés)
|
||||||
|
--- 1 mp-ig nem jelenik meg
|
||||||
|
-- A beérkező üzenetekkel csak akkor foglalkozik, ha van a beszélgetésben legalább egy ismerős (a küldő ismerős vagy legalább egy ismerősnek is küldte)
|
||||||
|
|
||||||
|
PHP:
|
||||||
|
- Jelszótitkosítás fejlesztve, ezért pedig új jelszó kérése, ezért pedig kötelező E-mailt megadni
|
||||||
|
|
||||||
|
Kisebb-nagyobb hibajavítások
|
||||||
|
- Hiba több, mint 2 ismerősnél javítva
|
||||||
|
- Az üzenetküldésnek valami komoly gondja van... - Amit megoldottam az átszervezéssel
|
||||||
|
- Nincs profilkép szöveg lefordítva
|
||||||
|
- Az ideigelenesen eltárolt partnerképekbe eddig a NoChange szöveget írta, javítva
|
||||||
|
- Mikor elkezdi a program betöltését, a contactList-be a "Betöltés..." szöveget írta - Javitva "Loading..."-ra
|
||||||
|
- Kétszer is elküldte az ismerős hozzáadása üzenetet a szervernek, javítva
|
||||||
|
- A keresősávban most már nem csak a magyar nyelvű "Ismerősök keresése..." szöveget veszi figyelembe
|
||||||
|
- "Hiba történt az állapot beállítása során." szöveg lefordítva
|
||||||
|
- Az ismerőslistában zárójelben lévő állapotjelzés lefordítva
|
||||||
|
- A tálcaikon most már nem marad ott, ha helyesen áll le a program
|
||||||
|
- TaskbarNotifier láthatóbbá téve
|
||||||
|
- RichListView: Mivel a RichTextBox nem reagál a MouseClick eseményre, a MouseUp eseményt használtam a listanézetemben (később lehet, hogy különválasztom, de egyelőre jó így)
|
||||||
|
- Notifier javítva
|
||||||
|
- Néhány NullReferenceException kezelés helyettesítve if not null ellenőrzésekkel
|
||||||
|
- Ha az aktuális nyelv változik, a program csak azután indít el egy újabb példányt, hogy elmentette a beállításokat
|
||||||
|
- Most már nem lehet átírni a felhasználónevet/jelszót bejelentkezés közben
|
||||||
|
- A Language osztály is hasonló a TextFormathoz: egy new Language(); paranccsal betölti az egészet
|
||||||
|
-- Mindkettőnél az egyes példányokat létrehozó konstruktorok priváttá téve
|
||||||
|
- PartnerListThreadActive változó törölve, LThread!=null ellenőrzések
|
||||||
|
- Most már eltűnteti a nyitott chatablakokat kijelentkezéskor
|
||||||
|
- SelectPartnerSender változó törölve - Paraméterként adtam meg
|
||||||
|
- Most már nem ugrik mindig egy görgetősáv jobb szélére az ismerőslista átméretezés után
|
||||||
|
-- A görgetősáv néha megjelenik kikapcsolva, ha kisebbre állítjuk a program méretét
|
||||||
|
- RichListView: Most már nem frissül állandóan az előző elemek listája (ami az elemek helyes törléséhez kell), csak ha ténylegesen változik
|
||||||
|
- Most már csak akkor jelenik meg az ikon a tálcán, ha bejelentkezett, így nem marad ott, ha a bejelentkezőablak bezárul bejelentkezés nélkül
|
||||||
|
- Most már akkor is elmenti a legutóbb használt E-mail pozicióját, ha eddig nem volt eltárolva
|
||||||
|
- Most már az összes hangulatjelet felismeri az adott szövegben, és nem dolgozik feleslegesen
|
||||||
|
|
||||||
|
Protokoll (sokszor én is összekevertem, ezért is írom ide):
|
||||||
|
!response (kérelem/válasz) - 1 byte
|
||||||
|
!UpdateType (frissítés típusa) - 1 byte
|
||||||
|
keyversion
|
||||||
|
UserID (felh. azonosító) - 4 byte
|
||||||
|
data (adatok) - változó
|
||||||
|
|
||||||
|
A felkiáltójeleseket nem adja tovább a ReceiveUpdates funkció - Vagy mégis most már
|
||||||
|
|
||||||
|
v4.0 (Design update) Tervek:
|
||||||
|
----
|
||||||
|
- TransparencyKey használata a kerekített sarkokhoz; külön megjelenítési mód, ha teljes képernyős, és ha nem
|
||||||
|
- Fájlküldést megoldani
|
||||||
|
- Képfeltöltés
|
||||||
|
- Átdizájnolás (témarendszer; #00FF00 átlátszó (akár legyen állítható))
|
||||||
|
-- A több emberes beszélgetéseket megoldani
|
||||||
|
-- Valahogy trükkösen csinálni dizájnert a paneleknek (pl. új UserControl, átírva panelre, vagy ilyesmi)
|
||||||
|
- TaskbarNotifier
|
||||||
|
- ItemWordWrap csak nagy listanézetben
|
||||||
|
- Aero bevonása - http://www.codeproject.com/Articles/17681/Windows-Vista-Aero-Glass-in-NET-Managed-Win-Appl
|
||||||
|
-- (TransparencyKey: black - Átméretezés után nem lehet a címsorra sem kattintani)
|
||||||
|
- Mono változat (épp az Aero-s kinézet miatt kellene külön dizájn a Mono változathoz
|
||||||
|
- FormClosed eseménynél CloseReason-t kezelni
|
||||||
|
- Kód dokumentálása (valamennyire)
|
||||||
|
- Kézírás bevonása
|
||||||
|
|
||||||
|
v5.0 (Packer update) Tervek:
|
||||||
|
----
|
||||||
|
- Hangulatjelcsomagok - Csomagrendszer (hangulatjelek, hangok, kinézetek, stb.)
|
||||||
|
-- Age of Mythology hangpakk
|
||||||
|
- Ha nincs engedélye(tűzfal) vagy HTTP proxy mögött áll a felhasználó: HTTP (HttpListener, HttpWebRequest, HttpWebResponse)
|
||||||
|
- Hangulatjelek animálása
|
||||||
|
- Pluginrendszer - http://www.c-sharpcorner.com/UploadFile/samhaidar/LateBindingWithReflection09122005053810AM/LateBindingWithReflection.aspx
|
||||||
|
- Az IP címeket talán hozzárendelni a UserID-khoz, és leellenőrizni, hogy jó UserID-t küld-e
|
||||||
|
- Jelszókezelés frissítése: "Jelszógeneráló program"-om által készített jelszavak elfogadása
|
||||||
|
- Titkosítás fejlesztése (LoginUser frissítése és SetKey)
|
||||||
|
-- http://en.wikipedia.org/wiki/Man-in-the-middle_attack
|
||||||
|
- A hálózati részt befejezni, javítani (pl. chat)
|
||||||
|
-- Üzenetküldés akkor is, ha nincs más online
|
||||||
|
-- "Szóval ezt mondták rólam"-rendszer
|
||||||
|
- Egy felhasználó csak egyszer jelentkezhessen be (egy gépre, vagy akár az egész rendszerben is)
|
||||||
|
- Beállítások gyarapítása
|
||||||
|
|
||||||
|
v6.0 Tervek:
|
||||||
|
----
|
||||||
|
- Steam integráció(?) https://github.com/Overv/SteamWebAPI - Igen valószínűtlen
|
190
Versions/Less Closed Beta/v3.0/MSGer.tk/AboutBox1.Designer.cs
generated
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class AboutBox1
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1));
|
||||||
|
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.logoPictureBox = new System.Windows.Forms.PictureBox();
|
||||||
|
this.labelProductName = new System.Windows.Forms.Label();
|
||||||
|
this.labelVersion = new System.Windows.Forms.Label();
|
||||||
|
this.labelCopyright = new System.Windows.Forms.Label();
|
||||||
|
this.labelLicenseLink = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.textBoxDescription = new System.Windows.Forms.TextBox();
|
||||||
|
this.okButton = new System.Windows.Forms.Button();
|
||||||
|
this.tableLayoutPanel.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// tableLayoutPanel
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
|
||||||
|
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.labelLicenseLink, 1, 3);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
|
||||||
|
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
|
||||||
|
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel.Location = new System.Drawing.Point(9, 9);
|
||||||
|
this.tableLayoutPanel.Name = "tableLayoutPanel";
|
||||||
|
this.tableLayoutPanel.RowCount = 6;
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
|
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||||
|
this.tableLayoutPanel.Size = new System.Drawing.Size(417, 265);
|
||||||
|
this.tableLayoutPanel.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// logoPictureBox
|
||||||
|
//
|
||||||
|
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
|
||||||
|
this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.logoPictureBox.Name = "logoPictureBox";
|
||||||
|
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
|
||||||
|
this.logoPictureBox.Size = new System.Drawing.Size(131, 259);
|
||||||
|
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
|
this.logoPictureBox.TabIndex = 12;
|
||||||
|
this.logoPictureBox.TabStop = false;
|
||||||
|
//
|
||||||
|
// labelProductName
|
||||||
|
//
|
||||||
|
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.labelProductName.Location = new System.Drawing.Point(143, 0);
|
||||||
|
this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||||
|
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 17);
|
||||||
|
this.labelProductName.Name = "labelProductName";
|
||||||
|
this.labelProductName.Size = new System.Drawing.Size(271, 17);
|
||||||
|
this.labelProductName.TabIndex = 19;
|
||||||
|
this.labelProductName.Text = "Product Name";
|
||||||
|
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// labelVersion
|
||||||
|
//
|
||||||
|
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.labelVersion.Location = new System.Drawing.Point(143, 26);
|
||||||
|
this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||||
|
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 17);
|
||||||
|
this.labelVersion.Name = "labelVersion";
|
||||||
|
this.labelVersion.Size = new System.Drawing.Size(271, 17);
|
||||||
|
this.labelVersion.TabIndex = 0;
|
||||||
|
this.labelVersion.Text = "Version";
|
||||||
|
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// labelCopyright
|
||||||
|
//
|
||||||
|
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.labelCopyright.Location = new System.Drawing.Point(143, 52);
|
||||||
|
this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||||
|
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 17);
|
||||||
|
this.labelCopyright.Name = "labelCopyright";
|
||||||
|
this.labelCopyright.Size = new System.Drawing.Size(271, 17);
|
||||||
|
this.labelCopyright.TabIndex = 21;
|
||||||
|
this.labelCopyright.Text = "Copyright";
|
||||||
|
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// labelLicenseLink
|
||||||
|
//
|
||||||
|
this.labelLicenseLink.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.labelLicenseLink.LinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.labelLicenseLink.Location = new System.Drawing.Point(143, 78);
|
||||||
|
this.labelLicenseLink.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||||
|
this.labelLicenseLink.MaximumSize = new System.Drawing.Size(0, 17);
|
||||||
|
this.labelLicenseLink.Name = "labelLicenseLink";
|
||||||
|
this.labelLicenseLink.Size = new System.Drawing.Size(271, 17);
|
||||||
|
this.labelLicenseLink.TabIndex = 22;
|
||||||
|
this.labelLicenseLink.TabStop = true;
|
||||||
|
this.labelLicenseLink.Text = "License Link";
|
||||||
|
this.labelLicenseLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
this.labelLicenseLink.VisitedLinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.labelLicenseLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.labelLicenseLink_LinkClicked);
|
||||||
|
//
|
||||||
|
// textBoxDescription
|
||||||
|
//
|
||||||
|
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.textBoxDescription.Location = new System.Drawing.Point(143, 107);
|
||||||
|
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
|
||||||
|
this.textBoxDescription.Multiline = true;
|
||||||
|
this.textBoxDescription.Name = "textBoxDescription";
|
||||||
|
this.textBoxDescription.ReadOnly = true;
|
||||||
|
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||||
|
this.textBoxDescription.Size = new System.Drawing.Size(271, 126);
|
||||||
|
this.textBoxDescription.TabIndex = 23;
|
||||||
|
this.textBoxDescription.TabStop = false;
|
||||||
|
this.textBoxDescription.Text = "Description";
|
||||||
|
//
|
||||||
|
// okButton
|
||||||
|
//
|
||||||
|
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.okButton.Location = new System.Drawing.Point(339, 239);
|
||||||
|
this.okButton.Name = "okButton";
|
||||||
|
this.okButton.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.okButton.TabIndex = 24;
|
||||||
|
this.okButton.Text = "&OK";
|
||||||
|
//
|
||||||
|
// AboutBox1
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.okButton;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(435, 283);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "AboutBox1";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(9);
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "AboutBox1";
|
||||||
|
this.tableLayoutPanel.ResumeLayout(false);
|
||||||
|
this.tableLayoutPanel.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
|
||||||
|
private System.Windows.Forms.PictureBox logoPictureBox;
|
||||||
|
private System.Windows.Forms.Label labelProductName;
|
||||||
|
private System.Windows.Forms.Label labelVersion;
|
||||||
|
private System.Windows.Forms.Label labelCopyright;
|
||||||
|
private System.Windows.Forms.TextBox textBoxDescription;
|
||||||
|
private System.Windows.Forms.Button okButton;
|
||||||
|
private System.Windows.Forms.LinkLabel labelLicenseLink;
|
||||||
|
}
|
||||||
|
}
|
130
Versions/Less Closed Beta/v3.0/MSGer.tk/AboutBox1.cs
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class AboutBox1 : Form
|
||||||
|
{
|
||||||
|
public AboutBox1()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.Text = String.Format(Language.Translate("about"), AssemblyTitle);
|
||||||
|
this.labelProductName.Text = AssemblyProduct;
|
||||||
|
this.labelVersion.Text = String.Format(Language.Translate("about_version"), AssemblyVersion);
|
||||||
|
this.labelCopyright.Text = AssemblyCopyright;
|
||||||
|
|
||||||
|
labelLicenseLink.Text = "https://www.gnu.org/copyleft/gpl.html"; //2014.04.18. - Frissitve: 2014.04.25.
|
||||||
|
List<string> desc = new List<string>(); //2014.04.18.
|
||||||
|
desc.Add(Language.Translate("about_programmer")); //2014.04.18.
|
||||||
|
desc.Add("SzNP");
|
||||||
|
desc.Add("http://sznp.tk");
|
||||||
|
desc.Add("");
|
||||||
|
desc.Add(Language.Translate("about_specialthanks"));
|
||||||
|
desc.Add("Jonathan Kay");
|
||||||
|
desc.Add("http://messengergeek.com");
|
||||||
|
desc.Add(Language.Translate("about_specthanks1"));
|
||||||
|
desc.Add("");
|
||||||
|
desc.Add(Language.Translate("about_specthanks2"));
|
||||||
|
desc.Add("");
|
||||||
|
desc.Add("Allen Anderson");
|
||||||
|
desc.Add("http://www.codeproject.com/Articles/4012/C-List-View-v");
|
||||||
|
desc.Add(Language.Translate("about_specthanks3"));
|
||||||
|
desc.Add("");
|
||||||
|
desc.Add("Khendys Gordon");
|
||||||
|
desc.Add("http://www.codeproject.com/Articles/4544/Insert-Plain-Text-and-Images-into-RichTextBox-at-R");
|
||||||
|
desc.Add(Language.Translate("about_specthanks4"));
|
||||||
|
textBoxDescription.Lines = desc.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Assembly Attribute Accessors
|
||||||
|
|
||||||
|
public string AssemblyTitle
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
|
||||||
|
if (attributes.Length > 0)
|
||||||
|
{
|
||||||
|
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
|
||||||
|
if (titleAttribute.Title != "")
|
||||||
|
{
|
||||||
|
return titleAttribute.Title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AssemblyVersion
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AssemblyDescription
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
|
||||||
|
if (attributes.Length == 0)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AssemblyProduct
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
|
||||||
|
if (attributes.Length == 0)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return ((AssemblyProductAttribute)attributes[0]).Product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AssemblyCopyright
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||||
|
if (attributes.Length == 0)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AssemblyCompany
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
|
||||||
|
if (attributes.Length == 0)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return ((AssemblyCompanyAttribute)attributes[0]).Company;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private void labelLicenseLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Process.Start(labelLicenseLink.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
604
Versions/Less Closed Beta/v3.0/MSGer.tk/AboutBox1.resx
Normal file
|
@ -0,0 +1,604 @@
|
||||||
|
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
AAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
175
Versions/Less Closed Beta/v3.0/MSGer.tk/AddPartner.Designer.cs
generated
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class AddPartner
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
GlacialComponents.Controls.GLColumn glColumn2 = new GlacialComponents.Controls.GLColumn();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.nameText = new System.Windows.Forms.TextBox();
|
||||||
|
this.searchbtn = new System.Windows.Forms.Button();
|
||||||
|
this.glacialList1 = new GlacialComponents.Controls.GlacialList();
|
||||||
|
this.gobtn = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(13, 13);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(174, 25);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Ismerős felvétele";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label2.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.label2.Location = new System.Drawing.Point(18, 86);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(174, 16);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Név/E-mail/Felhasználónév";
|
||||||
|
//
|
||||||
|
// nameText
|
||||||
|
//
|
||||||
|
this.nameText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.nameText.Location = new System.Drawing.Point(18, 106);
|
||||||
|
this.nameText.Name = "nameText";
|
||||||
|
this.nameText.Size = new System.Drawing.Size(270, 20);
|
||||||
|
this.nameText.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// searchbtn
|
||||||
|
//
|
||||||
|
this.searchbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.searchbtn.Location = new System.Drawing.Point(297, 104);
|
||||||
|
this.searchbtn.Name = "searchbtn";
|
||||||
|
this.searchbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.searchbtn.TabIndex = 3;
|
||||||
|
this.searchbtn.Text = "Keresés";
|
||||||
|
this.searchbtn.UseVisualStyleBackColor = true;
|
||||||
|
this.searchbtn.Click += new System.EventHandler(this.searchbtn_Click);
|
||||||
|
//
|
||||||
|
// glacialList1
|
||||||
|
//
|
||||||
|
this.glacialList1.AllowColumnResize = true;
|
||||||
|
this.glacialList1.AllowMultiselect = false;
|
||||||
|
this.glacialList1.AlternateBackground = System.Drawing.Color.DarkGreen;
|
||||||
|
this.glacialList1.AlternatingColors = false;
|
||||||
|
this.glacialList1.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.glacialList1.AutoHeight = true;
|
||||||
|
this.glacialList1.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
|
this.glacialList1.BackgroundStretchToFit = true;
|
||||||
|
glColumn2.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None;
|
||||||
|
glColumn2.CheckBoxes = false;
|
||||||
|
glColumn2.ImageIndex = -1;
|
||||||
|
glColumn2.Name = "UserName";
|
||||||
|
glColumn2.NumericSort = false;
|
||||||
|
glColumn2.Text = "Felhasználónév";
|
||||||
|
glColumn2.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
glColumn2.Width = 200;
|
||||||
|
this.glacialList1.Columns.AddRange(new GlacialComponents.Controls.GLColumn[] {
|
||||||
|
glColumn2});
|
||||||
|
this.glacialList1.ControlStyle = GlacialComponents.Controls.GLControlStyles.Normal;
|
||||||
|
this.glacialList1.FullRowSelect = true;
|
||||||
|
this.glacialList1.GridColor = System.Drawing.Color.LightGray;
|
||||||
|
this.glacialList1.GridLines = GlacialComponents.Controls.GLGridLines.gridBoth;
|
||||||
|
this.glacialList1.GridLineStyle = GlacialComponents.Controls.GLGridLineStyles.gridSolid;
|
||||||
|
this.glacialList1.GridTypes = GlacialComponents.Controls.GLGridTypes.gridOnExists;
|
||||||
|
this.glacialList1.HeaderHeight = 22;
|
||||||
|
this.glacialList1.HeaderVisible = true;
|
||||||
|
this.glacialList1.HeaderWordWrap = false;
|
||||||
|
this.glacialList1.HotColumnTracking = false;
|
||||||
|
this.glacialList1.HotItemTracking = true;
|
||||||
|
this.glacialList1.HotTrackingColor = System.Drawing.Color.LightGray;
|
||||||
|
this.glacialList1.HoverEvents = false;
|
||||||
|
this.glacialList1.HoverTime = 1;
|
||||||
|
this.glacialList1.ImageList = null;
|
||||||
|
this.glacialList1.ItemHeight = 17;
|
||||||
|
this.glacialList1.ItemWordWrap = false;
|
||||||
|
this.glacialList1.Location = new System.Drawing.Point(18, 152);
|
||||||
|
this.glacialList1.Name = "glacialList1";
|
||||||
|
this.glacialList1.Selectable = true;
|
||||||
|
this.glacialList1.SelectedTextColor = System.Drawing.Color.White;
|
||||||
|
this.glacialList1.SelectionColor = System.Drawing.Color.DarkBlue;
|
||||||
|
this.glacialList1.ShowBorder = true;
|
||||||
|
this.glacialList1.ShowFocusRect = false;
|
||||||
|
this.glacialList1.Size = new System.Drawing.Size(354, 272);
|
||||||
|
this.glacialList1.SortType = GlacialComponents.Controls.SortTypes.InsertionSort;
|
||||||
|
this.glacialList1.SuperFlatHeaderColor = System.Drawing.Color.White;
|
||||||
|
this.glacialList1.TabIndex = 4;
|
||||||
|
this.glacialList1.Text = "glacialList1";
|
||||||
|
this.glacialList1.Click += new System.EventHandler(this.glacialList1_Click);
|
||||||
|
//
|
||||||
|
// gobtn
|
||||||
|
//
|
||||||
|
this.gobtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.gobtn.Location = new System.Drawing.Point(297, 427);
|
||||||
|
this.gobtn.Name = "gobtn";
|
||||||
|
this.gobtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.gobtn.TabIndex = 5;
|
||||||
|
this.gobtn.Text = "Felvétel";
|
||||||
|
this.gobtn.UseVisualStyleBackColor = true;
|
||||||
|
this.gobtn.Click += new System.EventHandler(this.gobtn_Click);
|
||||||
|
//
|
||||||
|
// AddPartner
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.searchbtn;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.LightSkyBlue;
|
||||||
|
this.ClientSize = new System.Drawing.Size(384, 462);
|
||||||
|
this.Controls.Add(this.gobtn);
|
||||||
|
this.Controls.Add(this.glacialList1);
|
||||||
|
this.Controls.Add(this.searchbtn);
|
||||||
|
this.Controls.Add(this.nameText);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "AddPartner";
|
||||||
|
this.Text = "Ismerős felvétele";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.TextBox nameText;
|
||||||
|
private System.Windows.Forms.Button searchbtn;
|
||||||
|
private GlacialComponents.Controls.GlacialList glacialList1;
|
||||||
|
private System.Windows.Forms.Button gobtn;
|
||||||
|
}
|
||||||
|
}
|
115
Versions/Less Closed Beta/v3.0/MSGer.tk/AddPartner.cs
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
using GlacialComponents.Controls;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class AddPartner : Form
|
||||||
|
{
|
||||||
|
public AddPartner()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.Text = Language.Translate("addcontact");
|
||||||
|
label1.Text = Language.Translate("addcontact");
|
||||||
|
label2.Text = Language.Translate("addcontact_nameemail");
|
||||||
|
searchbtn.Text = Language.Translate("addcontact_search");
|
||||||
|
glacialList1.Columns[0].Text = Language.Translate("reg_username");
|
||||||
|
gobtn.Text = Language.Translate("addcontact_add");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*string[] username;
|
||||||
|
int[] uid;
|
||||||
|
string[] message;
|
||||||
|
int[] online;
|
||||||
|
string[] shownname;
|
||||||
|
string[] email;*/
|
||||||
|
List<UserInfo> FoundUsers = new List<UserInfo>();
|
||||||
|
|
||||||
|
private void searchbtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
glacialList1.Items.Clear();
|
||||||
|
//string[] people = Networking.SendRequest("findpeople", nameText.Text, 0, true).Split('ͦ'); //2014.04.18. 0:07 - Még nem készítettem el
|
||||||
|
/*byte[][] tmpret = Networking.SendUpdate(Networking.UpdateType.FindPeople, Encoding.Unicode.GetBytes(nameText.Text), false);
|
||||||
|
if (tmpret == null)
|
||||||
|
{
|
||||||
|
glacialList1.Items.Add(Language.Translate("networking_alone"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < tmpret.Length; i++)
|
||||||
|
{
|
||||||
|
byte[] tmpb = tmpret[i];
|
||||||
|
string tmpstr = Encoding.Unicode.GetString(tmpb, 1, tmpb.Length - 1); //0. byte==UserID
|
||||||
|
string[] people = tmpstr.Split('ͦ');
|
||||||
|
for (int x = 0, y = 0; x + 5 < people.Length; x += 6, y++)
|
||||||
|
{*/
|
||||||
|
/*username = new string[people.Length / 6];
|
||||||
|
uid = new int[people.Length / 6];
|
||||||
|
message = new string[people.Length / 6];
|
||||||
|
online = new int[people.Length / 6];
|
||||||
|
shownname = new string[people.Length / 6];
|
||||||
|
email = new string[people.Length / 6];*/
|
||||||
|
|
||||||
|
//username[y] = people[x];
|
||||||
|
/*var tmp = new UserInfo();
|
||||||
|
tmp.UserName = people[x];
|
||||||
|
tmp.UserID = Int32.Parse(people[x + 1]);
|
||||||
|
tmp.Message = people[x + 2];
|
||||||
|
tmp.State = Int32.Parse(people[x + 3]);
|
||||||
|
tmp.Name = people[x + 4];
|
||||||
|
tmp.Email = people[x + 5];
|
||||||
|
|
||||||
|
if (!FoundUsers.Contains(tmp)) //2014.08.19.
|
||||||
|
{
|
||||||
|
|
||||||
|
//glacialList1.Items.Add(username[y]);
|
||||||
|
glacialList1.Items.Add(tmp.UserName);
|
||||||
|
|
||||||
|
FoundUsers.Add(tmp); //2014.08.16.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//2014.09.09. - Miután először az egészet megcsináltam, néhány nappal később az egészet elölről kezdem
|
||||||
|
foreach (var tmp in UserInfo.KnownUsers)
|
||||||
|
{
|
||||||
|
if ((tmp.UserName.Contains(nameText.Text) || tmp.Name.Contains(nameText.Text) || tmp.UserID.ToString() == nameText.Text) && !FoundUsers.Contains(tmp))
|
||||||
|
{
|
||||||
|
glacialList1.Items.Add(tmp.UserName);
|
||||||
|
|
||||||
|
FoundUsers.Add(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void glacialList1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int item = glacialList1.HotItemIndex;
|
||||||
|
if (item >= glacialList1.Items.Count)
|
||||||
|
return;
|
||||||
|
//2014.04.18. - Partnerinformáció mutatása
|
||||||
|
//2014.08.16. - Megvalósítás
|
||||||
|
//(new PartnerInformation(FoundUsers[item].Name, FoundUsers[item].State, FoundUsers[item].Message, FoundUsers[item].UserName, FoundUsers[item].UserID, FoundUsers[item].Email)).ShowDialog(); //2014.08.16.
|
||||||
|
if (FoundUsers.Count < item)
|
||||||
|
(new PartnerInformation(FoundUsers[item])).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gobtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (glacialList1.SelectedItems.Count == 0 || FoundUsers.Count == 0)
|
||||||
|
return;
|
||||||
|
string username = ((GLItem)glacialList1.SelectedItems[0]).Text;
|
||||||
|
string response = Networking.SendRequest("adduser", username, 0, true);
|
||||||
|
//if (Networking.SendRequest("adduser", username, 0, true) == "Success")
|
||||||
|
if (response == "Success")
|
||||||
|
MessageBox.Show("Felhasználó felvéve az ismerőseid közé.");
|
||||||
|
else
|
||||||
|
MessageBox.Show("Nem sikerült felvenni a felhasználót az ismerőseid közé.\nLehet, hogy már felvetted, vagy valami hiba történt.\n(" + response + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/AddPartner.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
33
Versions/Less Closed Beta/v3.0/MSGer.tk/App.config
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="MSGer.tk.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
|
||||||
|
</startup>
|
||||||
|
<userSettings>
|
||||||
|
<MSGer.tk.Settings>
|
||||||
|
<setting name="email" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="picupdatetime" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="windowstate" serializeAs="String">
|
||||||
|
<value>3</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="lang" serializeAs="String">
|
||||||
|
<value>hu</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="port" serializeAs="String">
|
||||||
|
<value>4510</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="lastusedemail" serializeAs="String">
|
||||||
|
<value>0</value>
|
||||||
|
</setting>
|
||||||
|
</MSGer.tk.Settings>
|
||||||
|
</userSettings>
|
||||||
|
</configuration>
|
68
Versions/Less Closed Beta/v3.0/MSGer.tk/BeforeLogin.Designer.cs
generated
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class BeforeLogin
|
||||||
|
{
|
||||||
|
/// <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.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(0, 24);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// BeforeLogin
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(362, 53);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "BeforeLogin";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "BeforeLogin";
|
||||||
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.BeforeLogin_FormClosed);
|
||||||
|
this.TextChanged += new System.EventHandler(this.BeforeLogin_TextChanged);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
}
|
||||||
|
}
|
75
Versions/Less Closed Beta/v3.0/MSGer.tk/BeforeLogin.cs
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class BeforeLogin : Form
|
||||||
|
{
|
||||||
|
private static BeforeLogin mInstance;
|
||||||
|
private static bool done = false;
|
||||||
|
private static string ttext { get; set; }
|
||||||
|
public static void Create()
|
||||||
|
{
|
||||||
|
var t = new System.Threading.Thread(() =>
|
||||||
|
{
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
if (done)
|
||||||
|
return;
|
||||||
|
mInstance = new BeforeLogin();
|
||||||
|
mInstance.FormClosed += (s, e) => mInstance = null;
|
||||||
|
Application.Run(mInstance);
|
||||||
|
});
|
||||||
|
t.SetApartmentState(System.Threading.ApartmentState.STA);
|
||||||
|
t.IsBackground = true;
|
||||||
|
t.Start();
|
||||||
|
/*var ti = new Timer();
|
||||||
|
ti.Interval = 1000;
|
||||||
|
ti.Tick += ti_Tick;
|
||||||
|
ti.Start();*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/*static void ti_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
((Timer)sender).Stop();
|
||||||
|
if (mInstance != null)
|
||||||
|
mInstance.Show();
|
||||||
|
}*/
|
||||||
|
public static void Destroy()
|
||||||
|
{
|
||||||
|
done = true;
|
||||||
|
if (mInstance != null) mInstance.Invoke(new Action(() => mInstance.Close()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetText(string text)
|
||||||
|
{
|
||||||
|
if (mInstance != null) mInstance.Invoke((MethodInvoker)delegate { mInstance.Text = text; });
|
||||||
|
ttext = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BeforeLogin()
|
||||||
|
{ //2014.09.06.
|
||||||
|
InitializeComponent();
|
||||||
|
Text = ttext;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BeforeLogin_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
label1.Text = this.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BeforeLogin_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
//if (e.CloseReason == CloseReason.UserClosing)
|
||||||
|
if (!done)
|
||||||
|
Program.Exit(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/BeforeLogin.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
198
Versions/Less Closed Beta/v3.0/MSGer.tk/ChatForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class ChatForm
|
||||||
|
{
|
||||||
|
/// <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.messageTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.recentMsgTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.statusLabel = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.partnerMsg = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.partnerName = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||||
|
this.showicons = new System.Windows.Forms.CheckBox();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// messageTextBox
|
||||||
|
//
|
||||||
|
this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.messageTextBox.BackColor = System.Drawing.Color.White;
|
||||||
|
this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.messageTextBox.DetectUrls = false;
|
||||||
|
this.messageTextBox.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.messageTextBox.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.messageTextBox.Location = new System.Drawing.Point(147, 310);
|
||||||
|
this.messageTextBox.Name = "messageTextBox";
|
||||||
|
this.messageTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||||
|
this.messageTextBox.Size = new System.Drawing.Size(418, 75);
|
||||||
|
this.messageTextBox.TabIndex = 0;
|
||||||
|
this.messageTextBox.Text = "";
|
||||||
|
this.messageTextBox.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
this.messageTextBox.TextChanged += new System.EventHandler(this.MessageTextChanged);
|
||||||
|
this.messageTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SendMessage);
|
||||||
|
//
|
||||||
|
// recentMsgTextBox
|
||||||
|
//
|
||||||
|
this.recentMsgTextBox.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.recentMsgTextBox.BackColor = System.Drawing.Color.White;
|
||||||
|
this.recentMsgTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.recentMsgTextBox.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.recentMsgTextBox.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.recentMsgTextBox.Location = new System.Drawing.Point(147, 76);
|
||||||
|
this.recentMsgTextBox.Name = "recentMsgTextBox";
|
||||||
|
this.recentMsgTextBox.ReadOnly = true;
|
||||||
|
this.recentMsgTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||||
|
this.recentMsgTextBox.Size = new System.Drawing.Size(418, 228);
|
||||||
|
this.recentMsgTextBox.TabIndex = 1;
|
||||||
|
this.recentMsgTextBox.Text = "";
|
||||||
|
this.recentMsgTextBox.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
this.recentMsgTextBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.OpenLink);
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(141, 422);
|
||||||
|
this.panel1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.statusLabel);
|
||||||
|
this.panel2.Controls.Add(this.partnerMsg);
|
||||||
|
this.panel2.Controls.Add(this.partnerName);
|
||||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel2.Location = new System.Drawing.Point(141, 0);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(423, 70);
|
||||||
|
this.panel2.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// statusLabel
|
||||||
|
//
|
||||||
|
this.statusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.statusLabel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.statusLabel.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.statusLabel.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.statusLabel.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.statusLabel.Location = new System.Drawing.Point(9, 52);
|
||||||
|
this.statusLabel.Multiline = false;
|
||||||
|
this.statusLabel.Name = "statusLabel";
|
||||||
|
this.statusLabel.Size = new System.Drawing.Size(390, 16);
|
||||||
|
this.statusLabel.TabIndex = 5;
|
||||||
|
this.statusLabel.Text = "statusLabel";
|
||||||
|
this.statusLabel.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
//
|
||||||
|
// partnerMsg
|
||||||
|
//
|
||||||
|
this.partnerMsg.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.partnerMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.partnerMsg.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.partnerMsg.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.partnerMsg.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.partnerMsg.Location = new System.Drawing.Point(9, 30);
|
||||||
|
this.partnerMsg.Multiline = false;
|
||||||
|
this.partnerMsg.Name = "partnerMsg";
|
||||||
|
this.partnerMsg.Size = new System.Drawing.Size(390, 24);
|
||||||
|
this.partnerMsg.TabIndex = 4;
|
||||||
|
this.partnerMsg.Text = "partnerMsg";
|
||||||
|
this.partnerMsg.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
//
|
||||||
|
// partnerName
|
||||||
|
//
|
||||||
|
this.partnerName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.partnerName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.partnerName.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.partnerName.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.partnerName.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.partnerName.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.partnerName.Location = new System.Drawing.Point(9, 7);
|
||||||
|
this.partnerName.Multiline = false;
|
||||||
|
this.partnerName.Name = "partnerName";
|
||||||
|
this.partnerName.ReadOnly = true;
|
||||||
|
this.partnerName.Size = new System.Drawing.Size(399, 25);
|
||||||
|
this.partnerName.TabIndex = 3;
|
||||||
|
this.partnerName.Text = "partnerName";
|
||||||
|
this.partnerName.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
//
|
||||||
|
// openFileDialog1
|
||||||
|
//
|
||||||
|
this.openFileDialog1.FileName = "openFileDialog1";
|
||||||
|
//
|
||||||
|
// showicons
|
||||||
|
//
|
||||||
|
this.showicons.AutoSize = true;
|
||||||
|
this.showicons.Location = new System.Drawing.Point(150, 392);
|
||||||
|
this.showicons.Name = "showicons";
|
||||||
|
this.showicons.Size = new System.Drawing.Size(76, 17);
|
||||||
|
this.showicons.TabIndex = 5;
|
||||||
|
this.showicons.Text = "showicons";
|
||||||
|
this.showicons.UseVisualStyleBackColor = true;
|
||||||
|
this.showicons.CheckedChanged += new System.EventHandler(this.showicons_CheckedChanged);
|
||||||
|
//
|
||||||
|
// ChatForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.ClientSize = new System.Drawing.Size(564, 422);
|
||||||
|
this.Controls.Add(this.showicons);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.recentMsgTextBox);
|
||||||
|
this.Controls.Add(this.messageTextBox);
|
||||||
|
this.Name = "ChatForm";
|
||||||
|
this.Text = "Beszélgetés";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ChatForm_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.ChatForm_Load);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Khendys.Controls.ExRichTextBox messageTextBox;
|
||||||
|
private Khendys.Controls.ExRichTextBox recentMsgTextBox;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
public Khendys.Controls.ExRichTextBox partnerName;
|
||||||
|
public Khendys.Controls.ExRichTextBox partnerMsg;
|
||||||
|
public Khendys.Controls.ExRichTextBox statusLabel;
|
||||||
|
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||||
|
private System.Windows.Forms.CheckBox showicons;
|
||||||
|
}
|
||||||
|
}
|
258
Versions/Less Closed Beta/v3.0/MSGer.tk/ChatForm.cs
Normal file
|
@ -0,0 +1,258 @@
|
||||||
|
//Hangulatjelek használata
|
||||||
|
//#define emoticons
|
||||||
|
|
||||||
|
using Khendys.Controls;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using HdSystemLibrary.IO;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class ChatForm : Form
|
||||||
|
{
|
||||||
|
public static List<ChatForm> ChatWindows = new List<ChatForm>();
|
||||||
|
public List<int> ChatPartners = new List<int>();
|
||||||
|
//public List<string> PendingMessages = new List<string>();
|
||||||
|
//public Thread UpdateT;
|
||||||
|
public ChatForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
//Amint létrehozom, ez a kód lefut - Nem számit, hogy megjelenik-e
|
||||||
|
|
||||||
|
this.Text = Language.Translate("chat_title");
|
||||||
|
showicons.Text = Language.Translate("chat_showicons");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ChatForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (ChatPartners.Count == 0)
|
||||||
|
MessageBox.Show(Language.Translate("error") + ": " + Language.Translate("chat_nowindow"));
|
||||||
|
if (ChatPartners.Count == 1)
|
||||||
|
{
|
||||||
|
partnerName.Text = UserInfo.Select(ChatPartners[0]).Name;
|
||||||
|
TextFormat.Parse(partnerName);
|
||||||
|
partnerMsg.Text = UserInfo.Select(ChatPartners[0]).Message;
|
||||||
|
TextFormat.Parse(partnerMsg);
|
||||||
|
switch (UserInfo.Select(ChatPartners[0]).State)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("offline");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_online");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_busy");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_away");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
statusLabel.Text = Language.Translate("networking_alone");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//UpdateT = new Thread(new ThreadStart(UpdateMessages));
|
||||||
|
//UpdateT.Name = "Message Update Thread (" + partnerName.Text + ")";
|
||||||
|
//UpdateT.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool InternalMessageChange = false;
|
||||||
|
public int SelectionStart = 0;
|
||||||
|
public int SelectionLength = 0;
|
||||||
|
public int TextLength = 0;
|
||||||
|
private void SendMessage(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
//SendMessage
|
||||||
|
if (e.KeyCode != Keys.Enter || e.Shift || messageTextBox.Text.Length == 0)
|
||||||
|
return;
|
||||||
|
messageTextBox.ReadOnly = true;
|
||||||
|
/*
|
||||||
|
* 2014.03.08. 0:03
|
||||||
|
* A fenti kódra válaszul a másik felhasználó esetleges új válaszát is irja be; tehát frissitse az üzeneteket
|
||||||
|
* Az üzenetellenőrző thread folyamatosan fusson, amint végrehajtotta a parancsokat, kezdje újra (nincs Thread.Sleep)
|
||||||
|
*
|
||||||
|
* 2014.03.19.
|
||||||
|
* Csinálja úgy, mint a képeknél, hogy a legutóbbi üzenetlekérés dátumához igazodjon, és csak a legújabb üzeneteket
|
||||||
|
* töltse le
|
||||||
|
*/
|
||||||
|
//PendingMessages.Add(messageTextBox.Text);
|
||||||
|
if (!Networking.SendChatMessage(this, messageTextBox.Text))
|
||||||
|
MessageBox.Show(Language.Translate("networking_alone"));
|
||||||
|
messageTextBox.Focus();
|
||||||
|
messageTextBox.Text = "";
|
||||||
|
messageTextBox.ReadOnly = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MessageTextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!InternalMessageChange)
|
||||||
|
{
|
||||||
|
if (messageTextBox.Text == "\n")
|
||||||
|
messageTextBox.Text = "";
|
||||||
|
#if emoticons
|
||||||
|
TextFormat.Parse((ExExRichTextBox)sender);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OpenLink(object sender, LinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
Process.Start(e.LinkText);
|
||||||
|
}
|
||||||
|
//public void UpdateMessages()
|
||||||
|
//{
|
||||||
|
/*
|
||||||
|
* 2014.03.21.
|
||||||
|
* updatemessages: küldje el, hogy mikor kapott utoljára üzenetet ÉS az új üzeneteket,
|
||||||
|
* a szerver pedig először válaszoljon a szerinte aktuális időponttal,
|
||||||
|
* majd küldje el az annál újabb üzeneteket
|
||||||
|
* getrecentmessages: ezt csak önmagában küldje,
|
||||||
|
* a szerver pedig válaszoljon a legutóbbi x üzenettel,
|
||||||
|
* ahol x egy beállitható szám (alapból 10)
|
||||||
|
* ----
|
||||||
|
* Az új üzeneteket egy listában tárolja, majd amikor továbbitja őket, törölje a listából fokozatosan
|
||||||
|
* (ahogy összeállitja a karakterláncot, mindig törölje azt az üzenetet a listából
|
||||||
|
*
|
||||||
|
* 2014.08.08.
|
||||||
|
* Az UpdateListAndChat thread kezelje ezt is,
|
||||||
|
* az updatemessages packet-et csak akkor küldje el, ha új üzenet érkezik,
|
||||||
|
* a régebbi üzeneteket (getrecentmessages) tárolja el lokálisan, mint minden egyéb adatát
|
||||||
|
*/
|
||||||
|
//while (ChatWindows.Count != 0 && !this.IsDisposed && MainForm.MainThread.IsAlive)
|
||||||
|
//{
|
||||||
|
//}
|
||||||
|
//}
|
||||||
|
|
||||||
|
private void ChatForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
ChatWindows.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ChatForm GetChatFormByUsers(IEnumerable<int> users) //2014.08.08. - IEnumerable: 2014.08.16.
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ChatWindows.Count; i++)
|
||||||
|
{
|
||||||
|
if (ChatWindows[i].ChatPartners.HasSameElementsAs(users))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (i != ChatWindows.Count) ? ChatWindows[i] : null; //== --> !=: 2014.09.22.
|
||||||
|
}
|
||||||
|
|
||||||
|
//public static string TMessage;
|
||||||
|
public string TMessage;
|
||||||
|
public int SetThreadValues()
|
||||||
|
{
|
||||||
|
recentMsgTextBox.AppendText(TMessage);
|
||||||
|
TextFormat.Parse(recentMsgTextBox);
|
||||||
|
TMessage = "";
|
||||||
|
recentMsgTextBox.SelectionStart = recentMsgTextBox.TextLength; //2014.04.10.
|
||||||
|
recentMsgTextBox.ScrollToCaret(); //2014.04.10.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public void OpenSendFile(SelectPartnerForm spform)
|
||||||
|
{
|
||||||
|
//A küldő a szerver - 2014.06.15.
|
||||||
|
//Fogadás: //sendfile üzenet
|
||||||
|
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
|
||||||
|
return;
|
||||||
|
Stream st = new FileStream(openFileDialog1.FileName, FileMode.Open);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//if (CurrentUser.CopyToMemoryOnFileSend)
|
||||||
|
if (new FileInfo(openFileDialog1.FileName).Length > Int64.Parse(Storage.Settings["filelen"]))
|
||||||
|
{
|
||||||
|
List<byte> buf = new List<byte>();
|
||||||
|
int b;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
b = st.ReadByte();
|
||||||
|
buf.Add((byte)b);
|
||||||
|
}
|
||||||
|
while (b != -1);
|
||||||
|
st = new MemoryStream(buf.ToArray(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OutOfMemoryException)
|
||||||
|
{ //A MemoryStream-et nem hozza létre, ezzel elméletileg memóriát felszabadítva
|
||||||
|
st.Seek(0, SeekOrigin.Begin);
|
||||||
|
}
|
||||||
|
IPHostEntry host;
|
||||||
|
IPAddress localIP = IPAddress.Parse("127.0.0.1");
|
||||||
|
host = Dns.GetHostEntry(Dns.GetHostName());
|
||||||
|
foreach (IPAddress ip in host.AddressList)
|
||||||
|
{
|
||||||
|
if (ip.AddressFamily == AddressFamily.InterNetwork)
|
||||||
|
{
|
||||||
|
localIP = ip;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//string ret = Networking.SendRequest("setip", spform.Partners[0] + 'ͦ' + localIP.ToString() + ":" + Settings.Default.port + ":" + openFileDialog1.FileName, 0, true);
|
||||||
|
//var ipAddr = IPAddress.Parse(ret);
|
||||||
|
IPAddress ipAddr = null; //Használja fel a partner ismert IP-címét
|
||||||
|
Socket sListener;
|
||||||
|
SocketPermission permission;
|
||||||
|
permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
|
||||||
|
sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
var ipEndPoint = new IPEndPoint(ipAddr, Int32.Parse(Storage.Settings["port"]));
|
||||||
|
sListener.Listen(1);
|
||||||
|
ST = st; //Átadja az adatfolyamot a nyilvánosabb változónak
|
||||||
|
AsyncCallback aCallback = new AsyncCallback(SendFile_AcceptCallback);
|
||||||
|
sListener.BeginAccept(aCallback, sListener);
|
||||||
|
}
|
||||||
|
private Stream ST;
|
||||||
|
private void SendFile_AcceptCallback(IAsyncResult ar)
|
||||||
|
{
|
||||||
|
Socket listener = (Socket)ar.AsyncState;
|
||||||
|
Socket handler = listener.EndAccept(ar);
|
||||||
|
var ns = new NetworkStream(handler);
|
||||||
|
ns.CopyFrom(ST, new CopyFromArguments(new ProgressChange(SendFile_ProgressChange)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SendFile_ProgressChange(long bytesRead, long totalBytesToRead)
|
||||||
|
{
|
||||||
|
Console.WriteLine("SendFile: " + bytesRead + " / " + totalBytesToRead);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string CurrentMessage = "";
|
||||||
|
private void showicons_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (showicons.Checked)
|
||||||
|
{
|
||||||
|
CurrentMessage = messageTextBox.Text;
|
||||||
|
messageTextBox.Enabled = false;
|
||||||
|
TextFormat.Parse(messageTextBox);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
messageTextBox.Text = CurrentMessage;
|
||||||
|
messageTextBox.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
123
Versions/Less Closed Beta/v3.0/MSGer.tk/ChatForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
278
Versions/Less Closed Beta/v3.0/MSGer.tk/CurrentUser.cs
Normal file
|
@ -0,0 +1,278 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public static class CurrentUser
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* 2014.03.05.
|
||||||
|
* Információátrendezés: Property-k használata; Minden felhasználóhoz egy-egy User class
|
||||||
|
* Ez a class használható lenne az aktuális felhsaználó információinak tárolására
|
||||||
|
*/
|
||||||
|
//public static int UserID = 0;
|
||||||
|
public static int UserID
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_userid"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_userid", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_userid"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_userid"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_userid", "0");
|
||||||
|
Storage.LoggedInSettings["currentuser_userid"] = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static int[] PartnerIDs = new int[1024];
|
||||||
|
//public static string Name = "";
|
||||||
|
public static string Name
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_name"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_name", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_name"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_name"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_name", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Name = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_name"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static Language Language = Language.English; //2014.04.19.
|
||||||
|
//public static Language Language;
|
||||||
|
public static Language Language
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Language.FromString(Storage.Settings["lang"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Storage.Settings["lang"] = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string Message = "";
|
||||||
|
public static string Message
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_message"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_message", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_message"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_message"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_message", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Message = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_message"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string State = "";
|
||||||
|
public static int State
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_state"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_state", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_state"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_state"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_state", "0");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.State = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_state"] = value.ToString();
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string UserName = "";
|
||||||
|
public static string UserName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_username"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_username", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_username"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_username"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_username", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.UserName = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_username"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public static string Email = "";
|
||||||
|
public static string Email
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_email"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_email", "");
|
||||||
|
return Storage.LoggedInSettings["currentuser_email"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_email"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_email", "");
|
||||||
|
var tmp = UserInfo.Select(CurrentUser.UserID);
|
||||||
|
if (tmp != null)
|
||||||
|
tmp.Email = value;
|
||||||
|
Storage.LoggedInSettings["currentuser_email"] = value;
|
||||||
|
SendUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//private static IPAddress[] ips = new IPAddress[2];
|
||||||
|
/*public static IPAddress[] IPs //2014.08.29.
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.Settings.ContainsKey("myip"))
|
||||||
|
Storage.LoggedInSettings.Add("myip", "127.0.0.1");
|
||||||
|
string[] strs = Storage.LoggedInSettings["myip"].Split(';');
|
||||||
|
*var ips = new IPAddress[strs.Length];
|
||||||
|
for (int i = 0; i < ips.Length; i++)
|
||||||
|
{
|
||||||
|
ips[i] = IPAddress.Parse(strs[i]);
|
||||||
|
}*
|
||||||
|
IPAddress[] ips = strs.Select(entry => IPAddress.Parse(entry)).ToArray();
|
||||||
|
return ips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.Settings.ContainsKey("myip"))
|
||||||
|
Storage.Settings.Add("myip", "");
|
||||||
|
string[] strs = value.Select(entry => entry.ToString()).ToArray();
|
||||||
|
Storage.Settings["myip"] = String.Join(";", strs);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//public static IPAddress[] IPs { get; set; }
|
||||||
|
//private static List<IPAddress> ips = new List<IPAddress>();
|
||||||
|
/*public static List<IPAddress> IPs
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ips;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
ips = value;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
public static IPAddress IP;
|
||||||
|
/*public static IPAddress IP
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return IPAddress.Parse(Storage.Settings["myip"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Storage.Settings["myip"] = value.ToString();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
public static string[] Keys
|
||||||
|
{ //2014.09.08-09.
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keys"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keys", "");
|
||||||
|
var tmp = new string[100]; //Mindig 100 elemű tömb legyen
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).CopyTo(tmp, 0);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keys"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keys", "");
|
||||||
|
string x = "";
|
||||||
|
//Storage.LoggedInSettings["currentuser_keys"] = value.Select(new Func<string, string>(delegate { var x = ""; foreach (var item in value) { x += item + ";"; } return x; }));
|
||||||
|
foreach (var item in value)
|
||||||
|
{
|
||||||
|
x += item;
|
||||||
|
x += ";";
|
||||||
|
}
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"] = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static int KeyIndex
|
||||||
|
{ //2014.09.09.
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keyindex"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keyindex", "0");
|
||||||
|
return Int32.Parse(Storage.LoggedInSettings["currentuser_keyindex"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!Storage.LoggedInSettings.ContainsKey("currentuser_keyindex"))
|
||||||
|
Storage.LoggedInSettings.Add("currentuser_keyindex", "0");
|
||||||
|
Storage.LoggedInSettings["currentuser_keys"] = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static bool SendChanges = false;
|
||||||
|
///// <summary>
|
||||||
|
///// Átmásolja-e a memóriába az egész fájlt a küldés előtt.
|
||||||
|
///// Nagy méretű fájloknál nem ajánlott, különben igen a fájl esetleges elérhetetlensége miatt.
|
||||||
|
///// 2014.06.15.
|
||||||
|
///// </summary>
|
||||||
|
//public static bool CopyToMemoryOnFileSend = true; - Automatikusan érzékelje (2014.08.18.)
|
||||||
|
|
||||||
|
public static void SendUpdate()
|
||||||
|
{ //2014.08.30.
|
||||||
|
/*
|
||||||
|
* CurrentUser.SendUpdate()
|
||||||
|
* Bármi változás történik, elküldi mindenkinek
|
||||||
|
*/
|
||||||
|
if (!SendChanges)
|
||||||
|
return;
|
||||||
|
string retstr = "";
|
||||||
|
retstr += UserID + "_name=" + Name + "\n";
|
||||||
|
retstr += UserID + "_message=" + Message + "\n";
|
||||||
|
retstr += UserID + "_state=" + State + "\n";
|
||||||
|
retstr += UserID + "_username=" + UserName + "\n";
|
||||||
|
retstr += UserID + "_email=" + Email + "\n";
|
||||||
|
retstr += UserID + "_ispartner=" + false + "\n"; //Ellenőrizze le, amikor megkapja
|
||||||
|
retstr += UserID + "_lastupdate=" + Program.DateTimeToUnixTime(DateTime.Now);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
byte[][] resp = Networking.SendUpdate(Networking.UpdateType.ListUpdate, Encoding.Unicode.GetBytes(retstr), false);
|
||||||
|
bool fine = false;
|
||||||
|
if (resp == null || resp.Length == 0)
|
||||||
|
break;
|
||||||
|
//foreach (var item in resp) //Ha sehonnan nem kapott választ (egy perc után), újrapróbálkozik
|
||||||
|
foreach (var item in resp) //Ha sehonnan nem kapott választ (egy perc után), újrapróbálkozik
|
||||||
|
{
|
||||||
|
//if (item[4] == 0x01) //Az első 4 byte a UserID
|
||||||
|
if (Networking.ParsePacket(item).Data[0] == 0x01) //2014.09.19.
|
||||||
|
fine = true;
|
||||||
|
}
|
||||||
|
if (fine)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
41
Versions/Less Closed Beta/v3.0/MSGer.tk/ErrorHandling.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
class ErrorHandling
|
||||||
|
{
|
||||||
|
public static void FormError(Form fname, Exception e)
|
||||||
|
{
|
||||||
|
MessageBox.Show(e.GetType().ToString());
|
||||||
|
if (fname == Program.MainF)
|
||||||
|
{
|
||||||
|
switch (e.GetType().ToString())
|
||||||
|
{
|
||||||
|
/*case "System.NullReferenceException":
|
||||||
|
MessageBox.Show("lol");
|
||||||
|
break;*/
|
||||||
|
default:
|
||||||
|
MessageBox.Show("Ismeretlen hiba történt (" + e.GetType().ToString() + ")!\n\nForrás: " + e.Source + "\nA hibaüzenet: \n" + e.Message + "\nEnnél a műveletnél: " + e.TargetSite);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(fname==MainForm.LoginDialog)
|
||||||
|
{
|
||||||
|
switch (e.GetType().ToString())
|
||||||
|
{
|
||||||
|
/*case "System.NullReferenceException":
|
||||||
|
MessageBox.Show("lol");
|
||||||
|
break;*/
|
||||||
|
default:
|
||||||
|
MessageBox.Show("Ismeretlen hiba történt (" + e.GetType().ToString() + ")!\n\nForrás: " + e.Source + "\nA hibaüzenet: \n" + e.Message + "\nEnnél a műveletnél: " + e.TargetSite);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
176
Versions/Less Closed Beta/v3.0/MSGer.tk/InvitePartner.Designer.cs
generated
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class InvitePartner
|
||||||
|
{
|
||||||
|
/// <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.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this.listBox1 = new System.Windows.Forms.ListBox();
|
||||||
|
this.addbtn = new System.Windows.Forms.Button();
|
||||||
|
this.removebtn = new System.Windows.Forms.Button();
|
||||||
|
this.copybtn = new System.Windows.Forms.Button();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.hideAccepted = new System.Windows.Forms.CheckBox();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(13, 13);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(189, 24);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Ismerős meghívása";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label2.Location = new System.Drawing.Point(17, 53);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(98, 24);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Letöltőlink:";
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.textBox1.BackColor = System.Drawing.Color.White;
|
||||||
|
this.textBox1.Location = new System.Drawing.Point(21, 90);
|
||||||
|
this.textBox1.Name = "textBox1";
|
||||||
|
this.textBox1.ReadOnly = true;
|
||||||
|
this.textBox1.Size = new System.Drawing.Size(382, 20);
|
||||||
|
this.textBox1.TabIndex = 2;
|
||||||
|
this.textBox1.Text = "http://msger.url.ph/download.php?version=latest";
|
||||||
|
//
|
||||||
|
// listBox1
|
||||||
|
//
|
||||||
|
this.listBox1.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.listBox1.BackColor = System.Drawing.Color.White;
|
||||||
|
this.listBox1.FormattingEnabled = true;
|
||||||
|
this.listBox1.Location = new System.Drawing.Point(21, 163);
|
||||||
|
this.listBox1.Name = "listBox1";
|
||||||
|
this.listBox1.Size = new System.Drawing.Size(379, 173);
|
||||||
|
this.listBox1.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// addbtn
|
||||||
|
//
|
||||||
|
this.addbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.addbtn.Location = new System.Drawing.Point(21, 343);
|
||||||
|
this.addbtn.Name = "addbtn";
|
||||||
|
this.addbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.addbtn.TabIndex = 7;
|
||||||
|
this.addbtn.Text = "Hozzáadás";
|
||||||
|
this.addbtn.UseVisualStyleBackColor = true;
|
||||||
|
this.addbtn.Click += new System.EventHandler(this.addbtn_Click);
|
||||||
|
//
|
||||||
|
// removebtn
|
||||||
|
//
|
||||||
|
this.removebtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.removebtn.Location = new System.Drawing.Point(102, 343);
|
||||||
|
this.removebtn.Name = "removebtn";
|
||||||
|
this.removebtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.removebtn.TabIndex = 8;
|
||||||
|
this.removebtn.Text = "Eltávolítás";
|
||||||
|
this.removebtn.UseVisualStyleBackColor = true;
|
||||||
|
this.removebtn.Click += new System.EventHandler(this.removebtn_Click);
|
||||||
|
//
|
||||||
|
// copybtn
|
||||||
|
//
|
||||||
|
this.copybtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.copybtn.Location = new System.Drawing.Point(292, 343);
|
||||||
|
this.copybtn.Name = "copybtn";
|
||||||
|
this.copybtn.Size = new System.Drawing.Size(108, 23);
|
||||||
|
this.copybtn.TabIndex = 9;
|
||||||
|
this.copybtn.Text = "Kód másolása";
|
||||||
|
this.copybtn.UseVisualStyleBackColor = true;
|
||||||
|
this.copybtn.Click += new System.EventHandler(this.copybtn_Click);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label3.Location = new System.Drawing.Point(17, 125);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(64, 24);
|
||||||
|
this.label3.TabIndex = 10;
|
||||||
|
this.label3.Text = "Kódok";
|
||||||
|
//
|
||||||
|
// hideAccepted
|
||||||
|
//
|
||||||
|
this.hideAccepted.AutoSize = true;
|
||||||
|
this.hideAccepted.Location = new System.Drawing.Point(251, 132);
|
||||||
|
this.hideAccepted.Name = "hideAccepted";
|
||||||
|
this.hideAccepted.Size = new System.Drawing.Size(149, 17);
|
||||||
|
this.hideAccepted.TabIndex = 11;
|
||||||
|
this.hideAccepted.Text = "Elfogadott kódok elrejtése";
|
||||||
|
this.hideAccepted.UseVisualStyleBackColor = true;
|
||||||
|
this.hideAccepted.CheckedChanged += new System.EventHandler(this.hideAccepted_CheckedChanged);
|
||||||
|
//
|
||||||
|
// InvitePartner
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.ClientSize = new System.Drawing.Size(415, 449);
|
||||||
|
this.Controls.Add(this.hideAccepted);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.copybtn);
|
||||||
|
this.Controls.Add(this.removebtn);
|
||||||
|
this.Controls.Add(this.addbtn);
|
||||||
|
this.Controls.Add(this.listBox1);
|
||||||
|
this.Controls.Add(this.textBox1);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "InvitePartner";
|
||||||
|
this.Text = "Ismerős meghivása";
|
||||||
|
this.Load += new System.EventHandler(this.InvitePartner_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.TextBox textBox1;
|
||||||
|
private System.Windows.Forms.ListBox listBox1;
|
||||||
|
private System.Windows.Forms.Button addbtn;
|
||||||
|
private System.Windows.Forms.Button removebtn;
|
||||||
|
private System.Windows.Forms.Button copybtn;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.CheckBox hideAccepted;
|
||||||
|
}
|
||||||
|
}
|
75
Versions/Less Closed Beta/v3.0/MSGer.tk/InvitePartner.cs
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class InvitePartner : Form
|
||||||
|
{
|
||||||
|
public InvitePartner()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InvitePartner_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RefreshList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addbtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string res = Networking.SendRequest("addcode", "", 0, true);
|
||||||
|
if (res.Length<"Fail".Length || res.Substring(0, "Fail".Length) == "Fail")
|
||||||
|
MessageBox.Show("A kódgenerálás sikertelen.\n\n" + res, "Hiba");
|
||||||
|
else
|
||||||
|
RefreshList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RefreshList()
|
||||||
|
{
|
||||||
|
listBox1.Items.Clear();
|
||||||
|
string[] response = Networking.SendRequest("getcodes", "", 0, true).Split('ͦ');
|
||||||
|
int x = 0;
|
||||||
|
for (int i = 0; i+1 < response.Length; i += 2)
|
||||||
|
{
|
||||||
|
if (Int32.Parse(response[i + 1]) == 1)
|
||||||
|
{
|
||||||
|
if (!hideAccepted.Checked)
|
||||||
|
listBox1.Items.Add("Elfogadott - " + response[i]);
|
||||||
|
}
|
||||||
|
else if (Int32.Parse(response[i + 1]) == 0)
|
||||||
|
listBox1.Items.Add("Visszaigazolásra vár - " + response[i]);
|
||||||
|
else MessageBox.Show("Hiba:\n" + response[i] + "\n" + response[i + 1]);
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removebtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (listBox1.SelectedIndex == -1)
|
||||||
|
return;
|
||||||
|
string res = Networking.SendRequest("remcode", listBox1.SelectedItem.ToString().Remove(0, listBox1.SelectedItem.ToString().IndexOf(" - ") + " - ".Length), 0, true);
|
||||||
|
if (res.Substring(0, "Fail".Length) == "Fail")
|
||||||
|
MessageBox.Show("A kód törlése sikertelen.\n\n" + res, "Hiba");
|
||||||
|
else RefreshList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void copybtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (listBox1.SelectedIndex == -1)
|
||||||
|
return;
|
||||||
|
Clipboard.SetText(listBox1.SelectedItem.ToString().Remove(0, listBox1.SelectedItem.ToString().IndexOf(" - ") + " - ".Length));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hideAccepted_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RefreshList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/InvitePartner.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
95
Versions/Less Closed Beta/v3.0/MSGer.tk/Language.cs
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public class Language
|
||||||
|
{ //2014.04.19.
|
||||||
|
|
||||||
|
public static Dictionary<string, Language> UsedLangs = new Dictionary<string, Language>();
|
||||||
|
|
||||||
|
public Dictionary<string, string> Strings = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
private Language(string lang)
|
||||||
|
{
|
||||||
|
UsedLangs.Add(lang, this);
|
||||||
|
}
|
||||||
|
public Language() //2014.09.06.
|
||||||
|
{
|
||||||
|
if (!Directory.Exists("languages"))
|
||||||
|
Directory.CreateDirectory("languages");
|
||||||
|
string[] files = Directory.GetFiles("languages");
|
||||||
|
if (files.Length == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: No languages found.");
|
||||||
|
return; //Még nem jelentkezett be, ezért ki fog lépni
|
||||||
|
}
|
||||||
|
for (int x = 0; x < files.Length; x++)
|
||||||
|
{
|
||||||
|
string[] lines = File.ReadAllLines(files[x]);
|
||||||
|
var dict = lines.Select(l => l.Split('=')).ToDictionary(a => a[0], a => a[1]);
|
||||||
|
//(new Language(files[x].Split('\\')[files[x].Split('\\').Length - 1].Split('.')[0])).Strings = dict; //Eltárol egy új nyelvet, majd a szövegeket hozzátársítja
|
||||||
|
new Language(new FileInfo(files[x]).Name.Split('.')[0]).Strings = dict; //(FileInfo: 2014.09.01.) - Eltárol egy új nyelvet, majd a szövegeket hozzátársítja
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Language.FromString(Storage.Settings["lang"]) == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: Could not find language: " + Storage.Settings["lang"]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CurrentUser.Language = Language.FromString(Storage.Settings["lang"]);
|
||||||
|
if (CurrentUser.Language == null)
|
||||||
|
{
|
||||||
|
//MessageBox.Show("Error: The specified language is not found.\nTo quickly solve this, copy the preffered language file in languages folder to the same place with the name of \"" + Storage.Settings["lang"] + "\"\nYou can then change the language in your preferences later.");
|
||||||
|
//return;
|
||||||
|
if (Language.UsedLangs.ContainsKey("en"))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: The specified language (" + Storage.Settings["lang"] + ") is not found.\nThe program will use english that you can change later.");
|
||||||
|
Storage.Settings["lang"] = "en";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: The specified language (" + Storage.Settings["lang"] + "), nor enlish are found.\nPlease download translations.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return UsedLangs.FirstOrDefault(x => x.Value == this).Key;
|
||||||
|
}
|
||||||
|
public static Language FromString(string value)
|
||||||
|
{
|
||||||
|
Language tmp = null;
|
||||||
|
/*try
|
||||||
|
{
|
||||||
|
tmp = UsedLangs[value];
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}*/
|
||||||
|
UsedLangs.TryGetValue(value, out tmp);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
public static Language GetCuurentLanguage()
|
||||||
|
{
|
||||||
|
return Language.FromString(Storage.Settings["lang"]);
|
||||||
|
}
|
||||||
|
public static string Translate(string id)
|
||||||
|
{ //2014.08.19.
|
||||||
|
Language lang = GetCuurentLanguage();
|
||||||
|
if (lang.Strings.ContainsKey(id))
|
||||||
|
return lang.Strings[id];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Translation string not found: " + id + "\nIn file: " + lang + ".txt");
|
||||||
|
return "Str not found";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
193
Versions/Less Closed Beta/v3.0/MSGer.tk/LoginForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class LoginForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm));
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
|
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||||
|
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(197, 33);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Bejelentkezés";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label2.Location = new System.Drawing.Point(19, 77);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(63, 24);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "E-mail";
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
this.textBox1.AcceptsReturn = true;
|
||||||
|
this.textBox1.AcceptsTab = true;
|
||||||
|
this.textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||||
|
this.textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
|
||||||
|
this.textBox1.Location = new System.Drawing.Point(88, 80);
|
||||||
|
this.textBox1.Name = "textBox1";
|
||||||
|
this.textBox1.Size = new System.Drawing.Size(294, 20);
|
||||||
|
this.textBox1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label3.Location = new System.Drawing.Point(19, 106);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(63, 24);
|
||||||
|
this.label3.TabIndex = 3;
|
||||||
|
this.label3.Text = "Jelszó";
|
||||||
|
//
|
||||||
|
// textBox2
|
||||||
|
//
|
||||||
|
this.textBox2.AcceptsReturn = true;
|
||||||
|
this.textBox2.AcceptsTab = true;
|
||||||
|
this.textBox2.Location = new System.Drawing.Point(179, 110);
|
||||||
|
this.textBox2.Name = "textBox2";
|
||||||
|
this.textBox2.PasswordChar = '→';
|
||||||
|
this.textBox2.Size = new System.Drawing.Size(203, 20);
|
||||||
|
this.textBox2.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.button1.Location = new System.Drawing.Point(235, 153);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(147, 23);
|
||||||
|
this.button1.TabIndex = 5;
|
||||||
|
this.button1.Text = "Bejelentkezés";
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||||
|
//
|
||||||
|
// textBox3
|
||||||
|
//
|
||||||
|
this.textBox3.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.textBox3.BackColor = System.Drawing.Color.SteelBlue;
|
||||||
|
this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.textBox3.ForeColor = System.Drawing.Color.White;
|
||||||
|
this.textBox3.Location = new System.Drawing.Point(13, 198);
|
||||||
|
this.textBox3.Multiline = true;
|
||||||
|
this.textBox3.Name = "textBox3";
|
||||||
|
this.textBox3.ReadOnly = true;
|
||||||
|
this.textBox3.Size = new System.Drawing.Size(369, 261);
|
||||||
|
this.textBox3.TabIndex = 6;
|
||||||
|
this.textBox3.Text = resources.GetString("textBox3.Text");
|
||||||
|
this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
|
//
|
||||||
|
// linkLabel1
|
||||||
|
//
|
||||||
|
this.linkLabel1.AutoSize = true;
|
||||||
|
this.linkLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
|
this.linkLabel1.LinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.linkLabel1.Location = new System.Drawing.Point(23, 162);
|
||||||
|
this.linkLabel1.Name = "linkLabel1";
|
||||||
|
this.linkLabel1.Size = new System.Drawing.Size(77, 13);
|
||||||
|
this.linkLabel1.TabIndex = 7;
|
||||||
|
this.linkLabel1.TabStop = true;
|
||||||
|
this.linkLabel1.Text = "Regisztráció";
|
||||||
|
this.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.RegistrateLink);
|
||||||
|
//
|
||||||
|
// linkLabel2
|
||||||
|
//
|
||||||
|
this.linkLabel2.AutoSize = true;
|
||||||
|
this.linkLabel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.linkLabel2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
|
this.linkLabel2.Location = new System.Drawing.Point(23, 175);
|
||||||
|
this.linkLabel2.Name = "linkLabel2";
|
||||||
|
this.linkLabel2.Size = new System.Drawing.Size(66, 13);
|
||||||
|
this.linkLabel2.TabIndex = 8;
|
||||||
|
this.linkLabel2.TabStop = true;
|
||||||
|
this.linkLabel2.Text = "forgotpass";
|
||||||
|
this.linkLabel2.VisitedLinkColor = System.Drawing.Color.Blue;
|
||||||
|
this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked);
|
||||||
|
//
|
||||||
|
// LoginForm
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.button1;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.ClientSize = new System.Drawing.Size(394, 471);
|
||||||
|
this.Controls.Add(this.linkLabel2);
|
||||||
|
this.Controls.Add(this.linkLabel1);
|
||||||
|
this.Controls.Add(this.textBox3);
|
||||||
|
this.Controls.Add(this.button1);
|
||||||
|
this.Controls.Add(this.textBox2);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.textBox1);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "LoginForm";
|
||||||
|
this.Opacity = 0.9D;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Bejelentkezés";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LoginForm_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.LoginForm_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.TextBox textBox1;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.TextBox textBox2;
|
||||||
|
private System.Windows.Forms.Button button1;
|
||||||
|
private System.Windows.Forms.TextBox textBox3;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel1;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel2;
|
||||||
|
}
|
||||||
|
}
|
176
Versions/Less Closed Beta/v3.0/MSGer.tk/LoginForm.RegistrationForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class LoginForm_RegistrationForm
|
||||||
|
{
|
||||||
|
/// <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.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.codeText = new System.Windows.Forms.TextBox();
|
||||||
|
this.userText = new System.Windows.Forms.TextBox();
|
||||||
|
this.passText = new System.Windows.Forms.TextBox();
|
||||||
|
this.emailText = new System.Windows.Forms.TextBox();
|
||||||
|
this.registerButton = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(13, 13);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(124, 24);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Regisztráció";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F);
|
||||||
|
this.label2.Location = new System.Drawing.Point(17, 58);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(44, 24);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Kód";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F);
|
||||||
|
this.label3.Location = new System.Drawing.Point(17, 92);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(143, 24);
|
||||||
|
this.label3.TabIndex = 2;
|
||||||
|
this.label3.Text = "Felhasználónév";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F);
|
||||||
|
this.label4.Location = new System.Drawing.Point(17, 125);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(63, 24);
|
||||||
|
this.label4.TabIndex = 3;
|
||||||
|
this.label4.Text = "Jelszó";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F);
|
||||||
|
this.label5.Location = new System.Drawing.Point(17, 160);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(63, 24);
|
||||||
|
this.label5.TabIndex = 4;
|
||||||
|
this.label5.Text = "E-mail";
|
||||||
|
//
|
||||||
|
// codeText
|
||||||
|
//
|
||||||
|
this.codeText.Location = new System.Drawing.Point(86, 63);
|
||||||
|
this.codeText.Name = "codeText";
|
||||||
|
this.codeText.Size = new System.Drawing.Size(358, 20);
|
||||||
|
this.codeText.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// userText
|
||||||
|
//
|
||||||
|
this.userText.Location = new System.Drawing.Point(166, 97);
|
||||||
|
this.userText.Name = "userText";
|
||||||
|
this.userText.Size = new System.Drawing.Size(278, 20);
|
||||||
|
this.userText.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// passText
|
||||||
|
//
|
||||||
|
this.passText.Location = new System.Drawing.Point(166, 130);
|
||||||
|
this.passText.Name = "passText";
|
||||||
|
this.passText.PasswordChar = '→';
|
||||||
|
this.passText.Size = new System.Drawing.Size(278, 20);
|
||||||
|
this.passText.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// emailText
|
||||||
|
//
|
||||||
|
this.emailText.Location = new System.Drawing.Point(86, 165);
|
||||||
|
this.emailText.Name = "emailText";
|
||||||
|
this.emailText.Size = new System.Drawing.Size(358, 20);
|
||||||
|
this.emailText.TabIndex = 9;
|
||||||
|
//
|
||||||
|
// registerButton
|
||||||
|
//
|
||||||
|
this.registerButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.registerButton.Location = new System.Drawing.Point(17, 220);
|
||||||
|
this.registerButton.Name = "registerButton";
|
||||||
|
this.registerButton.Size = new System.Drawing.Size(427, 23);
|
||||||
|
this.registerButton.TabIndex = 10;
|
||||||
|
this.registerButton.Text = "Regisztráció";
|
||||||
|
this.registerButton.UseVisualStyleBackColor = true;
|
||||||
|
this.registerButton.Click += new System.EventHandler(this.registerButton_Click);
|
||||||
|
//
|
||||||
|
// LoginForm_RegistrationForm
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.registerButton;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(200)))));
|
||||||
|
this.ClientSize = new System.Drawing.Size(469, 356);
|
||||||
|
this.Controls.Add(this.registerButton);
|
||||||
|
this.Controls.Add(this.emailText);
|
||||||
|
this.Controls.Add(this.passText);
|
||||||
|
this.Controls.Add(this.userText);
|
||||||
|
this.Controls.Add(this.codeText);
|
||||||
|
this.Controls.Add(this.label5);
|
||||||
|
this.Controls.Add(this.label4);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "LoginForm_RegistrationForm";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Regisztráció";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
private System.Windows.Forms.TextBox codeText;
|
||||||
|
private System.Windows.Forms.TextBox userText;
|
||||||
|
private System.Windows.Forms.TextBox passText;
|
||||||
|
private System.Windows.Forms.TextBox emailText;
|
||||||
|
private System.Windows.Forms.Button registerButton;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class LoginForm_RegistrationForm : Form
|
||||||
|
{
|
||||||
|
public LoginForm_RegistrationForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
label1.Text = Language.Translate("registration");
|
||||||
|
label2.Text = Language.Translate("reg_code");
|
||||||
|
label3.Text = Language.Translate("reg_username");
|
||||||
|
label4.Text = Language.Translate("login_password");
|
||||||
|
registerButton.Text = Language.Translate("registration");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
registerButton.Enabled = false;
|
||||||
|
if (codeText.TextLength == 0 || userText.TextLength == 0 || passText.TextLength == 0 || emailText.TextLength == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_emptyfield"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string response = Networking.SendRequest("register", codeText.Text + "ͦ" + userText.Text + "ͦ" + LoginForm.CalculateMD5Hash(passText.Text) + "ͦ" + emailText.Text, 2, false);
|
||||||
|
if(response=="code")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_codeerr"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "uname")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_nameerr"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "ulen")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_namelen"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "plen")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_passlen"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "email")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_email"), Language.Translate("error"));
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
else if (response == "Success!")
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("reg_success"));
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("unknown_error") + ":\n" + response);
|
||||||
|
registerButton.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
349
Versions/Less Closed Beta/v3.0/MSGer.tk/LoginForm.cs
Normal file
|
@ -0,0 +1,349 @@
|
||||||
|
//#define LOCAL_SERVER
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Net;
|
||||||
|
using System.IO;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class LoginForm : Form
|
||||||
|
{
|
||||||
|
public static string UserCode = "";
|
||||||
|
public static Thread LThread;
|
||||||
|
private void LoginForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<string> tmp; //E-mail - 2014.04.02.
|
||||||
|
if (Storage.Settings["email"].Length != 0)
|
||||||
|
tmp = Storage.Settings["email"].Split(',').ToList<string>();
|
||||||
|
else tmp = new List<string>();
|
||||||
|
//textBox1.Text = tmp[0];
|
||||||
|
//textBox1.Text = tmp[tmp.Count - 1]; //2014.07.08.
|
||||||
|
tmp.Add("");
|
||||||
|
textBox1.Text = tmp[Int32.Parse(Storage.Settings["lastusedemail"])]; //2014.07.08.
|
||||||
|
textBox1.AutoCompleteCustomSource.AddRange(tmp.ToArray());
|
||||||
|
this.Activate();
|
||||||
|
this.Activate();
|
||||||
|
}
|
||||||
|
public LoginForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.Text = Language.Translate("login");
|
||||||
|
label1.Text = Language.Translate("login");
|
||||||
|
label3.Text = Language.Translate("login_password");
|
||||||
|
button1.Text = Language.Translate("login");
|
||||||
|
linkLabel1.Text = Language.Translate("registration");
|
||||||
|
linkLabel2.Text = Language.Translate("forgotpassword");
|
||||||
|
textBox3.Text = "";
|
||||||
|
List<string> lines = new List<string>();
|
||||||
|
lines.Add(Language.Translate("login_desc1"));
|
||||||
|
lines.Add("");
|
||||||
|
lines.Add(Language.Translate("login_desc2"));
|
||||||
|
textBox3.Lines = lines.ToArray();
|
||||||
|
}
|
||||||
|
private void button1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (button1.Text == Language.Translate("button_cancel"))
|
||||||
|
{
|
||||||
|
ResetAfterLogin(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (LThread.IsAlive)
|
||||||
|
{
|
||||||
|
//2014.03.27. - Ne csináljon semmit - Elvégre ilyen nem fordulhat elő sokáig most már
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//Ellenőrizzen le néhány dolgot helyileg - 2014.04.28.
|
||||||
|
if (textBox2.Text.Length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Create the thread object, passing in the Alpha.Beta method
|
||||||
|
// via a ThreadStart delegate. This does not start the thread.
|
||||||
|
LThread = new Thread(new ThreadStart(LoginUser));
|
||||||
|
LThread.Name = "Login Thread";
|
||||||
|
|
||||||
|
// Start the thread
|
||||||
|
LThread.Start();
|
||||||
|
|
||||||
|
// Spin for a while waiting for the started thread to become
|
||||||
|
// alive:
|
||||||
|
while (!LThread.IsAlive) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public delegate int MyDelegate();
|
||||||
|
public int SetLoginValues()
|
||||||
|
{
|
||||||
|
if (UserText.Length == 0)
|
||||||
|
UserText = textBox1.Text;
|
||||||
|
else
|
||||||
|
textBox1.Text = UserText;
|
||||||
|
|
||||||
|
if (PassText.Length == 0)
|
||||||
|
PassText = textBox2.Text;
|
||||||
|
else
|
||||||
|
textBox2.Text = PassText;
|
||||||
|
|
||||||
|
button1.Text = LButtonText;
|
||||||
|
linkLabel1.Enabled = RegistLinkEn; //2014.03.27.
|
||||||
|
if (Closeable)
|
||||||
|
{
|
||||||
|
Closeable = false;
|
||||||
|
Dispose(); //2014.04.04.
|
||||||
|
}
|
||||||
|
textBox1.Enabled = false; //2014.09.01.
|
||||||
|
textBox2.Enabled = false; //2014.09.01.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public int ResetAfterLogin(bool stoplogint)
|
||||||
|
{
|
||||||
|
button1.Enabled = false;
|
||||||
|
Request.Abort();
|
||||||
|
if (stoplogint) //2014.09.01.
|
||||||
|
//{
|
||||||
|
LThread.Abort(); //2014.09.01.
|
||||||
|
//Networking.ReceiverConnection.Client.Shutdown(System.Net.Sockets.SocketShutdown.Receive); //2014.09.19.
|
||||||
|
//}
|
||||||
|
button1.Text = Language.Translate("login");
|
||||||
|
button1.Enabled = true;
|
||||||
|
linkLabel1.Enabled = true;
|
||||||
|
textBox1.Enabled = true; //2014.09.01.
|
||||||
|
textBox2.Enabled = true; //2014.09.01.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public int ResetAfterLogin()
|
||||||
|
{ //2014.09.01.
|
||||||
|
return ResetAfterLogin(false); //Ha a thread hívja meg, ne állítsa le a thread-et
|
||||||
|
}
|
||||||
|
public static string UserText = ""; //2014.02.14.
|
||||||
|
public static string PassText = "";
|
||||||
|
public static string LButtonText = "";
|
||||||
|
public static bool RegistLinkEn = true;
|
||||||
|
public static bool Closeable = false;
|
||||||
|
public static HttpWebRequest Request; //2014.03.27. - A megállitáshoz
|
||||||
|
|
||||||
|
public void LoginUser()
|
||||||
|
{
|
||||||
|
//Állitson vissza minden változót, hogy újra belerakja az értekeket - 2014.02.28.
|
||||||
|
UserText = "";
|
||||||
|
PassText = "";
|
||||||
|
RegistLinkEn = false; //2014.03.27.
|
||||||
|
LButtonText = Language.Translate("button_cancel");
|
||||||
|
this.Invoke(new MyDelegate(SetLoginValues));
|
||||||
|
|
||||||
|
//HttpWebRequest httpWReq =
|
||||||
|
// (HttpWebRequest)WebRequest.Create("http://msger.tk/client.php");
|
||||||
|
#if LOCAL_SERVER
|
||||||
|
HttpWebRequest httpWReq =
|
||||||
|
(HttpWebRequest)WebRequest.Create("http://localhost/ChatWithWords/client.php");
|
||||||
|
#else
|
||||||
|
HttpWebRequest httpWReq =
|
||||||
|
(HttpWebRequest)WebRequest.Create("http://msger.url.ph/client.php");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Request = httpWReq; //2014.03.27.
|
||||||
|
|
||||||
|
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||||
|
string postData = "username=" + UserText;
|
||||||
|
postData += "&password=" + CalculateMD5Hash(PassText).ToLower(); //ToLower: 2014.10.24. 1:22 - Most már a PHP-nak is titkosítania kell többek közt MD5-tel
|
||||||
|
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
||||||
|
postData += "&port=" + Storage.Settings["port"]; //2014.08.29.
|
||||||
|
postData += "&isserver=" + Storage.Settings["isserver"]; //2014.09.26.
|
||||||
|
byte[] data = encoding.GetBytes(postData);
|
||||||
|
|
||||||
|
httpWReq.Method = "POST";
|
||||||
|
httpWReq.ContentType = "application/x-www-form-urlencoded";
|
||||||
|
httpWReq.ContentLength = data.Length;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Stream stream = httpWReq.GetRequestStream())
|
||||||
|
{
|
||||||
|
stream.Write(data, 0, data.Length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (WebException e)
|
||||||
|
{
|
||||||
|
if (e.Status != WebExceptionStatus.RequestCanceled)
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("connecterror") + "\n" + e.Message, Language.Translate("error"));
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bejelentkezés folyamatban...
|
||||||
|
HttpWebResponse response;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
response = (HttpWebResponse)httpWReq.GetResponse();
|
||||||
|
}
|
||||||
|
catch (WebException e)
|
||||||
|
{
|
||||||
|
if (e.Status != WebExceptionStatus.RequestCanceled)
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("connecterror") + "\n" + e.Message, Language.Translate("error"));
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (responseString[0] == '<')
|
||||||
|
{
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
MessageBox.Show(Language.Translate("error") + ":\n" + responseString);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
responseString = responseString.Remove(responseString.IndexOf('<'));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (String.Compare(responseString, "Fail") == 0)
|
||||||
|
{
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
MessageBox.Show(Language.Translate("error") + ": " + Language.Translate("login_badnamepass"), Language.Translate("error"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
//Elmenti az E-mail-t
|
||||||
|
if (!Storage.Settings["email"].Contains(UserText))
|
||||||
|
{
|
||||||
|
if (Storage.Settings["email"].Length != 0) //2014.07.08.
|
||||||
|
Storage.Settings["email"] += ",";
|
||||||
|
Storage.Settings["email"] += UserText;
|
||||||
|
}
|
||||||
|
//else - 2014.10.02. - Egyszer észrevettem a Google Code összehasonlítójával, hogy ez nem kéne ide
|
||||||
|
Storage.Settings["lastusedemail"] = Storage.Settings["email"].Split(',').ToList<string>().IndexOf(UserText).ToString();
|
||||||
|
//Settings.Default.Save();
|
||||||
|
//Bejelentkezés
|
||||||
|
string[] respstr = responseString.Split('ͦ');
|
||||||
|
//CurrentUser.UserID = Convert.ToInt32(respstr[0]); //Régebben ezt találtam, most meg az Int32.Parse-t... (2014.04.02.)
|
||||||
|
//CurrentUser.Name = respstr[1]; //2014.04.04.
|
||||||
|
//respstr[1]:
|
||||||
|
|
||||||
|
if (respstr[3].Contains("Fail"))
|
||||||
|
{
|
||||||
|
this.Invoke(new MyDelegate(ResetAfterLogin));
|
||||||
|
MessageBox.Show(respstr[3]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string[] entries = respstr[3].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
IEnumerable<IPEndPoint> ips = entries.Select(entry => ((entry != ":") ? new IPEndPoint(IPAddress.Parse(entry.Split(':')[0]), Int32.Parse(entry.Split(':')[1])) : new IPEndPoint(IPAddress.Loopback, 0)));
|
||||||
|
//UserInfo.IPs.AddRange(ips); //2014.08.29.
|
||||||
|
/*foreach(var entry in ips) //2014.08.30.
|
||||||
|
{
|
||||||
|
UserInfo.IPs.Add(entry);
|
||||||
|
}*/
|
||||||
|
UserInfo.IPs = new HashSet<IPEndPoint>(ips); //2014.08.30.
|
||||||
|
//Storage.Settings["myip"] = respstr[2]; //2014.08.29. - A CurrentUser.IPs-en keresztül is lehet rá hivatkozni
|
||||||
|
CurrentUser.IP = IPAddress.Parse(respstr[2]); //2014.10.24. - Most már csak ott lehet rá hivatkozni, felesleges eltárolni
|
||||||
|
//CurrentUser.State = 1; //2014.08.31. 0:42 -- MainForm
|
||||||
|
//2014.09.19. - Bejelentkezés elküldése áthelyezve a MainForm-ba
|
||||||
|
|
||||||
|
CurrentUser.UserID = Int32.Parse(respstr[0]); //2014.09.01. - Áthelyeztem, hogy addig ne higgye bejelentkezettnek, amíg el nem küldi a többieknek
|
||||||
|
|
||||||
|
Storage.SaltKey = CalculateMD5Hash(PassText); //2014.08.07.
|
||||||
|
//Storage.FileName = CurrentUser.UserID.ToString() + ".db"; //2014.08.07.
|
||||||
|
Storage.FileName = respstr[0] + ".db"; //2014.09.01. - Felesleges számmá alakítani, majd vissza
|
||||||
|
|
||||||
|
CurrentUser.UserName = UserText; //2014.09.01. - Ha semmit nem tud saját magáról, és más sem, de nem ismerőse saját magának, akkor az itt beállított felhasználónév érvényesül
|
||||||
|
CurrentUser.Name = UserText; //2014.09.01.
|
||||||
|
string ReceivedPass = respstr[4]; //2014.10.24. 1:39
|
||||||
|
//LoginForm.UserCode = CalculateMD5Hash(CalculateMD5Hash(PassText) + " Some text because why not " + CurrentUser.UserID).ToLower();
|
||||||
|
LoginForm.UserCode = CalculateMD5Hash(ReceivedPass + " Some text because why not " + CurrentUser.UserID).ToLower();
|
||||||
|
|
||||||
|
Closeable = true;
|
||||||
|
this.Invoke(new MyDelegate(SetLoginValues));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CalculateMD5Hash(string input)
|
||||||
|
{
|
||||||
|
// step 1, calculate MD5 hash from input
|
||||||
|
MD5 md5 = System.Security.Cryptography.MD5.Create();
|
||||||
|
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
|
||||||
|
byte[] hash = md5.ComputeHash(inputBytes);
|
||||||
|
|
||||||
|
// step 2, convert byte array to hex string
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 0; i < hash.Length; i++)
|
||||||
|
{
|
||||||
|
sb.Append(hash[i].ToString("X2"));
|
||||||
|
}
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RegistrateLink(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
(new LoginForm_RegistrationForm()).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
if (LThread != null && LThread.IsAlive)
|
||||||
|
{
|
||||||
|
LThread.Abort(); //2014.03.27. - Na vajon kell-e más
|
||||||
|
Request.Abort(); //2014.03.27. - Kell... Ez
|
||||||
|
}
|
||||||
|
if (CurrentUser.UserID == 0)
|
||||||
|
Program.Exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
if (textBox1.Text.Length == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Nincs megadva felhasználónév."); //Translate!
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (MessageBox.Show("Új jelszót kérsz a megadott névhez?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
string ret = Networking.SendRequest("resetpass", textBox1.Text, 0, false);
|
||||||
|
if (ret == "nouser")
|
||||||
|
MessageBox.Show("A megadott felhasználó nem létezik.");
|
||||||
|
else if (ret == "already")
|
||||||
|
MessageBox.Show("A link MÁR el lett küldve az E-mail címedre.");
|
||||||
|
else if (ret == "sent")
|
||||||
|
MessageBox.Show("A link elküldve az E-mail címedre.");
|
||||||
|
else if (ret.Contains("notsent"))
|
||||||
|
MessageBox.Show("A link NEM lett elküldve az E-mail címedre.\nHiba: " + ret.Remove(ret.IndexOf("notsent"), "notsent".Length + 1));
|
||||||
|
else
|
||||||
|
MessageBox.Show("Ismeretlen hiba:\n" + ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
125
Versions/Less Closed Beta/v3.0/MSGer.tk/LoginForm.resx
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="textBox3.Text" xml:space="preserve">
|
||||||
|
<value>Az e-mail helyett használható a felhasználóneved is.
|
||||||
|
|
||||||
|
Ha nem tudsz bejelentkezni, próbáld meg újrainditani a programot. Ha az sem segít, és nem a felhasználóneveddel/jelszavaddal van a probléma, akkor jelentsd a problémát.</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
274
Versions/Less Closed Beta/v3.0/MSGer.tk/MSGer.tk.csproj
Normal file
|
@ -0,0 +1,274 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{F60940C0-05FC-46C0-948E-6DBECBBE38DD}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>MSGer.tk</RootNamespace>
|
||||||
|
<AssemblyName>MSGer.tk</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<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' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<NoWin32Manifest>true</NoWin32Manifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="GlacialList">
|
||||||
|
<HintPath>D:\Downloads\GlacialListSource13\ListView\bin\Debug\GlacialList.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Khendys.Controls.ExRichTextBox, Version=1.0.5172.33773, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>D:\Downloads\ExRichTextBox_src\ExRichTextBox\bin\Debug\Khendys.Controls.ExRichTextBox.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Design" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="AboutBox1.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AboutBox1.Designer.cs">
|
||||||
|
<DependentUpon>AboutBox1.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AddPartner.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AddPartner.Designer.cs">
|
||||||
|
<DependentUpon>AddPartner.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="BeforeLogin.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="BeforeLogin.Designer.cs">
|
||||||
|
<DependentUpon>BeforeLogin.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ChatForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ChatForm.Designer.cs">
|
||||||
|
<DependentUpon>ChatForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="CurrentUser.cs" />
|
||||||
|
<Compile Include="ErrorHandling.cs" />
|
||||||
|
<Compile Include="InvitePartner.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="InvitePartner.Designer.cs">
|
||||||
|
<DependentUpon>InvitePartner.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Language.cs" />
|
||||||
|
<Compile Include="LoginForm.RegistrationForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LoginForm.RegistrationForm.Designer.cs">
|
||||||
|
<DependentUpon>LoginForm.RegistrationForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.Designer.cs">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LoginForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LoginForm.Designer.cs">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Networking.cs" />
|
||||||
|
<Compile Include="Notifier.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Notifier.Designer.cs">
|
||||||
|
<DependentUpon>Notifier.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PartnerInformation.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PartnerInformation.Designer.cs">
|
||||||
|
<DependentUpon>PartnerInformation.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProgressStatistic.cs" />
|
||||||
|
<Compile Include="SettingsForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SettingsForm.Designer.cs">
|
||||||
|
<DependentUpon>SettingsForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Storage.cs" />
|
||||||
|
<Compile Include="StreamHelper.cs" />
|
||||||
|
<Compile Include="TextFormat.cs" />
|
||||||
|
<Compile Include="UpdateListAndChat.cs" />
|
||||||
|
<Compile Include="_MyNotifier.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SelectPartnerForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SelectPartnerForm.Designer.cs">
|
||||||
|
<DependentUpon>SelectPartnerForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="TaskbarNotifier.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UserInfo.cs" />
|
||||||
|
<EmbeddedResource Include="AboutBox1.resx">
|
||||||
|
<DependentUpon>AboutBox1.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="AddPartner.resx">
|
||||||
|
<DependentUpon>AddPartner.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="BeforeLogin.resx">
|
||||||
|
<DependentUpon>BeforeLogin.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="ChatForm.resx">
|
||||||
|
<DependentUpon>ChatForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="InvitePartner.resx">
|
||||||
|
<DependentUpon>InvitePartner.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="LoginForm.RegistrationForm.resx">
|
||||||
|
<DependentUpon>LoginForm.RegistrationForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="MainForm.resx">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="LoginForm.resx">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Notifier.resx">
|
||||||
|
<DependentUpon>Notifier.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="PartnerInformation.resx">
|
||||||
|
<DependentUpon>PartnerInformation.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="SelectPartnerForm.resx">
|
||||||
|
<DependentUpon>SelectPartnerForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="SettingsForm.resx">
|
||||||
|
<DependentUpon>SettingsForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Blue-Wallpaper-HD 2.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Menü 2.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Menü 21.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Menü 3.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Blue-Wallpaper-HD 21.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Menü 22.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Keresősáv.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Blue-Wallpaper-HD1.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<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>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\..\RichListView\RichListView\RichListView\RichListView.csproj">
|
||||||
|
<Project>{AE5CA7F1-D19E-479B-B06B-39C1280C5005}</Project>
|
||||||
|
<Name>RichListView</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
13
Versions/Less Closed Beta/v3.0/MSGer.tk/MSGer.tk.csproj.user
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||||
|
<InstallUrlHistory />
|
||||||
|
<SupportUrlHistory />
|
||||||
|
<UpdateUrlHistory />
|
||||||
|
<BootstrapperUrlHistory />
|
||||||
|
<ErrorReportUrlHistory />
|
||||||
|
<FallbackCulture>en-US</FallbackCulture>
|
||||||
|
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
28
Versions/Less Closed Beta/v3.0/MSGer.tk/MSGer.tk.sln
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Express 2013 for Windows Desktop
|
||||||
|
VisualStudioVersion = 12.0.21005.1
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSGer.tk", "MSGer.tk.csproj", "{F60940C0-05FC-46C0-948E-6DBECBBE38DD}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RichListView", "..\..\..\RichListView\RichListView\RichListView\RichListView.csproj", "{AE5CA7F1-D19E-479B-B06B-39C1280C5005}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{F60940C0-05FC-46C0-948E-6DBECBBE38DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F60940C0-05FC-46C0-948E-6DBECBBE38DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F60940C0-05FC-46C0-948E-6DBECBBE38DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F60940C0-05FC-46C0-948E-6DBECBBE38DD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AE5CA7F1-D19E-479B-B06B-39C1280C5005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AE5CA7F1-D19E-479B-B06B-39C1280C5005}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AE5CA7F1-D19E-479B-B06B-39C1280C5005}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AE5CA7F1-D19E-479B-B06B-39C1280C5005}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/MSGer.tk.v11.suo
Normal file
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/MSGer.tk.v12.suo
Normal file
911
Versions/Less Closed Beta/v3.0/MSGer.tk/MainForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,911 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class MainForm
|
||||||
|
{
|
||||||
|
/// <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();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
|
SzNPProjects.RichListViewColumn richListViewColumn1 = new SzNPProjects.RichListViewColumn();
|
||||||
|
SzNPProjects.RichListViewColumn richListViewColumn2 = new SzNPProjects.RichListViewColumn();
|
||||||
|
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
|
this.iconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator18 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.fájlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.kijelentkezésToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.állapotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.elérhetőToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.elfoglaltToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.nincsAGépnélToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.fájlKüldéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.üzenetekElőzményeinekMegtekintéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.bezárásToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.kilépésToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ismerősökToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ismerősFelvételeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ismerősSzerkesztéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ismerősTörléseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.csoportLétrehozásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.kategóriaLétrehozásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.kategóriaSzerkesztéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.kategóriaTörléseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.műveletekToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.egyébKüldéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.emailKüldéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.fájlKüldéseToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.ismerősSzámitógépénekFelhivásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.videóhivásInditásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.onlineFájlokMegtekintéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.közösJátékToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.távsegitségKéréseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.eszközökToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.mindigLegfelülToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.hangulatjelekToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.megjelenitendőKépVáltásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.háttérMódositásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.hangokÉsVideóBeállitásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.beállitásokToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.súgóToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.témakörökToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.aSzolgáltatásÁllapotsaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.adatvédelmiNyilatkozatToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.használatiFeltételekToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.visszaélésBejelentéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.segitsenAProgramTökéletesitésébenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.névjegyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.partnerImages = new System.Windows.Forms.ImageList(this.components);
|
||||||
|
this.partnerMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.üzenetküldésToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.emailKüldéseemailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.információToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.ismerősLetiltásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ismerősTörléseToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator15 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.becenévSzerkesztéseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator16 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.eseményértesitésekToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator17 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.beszélgetésnaplóMegnyitásaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.contactList = new SzNPProjects.RichListView();
|
||||||
|
this.iconMenu.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
this.partnerMenu.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// notifyIcon1
|
||||||
|
//
|
||||||
|
this.notifyIcon1.ContextMenuStrip = this.iconMenu;
|
||||||
|
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
|
||||||
|
this.notifyIcon1.Text = "MSGer.tk";
|
||||||
|
this.notifyIcon1.DoubleClick += new System.EventHandler(this.toolStripMenuItem4_Click);
|
||||||
|
//
|
||||||
|
// iconMenu
|
||||||
|
//
|
||||||
|
this.iconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripMenuItem4,
|
||||||
|
this.toolStripSeparator18,
|
||||||
|
this.toolStripMenuItem8,
|
||||||
|
this.toolStripMenuItem9});
|
||||||
|
this.iconMenu.Name = "partnerMenu";
|
||||||
|
this.iconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||||
|
this.iconMenu.Size = new System.Drawing.Size(147, 76);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem4
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||||
|
this.toolStripMenuItem4.Size = new System.Drawing.Size(146, 22);
|
||||||
|
this.toolStripMenuItem4.Text = "Megjelenítés";
|
||||||
|
this.toolStripMenuItem4.Click += new System.EventHandler(this.toolStripMenuItem4_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator18
|
||||||
|
//
|
||||||
|
this.toolStripSeparator18.Name = "toolStripSeparator18";
|
||||||
|
this.toolStripSeparator18.Size = new System.Drawing.Size(143, 6);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem8
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||||
|
this.toolStripMenuItem8.Size = new System.Drawing.Size(146, 22);
|
||||||
|
this.toolStripMenuItem8.Text = "Kijelentkezés";
|
||||||
|
this.toolStripMenuItem8.Click += new System.EventHandler(this.LogoutUser);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem9
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||||
|
this.toolStripMenuItem9.Size = new System.Drawing.Size(146, 22);
|
||||||
|
this.toolStripMenuItem9.Text = "Kilépés";
|
||||||
|
this.toolStripMenuItem9.Click += new System.EventHandler(this.ExitProgram);
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||||
|
this.button1.Location = new System.Drawing.Point(519, 104);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(35, 23);
|
||||||
|
this.button1.TabIndex = 4;
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.panel2.BackgroundImage = global::MSGer.tk.Properties.Resources.Keresősáv;
|
||||||
|
this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.panel2.Controls.Add(this.textBox1);
|
||||||
|
this.panel2.Location = new System.Drawing.Point(0, 96);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(513, 31);
|
||||||
|
this.panel2.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(249)))), ((int)(((byte)(252)))));
|
||||||
|
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.textBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(161)))), ((int)(((byte)(194)))));
|
||||||
|
this.textBox1.Location = new System.Drawing.Point(6, 8);
|
||||||
|
this.textBox1.Name = "textBox1";
|
||||||
|
this.textBox1.Size = new System.Drawing.Size(504, 13);
|
||||||
|
this.textBox1.TabIndex = 3;
|
||||||
|
this.textBox1.Text = "Ismerősök keresése...";
|
||||||
|
this.textBox1.Enter += new System.EventHandler(this.ClearSearchBar);
|
||||||
|
this.textBox1.Leave += new System.EventHandler(this.PutTextInSearchBar);
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.panel1.BackgroundImage = global::MSGer.tk.Properties.Resources.Blue_Wallpaper_HD_2;
|
||||||
|
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 27);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(624, 63);
|
||||||
|
this.panel1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.menuStrip1.BackgroundImage = global::MSGer.tk.Properties.Resources.Menü_2;
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.fájlToolStripMenuItem,
|
||||||
|
this.ismerősökToolStripMenuItem,
|
||||||
|
this.műveletekToolStripMenuItem,
|
||||||
|
this.eszközökToolStripMenuItem,
|
||||||
|
this.súgóToolStripMenuItem});
|
||||||
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(624, 24);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// fájlToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.fájlToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.kijelentkezésToolStripMenuItem,
|
||||||
|
this.toolStripMenuItem1,
|
||||||
|
this.toolStripSeparator1,
|
||||||
|
this.állapotToolStripMenuItem,
|
||||||
|
this.toolStripSeparator2,
|
||||||
|
this.fájlKüldéseToolStripMenuItem,
|
||||||
|
this.beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem,
|
||||||
|
this.üzenetekElőzményeinekMegtekintéseToolStripMenuItem,
|
||||||
|
this.toolStripSeparator3,
|
||||||
|
this.bezárásToolStripMenuItem,
|
||||||
|
this.toolStripSeparator4,
|
||||||
|
this.kilépésToolStripMenuItem});
|
||||||
|
this.fájlToolStripMenuItem.Name = "fájlToolStripMenuItem";
|
||||||
|
this.fájlToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||||
|
this.fájlToolStripMenuItem.Text = "Fájl";
|
||||||
|
//
|
||||||
|
// kijelentkezésToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.kijelentkezésToolStripMenuItem.Name = "kijelentkezésToolStripMenuItem";
|
||||||
|
this.kijelentkezésToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.kijelentkezésToolStripMenuItem.Text = "Kijelentkezés";
|
||||||
|
this.kijelentkezésToolStripMenuItem.Click += new System.EventHandler(this.LogoutUser);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
|
this.toolStripMenuItem1.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.toolStripMenuItem1.Text = "Újabb felhasználó bejelentkeztetése...";
|
||||||
|
this.toolStripMenuItem1.Click += new System.EventHandler(this.LoginNewUser);
|
||||||
|
//
|
||||||
|
// toolStripSeparator1
|
||||||
|
//
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
|
this.toolStripSeparator1.Size = new System.Drawing.Size(289, 6);
|
||||||
|
//
|
||||||
|
// állapotToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.állapotToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.elérhetőToolStripMenuItem,
|
||||||
|
this.elfoglaltToolStripMenuItem,
|
||||||
|
this.nincsAGépnélToolStripMenuItem,
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem});
|
||||||
|
this.állapotToolStripMenuItem.Name = "állapotToolStripMenuItem";
|
||||||
|
this.állapotToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.állapotToolStripMenuItem.Text = "Állapot";
|
||||||
|
//
|
||||||
|
// elérhetőToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.elérhetőToolStripMenuItem.Name = "elérhetőToolStripMenuItem";
|
||||||
|
this.elérhetőToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
|
||||||
|
this.elérhetőToolStripMenuItem.Text = "Elérhető";
|
||||||
|
this.elérhetőToolStripMenuItem.Click += new System.EventHandler(this.SetOnlineState);
|
||||||
|
//
|
||||||
|
// elfoglaltToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.elfoglaltToolStripMenuItem.Name = "elfoglaltToolStripMenuItem";
|
||||||
|
this.elfoglaltToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
|
||||||
|
this.elfoglaltToolStripMenuItem.Text = "Elfoglalt";
|
||||||
|
this.elfoglaltToolStripMenuItem.Click += new System.EventHandler(this.SetOnlineState);
|
||||||
|
//
|
||||||
|
// nincsAGépnélToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.nincsAGépnélToolStripMenuItem.Name = "nincsAGépnélToolStripMenuItem";
|
||||||
|
this.nincsAGépnélToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
|
||||||
|
this.nincsAGépnélToolStripMenuItem.Text = "Nincs a gépnél";
|
||||||
|
this.nincsAGépnélToolStripMenuItem.Click += new System.EventHandler(this.SetOnlineState);
|
||||||
|
//
|
||||||
|
// rejtveKapcsolódikToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem.Name = "rejtveKapcsolódikToolStripMenuItem";
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem.Text = "Rejtve kapcsolódik";
|
||||||
|
this.rejtveKapcsolódikToolStripMenuItem.Click += new System.EventHandler(this.SetOnlineState);
|
||||||
|
//
|
||||||
|
// toolStripSeparator2
|
||||||
|
//
|
||||||
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
|
this.toolStripSeparator2.Size = new System.Drawing.Size(289, 6);
|
||||||
|
//
|
||||||
|
// fájlKüldéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.fájlKüldéseToolStripMenuItem.Name = "fájlKüldéseToolStripMenuItem";
|
||||||
|
this.fájlKüldéseToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.fájlKüldéseToolStripMenuItem.Text = "Fájl küldése...";
|
||||||
|
this.fájlKüldéseToolStripMenuItem.Click += new System.EventHandler(this.SelectPartner);
|
||||||
|
//
|
||||||
|
// beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Name = "beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem";
|
||||||
|
this.beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = "Beérkezett fájlok mappájának megnyitása";
|
||||||
|
//
|
||||||
|
// üzenetekElőzményeinekMegtekintéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Name = "üzenetekElőzményeinekMegtekintéseToolStripMenuItem";
|
||||||
|
this.üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = "Üzenetek előzményeinek megtekintése...";
|
||||||
|
//
|
||||||
|
// toolStripSeparator3
|
||||||
|
//
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
|
this.toolStripSeparator3.Size = new System.Drawing.Size(289, 6);
|
||||||
|
//
|
||||||
|
// bezárásToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.bezárásToolStripMenuItem.Name = "bezárásToolStripMenuItem";
|
||||||
|
this.bezárásToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.bezárásToolStripMenuItem.Text = "Bezárás";
|
||||||
|
this.bezárásToolStripMenuItem.Click += new System.EventHandler(this.bezárásToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator4
|
||||||
|
//
|
||||||
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
|
this.toolStripSeparator4.Size = new System.Drawing.Size(289, 6);
|
||||||
|
//
|
||||||
|
// kilépésToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.kilépésToolStripMenuItem.Name = "kilépésToolStripMenuItem";
|
||||||
|
this.kilépésToolStripMenuItem.Size = new System.Drawing.Size(292, 22);
|
||||||
|
this.kilépésToolStripMenuItem.Text = "Kilépés";
|
||||||
|
this.kilépésToolStripMenuItem.Click += new System.EventHandler(this.ExitProgram);
|
||||||
|
//
|
||||||
|
// ismerősökToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősökToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.ismerősFelvételeToolStripMenuItem,
|
||||||
|
this.ismerősSzerkesztéseToolStripMenuItem,
|
||||||
|
this.ismerősTörléseToolStripMenuItem,
|
||||||
|
this.toolStripMenuItem3,
|
||||||
|
this.toolStripSeparator5,
|
||||||
|
this.csoportLétrehozásaToolStripMenuItem,
|
||||||
|
this.toolStripSeparator6,
|
||||||
|
this.kategóriaLétrehozásaToolStripMenuItem,
|
||||||
|
this.kategóriaSzerkesztéseToolStripMenuItem,
|
||||||
|
this.kategóriaTörléseToolStripMenuItem});
|
||||||
|
this.ismerősökToolStripMenuItem.Name = "ismerősökToolStripMenuItem";
|
||||||
|
this.ismerősökToolStripMenuItem.Size = new System.Drawing.Size(73, 20);
|
||||||
|
this.ismerősökToolStripMenuItem.Text = "Ismerősök";
|
||||||
|
//
|
||||||
|
// ismerősFelvételeToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősFelvételeToolStripMenuItem.Name = "ismerősFelvételeToolStripMenuItem";
|
||||||
|
this.ismerősFelvételeToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.ismerősFelvételeToolStripMenuItem.Text = "Ismerős felvétele...";
|
||||||
|
this.ismerősFelvételeToolStripMenuItem.Click += new System.EventHandler(this.ismerősFelvételeToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// ismerősSzerkesztéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősSzerkesztéseToolStripMenuItem.Name = "ismerősSzerkesztéseToolStripMenuItem";
|
||||||
|
this.ismerősSzerkesztéseToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.ismerősSzerkesztéseToolStripMenuItem.Text = "Ismerős szerkesztése...";
|
||||||
|
//
|
||||||
|
// ismerősTörléseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősTörléseToolStripMenuItem.Name = "ismerősTörléseToolStripMenuItem";
|
||||||
|
this.ismerősTörléseToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.ismerősTörléseToolStripMenuItem.Text = "Ismerős törlése...";
|
||||||
|
//
|
||||||
|
// toolStripMenuItem3
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||||
|
this.toolStripMenuItem3.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.toolStripMenuItem3.Text = "Ismerős meghivása...";
|
||||||
|
this.toolStripMenuItem3.Click += new System.EventHandler(this.InvitePartner);
|
||||||
|
//
|
||||||
|
// toolStripSeparator5
|
||||||
|
//
|
||||||
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
|
this.toolStripSeparator5.Size = new System.Drawing.Size(196, 6);
|
||||||
|
//
|
||||||
|
// csoportLétrehozásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.csoportLétrehozásaToolStripMenuItem.Name = "csoportLétrehozásaToolStripMenuItem";
|
||||||
|
this.csoportLétrehozásaToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.csoportLétrehozásaToolStripMenuItem.Text = "Csoport létrehozása...";
|
||||||
|
//
|
||||||
|
// toolStripSeparator6
|
||||||
|
//
|
||||||
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
|
this.toolStripSeparator6.Size = new System.Drawing.Size(196, 6);
|
||||||
|
//
|
||||||
|
// kategóriaLétrehozásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.kategóriaLétrehozásaToolStripMenuItem.Name = "kategóriaLétrehozásaToolStripMenuItem";
|
||||||
|
this.kategóriaLétrehozásaToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.kategóriaLétrehozásaToolStripMenuItem.Text = "Kategória létrehozása...";
|
||||||
|
//
|
||||||
|
// kategóriaSzerkesztéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.kategóriaSzerkesztéseToolStripMenuItem.Name = "kategóriaSzerkesztéseToolStripMenuItem";
|
||||||
|
this.kategóriaSzerkesztéseToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.kategóriaSzerkesztéseToolStripMenuItem.Text = "Kategória szerkesztése...";
|
||||||
|
//
|
||||||
|
// kategóriaTörléseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.kategóriaTörléseToolStripMenuItem.Name = "kategóriaTörléseToolStripMenuItem";
|
||||||
|
this.kategóriaTörléseToolStripMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||||
|
this.kategóriaTörléseToolStripMenuItem.Text = "Kategória törlése...";
|
||||||
|
//
|
||||||
|
// műveletekToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.műveletekToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem,
|
||||||
|
this.egyébKüldéseToolStripMenuItem,
|
||||||
|
this.toolStripSeparator7,
|
||||||
|
this.ismerősSzámitógépénekFelhivásaToolStripMenuItem,
|
||||||
|
this.videóhivásInditásaToolStripMenuItem,
|
||||||
|
this.onlineFájlokMegtekintéseToolStripMenuItem,
|
||||||
|
this.közösJátékToolStripMenuItem,
|
||||||
|
this.távsegitségKéréseToolStripMenuItem});
|
||||||
|
this.műveletekToolStripMenuItem.Name = "műveletekToolStripMenuItem";
|
||||||
|
this.műveletekToolStripMenuItem.Size = new System.Drawing.Size(74, 20);
|
||||||
|
this.műveletekToolStripMenuItem.Text = "Műveletek";
|
||||||
|
//
|
||||||
|
// azonnaliÜzenetKüldéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem.Name = "azonnaliÜzenetKüldéseToolStripMenuItem";
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem.Text = "Azonnali üzenet küldése...";
|
||||||
|
this.azonnaliÜzenetKüldéseToolStripMenuItem.Click += new System.EventHandler(this.SelectPartner);
|
||||||
|
//
|
||||||
|
// egyébKüldéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.egyébKüldéseToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.emailKüldéseToolStripMenuItem,
|
||||||
|
this.fájlKüldéseToolStripMenuItem1});
|
||||||
|
this.egyébKüldéseToolStripMenuItem.Name = "egyébKüldéseToolStripMenuItem";
|
||||||
|
this.egyébKüldéseToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.egyébKüldéseToolStripMenuItem.Text = "Egyéb küldése";
|
||||||
|
//
|
||||||
|
// emailKüldéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.emailKüldéseToolStripMenuItem.Name = "emailKüldéseToolStripMenuItem";
|
||||||
|
this.emailKüldéseToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||||
|
this.emailKüldéseToolStripMenuItem.Text = "E-mail küldése...";
|
||||||
|
//
|
||||||
|
// fájlKüldéseToolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.fájlKüldéseToolStripMenuItem1.Name = "fájlKüldéseToolStripMenuItem1";
|
||||||
|
this.fájlKüldéseToolStripMenuItem1.Size = new System.Drawing.Size(160, 22);
|
||||||
|
this.fájlKüldéseToolStripMenuItem1.Text = "Fájl küldése...";
|
||||||
|
//
|
||||||
|
// toolStripSeparator7
|
||||||
|
//
|
||||||
|
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||||
|
this.toolStripSeparator7.Size = new System.Drawing.Size(250, 6);
|
||||||
|
//
|
||||||
|
// ismerősSzámitógépénekFelhivásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősSzámitógépénekFelhivásaToolStripMenuItem.Name = "ismerősSzámitógépénekFelhivásaToolStripMenuItem";
|
||||||
|
this.ismerősSzámitógépénekFelhivásaToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = "Ismerős számitógépének felhivása";
|
||||||
|
//
|
||||||
|
// videóhivásInditásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.videóhivásInditásaToolStripMenuItem.Name = "videóhivásInditásaToolStripMenuItem";
|
||||||
|
this.videóhivásInditásaToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.videóhivásInditásaToolStripMenuItem.Text = "Videóhivás inditása...";
|
||||||
|
//
|
||||||
|
// onlineFájlokMegtekintéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.onlineFájlokMegtekintéseToolStripMenuItem.Name = "onlineFájlokMegtekintéseToolStripMenuItem";
|
||||||
|
this.onlineFájlokMegtekintéseToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.onlineFájlokMegtekintéseToolStripMenuItem.Text = "Online fájlok megtekintése";
|
||||||
|
//
|
||||||
|
// közösJátékToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.közösJátékToolStripMenuItem.Name = "közösJátékToolStripMenuItem";
|
||||||
|
this.közösJátékToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.közösJátékToolStripMenuItem.Text = "Közös játék...";
|
||||||
|
//
|
||||||
|
// távsegitségKéréseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.távsegitségKéréseToolStripMenuItem.Name = "távsegitségKéréseToolStripMenuItem";
|
||||||
|
this.távsegitségKéréseToolStripMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||||
|
this.távsegitségKéréseToolStripMenuItem.Text = "Távsegitség kérése...";
|
||||||
|
//
|
||||||
|
// eszközökToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.eszközökToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.mindigLegfelülToolStripMenuItem,
|
||||||
|
this.toolStripSeparator8,
|
||||||
|
this.hangulatjelekToolStripMenuItem,
|
||||||
|
this.megjelenitendőKépVáltásaToolStripMenuItem,
|
||||||
|
this.háttérMódositásaToolStripMenuItem,
|
||||||
|
this.toolStripSeparator9,
|
||||||
|
this.hangokÉsVideóBeállitásaToolStripMenuItem,
|
||||||
|
this.toolStripSeparator10,
|
||||||
|
this.beállitásokToolStripMenuItem});
|
||||||
|
this.eszközökToolStripMenuItem.Name = "eszközökToolStripMenuItem";
|
||||||
|
this.eszközökToolStripMenuItem.Size = new System.Drawing.Size(66, 20);
|
||||||
|
this.eszközökToolStripMenuItem.Text = "Eszközök";
|
||||||
|
//
|
||||||
|
// mindigLegfelülToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.mindigLegfelülToolStripMenuItem.CheckOnClick = true;
|
||||||
|
this.mindigLegfelülToolStripMenuItem.Name = "mindigLegfelülToolStripMenuItem";
|
||||||
|
this.mindigLegfelülToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.mindigLegfelülToolStripMenuItem.Text = "Mindig legfelül";
|
||||||
|
this.mindigLegfelülToolStripMenuItem.Click += new System.EventHandler(this.mindigLegfelülToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator8
|
||||||
|
//
|
||||||
|
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
||||||
|
this.toolStripSeparator8.Size = new System.Drawing.Size(224, 6);
|
||||||
|
//
|
||||||
|
// hangulatjelekToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.hangulatjelekToolStripMenuItem.Name = "hangulatjelekToolStripMenuItem";
|
||||||
|
this.hangulatjelekToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.hangulatjelekToolStripMenuItem.Text = "Hangulatjelek...";
|
||||||
|
//
|
||||||
|
// megjelenitendőKépVáltásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.megjelenitendőKépVáltásaToolStripMenuItem.Name = "megjelenitendőKépVáltásaToolStripMenuItem";
|
||||||
|
this.megjelenitendőKépVáltásaToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.megjelenitendőKépVáltásaToolStripMenuItem.Text = "Megjelenitendő kép váltása...";
|
||||||
|
//
|
||||||
|
// háttérMódositásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.háttérMódositásaToolStripMenuItem.Name = "háttérMódositásaToolStripMenuItem";
|
||||||
|
this.háttérMódositásaToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.háttérMódositásaToolStripMenuItem.Text = "Háttér módositása...";
|
||||||
|
//
|
||||||
|
// toolStripSeparator9
|
||||||
|
//
|
||||||
|
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
||||||
|
this.toolStripSeparator9.Size = new System.Drawing.Size(224, 6);
|
||||||
|
//
|
||||||
|
// hangokÉsVideóBeállitásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.hangokÉsVideóBeállitásaToolStripMenuItem.Name = "hangokÉsVideóBeállitásaToolStripMenuItem";
|
||||||
|
this.hangokÉsVideóBeállitásaToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.hangokÉsVideóBeállitásaToolStripMenuItem.Text = "Hangok és videó beállitása...";
|
||||||
|
//
|
||||||
|
// toolStripSeparator10
|
||||||
|
//
|
||||||
|
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
||||||
|
this.toolStripSeparator10.Size = new System.Drawing.Size(224, 6);
|
||||||
|
//
|
||||||
|
// beállitásokToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.beállitásokToolStripMenuItem.Name = "beállitásokToolStripMenuItem";
|
||||||
|
this.beállitásokToolStripMenuItem.Size = new System.Drawing.Size(227, 22);
|
||||||
|
this.beállitásokToolStripMenuItem.Text = "Beállitások...";
|
||||||
|
this.beállitásokToolStripMenuItem.Click += new System.EventHandler(this.beállitásokToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// súgóToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.súgóToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.témakörökToolStripMenuItem,
|
||||||
|
this.toolStripSeparator11,
|
||||||
|
this.aSzolgáltatásÁllapotsaToolStripMenuItem,
|
||||||
|
this.adatvédelmiNyilatkozatToolStripMenuItem,
|
||||||
|
this.használatiFeltételekToolStripMenuItem,
|
||||||
|
this.visszaélésBejelentéseToolStripMenuItem,
|
||||||
|
this.toolStripSeparator12,
|
||||||
|
this.segitsenAProgramTökéletesitésébenToolStripMenuItem,
|
||||||
|
this.toolStripSeparator13,
|
||||||
|
this.névjegyToolStripMenuItem});
|
||||||
|
this.súgóToolStripMenuItem.Name = "súgóToolStripMenuItem";
|
||||||
|
this.súgóToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||||
|
this.súgóToolStripMenuItem.Text = "Súgó";
|
||||||
|
//
|
||||||
|
// témakörökToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.témakörökToolStripMenuItem.Name = "témakörökToolStripMenuItem";
|
||||||
|
this.témakörökToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.témakörökToolStripMenuItem.Text = "Témakörök";
|
||||||
|
//
|
||||||
|
// toolStripSeparator11
|
||||||
|
//
|
||||||
|
this.toolStripSeparator11.Name = "toolStripSeparator11";
|
||||||
|
this.toolStripSeparator11.Size = new System.Drawing.Size(267, 6);
|
||||||
|
//
|
||||||
|
// aSzolgáltatásÁllapotsaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.aSzolgáltatásÁllapotsaToolStripMenuItem.Name = "aSzolgáltatásÁllapotsaToolStripMenuItem";
|
||||||
|
this.aSzolgáltatásÁllapotsaToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.aSzolgáltatásÁllapotsaToolStripMenuItem.Text = "A szolgáltatás állapota";
|
||||||
|
//
|
||||||
|
// adatvédelmiNyilatkozatToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.adatvédelmiNyilatkozatToolStripMenuItem.Name = "adatvédelmiNyilatkozatToolStripMenuItem";
|
||||||
|
this.adatvédelmiNyilatkozatToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.adatvédelmiNyilatkozatToolStripMenuItem.Text = "Adatvédelmi nyilatkozat";
|
||||||
|
//
|
||||||
|
// használatiFeltételekToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.használatiFeltételekToolStripMenuItem.Name = "használatiFeltételekToolStripMenuItem";
|
||||||
|
this.használatiFeltételekToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.használatiFeltételekToolStripMenuItem.Text = "Használati feltételek";
|
||||||
|
//
|
||||||
|
// visszaélésBejelentéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.visszaélésBejelentéseToolStripMenuItem.Name = "visszaélésBejelentéseToolStripMenuItem";
|
||||||
|
this.visszaélésBejelentéseToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.visszaélésBejelentéseToolStripMenuItem.Text = "Visszaélés bejelentése";
|
||||||
|
//
|
||||||
|
// toolStripSeparator12
|
||||||
|
//
|
||||||
|
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
||||||
|
this.toolStripSeparator12.Size = new System.Drawing.Size(267, 6);
|
||||||
|
//
|
||||||
|
// segitsenAProgramTökéletesitésébenToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.segitsenAProgramTökéletesitésébenToolStripMenuItem.Name = "segitsenAProgramTökéletesitésébenToolStripMenuItem";
|
||||||
|
this.segitsenAProgramTökéletesitésébenToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = "Segitsen a program tökéletesitésében";
|
||||||
|
//
|
||||||
|
// toolStripSeparator13
|
||||||
|
//
|
||||||
|
this.toolStripSeparator13.Name = "toolStripSeparator13";
|
||||||
|
this.toolStripSeparator13.Size = new System.Drawing.Size(267, 6);
|
||||||
|
//
|
||||||
|
// névjegyToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.névjegyToolStripMenuItem.Name = "névjegyToolStripMenuItem";
|
||||||
|
this.névjegyToolStripMenuItem.Size = new System.Drawing.Size(270, 22);
|
||||||
|
this.névjegyToolStripMenuItem.Text = "Névjegy";
|
||||||
|
this.névjegyToolStripMenuItem.Click += new System.EventHandler(this.névjegyToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// partnerImages
|
||||||
|
//
|
||||||
|
this.partnerImages.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
|
||||||
|
this.partnerImages.ImageSize = new System.Drawing.Size(16, 16);
|
||||||
|
this.partnerImages.TransparentColor = System.Drawing.Color.Transparent;
|
||||||
|
//
|
||||||
|
// partnerMenu
|
||||||
|
//
|
||||||
|
this.partnerMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.üzenetküldésToolStripMenuItem,
|
||||||
|
this.emailKüldéseemailToolStripMenuItem,
|
||||||
|
this.toolStripMenuItem2,
|
||||||
|
this.információToolStripMenuItem,
|
||||||
|
this.toolStripSeparator14,
|
||||||
|
this.ismerősLetiltásaToolStripMenuItem,
|
||||||
|
this.ismerősTörléseToolStripMenuItem1,
|
||||||
|
this.toolStripSeparator15,
|
||||||
|
this.becenévSzerkesztéseToolStripMenuItem,
|
||||||
|
this.toolStripSeparator16,
|
||||||
|
this.eseményértesitésekToolStripMenuItem,
|
||||||
|
this.toolStripSeparator17,
|
||||||
|
this.beszélgetésnaplóMegnyitásaToolStripMenuItem});
|
||||||
|
this.partnerMenu.Name = "partnerMenu";
|
||||||
|
this.partnerMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||||
|
this.partnerMenu.Size = new System.Drawing.Size(238, 226);
|
||||||
|
//
|
||||||
|
// üzenetküldésToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.üzenetküldésToolStripMenuItem.Name = "üzenetküldésToolStripMenuItem";
|
||||||
|
this.üzenetküldésToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.üzenetküldésToolStripMenuItem.Text = "Üzenetküldés";
|
||||||
|
this.üzenetküldésToolStripMenuItem.Click += new System.EventHandler(this.PartnerMenu_SendMessage);
|
||||||
|
//
|
||||||
|
// emailKüldéseemailToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.emailKüldéseemailToolStripMenuItem.Name = "emailKüldéseemailToolStripMenuItem";
|
||||||
|
this.emailKüldéseemailToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.emailKüldéseemailToolStripMenuItem.Text = "E-mail küldése (email)";
|
||||||
|
//
|
||||||
|
// toolStripMenuItem2
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||||
|
this.toolStripMenuItem2.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.toolStripMenuItem2.Text = "E-mail másolása";
|
||||||
|
//
|
||||||
|
// információToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.információToolStripMenuItem.Name = "információToolStripMenuItem";
|
||||||
|
this.információToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.információToolStripMenuItem.Text = "Információ";
|
||||||
|
this.információToolStripMenuItem.Click += new System.EventHandler(this.információToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator14
|
||||||
|
//
|
||||||
|
this.toolStripSeparator14.Name = "toolStripSeparator14";
|
||||||
|
this.toolStripSeparator14.Size = new System.Drawing.Size(234, 6);
|
||||||
|
//
|
||||||
|
// ismerősLetiltásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.ismerősLetiltásaToolStripMenuItem.Name = "ismerősLetiltásaToolStripMenuItem";
|
||||||
|
this.ismerősLetiltásaToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.ismerősLetiltásaToolStripMenuItem.Text = "Ismerős letiltása";
|
||||||
|
//
|
||||||
|
// ismerősTörléseToolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.ismerősTörléseToolStripMenuItem1.Name = "ismerősTörléseToolStripMenuItem1";
|
||||||
|
this.ismerősTörléseToolStripMenuItem1.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.ismerősTörléseToolStripMenuItem1.Text = "Ismerős törlése";
|
||||||
|
//
|
||||||
|
// toolStripSeparator15
|
||||||
|
//
|
||||||
|
this.toolStripSeparator15.Name = "toolStripSeparator15";
|
||||||
|
this.toolStripSeparator15.Size = new System.Drawing.Size(234, 6);
|
||||||
|
//
|
||||||
|
// becenévSzerkesztéseToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.becenévSzerkesztéseToolStripMenuItem.Name = "becenévSzerkesztéseToolStripMenuItem";
|
||||||
|
this.becenévSzerkesztéseToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.becenévSzerkesztéseToolStripMenuItem.Text = "Becenév szerkesztése";
|
||||||
|
//
|
||||||
|
// toolStripSeparator16
|
||||||
|
//
|
||||||
|
this.toolStripSeparator16.Name = "toolStripSeparator16";
|
||||||
|
this.toolStripSeparator16.Size = new System.Drawing.Size(234, 6);
|
||||||
|
//
|
||||||
|
// eseményértesitésekToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.eseményértesitésekToolStripMenuItem.Name = "eseményértesitésekToolStripMenuItem";
|
||||||
|
this.eseményértesitésekToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.eseményértesitésekToolStripMenuItem.Text = "Eseményértesitések";
|
||||||
|
//
|
||||||
|
// toolStripSeparator17
|
||||||
|
//
|
||||||
|
this.toolStripSeparator17.Name = "toolStripSeparator17";
|
||||||
|
this.toolStripSeparator17.Size = new System.Drawing.Size(234, 6);
|
||||||
|
//
|
||||||
|
// beszélgetésnaplóMegnyitásaToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.beszélgetésnaplóMegnyitásaToolStripMenuItem.Name = "beszélgetésnaplóMegnyitásaToolStripMenuItem";
|
||||||
|
this.beszélgetésnaplóMegnyitásaToolStripMenuItem.Size = new System.Drawing.Size(237, 22);
|
||||||
|
this.beszélgetésnaplóMegnyitásaToolStripMenuItem.Text = "Beszélgetésnapló megnyitása...";
|
||||||
|
//
|
||||||
|
// contactList
|
||||||
|
//
|
||||||
|
this.contactList.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.contactList.AutoScroll = true;
|
||||||
|
this.contactList.AutoUpdate = true;
|
||||||
|
this.contactList.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
|
||||||
|
this.contactList.ColumnAutoFill = true;
|
||||||
|
richListViewColumn1.Text = null;
|
||||||
|
richListViewColumn1.Width = 50;
|
||||||
|
richListViewColumn2.Text = null;
|
||||||
|
richListViewColumn2.Width = 100;
|
||||||
|
this.contactList.Columns = new SzNPProjects.RichListViewColumn[] {
|
||||||
|
richListViewColumn1,
|
||||||
|
richListViewColumn2};
|
||||||
|
this.contactList.HeaderHeight = 0;
|
||||||
|
this.contactList.ItemHeight = 50;
|
||||||
|
this.contactList.Location = new System.Drawing.Point(0, 134);
|
||||||
|
this.contactList.Name = "contactList";
|
||||||
|
this.contactList.SelectedIndex = -1;
|
||||||
|
this.contactList.SelectionColor = System.Drawing.Color.Aqua;
|
||||||
|
this.contactList.Size = new System.Drawing.Size(624, 311);
|
||||||
|
this.contactList.TabIndex = 8;
|
||||||
|
this.contactList.ItemDoubleClicked += new System.EventHandler<int>(this.contactList_ItemDoubleClicked);
|
||||||
|
this.contactList.ItemRightClicked += new System.EventHandler<int>(this.contactList_ItemRightClicked);
|
||||||
|
//
|
||||||
|
// MainForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.LightSkyBlue;
|
||||||
|
this.ClientSize = new System.Drawing.Size(624, 442);
|
||||||
|
this.Controls.Add(this.contactList);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.button1);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Name = "MainForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Live Messenger - MSGer.tk";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BeforeExit);
|
||||||
|
this.Load += new System.EventHandler(this.OnMainFormLoad);
|
||||||
|
this.iconMenu.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panel2.PerformLayout();
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
this.partnerMenu.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem fájlToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem kijelentkezésToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem állapotToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem elérhetőToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem elfoglaltToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem nincsAGépnélToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem rejtveKapcsolódikToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem fájlKüldéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem üzenetekElőzményeinekMegtekintéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem bezárásToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem kilépésToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősökToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősFelvételeToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősSzerkesztéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősTörléseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem csoportLétrehozásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem kategóriaLétrehozásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem kategóriaSzerkesztéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem kategóriaTörléseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem műveletekToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem azonnaliÜzenetKüldéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem egyébKüldéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem emailKüldéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem fájlKüldéseToolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősSzámitógépénekFelhivásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem videóhivásInditásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem onlineFájlokMegtekintéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem közösJátékToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem távsegitségKéréseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem eszközökToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem mindigLegfelülToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem hangulatjelekToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem megjelenitendőKépVáltásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem háttérMódositásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem hangokÉsVideóBeállitásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem beállitásokToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem súgóToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem témakörökToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem aSzolgáltatásÁllapotsaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem adatvédelmiNyilatkozatToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem használatiFeltételekToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem visszaélésBejelentéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem segitsenAProgramTökéletesitésébenToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem névjegyToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.TextBox textBox1;
|
||||||
|
private System.Windows.Forms.Button button1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.ImageList partnerImages;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip partnerMenu;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem üzenetküldésToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem emailKüldéseemailToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem információToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősLetiltásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ismerősTörléseToolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator15;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem becenévSzerkesztéseToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator16;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem eseményértesitésekToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator17;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem beszélgetésnaplóMegnyitásaToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip iconMenu;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator18;
|
||||||
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
||||||
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem8;
|
||||||
|
public System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
||||||
|
internal System.Windows.Forms.NotifyIcon notifyIcon1;
|
||||||
|
internal SzNPProjects.RichListView contactList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
699
Versions/Less Closed Beta/v3.0/MSGer.tk/MainForm.cs
Normal file
|
@ -0,0 +1,699 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Net;
|
||||||
|
using System.IO;
|
||||||
|
using GlacialComponents.Controls;
|
||||||
|
using Khendys.Controls;
|
||||||
|
using System.Threading;
|
||||||
|
using CustomUIControls;
|
||||||
|
using System.Reflection;
|
||||||
|
using SzNPProjects;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class MainForm : Form
|
||||||
|
{
|
||||||
|
public static LoginForm LoginDialog;
|
||||||
|
public static Thread LThread;
|
||||||
|
public static Thread MainThread = null;
|
||||||
|
//public static bool PartnerListThreadActive = true;
|
||||||
|
//public static ToolStripMenuItem SelectPartnerSender = null;
|
||||||
|
public static Notifier taskbarNotifier;
|
||||||
|
public MainForm()
|
||||||
|
{
|
||||||
|
BeforeLogin.SetText("Starting...");
|
||||||
|
InitializeComponent();
|
||||||
|
//beforeloginform.Validate();
|
||||||
|
Thread.CurrentThread.Name = "Main Thread";
|
||||||
|
//contactList.Items.Add(new RichListViewItem()); - 2014.08.28. - Kommentálva, mivel most már itt,
|
||||||
|
//contactList.Items[0].SubItems[0].Text = "Loading..."; - 2014.08.28. - a konstruktorban tölti be, ami nem látszódik a felhasználó számára
|
||||||
|
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
|
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
|
||||||
|
this.WindowState = FormWindowState.Minimized; //2014.04.19.
|
||||||
|
|
||||||
|
BeforeLogin.SetText("Loading program settings...");
|
||||||
|
Storage.Load(false); //Töltse be a nyelvet, legutóbb használt E-mail-t...
|
||||||
|
|
||||||
|
BeforeLogin.SetText("Checking available ports...");
|
||||||
|
//2014.09.04. - Amint lehet állítsa be a helyes IP-t, majd azt hagyja úgy, akármi történjék
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
//remoteEP = new IPEndPoint(IPAddress.Any, Int32.Parse(Storage.Settings["port"]));
|
||||||
|
if (IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners().Select(entry => entry.Port).Contains(Int32.Parse(Storage.Settings["port"])))
|
||||||
|
Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Networking.ReceiverConnection = new UdpClient(Int32.Parse(Storage.Settings["port"])); //2014.09.04.
|
||||||
|
Networking.SenderConnection.AllowNatTraversal(true); //2014.09.04.
|
||||||
|
|
||||||
|
BeforeLogin.SetText("Loading languages...");
|
||||||
|
//#region Nyelvi beállitások
|
||||||
|
new Language();
|
||||||
|
//MessageBox.Show("Nyelv: " + CurrentUser.Language.ToString());
|
||||||
|
//#endregion
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_translatemainf"));
|
||||||
|
#region Helyi beállitás
|
||||||
|
//try
|
||||||
|
//{
|
||||||
|
fájlToolStripMenuItem.Text = Language.Translate("menu_file");
|
||||||
|
kijelentkezésToolStripMenuItem.Text = Language.Translate("menu_file_logout");
|
||||||
|
toolStripMenuItem1.Text = Language.Translate("menu_file_loginnewuser");
|
||||||
|
állapotToolStripMenuItem.Text = Language.Translate("menu_file_status");
|
||||||
|
elérhetőToolStripMenuItem.Text = Language.Translate("menu_file_status_online");
|
||||||
|
elfoglaltToolStripMenuItem.Text = Language.Translate("menu_file_status_busy");
|
||||||
|
nincsAGépnélToolStripMenuItem.Text = Language.Translate("menu_file_status_away");
|
||||||
|
rejtveKapcsolódikToolStripMenuItem.Text = Language.Translate("menu_file_status_hidden");
|
||||||
|
fájlKüldéseToolStripMenuItem.Text = Language.Translate("menu_file_sendfile");
|
||||||
|
beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = Language.Translate("menu_file_openreceivedfiles");
|
||||||
|
üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_file_openrecentmsgs");
|
||||||
|
bezárásToolStripMenuItem.Text = Language.Translate("menu_file_close");
|
||||||
|
kilépésToolStripMenuItem.Text = Language.Translate("menu_file_exit");
|
||||||
|
|
||||||
|
ismerősökToolStripMenuItem.Text = Language.Translate("menu_contacts");
|
||||||
|
ismerősFelvételeToolStripMenuItem.Text = Language.Translate("menu_contacts_add");
|
||||||
|
ismerősSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_edit");
|
||||||
|
ismerősTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_remove");
|
||||||
|
toolStripMenuItem3.Text = Language.Translate("menu_contacts_invite");
|
||||||
|
csoportLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makegroup");
|
||||||
|
kategóriaLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makecategory");
|
||||||
|
kategóriaSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_editcategory");
|
||||||
|
kategóriaTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_removecategory");
|
||||||
|
|
||||||
|
műveletekToolStripMenuItem.Text = Language.Translate("menu_operations");
|
||||||
|
azonnaliÜzenetKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg");
|
||||||
|
egyébKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother");
|
||||||
|
emailKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother_sendmail");
|
||||||
|
fájlKüldéseToolStripMenuItem1.Text = Language.Translate("menu_file_sendfile"); //Ugyanaz a szöveg
|
||||||
|
ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = Language.Translate("menu_operations_callcontact");
|
||||||
|
videóhivásInditásaToolStripMenuItem.Text = Language.Translate("menu_operations_videocall");
|
||||||
|
onlineFájlokMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_operations_showonlinefiles");
|
||||||
|
közösJátékToolStripMenuItem.Text = Language.Translate("menu_operations_playgame");
|
||||||
|
távsegitségKéréseToolStripMenuItem.Text = Language.Translate("menu_operations_askforhelp");
|
||||||
|
|
||||||
|
eszközökToolStripMenuItem.Text = Language.Translate("menu_tools");
|
||||||
|
mindigLegfelülToolStripMenuItem.Text = Language.Translate("menu_tools_alwaysontop");
|
||||||
|
hangulatjelekToolStripMenuItem.Text = Language.Translate("menu_tools_emoticons");
|
||||||
|
megjelenitendőKépVáltásaToolStripMenuItem.Text = Language.Translate("menu_tools_changeimage");
|
||||||
|
háttérMódositásaToolStripMenuItem.Text = Language.Translate("menu_tools_changebackground");
|
||||||
|
hangokÉsVideóBeállitásaToolStripMenuItem.Text = Language.Translate("menu_tools_voicevideosettings");
|
||||||
|
beállitásokToolStripMenuItem.Text = Language.Translate("menu_tools_settings");
|
||||||
|
|
||||||
|
súgóToolStripMenuItem.Text = Language.Translate("menu_help");
|
||||||
|
témakörökToolStripMenuItem.Text = Language.Translate("menu_help_contents");
|
||||||
|
aSzolgáltatásÁllapotsaToolStripMenuItem.Text = Language.Translate("menu_help_status");
|
||||||
|
adatvédelmiNyilatkozatToolStripMenuItem.Text = Language.Translate("menu_help_privacypolicy");
|
||||||
|
használatiFeltételekToolStripMenuItem.Text = Language.Translate("menu_help_termsofuse");
|
||||||
|
visszaélésBejelentéseToolStripMenuItem.Text = Language.Translate("menu_help_report");
|
||||||
|
segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = Language.Translate("menu_help_improveprogram");
|
||||||
|
névjegyToolStripMenuItem.Text = Language.Translate("menu_help_about");
|
||||||
|
|
||||||
|
textBox1.Text = Language.Translate("searchbar");
|
||||||
|
//contactList.Items[0].SubItems[0].Text = Language.Translate("loading"); - 2014.08.28. - Nincs már rá szükség (hibát is ír, mivel nincs listaelem)
|
||||||
|
|
||||||
|
üzenetküldésToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg");
|
||||||
|
emailKüldéseemailToolStripMenuItem.Text = Language.Translate("contact_sendemail");
|
||||||
|
toolStripMenuItem2.Text = Language.Translate("contact_copyemail");
|
||||||
|
információToolStripMenuItem.Text = Language.Translate("contact_info");
|
||||||
|
ismerősLetiltásaToolStripMenuItem.Text = Language.Translate("contact_block");
|
||||||
|
ismerősTörléseToolStripMenuItem.Text = Language.Translate("contact_remove");
|
||||||
|
becenévSzerkesztéseToolStripMenuItem.Text = Language.Translate("contact_editname");
|
||||||
|
eseményértesitésekToolStripMenuItem.Text = Language.Translate("contact_eventnotifications");
|
||||||
|
beszélgetésnaplóMegnyitásaToolStripMenuItem.Text = Language.Translate("contact_openchatlog");
|
||||||
|
|
||||||
|
toolStripMenuItem4.Text = Language.Translate("iconmenu_show");
|
||||||
|
toolStripMenuItem8.Text = Language.Translate("menu_file_logout");
|
||||||
|
toolStripMenuItem9.Text = Language.Translate("menu_file_exit");
|
||||||
|
//}
|
||||||
|
//catch
|
||||||
|
//{
|
||||||
|
//MessageBox.Show("Error while loading translations.");
|
||||||
|
//}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_loadtextformat"));
|
||||||
|
//2014.05.16.
|
||||||
|
new TextFormat();
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_checkforupdates"));
|
||||||
|
//2014.04.25.
|
||||||
|
//string response = Networking.SendRequest("checkforupdates",
|
||||||
|
/*byte[] response = Networking.SendUpdate(Networking.UpdateType.CheckForUpdates,
|
||||||
|
BitConverter.GetBytes(Int32.Parse(Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""))),
|
||||||
|
false);*/
|
||||||
|
string response = Networking.SendRequest("checkforupdates",
|
||||||
|
Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""),
|
||||||
|
0, false);
|
||||||
|
if (response == "outofdate")
|
||||||
|
//if(response[0]==0x00)
|
||||||
|
{
|
||||||
|
var res = MessageBox.Show(Language.Translate("outofdate"), Language.Translate("outofdate_caption"), MessageBoxButtons.YesNo);
|
||||||
|
if (res == DialogResult.Yes)
|
||||||
|
System.Diagnostics.Process.Start("http://msger.url.ph/download.php?version=latest");
|
||||||
|
}
|
||||||
|
else if (response != "fine")
|
||||||
|
//else if (response[0]!=0x01)
|
||||||
|
MessageBox.Show(Language.Translate("error") + ": " + response);
|
||||||
|
|
||||||
|
//2014.09.06.
|
||||||
|
if (Storage.Settings["isserver"] == "")
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(Language.Translate("isserver_msg"), "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
Storage.Settings["isserver"] = "1";
|
||||||
|
else
|
||||||
|
Storage.Settings["isserver"] = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
BeforeLogin.SetText(Language.Translate("beforelogin_loginform"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LoginDialog = new LoginForm();
|
||||||
|
BeforeLogin.Destroy();
|
||||||
|
LoginDialog.ShowDialog();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ErrorHandling.FormError(LoginDialog, e);
|
||||||
|
}
|
||||||
|
//Nézzük, sikerült-e
|
||||||
|
if (CurrentUser.UserID == 0)
|
||||||
|
return; //2014.09.06.
|
||||||
|
contactList.Enabled = false; //2014.03.05.
|
||||||
|
MainThread = Thread.CurrentThread;
|
||||||
|
|
||||||
|
// Create the thread object, passing in the Alpha.Beta method
|
||||||
|
// via a ThreadStart delegate. This does not start the thread.
|
||||||
|
LThread = new Thread(new ThreadStart(new UpdateListAndChat().Run));
|
||||||
|
//LThread.Name = "Update Partner List";
|
||||||
|
LThread.Name = "Update Partnerlist and Chat";
|
||||||
|
|
||||||
|
Thread keepupthread = new Thread(new ThreadStart(Networking.KeepUpThread));
|
||||||
|
keepupthread.Name = "Keep Up Thread";
|
||||||
|
|
||||||
|
Thread keepupuserst = new Thread(new ThreadStart(Networking.KeepUpUsersThread)); //2014.09.26.
|
||||||
|
keepupuserst.Name = "Keep Up Users Thread";
|
||||||
|
|
||||||
|
Storage.Load(true); //2014.08.07.
|
||||||
|
|
||||||
|
//Temp - 2014.09.15.
|
||||||
|
/*Random rand = new Random();
|
||||||
|
Random rand2 = new Random();
|
||||||
|
string[] keys = new string[CurrentUser.Keys.Length];
|
||||||
|
for (int i = 0; i < CurrentUser.Keys.Length; i++)
|
||||||
|
{
|
||||||
|
string str = "";
|
||||||
|
for (int j = 0; j < 8; j++)
|
||||||
|
{
|
||||||
|
if (rand2.Next(0, 1) == 0)
|
||||||
|
str += (char)rand.Next('a', 'z');
|
||||||
|
else
|
||||||
|
str += (char)rand.Next('A', 'Z' + 1);
|
||||||
|
}
|
||||||
|
//CurrentUser.Keys[i] = str;
|
||||||
|
keys[i] = str;
|
||||||
|
}
|
||||||
|
CurrentUser.Keys = keys;*/
|
||||||
|
|
||||||
|
if (Storage.Settings["windowstate"] == "1") //2014.04.18. - 2014.08.08.
|
||||||
|
this.WindowState = FormWindowState.Maximized;
|
||||||
|
else if (Storage.Settings["windowstate"] == "2")
|
||||||
|
this.WindowState = FormWindowState.Minimized;
|
||||||
|
else if (Storage.Settings["windowstate"] == "3")
|
||||||
|
this.WindowState = FormWindowState.Normal;
|
||||||
|
|
||||||
|
/*#region Partnerlista betöltése
|
||||||
|
#endregion*/
|
||||||
|
//LoadPartnerList();
|
||||||
|
|
||||||
|
taskbarNotifier = new Notifier("popup-bg.bmp", Color.FromArgb(255, 0, 255), "close.bmp", 5000);
|
||||||
|
//taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor");
|
||||||
|
|
||||||
|
taskbarNotifier.Click += PopupClick;
|
||||||
|
taskbarNotifier.CloseClick += PopupCloseClick;
|
||||||
|
|
||||||
|
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
||||||
|
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
||||||
|
|
||||||
|
// Start the thread
|
||||||
|
LThread.Start();
|
||||||
|
|
||||||
|
keepupthread.Start();
|
||||||
|
|
||||||
|
keepupuserst.Start();
|
||||||
|
|
||||||
|
//2014.08.19. - Küldje el a bejelentkezés hírét, hogy frissítéseket kapjon
|
||||||
|
//byte[] strb = Encoding.Unicode.GetBytes(Storage.Settings["myip"]);
|
||||||
|
byte[] strb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
|
||||||
|
byte[] tmpfinal = new byte[8 * UserInfo.KnownUsers.Count + strb.Length + 4]; //Hosszúság, IP, ismert felh. ID, frissítési idő
|
||||||
|
Array.Copy(BitConverter.GetBytes(strb.Length), tmpfinal, 4);
|
||||||
|
Array.Copy(strb, 0, tmpfinal, 4, strb.Length);
|
||||||
|
//if (tmpfinal.Length != 0)
|
||||||
|
if (UserInfo.KnownUsers.Count != 0)
|
||||||
|
{
|
||||||
|
//byte[] tmptmp = BitConverter.GetBytes(CurrentUser.UserID); //Felesleges, eleve elküldi a UserID-t
|
||||||
|
//Array.Copy(tmptmp, tmpfinal, 4);
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
byte[] tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].UserID);
|
||||||
|
Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4);
|
||||||
|
tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].LastUpdate);
|
||||||
|
Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Networking.ParseUpdateInfo(Networking.SendUpdate(Networking.UpdateType.LoginUser, tmpfinal, false));
|
||||||
|
|
||||||
|
notifyIcon1.Visible = true; //2014.09.22.
|
||||||
|
taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadPartnerList() //2014.08.28.
|
||||||
|
{
|
||||||
|
contactList.AutoUpdate = false;
|
||||||
|
UserInfo.AutoUpdate = false; //2014.09.26.
|
||||||
|
//string[] list = Networking.SendRequest("getlist", "", 0, true).Split('ͦ');
|
||||||
|
string[] list = Networking.SendRequest("getlist", "", 0, true).Split(new char[] { 'ͦ' }, StringSplitOptions.RemoveEmptyEntries); //2014.09.26.
|
||||||
|
if (list[0].Contains("Fail"))
|
||||||
|
MessageBox.Show(list[0]);
|
||||||
|
UserInfo.KnownUsers = UserInfo.KnownUsers.Select(entry => { entry.IsPartner = false; return entry; }).ToList(); //2014.09.26.
|
||||||
|
for (int i = 0; i + 1 < list.Length; i += 2)
|
||||||
|
{
|
||||||
|
string username = list[i];
|
||||||
|
int uid = Int32.Parse(list[i + 1]);
|
||||||
|
if (!UserInfo.IDIsInList(UserInfo.KnownUsers, uid))
|
||||||
|
{ //Ha nem tud róla semmit, akkor töltse le a felhasználónevét, és jelenítse meg azt
|
||||||
|
var tmp = new UserInfo();
|
||||||
|
tmp.UserID = uid;
|
||||||
|
tmp.UserName = username;
|
||||||
|
tmp.LastUpdate = 0; //Lényegében nem tud róla túl sokat, ezért ha lehet, frissítse
|
||||||
|
tmp.Name = username;
|
||||||
|
tmp.IsPartner = true;
|
||||||
|
UserInfo.KnownUsers.Add(tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UserInfo.Select(uid).IsPartner = true; //2014.09.26.
|
||||||
|
UserInfo.Select(uid).UserName = username; //2014.09.26. - Nem megváltoztatható, ha egy felhasználó megpróbálja, nem foglalkozik vele
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CurrentUser.State = 1; //2014.08.31. 0:48
|
||||||
|
UserInfo.AutoUpdate = true;
|
||||||
|
foreach (var entry in UserInfo.KnownUsers)
|
||||||
|
{
|
||||||
|
//if (entry.IsPartner)
|
||||||
|
//{
|
||||||
|
/*var pictb = new PictureBox();
|
||||||
|
string imgpath = entry.GetImage();
|
||||||
|
if (imgpath != "noimage.png" || File.Exists("noimage.png")) //2014.03.13.
|
||||||
|
pictb.ImageLocation = imgpath;
|
||||||
|
else
|
||||||
|
MessageBox.Show(Language.Translate("noimage_notfound"), "Hiba");
|
||||||
|
pictb.SizeMode = PictureBoxSizeMode.Zoom; //Megváltoztatva ScretchImage-ről
|
||||||
|
var listtext = new ExRichTextBox();
|
||||||
|
string state = "";
|
||||||
|
if (entry.State == 1)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_online") + ")";
|
||||||
|
else if (entry.State == 2)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_busy") + ")";
|
||||||
|
else if (entry.State == 3)
|
||||||
|
state = " (" + Language.Translate("menu_file_status_away") + ")";
|
||||||
|
listtext.Text = entry.Name + state + "\n" + entry.Message;
|
||||||
|
listtext = TextFormat.Parse(listtext);
|
||||||
|
contactList.Items.Add(new RichListViewItem(new Control[] { pictb, listtext }));
|
||||||
|
entry.ListID = contactList.Items.Count - 1;*/
|
||||||
|
//contactList.Items.Add(new RichListViewItem(2));
|
||||||
|
entry.Update(); //Áthelyeztem, mert az értékek frissítésekor is szükség van rá
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
//UserInfo.AddCurrentUser(); //2014.09.01. - Feleslegesen csináltam meg
|
||||||
|
/*while (contactList.Items.Count > UserInfo.KnownUsers.Count)
|
||||||
|
contactList.Items.RemoveAt(UserInfo.KnownUsers.Count - 1);*/
|
||||||
|
contactList.AutoUpdate = true;
|
||||||
|
contactList.Enabled = true;
|
||||||
|
contactList.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PopupCloseClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Close");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PopupClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Click");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LogoutUser(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
|
toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
Storage.Save(true); //2014.08.28.
|
||||||
|
SetOnlineState(null, null); //2014.04.11. - Erre nincs beállitva, ezért automatikusan 0-ra, azaz kijelentkeztetettre állítja az állapotát
|
||||||
|
//CurrentUser.UserID = 0; - SetOnlineState-ben is benne van
|
||||||
|
contactList.Items.Clear(); //2014.09.19.
|
||||||
|
UserInfo.KnownUsers.Clear(); //2014.09.19.
|
||||||
|
/*CurrentUser.SendChanges = false; //2014.09.19. - A UserID=0-t még küldje el, de a többit ne - Pontosabban a UserID-t már a SetOnlineState is elküldi
|
||||||
|
CurrentUser.Email = ""; //2014.09.19.
|
||||||
|
CurrentUser.IP = null; //2014.09.19.
|
||||||
|
CurrentUser.KeyIndex = 0; //2014.09.19.
|
||||||
|
CurrentUser.Keys = null; //2014.09.19.
|
||||||
|
CurrentUser.Language = null; //2014.09.19.
|
||||||
|
CurrentUser.Message = ""; //2014.09.19.
|
||||||
|
CurrentUser.Name = ""; //2014.09.19.
|
||||||
|
CurrentUser.State = 0; //2014.09.19.*/
|
||||||
|
Storage.Dispose();
|
||||||
|
/*Networking.ReceiverConnection.Close();
|
||||||
|
Networking.ReceiverConnection = null;
|
||||||
|
Networking.SenderConnection.Close();
|
||||||
|
Networking.SenderConnection = null;*/
|
||||||
|
//PartnerListThreadActive = false;
|
||||||
|
LThread = null;
|
||||||
|
CurrentUser.SendChanges = false; //2014.08.30.
|
||||||
|
//foreach(var item in ChatForm.ChatWindows)
|
||||||
|
while (ChatForm.ChatWindows.Count > 0)
|
||||||
|
{ //2014.09.06. - A Close() hatására törli a gyűjteményből, ezért sorra végig fog haladni rajta
|
||||||
|
//item.Close();
|
||||||
|
ChatForm.ChatWindows[0].Close();
|
||||||
|
}
|
||||||
|
LoginDialog = new LoginForm(); //2014.04.04.
|
||||||
|
LoginDialog.ShowDialog();
|
||||||
|
//Nézzük, sikerült-e
|
||||||
|
if (CurrentUser.UserID == 0)
|
||||||
|
Close();
|
||||||
|
Storage.Load(true); //2014.08.07.
|
||||||
|
toolStripMenuItem4.Enabled = true; //2014.04.12.
|
||||||
|
toolStripMenuItem8.Enabled = true; //2014.04.12.
|
||||||
|
//contactList.Items.Clear(); //2014.03.05.
|
||||||
|
//contactList.Enabled = false; //2014.03.05.
|
||||||
|
//contactList.Items.Add(new RichListViewItem());
|
||||||
|
//contactList.Items[0].SubItems[0].Text = "Betöltés...";
|
||||||
|
CurrentUser.SendChanges = true; //2014.08.30.
|
||||||
|
contactList.Items.Clear(); //2014.10.09. - Kijelentkezéskor hozzáad egy üres listelemet egy (Nem elérhető) felirattal, ezt tünteti el
|
||||||
|
LoadPartnerList();
|
||||||
|
this.Show();
|
||||||
|
//PartnerListThreadActive = true; //2014.02.28. - Törli, majd újra létrehozza a listafrissitő thread-et, ha újra bejelentkezett
|
||||||
|
// Create the thread object, passing in the Alpha.Beta method
|
||||||
|
// via a ThreadStart delegate. This does not start the thread.
|
||||||
|
LThread = new Thread(new ThreadStart(new UpdateListAndChat().Run));
|
||||||
|
LThread.Name = "Update Partner List";
|
||||||
|
|
||||||
|
// Start the thread
|
||||||
|
LThread.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoginNewUser(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Storage.Save(true); //2014.09.19.
|
||||||
|
//System.Diagnostics.Process.Start("MSGer.tk.exe");
|
||||||
|
Process.Start(((Program.ProcessName.Contains("vshost")) ? Program.ProcessName.Replace(".vshost", "") : Program.ProcessName) + ".exe", "multi");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetOnlineState(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int state = 0;
|
||||||
|
if (sender == elérhetőToolStripMenuItem)
|
||||||
|
state = 1;
|
||||||
|
if (sender == elfoglaltToolStripMenuItem)
|
||||||
|
state = 2;
|
||||||
|
if (sender == nincsAGépnélToolStripMenuItem)
|
||||||
|
state = 3;
|
||||||
|
//if (sender == rejtveKapcsolódikToolStripMenuItem) //Ha rejtve van, hagyja 0-n a state változót, azaz küldje el azt, hogy nincs bejelentkezve
|
||||||
|
//state = 4;
|
||||||
|
if (sender == null) //2014.08.30. - Erre nagyon sokáig nem volt felkészítve, és ezt kihasználtam a kijelentkezéshez
|
||||||
|
{
|
||||||
|
Networking.SendRequest("setstate", 0 + "", 0, true); //Kijelentkezés
|
||||||
|
//byte[] tmpb = Encoding.Unicode.GetBytes(Storage.Settings["myip"]);
|
||||||
|
byte[] tmpb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
|
||||||
|
byte[] sendb = new byte[4 + tmpb.Length];
|
||||||
|
Array.Copy(BitConverter.GetBytes(tmpb.Length), sendb, 4);
|
||||||
|
Array.Copy(tmpb, 0, sendb, 4, tmpb.Length);
|
||||||
|
Networking.SendUpdate(Networking.UpdateType.LogoutUser, sendb, false);
|
||||||
|
}
|
||||||
|
CurrentUser.State = state; //2014.08.28.
|
||||||
|
//HTTP
|
||||||
|
//if (!Networking.SendUpdate(Networking.UpdateType.SetState, BitConverter.GetBytes(state), false)[0].Contains((byte)0x01))
|
||||||
|
//var ret = Networking.SendUpdate(Networking.UpdateType.SetState, BitConverter.GetBytes(state), false); - 2014.09.09. - A CurrentUser.State-nél már elküldi
|
||||||
|
//if (ret == null || !ret[0].Contains((byte)0x01))
|
||||||
|
/*if (ret == null || ret.Length == 0)
|
||||||
|
return;
|
||||||
|
bool ok = false;
|
||||||
|
for (int i = 0; i < ret.Length; i++)
|
||||||
|
{
|
||||||
|
if(ret[i][4]==0x01) //Az első 4 byte a UserID
|
||||||
|
{
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
MessageBox.Show(Language.Translate("setstate_error"));*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SelectPartner(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//SelectPartnerSender = (ToolStripMenuItem)sender;
|
||||||
|
//DialogResult dr = new DialogResult();
|
||||||
|
var form = new SelectPartnerForm((ToolStripMenuItem)sender);
|
||||||
|
//dr = form.ShowDialog();
|
||||||
|
DialogResult dr = form.ShowDialog();
|
||||||
|
if (dr == DialogResult.OK)
|
||||||
|
{
|
||||||
|
//2014.04.25.
|
||||||
|
string[] partners = form.Partners;
|
||||||
|
ChatForm tmpchat = new ChatForm();
|
||||||
|
for (int i = 0; i < partners.Length; i++)
|
||||||
|
{
|
||||||
|
if (partners[i] != "") //2014.04.17.
|
||||||
|
{
|
||||||
|
for (int j = 0; j < UserInfo.KnownUsers.Count; j++)
|
||||||
|
{
|
||||||
|
if (!UserInfo.KnownUsers[j].IsPartner)
|
||||||
|
continue;
|
||||||
|
int tmp; //2014.04.17.
|
||||||
|
if (!Int32.TryParse(partners[i], out tmp))
|
||||||
|
tmp = -1;
|
||||||
|
if (UserInfo.KnownUsers[j].UserName == partners[i] || UserInfo.KnownUsers[j].Email == partners[i] || UserInfo.KnownUsers[j].UserID == tmp)
|
||||||
|
{ //Egyezik a név, E-mail vagy ID - UserName: 2014.04.17.
|
||||||
|
//tmpchat.ChatPartners.Add(j); //A Partners-beli indexét adja meg
|
||||||
|
tmpchat.ChatPartners.Add(UserInfo.KnownUsers[j].UserID); //2014.08.28.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tmpchat.ChatPartners.Count != 0)
|
||||||
|
{
|
||||||
|
ChatForm.ChatWindows.Add(tmpchat);
|
||||||
|
//if (SelectPartnerSender == fájlKüldéseToolStripMenuItem)
|
||||||
|
if (sender == fájlKüldéseToolStripMenuItem)
|
||||||
|
{
|
||||||
|
tmpchat.Show();
|
||||||
|
tmpchat.OpenSendFile(form);
|
||||||
|
}
|
||||||
|
//if (SelectPartnerSender == azonnaliÜzenetKüldéseToolStripMenuItem)
|
||||||
|
if (sender == azonnaliÜzenetKüldéseToolStripMenuItem)
|
||||||
|
{
|
||||||
|
tmpchat.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//public delegate int MyDelegate();
|
||||||
|
|
||||||
|
private void ClearSearchBar(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//if (textBox1.Text == "Ismerősök keresése...")
|
||||||
|
if (textBox1.Text == Language.Translate("searchbar"))
|
||||||
|
textBox1.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PutTextInSearchBar(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (textBox1.Text == "")
|
||||||
|
//textBox1.Text = "Ismerősök keresése...";
|
||||||
|
textBox1.Text = Language.Translate("searchbar");
|
||||||
|
}
|
||||||
|
public static int RightClickedPartner = -1;
|
||||||
|
/*private void ContactItemRightClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Button != MouseButtons.Right || contactList.HotItemIndex>=contactList.Items.Count)
|
||||||
|
{ //Igy nem reagál arra sem, ha üres területre kattintunk
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
contactList.Items[contactList.HotItemIndex].Selected = true;
|
||||||
|
RightClickedPartner = contactList.HotItemIndex;
|
||||||
|
partnerMenu.Show(Cursor.Position);
|
||||||
|
}*/
|
||||||
|
/*private void OpenSendMessage(object sender, EventArgs e) //2014.03.02. 0:17
|
||||||
|
{
|
||||||
|
int tmp = contactList.HotItemIndex;
|
||||||
|
if (RightClickedPartner == -1)
|
||||||
|
RightClickedPartner = tmp;
|
||||||
|
if (RightClickedPartner == -1 || RightClickedPartner >= contactList.Items.Count)
|
||||||
|
return;
|
||||||
|
//Üzenetküldő form
|
||||||
|
int ChatNum = -1;
|
||||||
|
for (int i = 0; i < ChatForm.ChatWindows.Count; i++)
|
||||||
|
{
|
||||||
|
if (ChatForm.ChatWindows[i].ChatPartners.Count==1 && ChatForm.ChatWindows[i].ChatPartners.Contains(RightClickedPartner))
|
||||||
|
{ //Vele, és csak vele beszél
|
||||||
|
ChatNum = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(ChatNum==-1)
|
||||||
|
{ //Nincs még chatablaka
|
||||||
|
ChatForm.ChatWindows.Add(new ChatForm());
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].ChatPartners.Add(RightClickedPartner);
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChatForm.ChatWindows[ChatNum].Show();
|
||||||
|
ChatForm.ChatWindows[ChatNum].Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
RightClickedPartner = -1;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public static void OpenSendMessage(int uid)
|
||||||
|
{
|
||||||
|
//Üzenetküldő form
|
||||||
|
int ChatNum = -1;
|
||||||
|
//int uid = UserInfo.GetUserIDFromListID(e);
|
||||||
|
for (int i = 0; i < ChatForm.ChatWindows.Count; i++)
|
||||||
|
{
|
||||||
|
if (ChatForm.ChatWindows[i].ChatPartners.Count == 1 && ChatForm.ChatWindows[i].ChatPartners.Contains(uid))
|
||||||
|
{ //Vele, és csak vele beszél
|
||||||
|
ChatNum = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ChatNum == -1)
|
||||||
|
{ //Nincs még chatablaka
|
||||||
|
ChatForm.ChatWindows.Add(new ChatForm());
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].ChatPartners.Add(uid);
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Show();
|
||||||
|
ChatForm.ChatWindows[ChatForm.ChatWindows.Count - 1].Focus(); //2014.08.08.
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChatForm.ChatWindows[ChatNum].Show();
|
||||||
|
ChatForm.ChatWindows[ChatNum].Focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMainFormLoad(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (CurrentUser.UserID == 0)
|
||||||
|
Program.Exit();
|
||||||
|
|
||||||
|
LoadPartnerList(); //Be kell töltenie a MainForm-nak, hogy hivatkozhasson rá
|
||||||
|
|
||||||
|
CurrentUser.SendChanges = true; //2014.08.30.
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InvitePartner(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
(new InvitePartner()).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BeforeExit(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
e.Cancel = true;
|
||||||
|
this.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toolStripMenuItem4_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (CurrentUser.UserID != 0) //2014.04.18.
|
||||||
|
{
|
||||||
|
this.Show();
|
||||||
|
this.Focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ExitProgram(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Program.Exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ismerősFelvételeToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
(new AddPartner()).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void névjegyToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
(new AboutBox1()).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void mindigLegfelülToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.TopMost = mindigLegfelülToolStripMenuItem.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void beállitásokToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
(new SettingsForm()).Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contactList_ItemDoubleClicked(object sender, int e)
|
||||||
|
{
|
||||||
|
int uid = UserInfo.GetUserIDFromListID(e);
|
||||||
|
OpenSendMessage(uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bezárásToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void információToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (RightClickedPartner == -1)
|
||||||
|
return;
|
||||||
|
/*string shownname = "";
|
||||||
|
int status = 0;
|
||||||
|
string message = "";
|
||||||
|
string username = "";
|
||||||
|
int userid = 0;
|
||||||
|
string email = "";*/
|
||||||
|
for (int i = 0; i < UserInfo.KnownUsers.Count; i++)
|
||||||
|
{
|
||||||
|
if (UserInfo.KnownUsers[i].ListID != RightClickedPartner)
|
||||||
|
continue;
|
||||||
|
(new PartnerInformation(UserInfo.KnownUsers[i])).ShowDialog();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//(new PartnerInformation(shownname, status, message, username, userid, email)).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contactList_ItemRightClicked(object sender, int e)
|
||||||
|
{
|
||||||
|
contactList.Items[e].Selected = true;
|
||||||
|
RightClickedPartner = e;
|
||||||
|
partnerMenu.Show(Cursor.Position);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PartnerMenu_SendMessage(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (RightClickedPartner == -1)
|
||||||
|
return;
|
||||||
|
int uid = UserInfo.GetUserIDFromListID(RightClickedPartner);
|
||||||
|
OpenSendMessage(uid);
|
||||||
|
RightClickedPartner = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
136
Versions/Less Closed Beta/v3.0/MSGer.tk/MainForm.resx
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
<?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>WLM 2009 Logo base64-encoded probably - Spent hours on the correct sed command</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>WLM 2009 Logo base64-encoded probably - Spent hours on the correct sed command</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>WLM 2009 Logo base64-encoded probably - Spent hours on the correct sed command</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>WLM 2009 Logo base64-encoded probably - Spent hours on the correct sed command</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="iconMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>530, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>WLM 2009 Logo base64-encoded probably - Spent hours on the correct sed command</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>130, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="partnerImages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>245, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="partnerMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>375, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
513
Versions/Less Closed Beta/v3.0/MSGer.tk/Networking.cs
Normal file
|
@ -0,0 +1,513 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
static class Networking
|
||||||
|
{
|
||||||
|
public enum UpdateType : byte
|
||||||
|
{
|
||||||
|
//CheckForUpdates = 0x01, //0x00: outofdate, 0x01: fine -- Ezt is a weboldalról ellenőrizze
|
||||||
|
//SetState = 0x01, //0x01: Success
|
||||||
|
//GetList - Változás esetén küldjék el, ne kelljen letölteni
|
||||||
|
ListUpdate = 0x01, //0x01: OK
|
||||||
|
UpdateMessages, //0x01: OK
|
||||||
|
GetImage, //(int)0: Hiba, egyébként a kép hossza, majd a kép
|
||||||
|
//FindPeople,
|
||||||
|
//UpdateSettings, - Küldje el a ListUpdate-tel
|
||||||
|
LoginUser, //0x00: Hiba - Egyébként minden fontos információ, amiről "lemaradt"
|
||||||
|
LogoutUser, //0x01: OK
|
||||||
|
SetKey, //0x01: OK
|
||||||
|
KeepAlive,
|
||||||
|
};
|
||||||
|
//public static UdpClient Connection = new UdpClient();
|
||||||
|
public static UdpClient SenderConnection = new UdpClient(); //2014.09.04. - Ezt ne társítsa egy porthoz, hogy működjön az udp hole punching
|
||||||
|
public static UdpClient ReceiverConnection = new UdpClient(); //2014.09.04. - Társítsa egy porthoz
|
||||||
|
public static byte[] DataBuffer;
|
||||||
|
public static IPEndPoint RemoteEP;
|
||||||
|
public static bool WaitingOnResponse = false; //2014.08.16.
|
||||||
|
public static byte WaitingOnPacket = 0x00; //2014.08.16. - 0x00: Nincs
|
||||||
|
public static byte[][] SendUpdate(UpdateType ut, byte[] data, bool response)
|
||||||
|
{
|
||||||
|
if (UserInfo.IPs.Count == 0)
|
||||||
|
return null;
|
||||||
|
/*try - A Connection MINDIG be legyen állítva
|
||||||
|
{
|
||||||
|
if (Connection == null || Connection.Available >= 0) //Az utóbbi csak arra szolgál, hogy ObjectDisposedException történjen, ha kell
|
||||||
|
{
|
||||||
|
while (true) //<-- 2014.08.30.
|
||||||
|
{
|
||||||
|
var remoteEP = new IPEndPoint(IPAddress.Any, Int32.Parse(Storage.Settings["port"]));
|
||||||
|
if (IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners().Select(entry => entry.Port).Contains(remoteEP.Port))
|
||||||
|
Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Connection = new UdpClient(Int32.Parse(Storage.Settings["port"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (ObjectDisposedException)
|
||||||
|
{
|
||||||
|
Connection = new UdpClient(Int32.Parse(Storage.Settings["port"]));
|
||||||
|
}*/
|
||||||
|
//List<byte> senddata = new List<byte>();
|
||||||
|
//senddata.Add((response) ? (byte)0x01 : (byte)0x00); //0x00: Kérelem/Adatküldés, 0x01: Válasz
|
||||||
|
//senddata.Add((byte)ut);
|
||||||
|
//senddata.AddRange(BitConverter.GetBytes(CurrentUser.UserID)); //4 bájt; ellenőrizze le, hogy az IP is megegyezik-e, hacsak nem IP-változást jelez
|
||||||
|
//senddata.AddRange(data);
|
||||||
|
byte[] senddata = CreatePacket(response, (byte)ut, data);
|
||||||
|
if (UserInfo.BanTime < Environment.TickCount - 1000 * 60 * 1) //2014.08.30. - 2014.10.09. - 10 percről 1-re csökkentve
|
||||||
|
UserInfo.BannedIPs = new List<IPEndPoint>(); //2014.08.30.
|
||||||
|
//string[] tmp = UserInfo.IPs.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); //RemoveEmptyEntries: 2014.08.29. - UserInfo... szintén...
|
||||||
|
//for (int i = 0; i < tmp.Length; i++)
|
||||||
|
//for (int i = 0; i < UserInfo.IPs.Count; i++)
|
||||||
|
if (!response)
|
||||||
|
{ //2014.08.30. - Azelőtt állítsa be, hogy elküldené a lekéréseket, hogy biztosan reagáljon a válaszra
|
||||||
|
WaitingOnResponse = true; //2014.08.16.
|
||||||
|
WaitingOnPacket = (byte)ut; //2014.08.16.
|
||||||
|
}
|
||||||
|
foreach (var item in UserInfo.IPs)
|
||||||
|
{ //Elküldi az összes ismert címre
|
||||||
|
//int port=
|
||||||
|
//Connection.Send(Storage.Encrypt(senddata.ToArray()), senddata.Count, new IPEndPoint(IPAddress.Parse(tmp2[0]), Int32.Parse(tmp2[1])));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!UserInfo.BannedIPs.Contains(item))
|
||||||
|
//SenderConnection.Send(Storage.Encrypt(senddata.ToArray(), "sendupdatestringencrypted"), senddata.Count, item);
|
||||||
|
SenderConnection.Send(senddata, senddata.Length, item);
|
||||||
|
}
|
||||||
|
catch (ObjectDisposedException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*if (!loggedin)
|
||||||
|
ReceiveUpdates();
|
||||||
|
else
|
||||||
|
while (Networking.DataBuffer == null) ;*/
|
||||||
|
|
||||||
|
if (!response)
|
||||||
|
{
|
||||||
|
//WaitingOnResponse = true; //2014.08.16.
|
||||||
|
//WaitingOnPacket = (byte)ut; //2014.08.16.
|
||||||
|
int lasttick = Environment.TickCount;
|
||||||
|
List<byte[]> Ret = new List<byte[]>();
|
||||||
|
List<IPEndPoint> ResponsedIPs = new List<IPEndPoint>();
|
||||||
|
//while (Environment.TickCount - 1000 * 60 > lasttick || Ret.Count == tmp.Length) //2014.08.16. - Visszatér, ha kapott választ egy ismert IP-ről, de ha máshonnan kap, újra várakozik, legfeljebb egy percig
|
||||||
|
//while (Environment.TickCount - 1000 * 60 < lasttick && Ret.Count < UserInfo.IPs.Count - UserInfo.BannedIPs.Count) //2014.08.29.
|
||||||
|
int count = 0;
|
||||||
|
while (Environment.TickCount - 1000 * 10 < lasttick && ResponsedIPs.Count < UserInfo.IPs.Count - UserInfo.BannedIPs.Count) //2014.09.09. - 2014.10.09. - 60 mp --> 10 mp
|
||||||
|
{ //2014.08.19. - Ret.Count == tmp.Length
|
||||||
|
//if (MainForm.PartnerListThreadActive) //2014.09.06.
|
||||||
|
if (MainForm.LThread != null) //2014.09.06.
|
||||||
|
{
|
||||||
|
while (DataBuffer == null && Environment.TickCount - 1000 * count * 2 < lasttick) ; //Várakozik, amíg a másik thread át nem adja a választ - 2014.10.09. - 10 mp --> 2 mp
|
||||||
|
|
||||||
|
foreach (var item in UserInfo.IPs.Except(UserInfo.BannedIPs).Except(ResponsedIPs)) //2014.09.22.
|
||||||
|
{ //Elküldi az összes ismert címre
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//if (!UserInfo.BannedIPs.Contains(item))
|
||||||
|
SenderConnection.Send(senddata, senddata.Length, item);
|
||||||
|
}
|
||||||
|
catch (ObjectDisposedException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
//else //2014.09.06.
|
||||||
|
//ReceiveUpdates(); //2014.09.06.
|
||||||
|
if (DataBuffer == null) //2014.08.30. - Az idő telt le
|
||||||
|
{
|
||||||
|
//UserInfo.IPs.Select(entry => (ResponsedIPs.Contains(entry)) ? (UserInfo.IPs.Remove(entry)) : entry)
|
||||||
|
UserInfo.BannedIPs = UserInfo.IPs.Except(ResponsedIPs).ToList(); //2014.08.30. - Ideiglenesen kitilt minden IP-t, ahonnan nem érkezett válasz
|
||||||
|
UserInfo.BanTime = Environment.TickCount;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//if (tmp.Contains(RemoteEP.ToString() + ":" + RemoteEP.Port))
|
||||||
|
if (UserInfo.IPs.Contains(RemoteEP) && !UserInfo.BannedIPs.Contains(RemoteEP))
|
||||||
|
{
|
||||||
|
ResponsedIPs.Add(RemoteEP);
|
||||||
|
//byte[] ret = Storage.Decrypt(DataBuffer, true, "sendupdatestringencrypted");
|
||||||
|
var pparts = ParsePacket(DataBuffer);
|
||||||
|
//int keyindex = BitConverter.ToInt32(DataBuffer, 0);
|
||||||
|
/*DataBuffer = null;
|
||||||
|
RemoteEP = null;
|
||||||
|
WaitingOnResponse = false;
|
||||||
|
WaitingOnPacket = 0x00;*/
|
||||||
|
if (pparts.KeyVersion != CurrentUser.KeyIndex && pparts.UpdateType != UpdateType.SetKey)
|
||||||
|
{
|
||||||
|
DataBuffer = null; //2014.09.22. - Mindig adja meg a lehetőséget, hogy újra beállítsa
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//byte[] ret = new byte[DataBuffer.Length - 4];
|
||||||
|
//Array.Copy(DataBuffer, 4, ret, 0, ret.Length);
|
||||||
|
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < Ret.Count; i++)
|
||||||
|
{
|
||||||
|
if (DataBuffer.SequenceEqual(Ret[i]))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i == Ret.Count)
|
||||||
|
Ret.Add(DataBuffer);
|
||||||
|
//return ret;
|
||||||
|
} //(2014.08.17. -->) Várja meg, amíg az összes online(!) ismerőse válaszol - Vagy letelik az egy perc
|
||||||
|
DataBuffer = null; //2014.09.22. - Mindig adja meg a lehetőséget, hogy újra beállítsa
|
||||||
|
}
|
||||||
|
DataBuffer = null;
|
||||||
|
RemoteEP = null;
|
||||||
|
WaitingOnResponse = false;
|
||||||
|
WaitingOnPacket = 0x00;
|
||||||
|
return Ret.ToArray();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public static bool SendChatMessage(ChatForm chat, string message)
|
||||||
|
{ //2014.09.22.
|
||||||
|
//foreach(var pID in chat.ChatPartners)
|
||||||
|
//{
|
||||||
|
//var pInfo = UserInfo.Select(pID);
|
||||||
|
//TCP közvetlen kapcsolat nem feltétlenül lehetséges, mert a felhasználók router mögött lehetnek...
|
||||||
|
//Ezért ugyanazt a rendszert kell használni itt is...
|
||||||
|
//}
|
||||||
|
List<byte> bytes = new List<byte>();
|
||||||
|
string sendstr = "";
|
||||||
|
foreach (var pID in chat.ChatPartners)
|
||||||
|
{
|
||||||
|
sendstr += pID + ",";
|
||||||
|
}
|
||||||
|
//sendstr += "ͦ";
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr)));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(sendstr));
|
||||||
|
sendstr = message; //Átállítja a sendstr-t az üzenetre, majd újra belerakja
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr)));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(sendstr));
|
||||||
|
sendstr = Program.DateTimeToUnixTime(DateTime.Now);
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr)));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(sendstr));
|
||||||
|
byte[][] resp = SendUpdate(UpdateType.UpdateMessages, Encoding.Unicode.GetBytes(sendstr), false);
|
||||||
|
if (resp == null || resp.Length == 0 || resp.All(bytesb => bytesb[0] != 0x01))
|
||||||
|
return false;
|
||||||
|
else //Ha válaszoltak, és senki sem válaszolt nem oké jelzéssel, akkor rendben van
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public static object[] ReceiveUpdates() //Thread function
|
||||||
|
{
|
||||||
|
/*if (ReceiverConnection != null)
|
||||||
|
{
|
||||||
|
if (Connection.Client != null) //2014.09.01.
|
||||||
|
{
|
||||||
|
Connection.Client.Close(); //2014.08.30.
|
||||||
|
//while (Connection.Client.IsBound) ; //2014.08.30.
|
||||||
|
}
|
||||||
|
if (Connection != null) //2014.09.01. - Még mindig nem null
|
||||||
|
Connection.Close();
|
||||||
|
}*/
|
||||||
|
IPEndPoint remoteEP;
|
||||||
|
/*while (true) //<-- 2014.08.30. -- 2014.09.01. - Ne ellenőrizze le minden alkalommal, csak a program indulásakor
|
||||||
|
{
|
||||||
|
remoteEP = new IPEndPoint(IPAddress.Any, Int32.Parse(Storage.Settings["port"]));
|
||||||
|
if (IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners().Select(entry => entry.Port).Contains(remoteEP.Port))
|
||||||
|
Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}*/
|
||||||
|
remoteEP = new IPEndPoint(IPAddress.Any, Int32.Parse(Storage.Settings["port"])); //2014.09.04. - A port beállítása már megtörtént
|
||||||
|
//Connection = new UdpClient(Int32.Parse(Storage.Settings["port"]));
|
||||||
|
byte[] buf;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
buf = ReceiverConnection.Receive(ref remoteEP);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (buf[0] == 0x01) //0x01: Válasz egy kérelemre
|
||||||
|
{
|
||||||
|
if (WaitingOnResponse == false || WaitingOnPacket != buf[1])
|
||||||
|
return null;
|
||||||
|
while (DataBuffer != null) ; //Várja meg, amíg feldolgozza a legutóbbi adatot
|
||||||
|
//DataBuffer = buf;
|
||||||
|
//Array.Copy(buf, 2, DataBuffer = new byte[buf.Length - 2], 0, buf.Length - 2); //2014.08.16. - Ne rakja bele a packet ID-t, és hogy válasz
|
||||||
|
DataBuffer = buf; //2014.09.19. - Küldön el mindenhova mindent, és egységesen egy funkcióval dolgozza fel
|
||||||
|
RemoteEP = remoteEP;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
//return Storage.Decrypt(buf, true);
|
||||||
|
return new object[] { buf, remoteEP };
|
||||||
|
}
|
||||||
|
/*private static void SendTo(byte[] data, IPEndPoint ip)
|
||||||
|
{
|
||||||
|
if (!HttpListener.IsSupported)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Windows XP or newer required.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
HttpListener listener = new HttpListener();
|
||||||
|
listener.Prefixes.Add("http://" + CurrentUser.IP.ToString() + ":" + Storage.Settings["port"] + "/");
|
||||||
|
listener.Start();
|
||||||
|
Console.WriteLine("Listening for incoming connections...");
|
||||||
|
HttpListenerContext context = listener.GetContext();
|
||||||
|
HttpListenerRequest request = context.Request;
|
||||||
|
request
|
||||||
|
}*/
|
||||||
|
public static string[] GetStrings(byte[] bytes, int startIndex)
|
||||||
|
{
|
||||||
|
List<string> strs = new List<string>();
|
||||||
|
//byte[] tmparr;
|
||||||
|
int pos = startIndex;
|
||||||
|
while (pos < bytes.Length)
|
||||||
|
{
|
||||||
|
//tmparr = new byte[4];
|
||||||
|
//pos = 2;
|
||||||
|
//Array.Copy(bytes, pos, tmparr, 0, 4);
|
||||||
|
//int len = BitConverter.ToInt32(tmparr, 0); //A hosszúság megállapítása
|
||||||
|
int len = BitConverter.ToInt32(bytes, pos);
|
||||||
|
pos += 4;
|
||||||
|
//tmparr = new byte[len];
|
||||||
|
//Array.Copy(bytes, pos, tmparr, 0, len);
|
||||||
|
strs.Add(Encoding.Unicode.GetString(bytes, pos, len));
|
||||||
|
}
|
||||||
|
return strs.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ParseUpdateInfo(byte[][] bytes)
|
||||||
|
{
|
||||||
|
if (bytes == null)
|
||||||
|
return;
|
||||||
|
for (int i = 0; i < bytes.Length; i++)
|
||||||
|
{
|
||||||
|
//byte[] tmp = new byte[bytes[i].Length - 4];
|
||||||
|
//Array.Copy(bytes[i], 4, tmp, 0, tmp.Length); //Az első 4 bájt a UserID
|
||||||
|
byte[] data = ParsePacket(bytes[i]).Data;
|
||||||
|
//string[] strs = Storage.Decrypt(tmp).Split(new string[] { "\n", "\n\r" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
string[] strs = Encoding.Unicode.GetString(data).Split(new string[] { "\n", "\n\r" }, StringSplitOptions.RemoveEmptyEntries); //2014.09.19.
|
||||||
|
string str = "";
|
||||||
|
for (int j = 0; j < strs.Length; j++)
|
||||||
|
{
|
||||||
|
string[] spl = strs[j].Split('_'); //2014.08.30.
|
||||||
|
int uid = Int32.Parse(spl[0]); //2014.08.30.
|
||||||
|
string[] keyvalue = spl[1].Split('='); //2014.08.30.
|
||||||
|
if (keyvalue[0] == "ispartner")
|
||||||
|
{ //2014.08.30.
|
||||||
|
string resp = Networking.SendRequest("ispartner", uid + "", 0, true);
|
||||||
|
if (resp == "yes")
|
||||||
|
str += "userinfo_" + uid + "_ispartner=True";
|
||||||
|
else if (resp == "no")
|
||||||
|
str += "userinfo_" + uid + "_ispartner=False";
|
||||||
|
else
|
||||||
|
MessageBox.Show("ispartner:\n" + resp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
//strs[j] = "userinfo_" + strs[j];
|
||||||
|
//str += strs[j];
|
||||||
|
str += "userinfo_" + strs[j];
|
||||||
|
if (j + 1 != strs.Length)
|
||||||
|
str += "\n";
|
||||||
|
}
|
||||||
|
Storage.Parse(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ParsePacket(byte[] bytes, out byte response, out UpdateType updatetype, out int keyversion, out int userid, out byte[] data)
|
||||||
|
{ //2014.09.15.
|
||||||
|
if (CurrentUser.Keys[CurrentUser.KeyIndex] != null)
|
||||||
|
bytes = Storage.Encrypt(bytes, CurrentUser.Keys[CurrentUser.KeyIndex]);
|
||||||
|
else
|
||||||
|
bytes = Storage.Encrypt(bytes, "ihavenokeys");
|
||||||
|
response = bytes[0];
|
||||||
|
updatetype = (UpdateType)bytes[1];
|
||||||
|
keyversion = BitConverter.ToInt32(bytes, 1 + 1);
|
||||||
|
userid = BitConverter.ToInt32(bytes, 1 + 1 + 4);
|
||||||
|
data = new byte[bytes.Length - 1 - 1 - 4 - 4];
|
||||||
|
Array.Copy(bytes, 2 + 4 + 4, data, 0, data.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct PacketParts
|
||||||
|
{
|
||||||
|
public bool Response;
|
||||||
|
public UpdateType UpdateType;
|
||||||
|
public int KeyVersion;
|
||||||
|
public int UserID;
|
||||||
|
public byte[] Data;
|
||||||
|
};
|
||||||
|
|
||||||
|
public static PacketParts ParsePacket(byte[] bytes)
|
||||||
|
{ //2014.09.15.
|
||||||
|
if (CurrentUser.Keys[CurrentUser.KeyIndex] != null)
|
||||||
|
bytes = Storage.Encrypt(bytes, CurrentUser.Keys[CurrentUser.KeyIndex]);
|
||||||
|
else
|
||||||
|
bytes = Storage.Encrypt(bytes, "ihavenokeys");
|
||||||
|
var ret = new PacketParts();
|
||||||
|
ret.Response = (bytes[0] == 0x01) ? true : false;
|
||||||
|
ret.UpdateType = (UpdateType)bytes[1];
|
||||||
|
ret.KeyVersion = BitConverter.ToInt32(bytes, 1 + 1);
|
||||||
|
ret.UserID = BitConverter.ToInt32(bytes, 1 + 1 + 4);
|
||||||
|
ret.Data = new byte[bytes.Length - 1 - 1 - 4 - 4];
|
||||||
|
Array.Copy(bytes, 2 + 4 + 4, ret.Data, 0, ret.Data.Length);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] CreatePacket(bool response, byte updatetype, byte[] data)
|
||||||
|
{ //2014.09.15.
|
||||||
|
List<byte> senddata = new List<byte>();
|
||||||
|
senddata.Add((response) ? (byte)0x01 : (byte)0x00); //0x00: Kérelem/Adatküldés, 0x01: Válasz
|
||||||
|
senddata.Add(updatetype);
|
||||||
|
senddata.AddRange(BitConverter.GetBytes(CurrentUser.KeyIndex));
|
||||||
|
List<byte> sendd = new List<byte>();
|
||||||
|
sendd.AddRange(BitConverter.GetBytes(CurrentUser.UserID));
|
||||||
|
sendd.AddRange(data);
|
||||||
|
if (CurrentUser.Keys[CurrentUser.KeyIndex] != null)
|
||||||
|
senddata.AddRange(Storage.Encrypt(sendd.ToArray(), CurrentUser.Keys[CurrentUser.KeyIndex]));
|
||||||
|
else
|
||||||
|
senddata.AddRange(Storage.Encrypt(sendd.ToArray(), "ihavenokeys"));
|
||||||
|
return senddata.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int Tries = 0;
|
||||||
|
public static string SendRequest(string action, string data, int remnum, bool loggedin) //2014.02.18.
|
||||||
|
{
|
||||||
|
#if LOCAL_SERVER //2014.07.07. 22:00
|
||||||
|
HttpWebRequest httpWReq =
|
||||||
|
(HttpWebRequest)WebRequest.Create("http://localhost/ChatWithWords/client.php");
|
||||||
|
#else
|
||||||
|
HttpWebRequest httpWReq =
|
||||||
|
(HttpWebRequest)WebRequest.Create("http://msger.url.ph/client.php");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||||
|
string postData = "action=" + action;
|
||||||
|
if (loggedin) //2014.03.14.
|
||||||
|
postData += "&uid=" + CurrentUser.UserID;
|
||||||
|
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
||||||
|
if (loggedin) //2014.03.14.
|
||||||
|
postData += "&code=" + LoginForm.UserCode; //2014.02.13.
|
||||||
|
postData += "&data=" + Uri.EscapeUriString(data); //2014.02.13.
|
||||||
|
byte[] datax = encoding.GetBytes(postData);
|
||||||
|
|
||||||
|
httpWReq.Method = "POST";
|
||||||
|
httpWReq.ContentType = "application/x-www-form-urlencoded";
|
||||||
|
httpWReq.ContentLength = datax.Length;
|
||||||
|
|
||||||
|
using (Stream stream = httpWReq.GetRequestStream())
|
||||||
|
{
|
||||||
|
stream.Write(datax, 0, datax.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Lista betöltése folyamatban...
|
||||||
|
|
||||||
|
HttpWebResponse response;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
response = (HttpWebResponse)httpWReq.GetResponse();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
if (Tries > 10)
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("error_network") + ":\n" + e.Message + "\n\n" + Language.Translate("error_network2"), Language.Translate("error")); //2014.04.25.
|
||||||
|
Tries = 0;
|
||||||
|
}
|
||||||
|
Tries++;
|
||||||
|
return SendRequest(action, data, remnum, loggedin); //Újrapróbálkozik
|
||||||
|
}
|
||||||
|
//if (!binary)
|
||||||
|
//{
|
||||||
|
string responseString;
|
||||||
|
responseString = Uri.UnescapeDataString(new StreamReader(response.GetResponseStream()).ReadToEnd());
|
||||||
|
return responseString;
|
||||||
|
//}
|
||||||
|
/*else
|
||||||
|
{
|
||||||
|
byte[] responseBinary = new byte[1024 * 1024 * 60];
|
||||||
|
response.GetResponseStream().Read(responseBinary, 0, 1024 * 1024 * 60); //Nem vagyok még biztos benne, hogy jó ötlet-e
|
||||||
|
return responseBinary;
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
/*public static string SendRequest(string action, string data, int remnum, bool loggedin) //2014.08.02.
|
||||||
|
{
|
||||||
|
return (string)SendRequest(action, data, remnum, loggedin, false);
|
||||||
|
}*/
|
||||||
|
//public static Socket SendConnection;
|
||||||
|
/*public static object SendSocket(string action, string data, int remnum, bool loggedin, bool binary) //2014.02.18.
|
||||||
|
{
|
||||||
|
Socket SendConnection;
|
||||||
|
#if LOCAL_SERVER //2014.07.07. 22:00
|
||||||
|
SendConnection = new Socket(SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
SendConnection.Connect("localhost", Settings.Default.port + 1); //2014.08.02.
|
||||||
|
#else
|
||||||
|
Connection = new Socket(SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
Connection.Connect("localhost", Settings.Default.port + 1); //2014.08.02.
|
||||||
|
#endif
|
||||||
|
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||||
|
string postData = "action=" + action;
|
||||||
|
if (loggedin) //2014.03.14.
|
||||||
|
postData += "&uid=" + CurrentUser.UserID;
|
||||||
|
postData += "&key=cas1fe4a6feFEFEFE1616CE8099VFE1444cdasf48c1ase5dg";
|
||||||
|
if (loggedin) //2014.03.14.
|
||||||
|
postData += "&code=" + LoginForm.UserCode; //2014.02.13.
|
||||||
|
postData += "&data=" + Uri.EscapeUriString(data); //2014.02.13.
|
||||||
|
byte[] datax = encoding.GetBytes(postData);
|
||||||
|
|
||||||
|
SendConnection.Send(BitConverter.GetBytes(datax.Length));
|
||||||
|
SendConnection.Send(datax);
|
||||||
|
|
||||||
|
//Lista betöltése folyamatban...
|
||||||
|
|
||||||
|
byte[] response = new byte[4];
|
||||||
|
SendConnection.Receive(response, 4, SocketFlags.None);
|
||||||
|
int len = BitConverter.ToInt32(response, 0);
|
||||||
|
|
||||||
|
response = new byte[len];
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SendConnection.Receive(response);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
if (Tries > 10)
|
||||||
|
{
|
||||||
|
MessageBox.Show(Language.Translate("error_network"] + ":\n" + e.Message + "\n\n" + Language.Translate("error_network2"], Language.Translate("error"]); //2014.04.25.
|
||||||
|
Tries = 0;
|
||||||
|
}
|
||||||
|
Tries++;
|
||||||
|
return SendRequest(action, data, remnum, loggedin); //Újrapróbálkozik
|
||||||
|
}
|
||||||
|
if (!binary)
|
||||||
|
{
|
||||||
|
string responseString;
|
||||||
|
responseString = encoding.GetString(response);
|
||||||
|
return responseString;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
public static void KeepUpThread()
|
||||||
|
{ //2014.08.28.
|
||||||
|
Thread.Sleep(59 * 60 * 1000); //59 percenként frissíti a jelenlétét, így biztosan nem jelenti offline-nak a PHP (elvileg)
|
||||||
|
Console.WriteLine("KeepUpThread: " + Networking.SendRequest("keepactive", "", 0, true));
|
||||||
|
}
|
||||||
|
public static void KeepUpUsersThread() //2014.09.26. - Nehogy bezáruljon a kapcsolat
|
||||||
|
{
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
Networking.SendUpdate(UpdateType.KeepAlive, new byte[] { 0x01 }, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
99
Versions/Less Closed Beta/v3.0/MSGer.tk/Notifier.Designer.cs
generated
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class Notifier
|
||||||
|
{
|
||||||
|
/// <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.CloseButton = new System.Windows.Forms.PictureBox();
|
||||||
|
this.Title = new System.Windows.Forms.Label();
|
||||||
|
this.Content = new System.Windows.Forms.Label();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.CloseButton)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// CloseButton
|
||||||
|
//
|
||||||
|
this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.CloseButton.Location = new System.Drawing.Point(241, 12);
|
||||||
|
this.CloseButton.Name = "CloseButton";
|
||||||
|
this.CloseButton.Size = new System.Drawing.Size(31, 28);
|
||||||
|
this.CloseButton.TabIndex = 0;
|
||||||
|
this.CloseButton.TabStop = false;
|
||||||
|
this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click);
|
||||||
|
//
|
||||||
|
// Title
|
||||||
|
//
|
||||||
|
this.Title.AutoSize = true;
|
||||||
|
this.Title.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.Title.Location = new System.Drawing.Point(35, 26);
|
||||||
|
this.Title.Name = "Title";
|
||||||
|
this.Title.Size = new System.Drawing.Size(33, 13);
|
||||||
|
this.Title.TabIndex = 1;
|
||||||
|
this.Title.Text = "Teszt";
|
||||||
|
//
|
||||||
|
// Content
|
||||||
|
//
|
||||||
|
this.Content.AutoSize = true;
|
||||||
|
this.Content.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.Content.Location = new System.Drawing.Point(12, 58);
|
||||||
|
this.Content.Name = "Content";
|
||||||
|
this.Content.Size = new System.Drawing.Size(33, 26);
|
||||||
|
this.Content.TabIndex = 2;
|
||||||
|
this.Content.Text = "Teszt\r\nAsd";
|
||||||
|
//
|
||||||
|
// Notifier
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.White;
|
||||||
|
this.ClientSize = new System.Drawing.Size(284, 262);
|
||||||
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.Content);
|
||||||
|
this.Controls.Add(this.Title);
|
||||||
|
this.Controls.Add(this.CloseButton);
|
||||||
|
this.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
|
this.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "Notifier";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||||
|
this.TopMost = true;
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.CloseButton)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.PictureBox CloseButton;
|
||||||
|
private System.Windows.Forms.Label Title;
|
||||||
|
private System.Windows.Forms.Label Content;
|
||||||
|
}
|
||||||
|
}
|
72
Versions/Less Closed Beta/v3.0/MSGer.tk/Notifier.cs
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class Notifier : Form
|
||||||
|
{ //2014.04.15.
|
||||||
|
private Rectangle WorkAreaRectangle;
|
||||||
|
private Timer NotifierTimer;
|
||||||
|
|
||||||
|
public event EventHandler CloseClick; //2014.08.29.
|
||||||
|
public Notifier(string background, Color TransparentColor, string closebutton, int waittime) //waittime: 2014.04.17.
|
||||||
|
{
|
||||||
|
if (!File.Exists(background))
|
||||||
|
throw new FileNotFoundException("A megadott háttér nem található.");
|
||||||
|
if (!File.Exists(closebutton))
|
||||||
|
throw new FileNotFoundException("A megadott bezáró ikon nem található.");
|
||||||
|
InitializeComponent();
|
||||||
|
this.BackgroundImage = Image.FromFile(background);
|
||||||
|
this.TransparencyKey = TransparentColor;
|
||||||
|
CloseButton.ImageLocation = closebutton;
|
||||||
|
var size = Image.FromFile(closebutton).Size;
|
||||||
|
CloseButton.Left = CloseButton.Right - size.Width; //2014.08.29.
|
||||||
|
CloseButton.Width = size.Width; //2014.08.29.
|
||||||
|
CloseButton.Height = size.Height; //2014.08.29.
|
||||||
|
//this.Show();
|
||||||
|
//this.Hide();
|
||||||
|
NotifierTimer = new Timer();
|
||||||
|
NotifierTimer.Interval = waittime;
|
||||||
|
NotifierTimer.Tick += NotifierTimer_Tick;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NotifierTimer_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
NotifierTimer.Stop();
|
||||||
|
this.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Notifier(Image background, Color TransparentColor, Image closebutton, int waittime) //waittime: 2014.08.28.
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.BackgroundImage = background;
|
||||||
|
this.TransparencyKey = TransparentColor;
|
||||||
|
CloseButton.Image = closebutton;
|
||||||
|
//this.Show();
|
||||||
|
//this.Hide();
|
||||||
|
}
|
||||||
|
public void Show(string title, string content) //(kép) - 2014.04.15.
|
||||||
|
{
|
||||||
|
WorkAreaRectangle = Screen.GetWorkingArea(WorkAreaRectangle); //2014.04.17.
|
||||||
|
Title.Text = title;
|
||||||
|
Content.Text = content;
|
||||||
|
this.WindowState = FormWindowState.Normal;
|
||||||
|
SetBounds(WorkAreaRectangle.Right - BackgroundImage.Width - 17, WorkAreaRectangle.Bottom - 100, BackgroundImage.Width, 100);
|
||||||
|
this.Show();
|
||||||
|
NotifierTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CloseButton_Click(object sender, EventArgs e)
|
||||||
|
{ //2014.08.29.
|
||||||
|
CloseClick(sender, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/Notifier.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/ObjectListView.dll
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>9.0.30729</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{18FEDA0C-D147-4286-B39A-01204808106A}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>BrightIdeasSoftware</RootNamespace>
|
||||||
|
<AssemblyName>ObjectListView</AssemblyName>
|
||||||
|
<FileUpgradeFlags>
|
||||||
|
</FileUpgradeFlags>
|
||||||
|
<UpgradeBackupLocation>
|
||||||
|
</UpgradeBackupLocation>
|
||||||
|
<OldToolsVersion>3.5</OldToolsVersion>
|
||||||
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||||
|
<SignAssembly>true</SignAssembly>
|
||||||
|
<AssemblyOriginatorKeyFile>olv-keyfile.snk</AssemblyOriginatorKeyFile>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
|
<DocumentationFile>bin\Debug\ObjectListView.XML</DocumentationFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Accessibility" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.configuration" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Design" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="DataTreeListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DragDrop\OLVDataObject.cs" />
|
||||||
|
<Compile Include="Filtering\DateTimeClusteringStrategy.cs" />
|
||||||
|
<Compile Include="Filtering\FlagClusteringStrategy.cs" />
|
||||||
|
<Compile Include="Filtering\TextMatchFilter.cs" />
|
||||||
|
<Compile Include="Implementation\Delegates.cs" />
|
||||||
|
<Compile Include="Implementation\Enums.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Implementation\GroupingParameters.cs" />
|
||||||
|
<Compile Include="Implementation\NullableDictionary.cs" />
|
||||||
|
<Compile Include="Implementation\OLVListItem.cs" />
|
||||||
|
<Compile Include="Implementation\OLVListSubItem.cs" />
|
||||||
|
<Compile Include="Implementation\OlvListViewHitTestInfo.cs" />
|
||||||
|
<Compile Include="Implementation\TreeDataSourceAdapter.cs" />
|
||||||
|
<Compile Include="OLVColumn.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Rendering\Adornments.cs" />
|
||||||
|
<Compile Include="Implementation\Attributes.cs" />
|
||||||
|
<Compile Include="CellEditing\CellEditors.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="CellEditing\EditorRegistry.cs" />
|
||||||
|
<Compile Include="DataListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Implementation\DataSourceAdapter.cs" />
|
||||||
|
<Compile Include="Rendering\Decorations.cs" />
|
||||||
|
<Compile Include="DragDrop\DragSource.cs" />
|
||||||
|
<Compile Include="DragDrop\DropSink.cs" />
|
||||||
|
<Compile Include="Implementation\Events.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FastDataListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Filtering\ClusteringStrategy.cs" />
|
||||||
|
<Compile Include="Filtering\Cluster.cs" />
|
||||||
|
<Compile Include="Filtering\ClustersFromGroupsStrategy.cs" />
|
||||||
|
<Compile Include="FastObjectListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Filtering\FilterMenuBuilder.cs" />
|
||||||
|
<Compile Include="Filtering\Filters.cs" />
|
||||||
|
<Compile Include="Filtering\ICluster.cs" />
|
||||||
|
<Compile Include="Filtering\IClusteringStrategy.cs" />
|
||||||
|
<Compile Include="Rendering\TreeRenderer.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SubControls\ToolStripCheckedListBox.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Utilities\ColumnSelectionForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Utilities\ColumnSelectionForm.Designer.cs">
|
||||||
|
<DependentUpon>ColumnSelectionForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Utilities\Generator.cs" />
|
||||||
|
<Compile Include="SubControls\GlassPanelForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Implementation\Groups.cs" />
|
||||||
|
<Compile Include="SubControls\HeaderControl.cs">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="CellEditing\CellEditKeyEngine.cs" />
|
||||||
|
<Compile Include="Implementation\Munger.cs" />
|
||||||
|
<Compile Include="Implementation\NativeMethods.cs" />
|
||||||
|
<Compile Include="Implementation\Comparers.cs">
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ObjectListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ObjectListView.DesignTime.cs" />
|
||||||
|
<Compile Include="Rendering\Overlays.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Rendering\Renderers.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Rendering\Styles.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SubControls\ToolTipControl.cs" />
|
||||||
|
<Compile Include="TreeListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Utilities\OLVExporter.cs" />
|
||||||
|
<Compile Include="Utilities\TypedObjectListView.cs" />
|
||||||
|
<Compile Include="Implementation\VirtualGroups.cs" />
|
||||||
|
<Compile Include="Implementation\VirtualListDataSource.cs" />
|
||||||
|
<Compile Include="VirtualObjectListView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="CustomDictionary.xml" />
|
||||||
|
<None Include="FullClassDiagram.cd" />
|
||||||
|
<None Include="Resources\sort-descending.png" />
|
||||||
|
<None Include="Resources\sort-ascending.png" />
|
||||||
|
<None Include="Resources\filter.png" />
|
||||||
|
<None Include="Resources\clear-filter.png" />
|
||||||
|
<None Include="Resources\filter-icons3.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="olv-keyfile.snk" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Utilities\ColumnSelectionForm.resx">
|
||||||
|
<DependentUpon>ColumnSelectionForm.cs</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
182
Versions/Less Closed Beta/v3.0/MSGer.tk/PartnerInformation.Designer.cs
generated
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class PartnerInformation
|
||||||
|
{
|
||||||
|
/// <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.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
|
this.nameTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.messageTextBox = new Khendys.Controls.ExRichTextBox();
|
||||||
|
this.statusLabel = new System.Windows.Forms.Label();
|
||||||
|
this.userName1 = new System.Windows.Forms.Label();
|
||||||
|
this.userName2 = new System.Windows.Forms.Label();
|
||||||
|
this.userID1 = new System.Windows.Forms.Label();
|
||||||
|
this.userID2 = new System.Windows.Forms.Label();
|
||||||
|
this.email2 = new System.Windows.Forms.Label();
|
||||||
|
this.email1 = new System.Windows.Forms.Label();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
this.pictureBox1.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.pictureBox1.Name = "pictureBox1";
|
||||||
|
this.pictureBox1.Size = new System.Drawing.Size(100, 100);
|
||||||
|
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
|
this.pictureBox1.TabIndex = 0;
|
||||||
|
this.pictureBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// nameTextBox
|
||||||
|
//
|
||||||
|
this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.nameTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.nameTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.nameTextBox.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.nameTextBox.Location = new System.Drawing.Point(119, 12);
|
||||||
|
this.nameTextBox.Multiline = false;
|
||||||
|
this.nameTextBox.Name = "nameTextBox";
|
||||||
|
this.nameTextBox.ReadOnly = true;
|
||||||
|
this.nameTextBox.Size = new System.Drawing.Size(445, 30);
|
||||||
|
this.nameTextBox.TabIndex = 1;
|
||||||
|
this.nameTextBox.Text = "ShownName";
|
||||||
|
this.nameTextBox.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
//
|
||||||
|
// messageTextBox
|
||||||
|
//
|
||||||
|
this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.messageTextBox.HiglightColor = Khendys.Controls.RtfColor.White;
|
||||||
|
this.messageTextBox.Location = new System.Drawing.Point(119, 57);
|
||||||
|
this.messageTextBox.Name = "messageTextBox";
|
||||||
|
this.messageTextBox.ReadOnly = true;
|
||||||
|
this.messageTextBox.Size = new System.Drawing.Size(445, 55);
|
||||||
|
this.messageTextBox.TabIndex = 2;
|
||||||
|
this.messageTextBox.Text = "User Message\nLine";
|
||||||
|
this.messageTextBox.TextColor = Khendys.Controls.RtfColor.Black;
|
||||||
|
//
|
||||||
|
// statusLabel
|
||||||
|
//
|
||||||
|
this.statusLabel.AutoSize = true;
|
||||||
|
this.statusLabel.Location = new System.Drawing.Point(119, 38);
|
||||||
|
this.statusLabel.Name = "statusLabel";
|
||||||
|
this.statusLabel.Size = new System.Drawing.Size(63, 13);
|
||||||
|
this.statusLabel.TabIndex = 3;
|
||||||
|
this.statusLabel.Text = "StatusLabel";
|
||||||
|
//
|
||||||
|
// userName1
|
||||||
|
//
|
||||||
|
this.userName1.AutoSize = true;
|
||||||
|
this.userName1.Location = new System.Drawing.Point(12, 120);
|
||||||
|
this.userName1.Name = "userName1";
|
||||||
|
this.userName1.Size = new System.Drawing.Size(63, 13);
|
||||||
|
this.userName1.TabIndex = 4;
|
||||||
|
this.userName1.Text = "UserName1";
|
||||||
|
//
|
||||||
|
// userName2
|
||||||
|
//
|
||||||
|
this.userName2.AutoSize = true;
|
||||||
|
this.userName2.Location = new System.Drawing.Point(119, 120);
|
||||||
|
this.userName2.Name = "userName2";
|
||||||
|
this.userName2.Size = new System.Drawing.Size(63, 13);
|
||||||
|
this.userName2.TabIndex = 5;
|
||||||
|
this.userName2.Text = "UserName2";
|
||||||
|
//
|
||||||
|
// userID1
|
||||||
|
//
|
||||||
|
this.userID1.AutoSize = true;
|
||||||
|
this.userID1.Location = new System.Drawing.Point(12, 135);
|
||||||
|
this.userID1.Name = "userID1";
|
||||||
|
this.userID1.Size = new System.Drawing.Size(46, 13);
|
||||||
|
this.userID1.TabIndex = 6;
|
||||||
|
this.userID1.Text = "UserID1";
|
||||||
|
//
|
||||||
|
// userID2
|
||||||
|
//
|
||||||
|
this.userID2.AutoSize = true;
|
||||||
|
this.userID2.Location = new System.Drawing.Point(119, 135);
|
||||||
|
this.userID2.Name = "userID2";
|
||||||
|
this.userID2.Size = new System.Drawing.Size(46, 13);
|
||||||
|
this.userID2.TabIndex = 7;
|
||||||
|
this.userID2.Text = "UserID2";
|
||||||
|
//
|
||||||
|
// email2
|
||||||
|
//
|
||||||
|
this.email2.AutoSize = true;
|
||||||
|
this.email2.Location = new System.Drawing.Point(119, 150);
|
||||||
|
this.email2.Name = "email2";
|
||||||
|
this.email2.Size = new System.Drawing.Size(38, 13);
|
||||||
|
this.email2.TabIndex = 9;
|
||||||
|
this.email2.Text = "Email2";
|
||||||
|
//
|
||||||
|
// email1
|
||||||
|
//
|
||||||
|
this.email1.AutoSize = true;
|
||||||
|
this.email1.Location = new System.Drawing.Point(12, 150);
|
||||||
|
this.email1.Name = "email1";
|
||||||
|
this.email1.Size = new System.Drawing.Size(38, 13);
|
||||||
|
this.email1.TabIndex = 8;
|
||||||
|
this.email1.Text = "Email1";
|
||||||
|
//
|
||||||
|
// PartnerInformation
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(576, 273);
|
||||||
|
this.Controls.Add(this.email2);
|
||||||
|
this.Controls.Add(this.email1);
|
||||||
|
this.Controls.Add(this.userID2);
|
||||||
|
this.Controls.Add(this.userID1);
|
||||||
|
this.Controls.Add(this.userName2);
|
||||||
|
this.Controls.Add(this.userName1);
|
||||||
|
this.Controls.Add(this.statusLabel);
|
||||||
|
this.Controls.Add(this.messageTextBox);
|
||||||
|
this.Controls.Add(this.nameTextBox);
|
||||||
|
this.Controls.Add(this.pictureBox1);
|
||||||
|
this.Name = "PartnerInformation";
|
||||||
|
this.Text = "PartnerInformation";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.PictureBox pictureBox1;
|
||||||
|
private Khendys.Controls.ExRichTextBox nameTextBox;
|
||||||
|
private Khendys.Controls.ExRichTextBox messageTextBox;
|
||||||
|
private System.Windows.Forms.Label statusLabel;
|
||||||
|
private System.Windows.Forms.Label userName1;
|
||||||
|
private System.Windows.Forms.Label userName2;
|
||||||
|
private System.Windows.Forms.Label userID1;
|
||||||
|
private System.Windows.Forms.Label userID2;
|
||||||
|
private System.Windows.Forms.Label email2;
|
||||||
|
private System.Windows.Forms.Label email1;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class PartnerInformation : Form
|
||||||
|
{
|
||||||
|
//public PartnerInformation(string shownname, int status, string message, string username, int userid, string email)
|
||||||
|
public PartnerInformation(UserInfo uinfo)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
nameTextBox.BackColor = this.BackColor;
|
||||||
|
messageTextBox.BackColor = this.BackColor;
|
||||||
|
|
||||||
|
string tmp = Path.GetTempPath();
|
||||||
|
string pictlocation = tmp + "\\MSGer.tk\\pictures\\" + uinfo.UserID + ".png";
|
||||||
|
if (File.Exists(pictlocation))
|
||||||
|
pictureBox1.ImageLocation = pictlocation;
|
||||||
|
else
|
||||||
|
pictureBox1.ImageLocation = "noimage.png";
|
||||||
|
nameTextBox.Text = uinfo.Name;
|
||||||
|
//statusLabel.Text = uinfo.State.ToString();
|
||||||
|
if (uinfo.State == 1)
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_online");
|
||||||
|
else if (uinfo.State == 2)
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_busy");
|
||||||
|
else if (uinfo.State == 3)
|
||||||
|
statusLabel.Text = Language.Translate("menu_file_status_away");
|
||||||
|
else
|
||||||
|
statusLabel.Text = "";
|
||||||
|
messageTextBox.Text = uinfo.Message;
|
||||||
|
userName1.Text = Language.Translate("reg_username") + ":";
|
||||||
|
userName2.Text = uinfo.UserName;
|
||||||
|
userID1.Text = Language.Translate("userid");
|
||||||
|
userID2.Text = uinfo.UserID.ToString();
|
||||||
|
email1.Text = "E-mail:";
|
||||||
|
email2.Text = uinfo.Email;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/PartnerInformation.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
190
Versions/Less Closed Beta/v3.0/MSGer.tk/Program.cs
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
//#define LOCAL_SERVER
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using SzNPProjects;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
public static MainForm MainF;
|
||||||
|
public static string ProcessName = Process.GetCurrentProcess().ProcessName;
|
||||||
|
//public static BeforeLogin BeforeLForm;
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Process[] pname = Process.GetProcessesByName(ProcessName);
|
||||||
|
if (pname.Length > 1 && !(args.Length > 0 && args[0] == "multi"))
|
||||||
|
//Program.Exit(false);
|
||||||
|
Environment.Exit(0); //2014.09.26. - Felesleges bármi más műveletet végrehajtani, még nem is töltött be semmit
|
||||||
|
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
BeforeLogin.Create();
|
||||||
|
//BeforeLForm.Show();
|
||||||
|
Console.WriteLine("Starting MSGer.tk...");
|
||||||
|
AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
MainF = new MainForm();
|
||||||
|
//Console.WriteLine("Test: " + MainF.Test(MainF.Text));
|
||||||
|
//Console.WriteLine("Test: " + MainF.Test(MainF));
|
||||||
|
Application.Run(MainF);
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException e)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Egy fájl nem található.\nA fájl neve:\n" + e.FileName + "\nEnnél a műveletnél: " + e.TargetSite);
|
||||||
|
|
||||||
|
}
|
||||||
|
/*catch(Exception e)
|
||||||
|
{
|
||||||
|
ErrorHandling.FormError(MainF, e);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
public static readonly bool ShowFirstChangeExceptions = false;
|
||||||
|
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("An unhandled error occured\n" + ((Exception)e.ExceptionObject).Message + "\nHere: " + ((Exception)e.ExceptionObject).TargetSite + ((e.IsTerminating) ? "\nThe program will exit(?)." : "") + "\n\nExit?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
//Environment.Exit(0);
|
||||||
|
Program.Exit(CurrentUser.UserID != 0); //2014.09.26. - Ha be van jelentkezve, elmenti a beállításokat - Csak mert így tán a legegyszerűbb
|
||||||
|
}
|
||||||
|
|
||||||
|
static void CurrentDomain_FirstChanceException(object sender, System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
if (ShowFirstChangeExceptions)
|
||||||
|
MessageBox.Show("An error occured (a first change exception):\n" + e.Exception.Message + "\nHere: " + e.Exception.TargetSite);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0,
|
||||||
|
DateTimeKind.Utc);
|
||||||
|
|
||||||
|
public static DateTime UnixTimeToDateTime(string text)
|
||||||
|
{
|
||||||
|
double seconds = double.Parse(text, CultureInfo.InvariantCulture);
|
||||||
|
//2014.04.25.
|
||||||
|
DateTime time = Epoch.AddSeconds(seconds);
|
||||||
|
time = DateTime.SpecifyKind(time, DateTimeKind.Utc);
|
||||||
|
return time.ToLocalTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DateTimeToUnixTime(DateTime time) //2014.08.28.
|
||||||
|
{
|
||||||
|
return ((time.Ticks - 621355968000000000) / 10000000).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void BeforeExit(bool savesettings)
|
||||||
|
{ //2014.09.01.
|
||||||
|
if (MainF != null)
|
||||||
|
{
|
||||||
|
MainF.Hide();
|
||||||
|
MainF.toolStripMenuItem4.Enabled = false; //2014.04.12.
|
||||||
|
MainF.toolStripMenuItem8.Enabled = false; //2014.04.12.
|
||||||
|
MainF.notifyIcon1.Dispose(); //2014.08.28.
|
||||||
|
if (CurrentUser.UserID != 0) //2014.04.18.
|
||||||
|
{
|
||||||
|
CurrentUser.SendChanges = false; //2014.08.30.
|
||||||
|
MainF.SetOnlineState(null, null); //2014.04.12.)
|
||||||
|
if (MainF.WindowState == FormWindowState.Maximized) //2014.04.18. - 2014.08.08.
|
||||||
|
Storage.Settings["windowstate"] = "1";
|
||||||
|
else if (MainF.WindowState == FormWindowState.Minimized)
|
||||||
|
Storage.Settings["windowstate"] = "2";
|
||||||
|
else if (MainF.WindowState == FormWindowState.Normal)
|
||||||
|
Storage.Settings["windowstate"] = "3";
|
||||||
|
//Settings.Default.Save();
|
||||||
|
Storage.Save(true); //2014.08.07.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (savesettings) //2014.08.28.
|
||||||
|
Storage.Save(false); //2014.08.08.
|
||||||
|
if (Networking.ReceiverConnection != null)
|
||||||
|
Networking.ReceiverConnection.Close();
|
||||||
|
if (Networking.SenderConnection != null)
|
||||||
|
Networking.SenderConnection.Close();
|
||||||
|
}
|
||||||
|
public static void Exit(bool savesettings)
|
||||||
|
{ //2014.04.12.
|
||||||
|
BeforeExit(savesettings);
|
||||||
|
//CurrentUser.UserID = 0; - Felesleges, néha megáll itt, és úgy hajt végre egy bejelentkezést igénylő lekérést
|
||||||
|
//Application.Exit();
|
||||||
|
//Application.ExitThread();
|
||||||
|
Environment.Exit(0); //Hatásosabb
|
||||||
|
MessageBox.Show("Hiba: Nem sikerült leállítani a programot.");
|
||||||
|
}
|
||||||
|
public static void Exit()
|
||||||
|
{ //2014.08.28. - Csak akkor ne mentse el a beállításokat, ha nem is töltötte még be őket
|
||||||
|
Exit(true);
|
||||||
|
}
|
||||||
|
public static void Restart(bool savesettings)
|
||||||
|
{ //2014.09.01.
|
||||||
|
BeforeExit(savesettings);
|
||||||
|
Process.Start(((ProcessName.Contains("vshost")) ? ProcessName.Replace(".vshost", "") : ProcessName) + ".exe");
|
||||||
|
Environment.Exit(0);
|
||||||
|
MessageBox.Show("Hiba: Nem sikerült leállítani a programot.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class EnumerableExtensions
|
||||||
|
{
|
||||||
|
public static bool HasSameElementsAs<T>(
|
||||||
|
this IEnumerable<T> first,
|
||||||
|
IEnumerable<T> second
|
||||||
|
)
|
||||||
|
{
|
||||||
|
var firstMap = first
|
||||||
|
.GroupBy(x => x)
|
||||||
|
.ToDictionary(x => x.Key, x => x.Count());
|
||||||
|
var secondMap = second
|
||||||
|
.GroupBy(x => x)
|
||||||
|
.ToDictionary(x => x.Key, x => x.Count());
|
||||||
|
return
|
||||||
|
firstMap.Keys.All(x =>
|
||||||
|
secondMap.Keys.Contains(x) && firstMap[x] == secondMap[x]
|
||||||
|
) &&
|
||||||
|
secondMap.Keys.All(x =>
|
||||||
|
firstMap.Keys.Contains(x) && secondMap[x] == firstMap[x]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool Test(this object A, object B)
|
||||||
|
{
|
||||||
|
return object.ReferenceEquals(A, B);
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Clones an object by using the .
|
||||||
|
///
|
||||||
|
/// The object to clone.
|
||||||
|
///
|
||||||
|
/// The object to be cloned must be serializable.
|
||||||
|
///
|
||||||
|
public static object Clone(object obj)
|
||||||
|
{
|
||||||
|
using (MemoryStream buffer = new MemoryStream())
|
||||||
|
{
|
||||||
|
BinaryFormatter formatter = new BinaryFormatter();
|
||||||
|
formatter.Serialize(buffer, obj);
|
||||||
|
buffer.Position = 0;
|
||||||
|
object temp = formatter.Deserialize(buffer);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
357
Versions/Less Closed Beta/v3.0/MSGer.tk/ProgressStatistic.cs
Normal file
|
@ -0,0 +1,357 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace HdSystemLibrary.IO
|
||||||
|
{
|
||||||
|
public class ProgressEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public ProgressEventArgs(ProgressStatistic progressStatistic)
|
||||||
|
{
|
||||||
|
if (progressStatistic == null)
|
||||||
|
throw new ArgumentNullException("progressStatistic");
|
||||||
|
ProgressStatistic = progressStatistic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProgressStatistic ProgressStatistic { get; private set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class OperationAlreadyStartedException : Exception
|
||||||
|
{
|
||||||
|
public OperationAlreadyStartedException() { }
|
||||||
|
public OperationAlreadyStartedException(string message) : base(message) { }
|
||||||
|
public OperationAlreadyStartedException(string message, Exception inner) : base(message, inner) { }
|
||||||
|
protected OperationAlreadyStartedException(
|
||||||
|
System.Runtime.Serialization.SerializationInfo info,
|
||||||
|
System.Runtime.Serialization.StreamingContext context)
|
||||||
|
: base(info, context) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A class which calculates progress statistics like average bytes per second or estimated finishing time.
|
||||||
|
/// To use it, call the ProgressChange method in regular intervals with the actual progress.
|
||||||
|
/// </summary>
|
||||||
|
public class ProgressStatistic
|
||||||
|
{
|
||||||
|
public ProgressStatistic()
|
||||||
|
{
|
||||||
|
StartingTime = DateTime.MinValue;
|
||||||
|
FinishingTime = DateTime.MinValue;
|
||||||
|
|
||||||
|
progressChangedArgs = new ProgressEventArgs(this); //Event args can be cached
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool hasStarted = false;
|
||||||
|
/// <summary>
|
||||||
|
/// Gets whether the operation has started
|
||||||
|
/// </summary>
|
||||||
|
public bool HasStarted { get { return hasStarted; } }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets whether the operation has finished
|
||||||
|
/// </summary>
|
||||||
|
public bool HasFinished { get { return FinishingTime != DateTime.MinValue; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets whether the operation is still running
|
||||||
|
/// </summary>
|
||||||
|
public bool IsRunning { get { return HasStarted && !HasFinished; } }
|
||||||
|
|
||||||
|
#region Time
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the date time when the operation has started
|
||||||
|
/// </summary>
|
||||||
|
public DateTime StartingTime { get; private set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the date time when the operation has finished
|
||||||
|
/// </summary>
|
||||||
|
public DateTime FinishingTime { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the duration of the operation.
|
||||||
|
/// If the operation is still running, the time since starting is returned.
|
||||||
|
/// If the operation has not started, TimeSpan.Zero is returned.
|
||||||
|
/// If the operation has finished, the time between starting and finishing is returned.
|
||||||
|
/// </summary>
|
||||||
|
public TimeSpan Duration
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!HasStarted)
|
||||||
|
return TimeSpan.Zero;
|
||||||
|
else if (!HasFinished)
|
||||||
|
return DateTime.Now - StartingTime;
|
||||||
|
else
|
||||||
|
return FinishingTime - StartingTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The method which will be used for estimating duration and finishing time
|
||||||
|
/// </summary>
|
||||||
|
public enum EstimatingMethod
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Current bytes per second will be used for estimating.
|
||||||
|
/// </summary>
|
||||||
|
CurrentBytesPerSecond,
|
||||||
|
/// <summary>
|
||||||
|
/// Average bytes per second will be used for estimating
|
||||||
|
/// </summary>
|
||||||
|
AverageBytesPerSecond
|
||||||
|
}
|
||||||
|
|
||||||
|
private EstimatingMethod estimatingMethod = EstimatingMethod.CurrentBytesPerSecond;
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets which method will be used for estimating.
|
||||||
|
/// Can only be set before the operation has started, otherwise an OperationAlreadyStartedException will be thrown.
|
||||||
|
/// </summary>
|
||||||
|
public EstimatingMethod UsedEstimatingMethod
|
||||||
|
{
|
||||||
|
get { return estimatingMethod; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (HasStarted)
|
||||||
|
throw new OperationAlreadyStartedException();
|
||||||
|
estimatingMethod = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the estimated duration. Use UsedEstimatingMethod to specify which method will be used for estimating.
|
||||||
|
/// If the operation will take more than 200 days, TimeSpan.MaxValue is returned.
|
||||||
|
/// </summary>
|
||||||
|
public TimeSpan EstimatedDuration
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (HasFinished)
|
||||||
|
return Duration;
|
||||||
|
if (TotalBytesToRead == -1)
|
||||||
|
return TimeSpan.MaxValue;
|
||||||
|
|
||||||
|
double bytesPerSecond = 1;
|
||||||
|
if (UsedEstimatingMethod == EstimatingMethod.AverageBytesPerSecond)
|
||||||
|
bytesPerSecond = AverageBytesPerSecond;
|
||||||
|
else if (UsedEstimatingMethod == EstimatingMethod.CurrentBytesPerSecond)
|
||||||
|
bytesPerSecond = CurrentBytesPerSecond;
|
||||||
|
|
||||||
|
double seconds = (TotalBytesToRead - BytesRead) / bytesPerSecond;
|
||||||
|
if (seconds > 60 * 60 * 24 * 200) //over 200 Days -> infinite
|
||||||
|
return TimeSpan.MaxValue;
|
||||||
|
else
|
||||||
|
return Duration + TimeSpan.FromSeconds(seconds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the estimated finishing time based on EstimatedDuration.
|
||||||
|
/// If the operation will take more than 200 days, DateTime.MaxValue is returned.
|
||||||
|
/// If the operation has finished, the actual finishing time is returned.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime EstimatedFinishingTime
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (EstimatedDuration == TimeSpan.MaxValue)
|
||||||
|
return DateTime.MaxValue;
|
||||||
|
return StartingTime + EstimatedDuration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the amount of bytes already read.
|
||||||
|
/// </summary>
|
||||||
|
public long BytesRead { get; private set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the amount of total bytes to read. Can be -1 if unknown.
|
||||||
|
/// </summary>
|
||||||
|
public long TotalBytesToRead { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the progress in percent between 0 and 1.
|
||||||
|
/// If the amount of total bytes to read is unknown, -1 is returned.
|
||||||
|
/// </summary>
|
||||||
|
public double Progress
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (TotalBytesToRead == -1)
|
||||||
|
return -1;
|
||||||
|
else
|
||||||
|
return (double)BytesRead / (double)TotalBytesToRead;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the average bytes per second.
|
||||||
|
/// </summary>
|
||||||
|
public double AverageBytesPerSecond { get { return (double)BytesRead / Duration.TotalSeconds; } }
|
||||||
|
|
||||||
|
#region CurrentBytesPerSecond
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the approximated current count of bytes processed per second
|
||||||
|
/// </summary>
|
||||||
|
public double CurrentBytesPerSecond { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
|
private TimeSpan currentBytesCalculationInterval = TimeSpan.FromSeconds(0.5);
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the interval used for the calculation of the current bytes per second. Default is 500 ms.
|
||||||
|
/// </summary>
|
||||||
|
/// <exception cref="OperationAlreadyStartedException">
|
||||||
|
/// Thrown when trying to set although the operation has already started.</exception>
|
||||||
|
public TimeSpan CurrentBytesCalculationInterval
|
||||||
|
{
|
||||||
|
get { return currentBytesCalculationInterval; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (HasStarted)
|
||||||
|
throw new InvalidOperationException("Task has already started!");
|
||||||
|
currentBytesCalculationInterval = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyValuePair<DateTime, long>[] currentBytesSamples = new KeyValuePair<DateTime, long>[6];
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the number of samples in CurrentBytesPerSecondInterval used for current bytes per second approximation
|
||||||
|
/// </summary>
|
||||||
|
/// <exception cref="OperationAlreadyStartedException">
|
||||||
|
/// Thrown when trying to set although the operation has already started.</exception>
|
||||||
|
public int CurrentBytesSampleCount
|
||||||
|
{
|
||||||
|
get { return currentBytesSamples.Length; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (HasStarted)
|
||||||
|
throw new InvalidOperationException("Task has already started!");
|
||||||
|
if (value != currentBytesSamples.Length)
|
||||||
|
{
|
||||||
|
currentBytesSamples = new KeyValuePair<DateTime, long>[value];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int currentSample = 0; //current sample index in currentBytesSamples
|
||||||
|
|
||||||
|
DateTime lastSample;
|
||||||
|
|
||||||
|
private void ProcessSample(long bytes)
|
||||||
|
{
|
||||||
|
if ((DateTime.Now - lastSample).Ticks > CurrentBytesCalculationInterval.Ticks / currentBytesSamples.Length)
|
||||||
|
{
|
||||||
|
lastSample = DateTime.Now;
|
||||||
|
|
||||||
|
KeyValuePair<DateTime, long> current = new KeyValuePair<DateTime, long>(DateTime.Now, bytes);
|
||||||
|
|
||||||
|
var old = currentBytesSamples[currentSample];
|
||||||
|
currentBytesSamples[currentSample] = current;
|
||||||
|
|
||||||
|
if (old.Key == DateTime.MinValue)
|
||||||
|
CurrentBytesPerSecond = AverageBytesPerSecond;
|
||||||
|
else
|
||||||
|
CurrentBytesPerSecond = (double)(current.Value - old.Value) / (current.Key - old.Key).TotalSeconds;
|
||||||
|
|
||||||
|
currentSample++;
|
||||||
|
if (currentSample >= currentBytesSamples.Length)
|
||||||
|
currentSample = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This method can be called to report progress changes.
|
||||||
|
/// The signature of this method is compliant with the ProgressChange-delegate
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bytesRead">The amount of bytes already read</param>
|
||||||
|
/// <param name="totalBytesToRead">The amount of total bytes to read. Can be -1 if unknown.</param>
|
||||||
|
/// <exception cref="ArgumentException">Thrown if bytesRead has not changed or even shrunk.</exception>
|
||||||
|
/// <exception cref="InvalidOperationException">Thrown if the operation has finished already.</exception>
|
||||||
|
public virtual void ProgressChange(long bytesRead, long totalBytesToRead)
|
||||||
|
{
|
||||||
|
if (bytesRead <= BytesRead)
|
||||||
|
throw new ArgumentException("Operation cannot go backwards!", "bytesRead");
|
||||||
|
|
||||||
|
if (HasFinished)
|
||||||
|
throw new InvalidOperationException("Operation has finished already!");
|
||||||
|
|
||||||
|
if (!hasStarted)
|
||||||
|
{
|
||||||
|
StartingTime = DateTime.Now;
|
||||||
|
hasStarted = true;
|
||||||
|
OnStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
BytesRead = bytesRead;
|
||||||
|
TotalBytesToRead = totalBytesToRead;
|
||||||
|
|
||||||
|
ProcessSample(bytesRead);
|
||||||
|
|
||||||
|
OnProgressChanged();
|
||||||
|
|
||||||
|
if (bytesRead == TotalBytesToRead)
|
||||||
|
{
|
||||||
|
FinishingTime = DateTime.Now;
|
||||||
|
OnFinished();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This method can be called to finish an aborted operation.
|
||||||
|
/// If the operation does not reach 100%, "Finished" will be never raised, so this method should be called.
|
||||||
|
/// </summary>
|
||||||
|
public virtual void Finish()
|
||||||
|
{
|
||||||
|
if (!HasFinished)
|
||||||
|
{
|
||||||
|
FinishingTime = DateTime.Now;
|
||||||
|
OnFinished();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Events
|
||||||
|
|
||||||
|
private readonly ProgressEventArgs progressChangedArgs;
|
||||||
|
|
||||||
|
protected virtual void OnStarted()
|
||||||
|
{
|
||||||
|
if (Started != null)
|
||||||
|
Started(this, progressChangedArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnProgressChanged()
|
||||||
|
{
|
||||||
|
if (ProgressChanged != null)
|
||||||
|
ProgressChanged(this, progressChangedArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnFinished()
|
||||||
|
{
|
||||||
|
if (Finished != null)
|
||||||
|
Finished(this, progressChangedArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Will be raised when the operation has started
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<ProgressEventArgs> Started;
|
||||||
|
/// <summary>
|
||||||
|
/// Will be raised when the progress has changed
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<ProgressEventArgs> ProgressChanged;
|
||||||
|
/// <summary>
|
||||||
|
/// Will be raised when the operation has finished
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<ProgressEventArgs> Finished;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("MSGer.tk")]
|
||||||
|
[assembly: AssemblyDescription("MSGer.tk program")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("MSGer.tk")]
|
||||||
|
[assembly: AssemblyCopyright("GNU GPLv3")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("d2fdb449-71d7-425e-942b-516005de4cc8")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("3.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("3.0.0.0")]
|
93
Versions/Less Closed Beta/v3.0/MSGer.tk/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.18444
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MSGer.tk.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("MSGer.tk.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 Blue_Wallpaper_HD_2 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Blue_Wallpaper_HD_2", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Keresősáv {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Keresősáv", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Menü_2 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Menü_2", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,130 @@
|
||||||
|
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="Keresősáv" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Keresősáv.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Blue_Wallpaper_HD_2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Blue-Wallpaper-HD 2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Menü_2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Menü 2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
30
Versions/Less Closed Beta/v3.0/MSGer.tk/Properties/Settings.Designer.cs
generated
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.17929
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MSGer.tk.Properties
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||||
|
{
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 123 KiB |
After Width: | Height: | Size: 123 KiB |
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/Resources/Keresősáv.jpg
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/Resources/Menü 2.jpg
Normal file
After Width: | Height: | Size: 708 B |
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/Resources/Menü 21.jpg
Normal file
After Width: | Height: | Size: 708 B |
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/Resources/Menü 22.jpg
Normal file
After Width: | Height: | Size: 708 B |
BIN
Versions/Less Closed Beta/v3.0/MSGer.tk/Resources/Menü 3.jpg
Normal file
After Width: | Height: | Size: 1.8 KiB |
180
Versions/Less Closed Beta/v3.0/MSGer.tk/SelectPartnerForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,180 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class SelectPartnerForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
GlacialComponents.Controls.GLColumn glColumn1 = new GlacialComponents.Controls.GLColumn();
|
||||||
|
GlacialComponents.Controls.GLItem glItem1 = new GlacialComponents.Controls.GLItem();
|
||||||
|
GlacialComponents.Controls.GLSubItem glSubItem1 = new GlacialComponents.Controls.GLSubItem();
|
||||||
|
this.partnerList = new GlacialComponents.Controls.GlacialList();
|
||||||
|
this.selectedPartners = new System.Windows.Forms.TextBox();
|
||||||
|
this.okbtn = new System.Windows.Forms.Button();
|
||||||
|
this.cancelbtn = new System.Windows.Forms.Button();
|
||||||
|
this.titleText = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// partnerList
|
||||||
|
//
|
||||||
|
this.partnerList.AllowColumnResize = false;
|
||||||
|
this.partnerList.AllowMultiselect = true;
|
||||||
|
this.partnerList.AlternateBackground = System.Drawing.Color.DarkGreen;
|
||||||
|
this.partnerList.AlternatingColors = false;
|
||||||
|
this.partnerList.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.partnerList.AutoHeight = true;
|
||||||
|
this.partnerList.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
|
this.partnerList.BackgroundStretchToFit = true;
|
||||||
|
glColumn1.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None;
|
||||||
|
glColumn1.CheckBoxes = true;
|
||||||
|
glColumn1.ImageIndex = -1;
|
||||||
|
glColumn1.Name = "PartnerName";
|
||||||
|
glColumn1.NumericSort = false;
|
||||||
|
glColumn1.Text = "";
|
||||||
|
glColumn1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
glColumn1.Width = 100;
|
||||||
|
this.partnerList.Columns.AddRange(new GlacialComponents.Controls.GLColumn[] {
|
||||||
|
glColumn1});
|
||||||
|
this.partnerList.ControlStyle = GlacialComponents.Controls.GLControlStyles.Normal;
|
||||||
|
this.partnerList.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.partnerList.FullRowSelect = true;
|
||||||
|
this.partnerList.GridColor = System.Drawing.Color.LightGray;
|
||||||
|
this.partnerList.GridLines = GlacialComponents.Controls.GLGridLines.gridBoth;
|
||||||
|
this.partnerList.GridLineStyle = GlacialComponents.Controls.GLGridLineStyles.gridNone;
|
||||||
|
this.partnerList.GridTypes = GlacialComponents.Controls.GLGridTypes.gridOnExists;
|
||||||
|
this.partnerList.HeaderHeight = 0;
|
||||||
|
this.partnerList.HeaderVisible = false;
|
||||||
|
this.partnerList.HeaderWordWrap = false;
|
||||||
|
this.partnerList.HotColumnTracking = false;
|
||||||
|
this.partnerList.HotItemTracking = true;
|
||||||
|
this.partnerList.HotTrackingColor = System.Drawing.Color.LightGray;
|
||||||
|
this.partnerList.HoverEvents = false;
|
||||||
|
this.partnerList.HoverTime = 1;
|
||||||
|
this.partnerList.ImageList = null;
|
||||||
|
this.partnerList.ItemHeight = 17;
|
||||||
|
glItem1.BackColor = System.Drawing.Color.White;
|
||||||
|
glItem1.ForeColor = System.Drawing.Color.Black;
|
||||||
|
glItem1.RowBorderColor = System.Drawing.Color.Black;
|
||||||
|
glItem1.RowBorderSize = 0;
|
||||||
|
glSubItem1.BackColor = System.Drawing.Color.Empty;
|
||||||
|
glSubItem1.Checked = false;
|
||||||
|
glSubItem1.ForceText = false;
|
||||||
|
glSubItem1.ForeColor = System.Drawing.Color.Black;
|
||||||
|
glSubItem1.ImageAlignment = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
glSubItem1.ImageIndex = -1;
|
||||||
|
glSubItem1.Text = "Test";
|
||||||
|
glItem1.SubItems.AddRange(new GlacialComponents.Controls.GLSubItem[] {
|
||||||
|
glSubItem1});
|
||||||
|
glItem1.Text = "Test";
|
||||||
|
this.partnerList.Items.AddRange(new GlacialComponents.Controls.GLItem[] {
|
||||||
|
glItem1});
|
||||||
|
this.partnerList.ItemWordWrap = false;
|
||||||
|
this.partnerList.Location = new System.Drawing.Point(13, 26);
|
||||||
|
this.partnerList.Name = "partnerList";
|
||||||
|
this.partnerList.Selectable = true;
|
||||||
|
this.partnerList.SelectedTextColor = System.Drawing.Color.White;
|
||||||
|
this.partnerList.SelectionColor = System.Drawing.Color.DarkBlue;
|
||||||
|
this.partnerList.ShowBorder = true;
|
||||||
|
this.partnerList.ShowFocusRect = true;
|
||||||
|
this.partnerList.Size = new System.Drawing.Size(359, 286);
|
||||||
|
this.partnerList.SortType = GlacialComponents.Controls.SortTypes.InsertionSort;
|
||||||
|
this.partnerList.SuperFlatHeaderColor = System.Drawing.Color.White;
|
||||||
|
this.partnerList.TabIndex = 0;
|
||||||
|
this.partnerList.Click += new System.EventHandler(this.ItemClicked);
|
||||||
|
this.partnerList.DoubleClick += new System.EventHandler(this.ItemDoubleClick);
|
||||||
|
//
|
||||||
|
// selectedPartners
|
||||||
|
//
|
||||||
|
this.selectedPartners.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.selectedPartners.Location = new System.Drawing.Point(13, 319);
|
||||||
|
this.selectedPartners.Multiline = true;
|
||||||
|
this.selectedPartners.Name = "selectedPartners";
|
||||||
|
this.selectedPartners.Size = new System.Drawing.Size(359, 103);
|
||||||
|
this.selectedPartners.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// okbtn
|
||||||
|
//
|
||||||
|
this.okbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.okbtn.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
|
this.okbtn.Location = new System.Drawing.Point(215, 428);
|
||||||
|
this.okbtn.Name = "okbtn";
|
||||||
|
this.okbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.okbtn.TabIndex = 2;
|
||||||
|
this.okbtn.Text = "OK";
|
||||||
|
this.okbtn.UseVisualStyleBackColor = true;
|
||||||
|
this.okbtn.Click += new System.EventHandler(this.okbtn_Click);
|
||||||
|
//
|
||||||
|
// cancelbtn
|
||||||
|
//
|
||||||
|
this.cancelbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.cancelbtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.cancelbtn.Location = new System.Drawing.Point(297, 429);
|
||||||
|
this.cancelbtn.Name = "cancelbtn";
|
||||||
|
this.cancelbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.cancelbtn.TabIndex = 3;
|
||||||
|
this.cancelbtn.Text = "Mégse";
|
||||||
|
this.cancelbtn.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// titleText
|
||||||
|
//
|
||||||
|
this.titleText.AutoSize = true;
|
||||||
|
this.titleText.Location = new System.Drawing.Point(13, 7);
|
||||||
|
this.titleText.Name = "titleText";
|
||||||
|
this.titleText.Size = new System.Drawing.Size(53, 13);
|
||||||
|
this.titleText.TabIndex = 4;
|
||||||
|
this.titleText.Text = "Unknown";
|
||||||
|
//
|
||||||
|
// SelectPartnerForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.LightSkyBlue;
|
||||||
|
this.ClientSize = new System.Drawing.Size(384, 462);
|
||||||
|
this.Controls.Add(this.titleText);
|
||||||
|
this.Controls.Add(this.cancelbtn);
|
||||||
|
this.Controls.Add(this.okbtn);
|
||||||
|
this.Controls.Add(this.selectedPartners);
|
||||||
|
this.Controls.Add(this.partnerList);
|
||||||
|
this.Name = "SelectPartnerForm";
|
||||||
|
this.Text = "Partnerválasztás";
|
||||||
|
this.ResizeEnd += new System.EventHandler(this.FormResizeFinish);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private GlacialComponents.Controls.GlacialList partnerList;
|
||||||
|
private System.Windows.Forms.TextBox selectedPartners;
|
||||||
|
private System.Windows.Forms.Button okbtn;
|
||||||
|
private System.Windows.Forms.Button cancelbtn;
|
||||||
|
private System.Windows.Forms.Label titleText;
|
||||||
|
}
|
||||||
|
}
|
93
Versions/Less Closed Beta/v3.0/MSGer.tk/SelectPartnerForm.cs
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
using GlacialComponents.Controls;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class SelectPartnerForm : Form
|
||||||
|
{
|
||||||
|
public SelectPartnerForm(ToolStripMenuItem SelectPartnerSender) //paraméter: 2014.09.06.
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.Text = SelectPartnerSender.Text; //2014.02.28.
|
||||||
|
titleText.Text = SelectPartnerSender.Text;
|
||||||
|
|
||||||
|
cancelbtn.Text = Language.Translate("button_cancel");
|
||||||
|
|
||||||
|
partnerList.Items.Clear();
|
||||||
|
for (int x = 0; x < UserInfo.KnownUsers.Count; x++) //Partners
|
||||||
|
{
|
||||||
|
if (!UserInfo.KnownUsers[x].IsPartner)
|
||||||
|
continue;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
partnerList.Items.Add(UserInfo.KnownUsers[x].UserName);
|
||||||
|
}
|
||||||
|
catch (NullReferenceException)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MessageBox.Show(e.Message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
partnerList.Columns[0].Width = partnerList.ClientSize.Width-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormResizeFinish(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
partnerList.Columns[0].Width = partnerList.ClientSize.Width-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ItemClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < partnerList.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if(partnerList.Items[i].SubItems[0].Checked)
|
||||||
|
{
|
||||||
|
int p = selectedPartners.Text.IndexOf(partnerList.Items[i].SubItems[0].Text + ";");
|
||||||
|
if (p == -1)
|
||||||
|
{
|
||||||
|
selectedPartners.Text += partnerList.Items[i].SubItems[0].Text + ";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int p = selectedPartners.Text.IndexOf(partnerList.Items[i].SubItems[0].Text + ";");
|
||||||
|
if (p != -1) //Eltávolitja a nem kiválasztott partner előfordulását a listából - Megcsinálom visszafelé is
|
||||||
|
selectedPartners.Text = selectedPartners.Text.Remove(p, partnerList.Items[i].SubItems[0].Text.Length+1); //Eltávolitja a ;-t is
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ItemDoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int a = partnerList.HotItemIndex;
|
||||||
|
if (partnerList.Items[a].SubItems[0].Checked)
|
||||||
|
partnerList.Items[a].SubItems[0].Checked = false;
|
||||||
|
else
|
||||||
|
partnerList.Items[a].SubItems[0].Checked = true;
|
||||||
|
ItemClicked(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string[] Partners;
|
||||||
|
private void okbtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
while(selectedPartners.Text.Contains(' '))
|
||||||
|
{ //Eltávolitja a szóközöket
|
||||||
|
int x=selectedPartners.Text.IndexOf(' ');
|
||||||
|
selectedPartners.Text.Remove(x, 1);
|
||||||
|
}
|
||||||
|
Partners = selectedPartners.Text.Split(';');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/SelectPartnerForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
259
Versions/Less Closed Beta/v3.0/MSGer.tk/SettingsForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,259 @@
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
partial class SettingsForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
GlacialComponents.Controls.GLColumn glColumn2 = new GlacialComponents.Controls.GLColumn();
|
||||||
|
GlacialComponents.Controls.GLItem glItem2 = new GlacialComponents.Controls.GLItem();
|
||||||
|
GlacialComponents.Controls.GLSubItem glSubItem2 = new GlacialComponents.Controls.GLSubItem();
|
||||||
|
this.glacialList1 = new GlacialComponents.Controls.GlacialList();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.messageText = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.nameText = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.personal = new System.Windows.Forms.Label();
|
||||||
|
this.okbtn = new System.Windows.Forms.Button();
|
||||||
|
this.cancelbtn = new System.Windows.Forms.Button();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.listView1 = new System.Windows.Forms.ListView();
|
||||||
|
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// glacialList1
|
||||||
|
//
|
||||||
|
this.glacialList1.AllowColumnResize = true;
|
||||||
|
this.glacialList1.AllowMultiselect = false;
|
||||||
|
this.glacialList1.AlternateBackground = System.Drawing.Color.DarkGreen;
|
||||||
|
this.glacialList1.AlternatingColors = false;
|
||||||
|
this.glacialList1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.glacialList1.AutoHeight = true;
|
||||||
|
this.glacialList1.BackColor = System.Drawing.Color.White;
|
||||||
|
this.glacialList1.BackgroundStretchToFit = true;
|
||||||
|
glColumn2.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None;
|
||||||
|
glColumn2.CheckBoxes = false;
|
||||||
|
glColumn2.ImageIndex = -1;
|
||||||
|
glColumn2.Name = "Column1";
|
||||||
|
glColumn2.NumericSort = false;
|
||||||
|
glColumn2.Text = "Column";
|
||||||
|
glColumn2.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
glColumn2.Width = 115;
|
||||||
|
this.glacialList1.Columns.AddRange(new GlacialComponents.Controls.GLColumn[] {
|
||||||
|
glColumn2});
|
||||||
|
this.glacialList1.ControlStyle = GlacialComponents.Controls.GLControlStyles.Normal;
|
||||||
|
this.glacialList1.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.glacialList1.FullRowSelect = true;
|
||||||
|
this.glacialList1.GridColor = System.Drawing.Color.LightGray;
|
||||||
|
this.glacialList1.GridLines = GlacialComponents.Controls.GLGridLines.gridBoth;
|
||||||
|
this.glacialList1.GridLineStyle = GlacialComponents.Controls.GLGridLineStyles.gridSolid;
|
||||||
|
this.glacialList1.GridTypes = GlacialComponents.Controls.GLGridTypes.gridOnExists;
|
||||||
|
this.glacialList1.HeaderHeight = 0;
|
||||||
|
this.glacialList1.HeaderVisible = false;
|
||||||
|
this.glacialList1.HeaderWordWrap = false;
|
||||||
|
this.glacialList1.HotColumnTracking = false;
|
||||||
|
this.glacialList1.HotItemTracking = true;
|
||||||
|
this.glacialList1.HotTrackingColor = System.Drawing.Color.LightGray;
|
||||||
|
this.glacialList1.HoverEvents = false;
|
||||||
|
this.glacialList1.HoverTime = 1;
|
||||||
|
this.glacialList1.ImageList = null;
|
||||||
|
this.glacialList1.ItemHeight = 17;
|
||||||
|
glItem2.BackColor = System.Drawing.Color.White;
|
||||||
|
glItem2.ForeColor = System.Drawing.Color.Black;
|
||||||
|
glItem2.RowBorderColor = System.Drawing.Color.Black;
|
||||||
|
glItem2.RowBorderSize = 0;
|
||||||
|
glSubItem2.BackColor = System.Drawing.Color.Empty;
|
||||||
|
glSubItem2.Checked = false;
|
||||||
|
glSubItem2.ForceText = false;
|
||||||
|
glSubItem2.ForeColor = System.Drawing.Color.Black;
|
||||||
|
glSubItem2.ImageAlignment = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
glSubItem2.ImageIndex = -1;
|
||||||
|
glSubItem2.Text = "Személyes";
|
||||||
|
glItem2.SubItems.AddRange(new GlacialComponents.Controls.GLSubItem[] {
|
||||||
|
glSubItem2});
|
||||||
|
glItem2.Text = "Személyes";
|
||||||
|
this.glacialList1.Items.AddRange(new GlacialComponents.Controls.GLItem[] {
|
||||||
|
glItem2});
|
||||||
|
this.glacialList1.ItemWordWrap = false;
|
||||||
|
this.glacialList1.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.glacialList1.Name = "glacialList1";
|
||||||
|
this.glacialList1.Selectable = true;
|
||||||
|
this.glacialList1.SelectedTextColor = System.Drawing.Color.White;
|
||||||
|
this.glacialList1.SelectionColor = System.Drawing.Color.DarkBlue;
|
||||||
|
this.glacialList1.ShowBorder = true;
|
||||||
|
this.glacialList1.ShowFocusRect = false;
|
||||||
|
this.glacialList1.Size = new System.Drawing.Size(120, 418);
|
||||||
|
this.glacialList1.SortType = GlacialComponents.Controls.SortTypes.InsertionSort;
|
||||||
|
this.glacialList1.SuperFlatHeaderColor = System.Drawing.Color.White;
|
||||||
|
this.glacialList1.TabIndex = 0;
|
||||||
|
this.glacialList1.Text = "glacialList1";
|
||||||
|
this.glacialList1.Click += new System.EventHandler(this.glacialList1_Click);
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.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.panel1.AutoScroll = true;
|
||||||
|
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.panel1.Controls.Add(this.listView1);
|
||||||
|
this.panel1.Controls.Add(this.label3);
|
||||||
|
this.panel1.Controls.Add(this.messageText);
|
||||||
|
this.panel1.Controls.Add(this.label2);
|
||||||
|
this.panel1.Controls.Add(this.nameText);
|
||||||
|
this.panel1.Controls.Add(this.label1);
|
||||||
|
this.panel1.Controls.Add(this.personal);
|
||||||
|
this.panel1.Location = new System.Drawing.Point(139, 13);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(385, 391);
|
||||||
|
this.panel1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// messageText
|
||||||
|
//
|
||||||
|
this.messageText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.messageText.Location = new System.Drawing.Point(12, 99);
|
||||||
|
this.messageText.Name = "messageText";
|
||||||
|
this.messageText.Size = new System.Drawing.Size(354, 20);
|
||||||
|
this.messageText.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(9, 82);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(41, 13);
|
||||||
|
this.label2.TabIndex = 3;
|
||||||
|
this.label2.Text = "Üzenet";
|
||||||
|
//
|
||||||
|
// nameText
|
||||||
|
//
|
||||||
|
this.nameText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.nameText.Location = new System.Drawing.Point(12, 52);
|
||||||
|
this.nameText.Name = "nameText";
|
||||||
|
this.nameText.Size = new System.Drawing.Size(354, 20);
|
||||||
|
this.nameText.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(9, 35);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.label1.TabIndex = 1;
|
||||||
|
this.label1.Text = "Név";
|
||||||
|
//
|
||||||
|
// personal
|
||||||
|
//
|
||||||
|
this.personal.AutoSize = true;
|
||||||
|
this.personal.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.personal.Location = new System.Drawing.Point(3, 0);
|
||||||
|
this.personal.Name = "personal";
|
||||||
|
this.personal.Size = new System.Drawing.Size(147, 31);
|
||||||
|
this.personal.TabIndex = 0;
|
||||||
|
this.personal.Text = "Személyes";
|
||||||
|
//
|
||||||
|
// okbtn
|
||||||
|
//
|
||||||
|
this.okbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.okbtn.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
|
this.okbtn.Location = new System.Drawing.Point(368, 410);
|
||||||
|
this.okbtn.Name = "okbtn";
|
||||||
|
this.okbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.okbtn.TabIndex = 2;
|
||||||
|
this.okbtn.Text = "OK";
|
||||||
|
this.okbtn.UseVisualStyleBackColor = true;
|
||||||
|
this.okbtn.Click += new System.EventHandler(this.okbtn_Click);
|
||||||
|
//
|
||||||
|
// cancelbtn
|
||||||
|
//
|
||||||
|
this.cancelbtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.cancelbtn.Location = new System.Drawing.Point(449, 410);
|
||||||
|
this.cancelbtn.Name = "cancelbtn";
|
||||||
|
this.cancelbtn.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.cancelbtn.TabIndex = 3;
|
||||||
|
this.cancelbtn.Text = "Mégse";
|
||||||
|
this.cancelbtn.UseVisualStyleBackColor = true;
|
||||||
|
this.cancelbtn.Click += new System.EventHandler(this.cancelbtn_Click);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(9, 131);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(34, 13);
|
||||||
|
this.label3.TabIndex = 5;
|
||||||
|
this.label3.Text = "Nyelv";
|
||||||
|
//
|
||||||
|
// listView1
|
||||||
|
//
|
||||||
|
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||||
|
this.columnHeader1});
|
||||||
|
this.listView1.LabelWrap = false;
|
||||||
|
this.listView1.Location = new System.Drawing.Point(12, 148);
|
||||||
|
this.listView1.MultiSelect = false;
|
||||||
|
this.listView1.Name = "listView1";
|
||||||
|
this.listView1.Size = new System.Drawing.Size(121, 97);
|
||||||
|
this.listView1.TabIndex = 6;
|
||||||
|
this.listView1.UseCompatibleStateImageBehavior = false;
|
||||||
|
//
|
||||||
|
// SettingsForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(536, 442);
|
||||||
|
this.Controls.Add(this.cancelbtn);
|
||||||
|
this.Controls.Add(this.okbtn);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.glacialList1);
|
||||||
|
this.Name = "SettingsForm";
|
||||||
|
this.Text = "SettingsForm";
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private GlacialComponents.Controls.GlacialList glacialList1;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label personal;
|
||||||
|
private System.Windows.Forms.TextBox nameText;
|
||||||
|
private System.Windows.Forms.TextBox messageText;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Button okbtn;
|
||||||
|
private System.Windows.Forms.Button cancelbtn;
|
||||||
|
private System.Windows.Forms.ListView listView1;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||||
|
}
|
||||||
|
}
|
99
Versions/Less Closed Beta/v3.0/MSGer.tk/SettingsForm.cs
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
public partial class SettingsForm : Form
|
||||||
|
{
|
||||||
|
public SettingsForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
listView1.Columns[0].Width = listView1.Width;
|
||||||
|
this.Text = Language.Translate("settings");
|
||||||
|
glacialList1.Items[0].Text = Language.Translate("settings_personal");
|
||||||
|
personal.Text = Language.Translate("settings_personal");
|
||||||
|
label1.Text = Language.Translate("name");
|
||||||
|
label2.Text = Language.Translate("message");
|
||||||
|
label3.Text = Language.Translate("language");
|
||||||
|
nameText.Text = CurrentUser.Name;
|
||||||
|
messageText.Text = CurrentUser.Message;
|
||||||
|
|
||||||
|
foreach(var entry in Language.UsedLangs)
|
||||||
|
{
|
||||||
|
listView1.Items.Add(Language.UsedLangs[entry.Key].Strings["currentlang"], Language.UsedLangs[entry.Key].Strings["currentlang"], 0);
|
||||||
|
if (Language.UsedLangs[entry.Key].Equals(Language.GetCuurentLanguage()))
|
||||||
|
listView1.Items[listView1.Items.Count - 1].Selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void glacialList1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int tmp = glacialList1.HotItemIndex;
|
||||||
|
if (tmp > glacialList1.Items.Count)
|
||||||
|
return;
|
||||||
|
switch(tmp)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
//Személyes
|
||||||
|
panel1.ScrollControlIntoView(personal);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void okbtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string lang = "en";
|
||||||
|
foreach (var lng in Language.UsedLangs)
|
||||||
|
{
|
||||||
|
if (lng.Value.Strings.ContainsKey("currentlang") && listView1.SelectedItems[0].Text == lng.Value.Strings["currentlang"])
|
||||||
|
{
|
||||||
|
lang = lng.Key;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//string result = Networking.SendRequest("updatesettings", nameText.Text + "ͦ" + messageText.Text, 0, true);
|
||||||
|
//if (result != "Success")
|
||||||
|
//MessageBox.Show(Language.Translate("error"] + ": " + result);
|
||||||
|
//List<byte> bytes = new List<byte>();
|
||||||
|
//bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.UserID + "ͦ" + nameText.Text + "ͦ" + messageText.Text));
|
||||||
|
//byte[][] result = Networking.SendUpdate(Networking.UpdateType.UpdateSettings, bytes.ToArray(), false);
|
||||||
|
CurrentUser.Name = nameText.Text;
|
||||||
|
CurrentUser.Message = messageText.Text;
|
||||||
|
/*List<byte> bytes = new List<byte>();
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.UserID));
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.Name.Length));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.Name));
|
||||||
|
bytes.AddRange(BitConverter.GetBytes(CurrentUser.Name.Length));
|
||||||
|
bytes.AddRange(Encoding.Unicode.GetBytes(CurrentUser.Message));
|
||||||
|
byte[][] result = Networking.SendUpdate(Networking.UpdateType.ListUpdate, bytes.ToArray(), false);
|
||||||
|
if (result==null || !result[0].All(b => b == 0x00)) //Ha nincs online felhasználó, akkor is továbbhalad
|
||||||
|
{*/ //Azért nem kell ez az egész fentebbi rész, mert minden egyes változást elküld mindenkinek
|
||||||
|
if (Storage.Settings["lang"] != lang)
|
||||||
|
{
|
||||||
|
Storage.Settings["lang"] = lang;
|
||||||
|
//Settings.Default.Save();
|
||||||
|
MessageBox.Show(Language.Translate("restart_needed"));
|
||||||
|
//System.Diagnostics.Process.Start("msger.tk.exe");
|
||||||
|
//Environment.Exit(0);
|
||||||
|
//Program.Exit();
|
||||||
|
Program.Restart(true);
|
||||||
|
}
|
||||||
|
this.Close();
|
||||||
|
/*}
|
||||||
|
else //Ha az összes ismert címről hibajelentés érkezik, jelezze a hibát
|
||||||
|
MessageBox.Show(Language.Translate("error"));*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancelbtn_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
Versions/Less Closed Beta/v3.0/MSGer.tk/SettingsForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
212
Versions/Less Closed Beta/v3.0/MSGer.tk/Storage.cs
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MSGer.tk
|
||||||
|
{
|
||||||
|
static class Storage
|
||||||
|
{ //2014.08.07.
|
||||||
|
public static string FileName;
|
||||||
|
public static Dictionary<string, string> Settings = new Dictionary<string, string>();
|
||||||
|
public static Dictionary<string, string> LoggedInSettings = new Dictionary<string, string>();
|
||||||
|
public static readonly string PasswordHash = "PWPassword";
|
||||||
|
public static string SaltKey; //Bejelentkezéskor kapja meg
|
||||||
|
public static readonly string VIKey = "SGf546HEfg56h45K";
|
||||||
|
public static void Load(bool loggedin)
|
||||||
|
{
|
||||||
|
if (!loggedin)
|
||||||
|
{
|
||||||
|
SaltKey = "nologinnologinnologinnologin";
|
||||||
|
FileName = "program.db";
|
||||||
|
}
|
||||||
|
if (!File.Exists(FileName))
|
||||||
|
{
|
||||||
|
if (!loggedin)
|
||||||
|
{
|
||||||
|
Settings.Add("email", "");
|
||||||
|
//Settings.Add("picupdatetime", ""); <-- Store picture directly in database
|
||||||
|
Settings.Add("windowstate", "3");
|
||||||
|
Settings.Add("lang", CultureInfo.InstalledUICulture.TwoLetterISOLanguageName);
|
||||||
|
Settings.Add("port", "4510"); //Use this to connect to different users <-- És fogalmam sincs, miért angolul írtam...
|
||||||
|
//Settings.Add("receiveport", "4511"); //Connect to this port to perform updates <-- Mellesleg használjak UDP-t...
|
||||||
|
Settings.Add("lastusedemail", "0");
|
||||||
|
//Settings.Add("userinfo", "");
|
||||||
|
//Settings.Add("ips", ""); //Az összes ismert IP, ami benne van a rendszerben - x.x.x.x:x;x.x.x.x:x
|
||||||
|
Settings.Add("filelen", "-1"); //(long) Maximum fájlméret, ameddig bemásolhatja a memóriába
|
||||||
|
//Settings.Add("myip", ""); //2014.08.29.
|
||||||
|
Settings.Add("isserver", "");
|
||||||
|
}
|
||||||
|
/*else - Ha nincs még létrehozva, majd létrehozza a property-nél, itt nincs rá szükség
|
||||||
|
{
|
||||||
|
LoggedInSettings.Add("currentuser_name", CurrentUser.Name);
|
||||||
|
LoggedInSettings.Add("currentuser_username", CurrentUser.UserName);
|
||||||
|
LoggedInSettings.Add("currentuser_userid", CurrentUser.UserID.ToString());
|
||||||
|
LoggedInSettings.Add("currentuser_message", CurrentUser.Message);
|
||||||
|
LoggedInSettings.Add("currentuser_email", CurrentUser.Email);
|
||||||
|
LoggedInSettings.Add("currentuser_state", CurrentUser.State);
|
||||||
|
LoggedInSettings.Add("currentuser_language", CurrentUser.Language.ToString());
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Parse(Decrypt(Read(loggedin)), loggedin);
|
||||||
|
if (loggedin)
|
||||||
|
UserInfo.Load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Save(bool loggedin)
|
||||||
|
{
|
||||||
|
if (!loggedin)
|
||||||
|
SaltKey = "nologinnologinnologinnologin";
|
||||||
|
Write(Encrypt(GetString(loggedin)), loggedin);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetString(bool loggedin)
|
||||||
|
{
|
||||||
|
string s = "";
|
||||||
|
if (loggedin)
|
||||||
|
{
|
||||||
|
foreach (var entry in LoggedInSettings)
|
||||||
|
{
|
||||||
|
s += entry.Key;
|
||||||
|
s += "=";
|
||||||
|
s += entry.Value;
|
||||||
|
s += "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var entry in Settings)
|
||||||
|
{
|
||||||
|
s += entry.Key;
|
||||||
|
s += "=";
|
||||||
|
s += entry.Value;
|
||||||
|
s += "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Parse(string filecontent, bool loggedin)
|
||||||
|
{
|
||||||
|
string[] splitCache = filecontent.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
var tmp = splitCache.ToDictionary(
|
||||||
|
entry => entry.Substring(0, entry.IndexOf("=")),
|
||||||
|
entry => entry.Substring(entry.IndexOf("=") + 1));
|
||||||
|
if (loggedin)
|
||||||
|
LoggedInSettings = tmp;
|
||||||
|
else
|
||||||
|
Settings = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Parse(string filecontent) //Publikus metódus
|
||||||
|
{
|
||||||
|
string[] splitCache = filecontent.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
var tmp = splitCache.ToDictionary(
|
||||||
|
entry => "userinfo_" + entry.Substring(0, entry.IndexOf("=")),
|
||||||
|
entry => entry.Substring(entry.IndexOf("=") + 1));
|
||||||
|
//LoggedInSettings = (Dictionary<string, string>)LoggedInSettings.Concat(tmp);
|
||||||
|
LoggedInSettings = LoggedInSettings.Concat(tmp)
|
||||||
|
.ToLookup(pair => pair.Key, pair => pair.Value)
|
||||||
|
.ToDictionary(group => group.Key, group => group.Last());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] Encrypt(byte[] content, string code)
|
||||||
|
{
|
||||||
|
byte[] plainTextBytes = content;
|
||||||
|
|
||||||
|
byte[] keyBytes = new Rfc2898DeriveBytes(PasswordHash, Encoding.ASCII.GetBytes(code)).GetBytes(256 / 8);
|
||||||
|
var symmetricKey = new RijndaelManaged() { Mode = CipherMode.CBC, Padding = PaddingMode.Zeros };
|
||||||
|
var encryptor = symmetricKey.CreateEncryptor(keyBytes, Encoding.ASCII.GetBytes(VIKey));
|
||||||
|
|
||||||
|
byte[] cipherTextBytes;
|
||||||
|
|
||||||
|
using (var memoryStream = new MemoryStream())
|
||||||
|
{
|
||||||
|
using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
|
||||||
|
{
|
||||||
|
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
|
||||||
|
cryptoStream.FlushFinalBlock();
|
||||||
|
cipherTextBytes = memoryStream.ToArray();
|
||||||
|
cryptoStream.Close();
|
||||||
|
}
|
||||||
|
memoryStream.Close();
|
||||||
|
}
|
||||||
|
return cipherTextBytes;
|
||||||
|
}
|
||||||
|
private static byte[] Encrypt(byte[] filecontent)
|
||||||
|
{ //2014.09.01.
|
||||||
|
return Encrypt(filecontent, SaltKey);
|
||||||
|
}
|
||||||
|
private static byte[] Encrypt(string filecontent)
|
||||||
|
{
|
||||||
|
return Encrypt(Encoding.UTF8.GetBytes(filecontent));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] Decrypt(byte[] b, bool tr, string code)
|
||||||
|
{
|
||||||
|
byte[] cipherTextBytes = b;
|
||||||
|
byte[] keyBytes = new Rfc2898DeriveBytes(PasswordHash, Encoding.ASCII.GetBytes(code)).GetBytes(256 / 8);
|
||||||
|
var symmetricKey = new RijndaelManaged() { Mode = CipherMode.CBC, Padding = PaddingMode.None };
|
||||||
|
|
||||||
|
var decryptor = symmetricKey.CreateDecryptor(keyBytes, Encoding.ASCII.GetBytes(VIKey));
|
||||||
|
var memoryStream = new MemoryStream(cipherTextBytes);
|
||||||
|
var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read);
|
||||||
|
byte[] plainTextBytes = new byte[cipherTextBytes.Length];
|
||||||
|
|
||||||
|
int decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
|
||||||
|
memoryStream.Close();
|
||||||
|
cryptoStream.Close();
|
||||||
|
return plainTextBytes;
|
||||||
|
}
|
||||||
|
private static byte[] Decrypt(byte[] b, bool tr)
|
||||||
|
{ //2014.09.01.
|
||||||
|
return Decrypt(b, tr, SaltKey);
|
||||||
|
}
|
||||||
|
private static string Decrypt(byte[] b)
|
||||||
|
{
|
||||||
|
byte[] tmp = Decrypt(b, true, SaltKey);
|
||||||
|
return Encoding.UTF8.GetString(tmp, 0, tmp.Length).TrimEnd("\0".ToCharArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static byte[] Read(bool loggedin)
|
||||||
|
{
|
||||||
|
FileStream fs;
|
||||||
|
if (loggedin)
|
||||||
|
fs = new FileStream(FileName, FileMode.Open);
|
||||||
|
else
|
||||||
|
fs = new FileStream("program.db", FileMode.Open);
|
||||||
|
byte[] b = new byte[4];
|
||||||
|
fs.Read(b, 0, b.Length);
|
||||||
|
var file_len = BitConverter.ToInt32(b, 0);
|
||||||
|
b = new byte[file_len];
|
||||||
|
fs.Read(b, 0, b.Length);
|
||||||
|
fs.Close();
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Write(byte[] b, bool loggedin)
|
||||||
|
{
|
||||||
|
var len = BitConverter.GetBytes(b.Length);
|
||||||
|
FileStream fs;
|
||||||
|
if (loggedin)
|
||||||
|
fs = new FileStream(FileName, FileMode.Create);
|
||||||
|
else
|
||||||
|
fs = new FileStream("program.db", FileMode.Create);
|
||||||
|
fs.Write(len, 0, len.Length);
|
||||||
|
fs.Write(b, 0, b.Length);
|
||||||
|
fs.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Dispose()
|
||||||
|
{
|
||||||
|
LoggedInSettings = new Dictionary<string, string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
213
Versions/Less Closed Beta/v3.0/MSGer.tk/StreamHelper.cs
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace HdSystemLibrary.IO
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A delegate for reporting binary progress
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bytesRead">The amount of bytes already read</param>
|
||||||
|
/// <param name="totalBytesToRead">The amount of total bytes to read. Can be -1 if unknown.</param>
|
||||||
|
public delegate void ProgressChange(long bytesRead, long totalBytesToRead);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The arguments for StreamHelper.CopyFrom(Stream, Stream, CopyFromArguments)
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CopyFromArguments
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Creates the default arguments
|
||||||
|
/// </summary>
|
||||||
|
public CopyFromArguments()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates arguments with a progress change callback.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="progressChangeCallback">The progress change callback (see <see cref="ProgressChangeCallback"/>)</param>
|
||||||
|
public CopyFromArguments(ProgressChange progressChangeCallback)
|
||||||
|
{
|
||||||
|
ProgressChangeCallback = progressChangeCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates arguments with a progress change callback and an interval between to progress changes.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="progressChangeCallback">The progress change callback (see <see cref="ProgressChangeCallback"/>)</param>
|
||||||
|
/// <param name="progressChangeCallbackInterval">The interval between to progress change callbacks (see <see cref="ProgressChangeCallbackInterval"/>)</param>
|
||||||
|
public CopyFromArguments(ProgressChange progressChangeCallback,
|
||||||
|
TimeSpan progressChangeCallbackInterval)
|
||||||
|
{
|
||||||
|
ProgressChangeCallback = progressChangeCallback;
|
||||||
|
ProgressChangeCallbackInterval = progressChangeCallbackInterval;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates arguments with a progress change callback, an interval between to progress changes and a total length
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="progressChangeCallback">The progress change callback (see <see cref="ProgressChangeCallback"/>)</param>
|
||||||
|
/// <param name="progressChangeCallbackInterval">The interval between to progress change callbacks (see <see cref="ProgressChangeCallbackInterval"/>)</param>
|
||||||
|
/// <param name="totalLength">The total bytes to read (see <see cref="TotalLength"/>)</param>
|
||||||
|
public CopyFromArguments(ProgressChange progressChangeCallback,
|
||||||
|
TimeSpan progressChangeCallbackInterval, long totalLength)
|
||||||
|
{
|
||||||
|
ProgressChangeCallback = progressChangeCallback;
|
||||||
|
ProgressChangeCallbackInterval = progressChangeCallbackInterval;
|
||||||
|
TotalLength = totalLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
private long totalLength = -1;
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the total length of stream. Set to -1 if the value has to be determined by stream.Length.
|
||||||
|
/// If the stream is not seekable, the total length in the progress report will be stay -1.
|
||||||
|
/// </summary>
|
||||||
|
public long TotalLength { get { return totalLength; } set { totalLength = value; } }
|
||||||
|
|
||||||
|
private int bufferSize = 4096;
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the size of the buffer used for copying bytes. Default is 4096.
|
||||||
|
/// </summary>
|
||||||
|
public int BufferSize { get { return bufferSize; } set { bufferSize = value; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the callback for progress-report. Default is null.
|
||||||
|
/// </summary>
|
||||||
|
public ProgressChange ProgressChangeCallback { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the event for aborting the operation. Default is null.
|
||||||
|
/// </summary>
|
||||||
|
public WaitHandle StopEvent { get; set; }
|
||||||
|
|
||||||
|
private TimeSpan progressCallbackInterval = TimeSpan.FromSeconds(0.2);
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the time interval between to progress change callbacks. Default is 200 ms.
|
||||||
|
/// </summary>
|
||||||
|
public TimeSpan ProgressChangeCallbackInterval
|
||||||
|
{
|
||||||
|
get { return progressCallbackInterval; }
|
||||||
|
set { progressCallbackInterval = value; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A static class for basic stream operations.
|
||||||
|
/// </summary>
|
||||||
|
public static class StreamHelper
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Copies the source stream into the current while reporting the progress.
|
||||||
|
/// The copying process is done in a separate thread, therefore the stream has to
|
||||||
|
/// support reading from a different thread as the one used for construction.
|
||||||
|
/// Nethertheless, the separate thread is synchronized with the calling thread.
|
||||||
|
/// The callback in arguments is called from the calling thread.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="target">The current stream</param>
|
||||||
|
/// <param name="source">The source stream</param>
|
||||||
|
/// <param name="arguments">The arguments for copying</param>
|
||||||
|
/// <returns>The number of bytes actually copied.</returns>
|
||||||
|
/// <exception cref="ArgumentNullException">Thrown if either target, source of arguments is null</exception>
|
||||||
|
/// <exception cref="ArgumentOutOfRangeException">Thrown if arguments.BufferSize is less than 128 or arguments.ProgressChangeCallbackInterval is less than 0</exception>
|
||||||
|
public static long CopyFrom(this Stream target, Stream source, CopyFromArguments arguments)
|
||||||
|
{
|
||||||
|
if (target == null)
|
||||||
|
throw new ArgumentNullException("target");
|
||||||
|
if (source == null)
|
||||||
|
throw new ArgumentNullException("source");
|
||||||
|
if (arguments == null)
|
||||||
|
throw new ArgumentNullException("arguments");
|
||||||
|
if (arguments.BufferSize < 128)
|
||||||
|
throw new ArgumentOutOfRangeException("arguments.BufferSize",
|
||||||
|
arguments.BufferSize, "BufferSize has to be greater or equal than 128.");
|
||||||
|
if (arguments.ProgressChangeCallbackInterval.TotalSeconds < 0)
|
||||||
|
throw new ArgumentOutOfRangeException("arguments.ProgressChangeCallbackInterval",
|
||||||
|
arguments.ProgressChangeCallbackInterval,
|
||||||
|
"ProgressChangeCallbackInterval has to be greater or equal than 0.");
|
||||||
|
|
||||||
|
long length = 0;
|
||||||
|
|
||||||
|
bool runningFlag = true;
|
||||||
|
|
||||||
|
Action<Stream, Stream, int> copyMemory = (Stream _target, Stream _source, int bufferSize) =>
|
||||||
|
//Raw copy-operation, "length" and "runningFlag" are enclosed as closure
|
||||||
|
{
|
||||||
|
int count;
|
||||||
|
byte[] buffer = new byte[bufferSize];
|
||||||
|
|
||||||
|
while ((count = _source.Read(buffer, 0, bufferSize)) != 0 && runningFlag)
|
||||||
|
{
|
||||||
|
_target.Write(buffer, 0, count);
|
||||||
|
long newLength = length + count;
|
||||||
|
//"length" can be read as this is the only thread which writes to "length"
|
||||||
|
Interlocked.Exchange(ref length, newLength);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
IAsyncResult asyncResult = copyMemory.BeginInvoke(target, source, arguments.BufferSize, null, null);
|
||||||
|
|
||||||
|
long totalLength = arguments.TotalLength;
|
||||||
|
if (totalLength == -1 && source.CanSeek)
|
||||||
|
totalLength = (long)source.Length;
|
||||||
|
|
||||||
|
DateTime lastCallback = DateTime.Now;
|
||||||
|
long lastLength = 0;
|
||||||
|
|
||||||
|
while (!asyncResult.IsCompleted)
|
||||||
|
{
|
||||||
|
if (arguments.StopEvent != null && arguments.StopEvent.WaitOne(0))
|
||||||
|
runningFlag = false; //to indicate that the copy-operation has to abort
|
||||||
|
|
||||||
|
Thread.Sleep((int)(arguments.ProgressChangeCallbackInterval.TotalMilliseconds / 10));
|
||||||
|
|
||||||
|
if (arguments.ProgressChangeCallback != null
|
||||||
|
&& DateTime.Now - lastCallback > arguments.ProgressChangeCallbackInterval)
|
||||||
|
{
|
||||||
|
long currentLength = Interlocked.Read(ref length); //Since length is 64 bit, reading is not an atomic operation.
|
||||||
|
|
||||||
|
if (currentLength != lastLength)
|
||||||
|
{
|
||||||
|
lastLength = currentLength;
|
||||||
|
lastCallback = DateTime.Now;
|
||||||
|
arguments.ProgressChangeCallback(currentLength, totalLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arguments.ProgressChangeCallback != null && lastLength != length)
|
||||||
|
//to ensure that the callback is called once with maximum progress
|
||||||
|
arguments.ProgressChangeCallback(length, totalLength);
|
||||||
|
|
||||||
|
copyMemory.EndInvoke(asyncResult);
|
||||||
|
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copies the source stream into the current
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="stream">The current stream</param>
|
||||||
|
/// <param name="source">The source stream</param>
|
||||||
|
/// <param name="bufferSize">The size of buffer used for copying bytes</param>
|
||||||
|
/// <returns>The number of bytes actually copied.</returns>
|
||||||
|
public static long CopyFrom(this Stream stream, Stream source, int bufferSize = 4096)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
byte[] buffer = new byte[bufferSize];
|
||||||
|
long length = 0;
|
||||||
|
|
||||||
|
while ((count = source.Read(buffer, 0, bufferSize)) != 0)
|
||||||
|
{
|
||||||
|
length += count;
|
||||||
|
stream.Write(buffer, 0, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|