using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using fbblCostanti;
using fbblGeometriaPiana;
using fbblControlli;
using fbblMessaggi;

namespace fdprIpotenusaTriangolo
{
    public partial class frmIpotenusaTriangolo : Form
    {
        public frmIpotenusaTriangolo()
        {
            InitializeComponent();
        }

//******************** PROCEDURE LOCALI DI PROGETTO *******************
        
//******************** PROCEDURE LOCALI DI PROGETTO *******************

        private void frmIpotenusaTriangolo_Esci()
        {
            Application.Exit();
        }

        private void frmIpotenusaTriangolo_Nuovo()
        {
            edtCateto1.Clear();
            edtCateto2.Clear();
            edtIpotenusa.Clear();

            edtCateto1.Focus();
        }

        private void frmIpotenusaTriangolo_TastoPremuto(ref KeyPressEventArgs TastoPremuto)
        {
            if (TastoPremuto.KeyChar == StrumentiCostanti.Punto)
            {
                TastoPremuto.KeyChar = StrumentiCostanti.Virgola;
            }
        }

        private void frmIpotenusaTriangolo_Esegui()
        {

            double Cateto1;
            double Cateto2;
            double Ipotenusa;
            bool ControlloOK;

            ControlloDati(out ControlloOK, out Cateto1, out Cateto2);

            if (ControlloOK == true)
            {
                Ipotenusa = StrumentiGeometriaPiana.IpotenusaTriangolo(Cateto1, Cateto2);
                edtIpotenusa.Text = Ipotenusa.ToString();
            }
        }

        private void ControlloDati(out bool ControlloOK, out double Cateto1, out double Cateto2)
        {
            Cateto2 = 0;

            StrumentiControlli.ControlloNumeroRealePositivo(edtCateto1.Text, out ControlloOK, out Cateto1);

            if (ControlloOK == false)
            {
                StrumentiMessaggi.MessaggioNumeroRealePositivo("Cateto1");
                edtCateto1.Focus();

                return;
            }

            StrumentiControlli.ControlloNumeroRealePositivo(edtCateto2.Text, out ControlloOK, out Cateto2);

            if (ControlloOK == false)
            {
                StrumentiMessaggi.MessaggioNumeroRealePositivo("Cateto2");
                edtCateto2.Focus();

            }

        }

//******************** PROCEDURE DI RISPOSTA AGLI EVENTI *******************

        private void btnEsegui_Click(object sender, EventArgs e)
        {
            frmIpotenusaTriangolo_Esegui();
        }

        private void btnNuovo_Click(object sender, EventArgs e)
        {
            frmIpotenusaTriangolo_Nuovo();
        }

        private void btnEsci_Click(object sender, EventArgs e)
        {
            frmIpotenusaTriangolo_Esci();
        }

        private void edtCateto1_KeyPress(object sender, KeyPressEventArgs TastoPremuto)
        {
            frmIpotenusaTriangolo_TastoPremuto(ref TastoPremuto);
        }

        private void edtCateto2_KeyPress(object sender, KeyPressEventArgs TastoPremuto)
        {
            frmIpotenusaTriangolo_TastoPremuto(ref TastoPremuto);
        }


    }
}
