aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs')
-rw-r--r--TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs152
1 files changed, 152 insertions, 0 deletions
diff --git a/TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs b/TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs
new file mode 100644
index 0000000..0087fb0
--- /dev/null
+++ b/TimeHACK.Main/SaveDialogs/LoadGameProfileItem.cs
@@ -0,0 +1,152 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using static TimeHACK.Engine.SaveSystem;
+using System.IO;
+
+namespace TimeHACK
+{
+ public partial class LoadGameProfileItem : UserControl, IMessageFilter
+ {
+ public Boolean OnceRemoveHeight = false;
+ public Boolean OnceAddHeight = false;
+ public Boolean RequestingNewName = false;
+ public LoadGameProfileItem()
+ {
+ InitializeComponent();
+ Application.AddMessageFilter(this);
+ }
+
+ //private void LoadGameProfileItem_MouseHover(object sender, EventArgs e)
+ //{
+ // exampleTop.Show();
+ // this.Height += 28;
+ // OnceRemoveHeight = false;
+ //}
+
+ public bool PreFilterMessage(ref Message m)
+ {
+ var mouseLocation = Cursor.Position;
+
+ if (!ClientRectangle.Contains(PointToClient(Control.MousePosition)))
+ {
+ sidebar.Hide();
+ if (OnceRemoveHeight == false)
+ {
+ this.Height -= 28;
+ OnceRemoveHeight = true;
+ profileName.BackColor = Color.Gray;
+ sidebar.BackColor = Color.Gray;
+ pnlConfirm.BackColor = Color.Gray;
+ }
+ OnceAddHeight = false;
+ } else
+ {
+ sidebar.Show();
+ if (OnceAddHeight == false)
+ {
+ this.Height += 28;
+ OnceAddHeight = true;
+ profileName.BackColor = Color.LightGray;
+ sidebar.BackColor = Color.LightGray;
+ pnlConfirm.BackColor = Color.LightGray;
+ }
+ OnceRemoveHeight = false;
+ }
+
+ if (m.Msg != 0x20a) // Scrolling Message
+ {
+ return false;//ignore message
+ }
+ return false;
+ }
+
+ private void LoadGameProfileItem_Paint(object sender, PaintEventArgs e)
+ {
+ profileName.Text = this.Tag.ToString();
+ }
+
+ private void exampleLoadProfile_Click(object sender, EventArgs e)
+ {
+ ((LoadGameDialog)this.TopLevelControl).ChooseProfile(this.Tag.ToString());
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ DeleteProfile();
+ }
+
+ void DeleteProfile()
+ {
+ if (Directory.Exists(Path.Combine(AllProfilesDirectory, this.Tag.ToString())))
+ {
+ Directory.Delete(Path.Combine(AllProfilesDirectory, this.Tag.ToString()), true);
+ this.Hide();
+ }
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (!RequestingNewName == false)
+ {
+ if (textBox1.Text == "")
+ {
+ MessageBox.Show("New profile name cannot be empty!");
+ }
+ else
+ {
+ if (textBox1.Text.Length > 20)
+ {
+ MessageBox.Show("The profile name cannot be longer than 20 characters");
+ }
+ else
+ {
+ if (Directory.Exists(Path.Combine(AllProfilesDirectory, textBox1.Text)))
+ {
+ MessageBox.Show("That profile already exists");
+ }
+ else
+ {
+ Directory.Move(Path.Combine(AllProfilesDirectory, this.Tag.ToString()), Path.Combine(AllProfilesDirectory, textBox1.Text));
+ this.Tag = textBox1.Text;
+ this.Invalidate();
+ }
+ }
+ }
+ }
+ pnlConfirm.Hide();
+ } catch (Exception ex)
+ {
+
+ }
+ }
+
+ private void exampleDelete_Click(object sender, EventArgs e)
+ {
+ label1.Text = "Are you really sure you want to delete this Profile?";
+ button1.Show();
+ textBox1.Hide();
+ button2.Text = "No";
+ RequestingNewName = false;
+ pnlConfirm.Show();
+ }
+
+ private void exampleNameBtn_Click(object sender, EventArgs e)
+ {
+ label1.Text = "Enter a new profile name: ";
+ button1.Hide();
+ textBox1.Show();
+ button2.Text = "OK";
+ RequestingNewName = true;
+ pnlConfirm.Show();
+ }
+ }
+}