using System;
using Gtk;
public partial class MainWindow: Gtk.Window
{
public int operacion = 0;
public bool pendiente = false;
public bool separador_decimal = false;
public double primer_numero, segundo_numero, resultado;
public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
protected virtual void BCero_Clicked (object sender, System.EventArgs e)
{
if(pendiente)
{
primer_numero = double.Parse(cajatexto.Text);
pendiente = false;
cajatexto.Text = "0,";
separador_decimal = true;
}
else
{
if (cajatexto.Text == "")
{
cajatexto.Text = "0,";
separador_decimal = true;
}
else
cajatexto.Text = cajatexto.Text + "0";
}
}
protected virtual void operacion_Clicked (object sender, System.EventArgs e)
{
if (cajatexto.Text != "")
{
pendiente = true;
if ((sender as Button).Name == "BMas") operacion = 1;
if ((sender as Button).Name == "BMenos") operacion = 2;
if ((sender as Button).Name == "BPor") operacion = 3;
if ((sender as Button).Name == "BDivision") operacion = 4;
separador_decimal = false;
}
}
protected virtual void BPunto_Clicked (object sender, System.EventArgs e)
{
if (!separador_decimal)
{
if(pendiente)
{
primer_numero = double.Parse(cajatexto.Text);
pendiente = false;
cajatexto.Text = "0,";
}
else
{
if (cajatexto.Text == "")
cajatexto.Text = "0,";
else
cajatexto.Text = cajatexto.Text + ",";
}
separador_decimal = true;
}
}
protected virtual void BIgual_Clicked (object sender, System.EventArgs e)
{
if ( (operacion >=1) && (operacion <=4) )
{
segundo_numero = double.Parse(cajatexto.Text);
switch(operacion)
{
case 1: resultado = primer_numero + segundo_numero; break;
case 2: resultado = primer_numero - segundo_numero; break;
case 3: resultado = primer_numero * segundo_numero; break;
case 4: resultado = primer_numero / segundo_numero; break;
}
cajatexto.Text = Convert.ToString(resultado);
separador_decimal = false;
}
}
protected virtual void BN1_Clicked (object sender, System.EventArgs e)
{
cajatexto.Text = cajatexto.Text + (sender as Button).Label;
}
}