aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms
diff options
context:
space:
mode:
authorlempamo <[email protected]>2017-02-25 13:36:05 -0500
committerlempamo <[email protected]>2017-02-25 13:36:05 -0500
commit9aa549e2b99ce4176ccf6dfee705ea25737d360a (patch)
tree1c89ab4d8db0dd5f641dd380b7822568580d7bae /ShiftOS.WinForms
parente26453ebeec88dc73636d62785e24871dfbbdb1f (diff)
downloadshiftos_thereturn-9aa549e2b99ce4176ccf6dfee705ea25737d360a.tar.gz
shiftos_thereturn-9aa549e2b99ce4176ccf6dfee705ea25737d360a.tar.bz2
shiftos_thereturn-9aa549e2b99ce4176ccf6dfee705ea25737d360a.zip
Calculator finished
Diffstat (limited to 'ShiftOS.WinForms')
-rw-r--r--ShiftOS.WinForms/Applications/Calculator.Designer.cs55
-rw-r--r--ShiftOS.WinForms/Applications/Calculator.cs123
-rw-r--r--ShiftOS.WinForms/Resources/Shiftorium.txt46
3 files changed, 192 insertions, 32 deletions
diff --git a/ShiftOS.WinForms/Applications/Calculator.Designer.cs b/ShiftOS.WinForms/Applications/Calculator.Designer.cs
index 1f9008e..28db629 100644
--- a/ShiftOS.WinForms/Applications/Calculator.Designer.cs
+++ b/ShiftOS.WinForms/Applications/Calculator.Designer.cs
@@ -67,6 +67,10 @@ namespace ShiftOS.WinForms.Applications
this.buttonPlus = new System.Windows.Forms.Button();
this.buttonMinus = new System.Windows.Forms.Button();
this.buttonMultiply = new System.Windows.Forms.Button();
+ this.buttonDivide = new System.Windows.Forms.Button();
+ this.buttonC = new System.Windows.Forms.Button();
+ this.buttonCE = new System.Windows.Forms.Button();
+ this.buttonDecimal = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// numBox
@@ -208,6 +212,7 @@ namespace ShiftOS.WinForms.Applications
this.buttonMinus.TabIndex = 14;
this.buttonMinus.Text = "-";
this.buttonMinus.UseVisualStyleBackColor = true;
+ this.buttonMinus.Click += new System.EventHandler(this.buttonMinus_Click);
//
// buttonMultiply
//
@@ -217,11 +222,57 @@ namespace ShiftOS.WinForms.Applications
this.buttonMultiply.TabIndex = 15;
this.buttonMultiply.Text = "x";
this.buttonMultiply.UseVisualStyleBackColor = true;
+ this.buttonMultiply.Click += new System.EventHandler(this.buttonMultiply_Click);
+ //
+ // buttonDivide
+ //
+ this.buttonDivide.Location = new System.Drawing.Point(125, 123);
+ this.buttonDivide.Name = "buttonDivide";
+ this.buttonDivide.Size = new System.Drawing.Size(22, 22);
+ this.buttonDivide.TabIndex = 16;
+ this.buttonDivide.Text = "/";
+ this.buttonDivide.UseVisualStyleBackColor = true;
+ this.buttonDivide.Click += new System.EventHandler(this.buttonDivide_Click);
+ //
+ // buttonC
+ //
+ this.buttonC.Location = new System.Drawing.Point(88, 39);
+ this.buttonC.Name = "buttonC";
+ this.buttonC.Size = new System.Drawing.Size(31, 22);
+ this.buttonC.TabIndex = 17;
+ this.buttonC.Text = "C";
+ this.buttonC.UseVisualStyleBackColor = true;
+ this.buttonC.Click += new System.EventHandler(this.buttonC_Click);
+ //
+ // buttonCE
+ //
+ this.buttonCE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.buttonCE.Location = new System.Drawing.Point(88, 67);
+ this.buttonCE.Name = "buttonCE";
+ this.buttonCE.Size = new System.Drawing.Size(31, 22);
+ this.buttonCE.TabIndex = 18;
+ this.buttonCE.Text = "CE";
+ this.buttonCE.UseVisualStyleBackColor = true;
+ this.buttonCE.Click += new System.EventHandler(this.buttonCE_Click);
+ //
+ // buttonDecimal
+ //
+ this.buttonDecimal.Location = new System.Drawing.Point(32, 123);
+ this.buttonDecimal.Name = "buttonDecimal";
+ this.buttonDecimal.Size = new System.Drawing.Size(22, 22);
+ this.buttonDecimal.TabIndex = 19;
+ this.buttonDecimal.Text = ".";
+ this.buttonDecimal.UseVisualStyleBackColor = true;
+ this.buttonDecimal.Click += new System.EventHandler(this.buttonDecimal_Click);
//
// Calculator
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.buttonDecimal);
+ this.Controls.Add(this.buttonCE);
+ this.Controls.Add(this.buttonC);
+ this.Controls.Add(this.buttonDivide);
this.Controls.Add(this.buttonMultiply);
this.Controls.Add(this.buttonMinus);
this.Controls.Add(this.buttonPlus);
@@ -261,5 +312,9 @@ namespace ShiftOS.WinForms.Applications
private System.Windows.Forms.Button buttonPlus;
private System.Windows.Forms.Button buttonMinus;
private System.Windows.Forms.Button buttonMultiply;
+ private System.Windows.Forms.Button buttonDivide;
+ private System.Windows.Forms.Button buttonC;
+ private System.Windows.Forms.Button buttonCE;
+ private System.Windows.Forms.Button buttonDecimal;
}
}
diff --git a/ShiftOS.WinForms/Applications/Calculator.cs b/ShiftOS.WinForms/Applications/Calculator.cs
index c79494f..afd09f5 100644
--- a/ShiftOS.WinForms/Applications/Calculator.cs
+++ b/ShiftOS.WinForms/Applications/Calculator.cs
@@ -45,6 +45,7 @@ namespace ShiftOS.WinForms.Applications
private int activeoperation = 0;
private float operationnumber = 0;
private float currentnumber = 0;
+ private bool multiop = false;
public Calculator()
{
@@ -57,6 +58,10 @@ namespace ShiftOS.WinForms.Applications
buttonPlus.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_plus_button");
buttonMinus.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_minus_button");
buttonMultiply.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_multiply_button");
+ buttonDivide.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_divide_button");
+ buttonC.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_clear_button");
+ buttonCE.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_ce_button");
+ buttonDecimal.Visible = ShiftoriumFrontend.UpgradeInstalled("calc_decimal_button");
}
public void OnLoad()
@@ -81,57 +86,73 @@ namespace ShiftOS.WinForms.Applications
private void numBox_TextChanged(object sender, EventArgs e)
{
- currentnumber = float.Parse(numBox.Text);
+ if (numBox.Text.EndsWith("."))
+ {
+ if (numBox.Text == ".") { currentnumber = 0; }
+ else { currentnumber = float.Parse(numBox.Text.Replace(".", "")); }
+ }
+ else if (numBox.Text == "") { currentnumber = 0; }
+ else { currentnumber = float.Parse(numBox.Text); }
}
private void button1_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "1";
+ if (multiop) { numBox.Text = "1"; multiop = false; }
+ else { numBox.Text = numBox.Text + "1"; }
}
private void button2_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "2";
+ if (multiop) { numBox.Text = "2"; multiop = false; }
+ else { numBox.Text = numBox.Text + "2"; }
}
private void button3_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "3";
+ if (multiop) { numBox.Text = "3"; multiop = false; }
+ else { numBox.Text = numBox.Text + "3"; }
}
private void button4_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "4";
+ if (multiop) { numBox.Text = "4"; multiop = false; }
+ else { numBox.Text = numBox.Text + "4"; }
}
private void button5_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "5";
+ if (multiop) { numBox.Text = "5"; multiop = false; }
+ else { numBox.Text = numBox.Text + "5"; }
}
private void button6_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "6";
+ if (multiop) { numBox.Text = "6"; multiop = false; }
+ else { numBox.Text = numBox.Text + "6"; }
}
private void button7_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "7";
+ if (multiop) { numBox.Text = "7"; multiop = false; }
+ else { numBox.Text = numBox.Text + "7"; }
}
private void button8_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "8";
+ if (multiop) { numBox.Text = "8"; multiop = false; }
+ else { numBox.Text = numBox.Text + "8"; }
}
private void button9_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "9";
+ if (multiop) { numBox.Text = "9"; multiop = false; }
+ else { numBox.Text = numBox.Text + "9"; }
}
private void button10_Click(object sender, EventArgs e)
{
- numBox.Text = numBox.Text + "0";
+ if (multiop) { numBox.Text = "0"; multiop = false; }
+ else { numBox.Text = numBox.Text + "0"; }
}
private void buttonPlus_Click(object sender, EventArgs e)
@@ -146,6 +167,7 @@ namespace ShiftOS.WinForms.Applications
operationnumber = currentnumber;
activeoperation = 1;
}
+ multiop = true;
}
private void solve()
@@ -156,6 +178,18 @@ namespace ShiftOS.WinForms.Applications
numBox.Text = (currentnumber + operationnumber).ToString();
break;
+ case 2:
+ numBox.Text = (operationnumber - currentnumber).ToString();
+ break;
+
+ case 3:
+ numBox.Text = (operationnumber * currentnumber).ToString();
+ break;
+
+ case 4:
+ numBox.Text = (operationnumber / currentnumber).ToString();
+ break;
+
default:
break;
}
@@ -167,5 +201,72 @@ namespace ShiftOS.WinForms.Applications
operationnumber = 0;
activeoperation = 0;
}
+
+ private void buttonMinus_Click(object sender, EventArgs e)
+ {
+ if (operationnumber == 0 && activeoperation == 0)
+ {
+ operationnumber = currentnumber;
+ activeoperation = 2;
+ }
+ else
+ {
+ solve();
+ operationnumber = currentnumber;
+ activeoperation = 2;
+ }
+ multiop = true;
+ }
+
+ private void buttonMultiply_Click(object sender, EventArgs e)
+ {
+ if (operationnumber == 0 && activeoperation == 0)
+ {
+ operationnumber = currentnumber;
+ activeoperation = 3;
+ }
+ else
+ {
+ solve();
+ operationnumber = currentnumber;
+ activeoperation = 3;
+ }
+ multiop = true;
+ }
+
+ private void buttonDivide_Click(object sender, EventArgs e)
+ {
+ if (operationnumber == 0 && activeoperation == 0)
+ {
+ operationnumber = currentnumber;
+ activeoperation = 4;
+ }
+ else
+ {
+ solve();
+ operationnumber = currentnumber;
+ activeoperation = 4;
+ }
+ multiop = true;
+ }
+
+ private void buttonC_Click(object sender, EventArgs e)
+ {
+ numBox.Clear();
+ }
+
+ private void buttonCE_Click(object sender, EventArgs e)
+ {
+ numBox.Clear();
+ operationnumber = 0;
+ activeoperation = 0;
+ multiop = false;
+ }
+
+ private void buttonDecimal_Click(object sender, EventArgs e)
+ {
+ if (multiop) { numBox.Text = "."; multiop = false; }
+ else if (!numBox.Text.Contains(".")) numBox.Text = numBox.Text + ".";
+ }
}
}
diff --git a/ShiftOS.WinForms/Resources/Shiftorium.txt b/ShiftOS.WinForms/Resources/Shiftorium.txt
index 3201cc5..bc79bdd 100644
--- a/ShiftOS.WinForms/Resources/Shiftorium.txt
+++ b/ShiftOS.WinForms/Resources/Shiftorium.txt
@@ -19,6 +19,12 @@
Description: "Right now, you can only type numbers, but this equals button opens the door to solving equations!"
},
{
+ Name: "Calc Decimal Button",
+ Cost: 600,
+ Dependencies: "calculator",
+ Description: "Whole numbers can get boring. With this button, you can type decimal numbers!"
+ },
+ {
Name: "Calc Plus Button",
Cost: 700,
Dependencies: "calc_equals_button",
@@ -37,6 +43,24 @@
Description: "You can add numbers together, but it must be tiring to add the same number over and over. This multiplication button will make it easier for you!"
},
{
+ Name: "Calc Divide Button",
+ Cost: 800,
+ Dependencies: "calc_multiply_button",
+ Description: "You can multiply, but what about reversing multiplication? This divide button will sort that out!"
+ },
+ {
+ Name: "Calc Clear Button",
+ Cost: 750,
+ Dependencies: "calc_equals_button",
+ Description: "Typed the wrong number? No worries! With this Clear button, you can clear the number field, without messing up the equation you're trying to solve!"
+ },
+ {
+ Name: "Calc CE Button",
+ Cost: 750,
+ Dependencies: "calc_clear_button",
+ Description: "Wanna start all over with a new equation? With this CE (Clear Everything) button, you get rid of not only the numbers in the number field, but also the equation!"
+ },
+ {
Name: "MUD Fundamentals",
Cost: 50,
Description: "Some basic commands for the terminal that'll help you out in the multi-user domain.",
@@ -737,26 +761,6 @@
Cost: 2500,
Dependencies: "shiftorium_gui",
Description: "In the shiftorium GUI but dont know what you can spend because you can't see how many code points are on hand? Well shop easy, because with this upgrade that is now possible! You have to restart the shiftorium for it to work."
- },
-
- // CALCULATOR UPGRADES
- {
- Name: "Calculator",
- Cost: 1000,
- Dependencies: "wm_free_placement;desktop",
- Description: "Crazy math problems getting you down? Well, this calculator will take care of that!"
- },
- {
- Name: "AL Calculator",
- Cost: 350,
- Dependencies: "calculator;app_launcher",
- Description: "Add an App Launcher Entry for the Calculator!"
- },
- {
- Name: "Calc Equals Button",
- Cost: 600,
- Dependencies: "calculator",
- Description: "Right now, you can only type numbers, but this equals button opens the door to solving equations!"
- }
+ }
] \ No newline at end of file