259 lines
10 KiB
C#
259 lines
10 KiB
C#
using Data;
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
internal class parmFileProtection : UserControl
|
|
{
|
|
private bool bool_0;
|
|
private Class18 class18_0;
|
|
private ErrorProvider errorProvider_0;
|
|
private IContainer icontainer_0;
|
|
private IContainer components;
|
|
private GroupBox groupBox4;
|
|
private CheckBox checkBox2;
|
|
private Label label7;
|
|
private TextBox textBox1;
|
|
private CheckBox checkBox1;
|
|
private Panel panel1;
|
|
private int MaxPasswordSize = 64;
|
|
|
|
public parmFileProtection(ref Class18 rm)
|
|
{
|
|
this.class18_0 = rm;
|
|
this.class18_0.delegate55_0 += new Class18.Delegate55(this.method_0);
|
|
this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_0);
|
|
this.InitializeComponent();
|
|
|
|
this.groupBox4.Enabled = true;
|
|
|
|
this.textBox1.Text = this.class18_0.class10_settings_0.Password;
|
|
this.checkBox1.Checked = this.class18_0.class10_settings_0.Protect;
|
|
checkBox2.Checked = this.class18_0.class10_settings_0.PasswordHiden;
|
|
textBox1.UseSystemPasswordChar = checkBox2.Checked;
|
|
//if (this.class18_0.RomVersion <= 110) MaxPasswordSize = 64;
|
|
//else MaxPasswordSize = 16;
|
|
|
|
if (this.class18_0.RomVersion == 113) groupBox4.Enabled = false;
|
|
|
|
foreach (Control control in base.Controls)
|
|
{
|
|
float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
|
|
control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
|
|
}
|
|
}
|
|
|
|
private void chkEnable_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
this.method_1();
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing && (this.icontainer_0 != null))
|
|
{
|
|
this.icontainer_0.Dispose();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
this.components = new System.ComponentModel.Container();
|
|
this.errorProvider_0 = new System.Windows.Forms.ErrorProvider(this.components);
|
|
this.panel1 = new System.Windows.Forms.Panel();
|
|
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
|
this.checkBox2 = new System.Windows.Forms.CheckBox();
|
|
this.label7 = new System.Windows.Forms.Label();
|
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
|
this.checkBox1 = new System.Windows.Forms.CheckBox();
|
|
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).BeginInit();
|
|
this.panel1.SuspendLayout();
|
|
this.groupBox4.SuspendLayout();
|
|
this.SuspendLayout();
|
|
//
|
|
// errorProvider_0
|
|
//
|
|
this.errorProvider_0.ContainerControl = this;
|
|
//
|
|
// panel1
|
|
//
|
|
this.panel1.AutoScroll = true;
|
|
this.panel1.Controls.Add(this.groupBox4);
|
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
|
this.panel1.Name = "panel1";
|
|
this.panel1.Size = new System.Drawing.Size(246, 104);
|
|
this.panel1.TabIndex = 1;
|
|
//
|
|
// groupBox4
|
|
//
|
|
this.groupBox4.Controls.Add(this.checkBox2);
|
|
this.groupBox4.Controls.Add(this.label7);
|
|
this.groupBox4.Controls.Add(this.textBox1);
|
|
this.groupBox4.Controls.Add(this.checkBox1);
|
|
this.groupBox4.Location = new System.Drawing.Point(3, 3);
|
|
this.groupBox4.Name = "groupBox4";
|
|
this.groupBox4.Size = new System.Drawing.Size(229, 87);
|
|
this.groupBox4.TabIndex = 12;
|
|
this.groupBox4.TabStop = false;
|
|
this.groupBox4.Text = "File Protection";
|
|
//
|
|
// checkBox2
|
|
//
|
|
this.checkBox2.AutoSize = true;
|
|
this.checkBox2.Location = new System.Drawing.Point(164, 39);
|
|
this.checkBox2.Name = "checkBox2";
|
|
this.checkBox2.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
|
this.checkBox2.Size = new System.Drawing.Size(51, 18);
|
|
this.checkBox2.TabIndex = 13;
|
|
this.checkBox2.Text = "Hide";
|
|
this.checkBox2.UseVisualStyleBackColor = true;
|
|
this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged);
|
|
//
|
|
// label7
|
|
//
|
|
this.label7.AutoSize = true;
|
|
this.label7.Location = new System.Drawing.Point(13, 42);
|
|
this.label7.Name = "label7";
|
|
this.label7.Size = new System.Drawing.Size(61, 14);
|
|
this.label7.TabIndex = 12;
|
|
this.label7.Text = "Password:";
|
|
//
|
|
// textBox1
|
|
//
|
|
this.textBox1.Location = new System.Drawing.Point(10, 62);
|
|
this.textBox1.Name = "textBox1";
|
|
this.textBox1.Size = new System.Drawing.Size(206, 20);
|
|
this.textBox1.TabIndex = 11;
|
|
this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
|
|
this.textBox1.Validated += new System.EventHandler(this.textBox1_Validated);
|
|
//
|
|
// checkBox1
|
|
//
|
|
this.checkBox1.AutoSize = true;
|
|
this.checkBox1.Location = new System.Drawing.Point(69, 19);
|
|
this.checkBox1.Name = "checkBox1";
|
|
this.checkBox1.Size = new System.Drawing.Size(96, 18);
|
|
this.checkBox1.TabIndex = 9;
|
|
this.checkBox1.Text = "Protect Tune";
|
|
this.checkBox1.UseVisualStyleBackColor = true;
|
|
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
|
|
//
|
|
// parmFileProtection
|
|
//
|
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
this.Controls.Add(this.panel1);
|
|
this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
this.Name = "parmFileProtection";
|
|
this.Size = new System.Drawing.Size(246, 104);
|
|
this.Load += new System.EventHandler(this.parmEctProtection_Load);
|
|
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).EndInit();
|
|
this.panel1.ResumeLayout(false);
|
|
this.groupBox4.ResumeLayout(false);
|
|
this.groupBox4.PerformLayout();
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
|
|
private void method_0()
|
|
{
|
|
if (this.class18_0.method_30_HasFileLoadedInBMTune())
|
|
{
|
|
this.parmEctProtection_Load(null, null);
|
|
}
|
|
}
|
|
|
|
private void method_1()
|
|
{
|
|
if (!this.bool_0)
|
|
{
|
|
this.class18_0.method_156("File Protection", false);
|
|
this.class18_0.class10_settings_0.Protect = this.checkBox1.Checked;
|
|
this.class18_0.class10_settings_0.Password = this.textBox1.Text;
|
|
this.class18_0.class10_settings_0.PasswordHiden = checkBox2.Checked;
|
|
textBox1.UseSystemPasswordChar = checkBox2.Checked;
|
|
SetProtect();
|
|
this.class18_0.method_153();
|
|
this.parmEctProtection_Load(null, null);
|
|
}
|
|
}
|
|
|
|
private void parmEctProtection_Load(object sender, EventArgs e)
|
|
{
|
|
this.bool_0 = true;
|
|
|
|
this.textBox1.Text = this.class18_0.class10_settings_0.Password;
|
|
checkBox1.Checked = this.class18_0.class10_settings_0.Protect;
|
|
checkBox2.Checked = this.class18_0.class10_settings_0.PasswordHiden;
|
|
textBox1.UseSystemPasswordChar = checkBox2.Checked;
|
|
|
|
this.textBox1.Enabled = checkBox1.Checked;
|
|
this.checkBox2.Enabled = checkBox1.Checked;
|
|
|
|
SetProtect();
|
|
|
|
this.bool_0 = false;
|
|
}
|
|
|
|
private void SetProtect()
|
|
{
|
|
if (this.class18_0.class10_settings_0.Protect)
|
|
{
|
|
if (this.class18_0.class10_settings_0.Password.Length > 1)
|
|
{
|
|
this.class18_0.GetPWLocation(this.class18_0.RomVersion);
|
|
MaxPasswordSize = this.class18_0.GetPWLenght(this.class18_0.RomVersion);
|
|
|
|
byte[] PasswordByte = new byte[this.class18_0.class10_settings_0.Password.Length];
|
|
for (int i = 0; i < this.class18_0.class10_settings_0.Password.Length; i++) PasswordByte[i] = Convert.ToByte(this.class18_0.class10_settings_0.Password[i]);
|
|
byte[] PasswordByte2 = this.class18_0.method_92(PasswordByte);
|
|
|
|
if (PasswordByte2.Length > MaxPasswordSize)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Password is too long", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
for (int i = 0; i < MaxPasswordSize; i++) this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_4PASS + i, 0xff);
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < PasswordByte2.Length; i++) this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_4PASS + i, PasswordByte2[i]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//long_403
|
|
//No Password = Unprotect
|
|
for (int i = 0; i < MaxPasswordSize; i++) this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_4PASS + i, 0xff);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Not Protected = Unprotect
|
|
for (int i = 0; i < MaxPasswordSize; i++) this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_4PASS + i, 0xff);
|
|
}
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
method_1();
|
|
}
|
|
|
|
private void checkBox2_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
method_1();
|
|
}
|
|
|
|
private void textBox1_Validating(object sender, CancelEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void textBox1_Validated(object sender, EventArgs e)
|
|
{
|
|
method_1();
|
|
}
|
|
}
|
|
|