From 606a3275a174ea4f31e4b027d614dac1d32a9525 Mon Sep 17 00:00:00 2001 From: jtsshieh Date: Fri, 14 Jul 2017 17:59:22 -0400 Subject: Nice almost working Calculator A calculator that has been totally recoded! Things to do -Make decimal work -Figure out why infinity sign is breaking everything -Get negative working --- .../OS/Win95/Win95Apps/WinClassicCalculator.cs | 263 +++++---------------- 1 file changed, 62 insertions(+), 201 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs index 9e923bb..1a1c905 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs @@ -13,6 +13,9 @@ namespace TimeHACK.OS.Win95.Win95Apps { public partial class WinClassicCalculator : UserControl { + double prevnum = 0; + string operation = ""; + bool operation_pressed = false; public WinClassicCalculator() { InitializeComponent(); @@ -30,258 +33,116 @@ namespace TimeHACK.OS.Win95.Win95Apps } txtNumbers.Paint += (sender, args) => Paintbrush.PaintClassicBordersIndented(sender, args, 2); } - public double prevnum = 0; - public bool iszero = true; - public bool neg = false; - public bool isdecimal = false; - public string coperator; - public void appendnum(string num) + private void number_click(object sender, EventArgs e) { - if (iszero == true) - { + if (txtNumbers.Text.Contains("∞")) txtNumbers.Clear(); - txtNumbers.Text += (num); - iszero = false; - } - else + if ((txtNumbers.Text == "0") || (operation_pressed)) + txtNumbers.Text = ""; + operation_pressed = false; + Button num = (Button)sender; + if (num.Text == ".") { - if (iszero == false) - { - txtNumbers.Text += (num); - } + if (!txtNumbers.Text.Contains(".")) + txtNumbers.Text = txtNumbers.Text + num.Text; } - - } - private void Button6_Click(object sender, EventArgs e) - { - appendnum("1"); - } - - private void Button9_Click(object sender, EventArgs e) - { - appendnum("2"); - } - - private void Button21_Click(object sender, EventArgs e) - { - Calculate(); - } - - private void Button12_Click(object sender, EventArgs e) - { - appendnum("3"); - } - - private void Button7_Click(object sender, EventArgs e) - { - appendnum("4"); - } - - private void Button10_Click(object sender, EventArgs e) - { - appendnum("5"); - } - - private void Button13_Click(object sender, EventArgs e) - { - appendnum("6"); - } - - private void Button5_Click(object sender, EventArgs e) - { - appendnum("7"); - } - - private void Button8_Click(object sender, EventArgs e) - { - appendnum("8"); + else + txtNumbers.Text = txtNumbers.Text + num.Text; } - private void Button11_Click(object sender, EventArgs e) + private void Button27_Click(object sender, EventArgs e) { - appendnum("9"); + txtNumbers.Text = "0"; } - private void Button16_Click(object sender, EventArgs e) + private void Button26_Click(object sender, EventArgs e) { - - if (iszero == false) - { - txtNumbers.Text += (0); - } + prevnum = 0; + operation = ""; + operation_pressed = false; + txtNumbers.Text = "0"; } private void Button25_Click(object sender, EventArgs e) { - if (txtNumbers.Text != "0") + if (txtNumbers.Text.Length>0) { - txtNumbers.Text = txtNumbers.Text.Remove(txtNumbers.Text.Length - 1); + txtNumbers.Text = txtNumbers.Text.Remove(txtNumbers.Text.Length - 1, 1); } - if (txtNumbers.TextLength < 1) + if (txtNumbers.Text =="") { txtNumbers.Text = "0"; } - } - private void Button15_Click(object sender, EventArgs e) + private void arithmitic_click(object sender, EventArgs e) { - if (neg == false) + Button num = (Button)sender; + if (txtNumbers.Text.Contains("∞")) + txtNumbers.Clear(); + if (prevnum != 0) { - txtNumbers.Text = "-" + txtNumbers.Text; - neg = true; + if (num.Text == "sqrt") + prevnum = Math.Sqrt(double.Parse(txtNumbers.Text)); + if (num.Text == "1/x") + prevnum = Convert.ToDouble(1.0 / Convert.ToDouble(txtNumbers.Text)); + if (num.Text == "%") + prevnum = Convert.ToDouble(txtNumbers.Text) / 100; + Button21.PerformClick(); + operation = num.Text; + operation_pressed = true; } - else + else if (num.Text == "sqrt") { - txtNumbers.Text = txtNumbers.Text.Replace("-", ""); - neg = false; + prevnum = Math.Sqrt(double.Parse(txtNumbers.Text)); + txtNumbers.Text = prevnum.ToString(); } - } - - private void Button14_Click(object sender, EventArgs e) - { - - if (isdecimal == false) + else if (num.Text == "1/x") { - appendnum("."); - isdecimal = true; + prevnum = Convert.ToDouble(1.0 / Convert.ToDouble(txtNumbers.Text)); + txtNumbers.Text = prevnum.ToString(); } - } - - private void timer1_Tick(object sender, EventArgs e) - { - if (txtNumbers.Text.Contains(".") == false) + else if (num.Text == "%") { - isdecimal = false; + prevnum = Convert.ToDouble(txtNumbers.Text) / 100; + txtNumbers.Text = prevnum.ToString(); } - if (txtNumbers.Text == "0") + else { - iszero = true; + operation = num.Text; + prevnum = double.Parse(txtNumbers.Text); + txtNumbers.Text = "0"; + operation_pressed = true; } } - - private void WinClassicCalculator_Load(object sender, EventArgs e) - { - timer1.Start(); - } - - private void AboutCalculatorToolStripMenuItem_Click(object sender, EventArgs e) - { - - WindowManager wm = new WindowManager(); - wm.StartAboutBox95("Calculator", null, Properties.Resources.WinClassicCalc); - } - - private void Button26_Click(object sender, EventArgs e) - { - prevnum = 0; - txtNumbers.Text = "0"; - isdecimal = false; - iszero = true; - neg = false; - } - - private void Button27_Click(object sender, EventArgs e) - { - txtNumbers.Text = "0"; - isdecimal = false; - iszero = true; - neg = false; - } - public void Calculate() + + private void Button21_Click(object sender, EventArgs e) { - switch (coperator) + if (txtNumbers.Text.Contains("∞")) + txtNumbers.Clear(); + switch (operation) { case "+": - if (prevnum == 0) - { - break; - } txtNumbers.Text = (prevnum + double.Parse(txtNumbers.Text)).ToString(); - prevnum = double.Parse(txtNumbers.Text); break; case "-": - if (prevnum == 0) - { - break; - } txtNumbers.Text = (prevnum - double.Parse(txtNumbers.Text)).ToString(); - prevnum = double.Parse(txtNumbers.Text); break; case "*": - if (prevnum == 0) - { - break; - } txtNumbers.Text = (prevnum * double.Parse(txtNumbers.Text)).ToString(); - prevnum = double.Parse(txtNumbers.Text); break; case "/": - if (prevnum == 0) - { - break; - } txtNumbers.Text = (prevnum / double.Parse(txtNumbers.Text)).ToString(); - prevnum = double.Parse(txtNumbers.Text); break; } + prevnum = Int32.Parse(txtNumbers.Text); + operation = ""; } - private void Button22_Click(object sender, EventArgs e) - { - double sq = double.Parse(txtNumbers.Text); - txtNumbers.Text = Math.Sqrt(sq).ToString(); - } - - private void Button17_Click(object sender, EventArgs e) - { - coperator = "+"; - Calculate(); - prevnum = double.Parse(txtNumbers.Text); - iszero = true; - } - - private void Button19_Click(object sender, EventArgs e) - { - coperator = "-"; - Calculate(); - prevnum = double.Parse(txtNumbers.Text); - txtNumbers.Text = "0"; - } - - private void Button20_Click(object sender, EventArgs e) - { - coperator = "*"; - Calculate(); - prevnum = double.Parse(txtNumbers.Text); - txtNumbers.Text = "0"; - } - - private void Button18_Click(object sender, EventArgs e) - { - coperator = "/"; - Calculate(); - prevnum = double.Parse(txtNumbers.Text); - txtNumbers.Text = "0"; - } - - private void Button23_Click(object sender, EventArgs e) - { - double a; - a = Convert.ToDouble(1.0 / Convert.ToDouble(txtNumbers.Text)); - txtNumbers.Text = Convert.ToString(a); - } - - private void Button24_Click(object sender, EventArgs e) - { - double a; - a = Convert.ToDouble(txtNumbers.Text) / Convert.ToDouble(100); - txtNumbers.Text = Convert.ToString(a); - } - - private void Button12_Click_1(object sender, EventArgs e) + private void AboutCalculatorToolStripMenuItem_Click(object sender, EventArgs e) { - + WindowManager wm = new WindowManager(); + wm.StartAboutBox95("Calculator", "Microsoft Calculator", Properties.Resources.WinClassicCalc); } } } -- cgit v1.2.3 From 14d1d663f5c6f5f98719223c41005e96a0ac6830 Mon Sep 17 00:00:00 2001 From: jtsshieh Date: Fri, 14 Jul 2017 18:20:57 -0400 Subject: Copy/Paste Did Copy/Paste for Calculator BUT paste is not doing too well at filtering out the letters. --- .../Win95Apps/WinClassicCalculator.Designer.cs | 7 ++++-- .../OS/Win95/Win95Apps/WinClassicCalculator.cs | 27 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.Designer.cs index 92190a3..70ad0a2 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.Designer.cs @@ -119,15 +119,17 @@ // this.PasteCtrlVToolStripMenuItem1.BackColor = System.Drawing.Color.Silver; this.PasteCtrlVToolStripMenuItem1.Name = "PasteCtrlVToolStripMenuItem1"; - this.PasteCtrlVToolStripMenuItem1.Size = new System.Drawing.Size(150, 22); + this.PasteCtrlVToolStripMenuItem1.Size = new System.Drawing.Size(152, 22); this.PasteCtrlVToolStripMenuItem1.Text = "Paste Ctrl+V"; + this.PasteCtrlVToolStripMenuItem1.Click += new System.EventHandler(this.PasteCtrlVToolStripMenuItem1_Click); // // CopyCtrlCToolStripMenuItem1 // this.CopyCtrlCToolStripMenuItem1.BackColor = System.Drawing.Color.Silver; this.CopyCtrlCToolStripMenuItem1.Name = "CopyCtrlCToolStripMenuItem1"; - this.CopyCtrlCToolStripMenuItem1.Size = new System.Drawing.Size(150, 22); + this.CopyCtrlCToolStripMenuItem1.Size = new System.Drawing.Size(152, 22); this.CopyCtrlCToolStripMenuItem1.Text = "Copy Ctrl+C"; + this.CopyCtrlCToolStripMenuItem1.Click += new System.EventHandler(this.CopyCtrlCToolStripMenuItem1_Click); // // EditToolStripMenuItem1 // @@ -388,6 +390,7 @@ this.Button15.TabIndex = 72; this.Button15.Text = "+/-"; this.Button15.UseVisualStyleBackColor = true; + this.Button15.Click += new System.EventHandler(this.Button15_Click); // // Button17 // diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs index 1a1c905..71ded89 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicCalculator.cs @@ -144,5 +144,32 @@ namespace TimeHACK.OS.Win95.Win95Apps WindowManager wm = new WindowManager(); wm.StartAboutBox95("Calculator", "Microsoft Calculator", Properties.Resources.WinClassicCalc); } + + private void Button15_Click(object sender, EventArgs e) + { + + } + + private void CopyCtrlCToolStripMenuItem1_Click(object sender, EventArgs e) + { + txtNumbers.Copy(); + } + + private void PasteCtrlVToolStripMenuItem1_Click(object sender, EventArgs e) + { + string pasteText = Clipboard.GetText(); + string strippedText = ""; + for (int i = 0; i < pasteText.Length; i++) + { + if (char.IsDigit(pasteText[i])) + strippedText += pasteText[i].ToString(); + MessageBox.Show("Test"); + } + if (strippedText!=pasteText) + { + txtNumbers.Text = pasteText; + } + } + } } -- cgit v1.2.3