aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs')
-rw-r--r--TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs175
1 files changed, 175 insertions, 0 deletions
diff --git a/TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs b/TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs
new file mode 100644
index 0000000..71ded89
--- /dev/null
+++ b/TimeHACK.Main/GlobalPrograms/WinClassicCalculator.cs
@@ -0,0 +1,175 @@
+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 TimeHACK.Engine;
+
+namespace TimeHACK.OS.Win95.Win95Apps
+{
+ public partial class WinClassicCalculator : UserControl
+ {
+ double prevnum = 0;
+ string operation = "";
+ bool operation_pressed = false;
+ public WinClassicCalculator()
+ {
+ InitializeComponent();
+ foreach (Control c in Controls)
+ {
+ if (c is Button)
+ {
+ c.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
+ c.Paint += (sender, args) => Paintbrush.PaintClassicBorders(sender, args, 2);
+ }
+ else
+ {
+ c.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0)));
+ }
+ }
+ txtNumbers.Paint += (sender, args) => Paintbrush.PaintClassicBordersIndented(sender, args, 2);
+ }
+ private void number_click(object sender, EventArgs e)
+ {
+ if (txtNumbers.Text.Contains("∞"))
+ txtNumbers.Clear();
+ if ((txtNumbers.Text == "0") || (operation_pressed))
+ txtNumbers.Text = "";
+ operation_pressed = false;
+ Button num = (Button)sender;
+ if (num.Text == ".")
+ {
+ if (!txtNumbers.Text.Contains("."))
+ txtNumbers.Text = txtNumbers.Text + num.Text;
+ }
+ else
+ txtNumbers.Text = txtNumbers.Text + num.Text;
+ }
+
+ private void Button27_Click(object sender, EventArgs e)
+ {
+ txtNumbers.Text = "0";
+ }
+
+ private void Button26_Click(object sender, EventArgs e)
+ {
+ prevnum = 0;
+ operation = "";
+ operation_pressed = false;
+ txtNumbers.Text = "0";
+ }
+
+ private void Button25_Click(object sender, EventArgs e)
+ {
+ if (txtNumbers.Text.Length>0)
+ {
+ txtNumbers.Text = txtNumbers.Text.Remove(txtNumbers.Text.Length - 1, 1);
+ }
+ if (txtNumbers.Text =="")
+ {
+ txtNumbers.Text = "0";
+ }
+ }
+
+ private void arithmitic_click(object sender, EventArgs e)
+ {
+ Button num = (Button)sender;
+ if (txtNumbers.Text.Contains("∞"))
+ txtNumbers.Clear();
+ if (prevnum != 0)
+ {
+ 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 if (num.Text == "sqrt")
+ {
+ prevnum = Math.Sqrt(double.Parse(txtNumbers.Text));
+ txtNumbers.Text = prevnum.ToString();
+ }
+ else if (num.Text == "1/x")
+ {
+ prevnum = Convert.ToDouble(1.0 / Convert.ToDouble(txtNumbers.Text));
+ txtNumbers.Text = prevnum.ToString();
+ }
+ else if (num.Text == "%")
+ {
+ prevnum = Convert.ToDouble(txtNumbers.Text) / 100;
+ txtNumbers.Text = prevnum.ToString();
+ }
+ else
+ {
+ operation = num.Text;
+ prevnum = double.Parse(txtNumbers.Text);
+ txtNumbers.Text = "0";
+ operation_pressed = true;
+ }
+ }
+
+ private void Button21_Click(object sender, EventArgs e)
+ {
+ if (txtNumbers.Text.Contains("∞"))
+ txtNumbers.Clear();
+ switch (operation)
+ {
+ case "+":
+ txtNumbers.Text = (prevnum + double.Parse(txtNumbers.Text)).ToString();
+ break;
+ case "-":
+ txtNumbers.Text = (prevnum - double.Parse(txtNumbers.Text)).ToString();
+ break;
+ case "*":
+ txtNumbers.Text = (prevnum * double.Parse(txtNumbers.Text)).ToString();
+ break;
+ case "/":
+ txtNumbers.Text = (prevnum / double.Parse(txtNumbers.Text)).ToString();
+ break;
+ }
+ prevnum = Int32.Parse(txtNumbers.Text);
+ operation = "";
+ }
+
+ private void AboutCalculatorToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ 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;
+ }
+ }
+
+ }
+}