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 fbblDatiCasuali;
using fbblTipi;
using fbblGrafica2D;

namespace fdprTavolaGrafica
{
    public partial class frmTavolaDaDisegno : Form
    {
        public frmTavolaDaDisegno()
        {
            InitializeComponent();
        }

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

        private void frmTavolaDaDisegno_Cerchio()
        {
            int PuntoX;
            int PuntoY;
            int Raggio;
            Color ColoreOggetto;
            TIntervalloInteri IntervalloX;
            TIntervalloInteri IntervalloY;
            TIntervalloInteri IntervalloRaggio;

            IntervalloX = new TIntervalloInteri();
            IntervalloY = new TIntervalloInteri();
            IntervalloRaggio = new TIntervalloInteri();

            IntervalloX.Minimo = 0;
            IntervalloX.Massimo = this.Width;

            IntervalloY.Minimo = 0;
            IntervalloY.Massimo = this.Height;

            IntervalloRaggio.Minimo = 1;
            IntervalloRaggio.Massimo = 100;

            PuntoX = StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            PuntoY =  StrumentiDatiCasuali.NumeroCasuale(IntervalloY);
            Raggio = StrumentiDatiCasuali.NumeroCasuale(IntervalloRaggio);

            ColoreOggetto =  StrumentiDatiCasuali.ColoreCasuale();

            StrumentiGrafica2D.Disegno(PuntoX, PuntoY, Raggio, ColoreOggetto);

        }

        private void frmTavolaDaDisegno_Triangolo()
        {
            Color ColoreOggetto;

            ColoreOggetto =  StrumentiDatiCasuali.ColoreCasuale();

            StrumentiGrafica2D.Disegno(GenerazionePuntiPerTriangolo(), ColoreOggetto);
        }

        private Point[] GenerazionePuntiPerTriangolo()
        {
            Point[] ArrayPunti = new Point[3];
            TIntervalloInteri IntervalloX;
            TIntervalloInteri IntervalloY;

            IntervalloX = new TIntervalloInteri();
            IntervalloY = new TIntervalloInteri();

            IntervalloX.Minimo = 0;
            IntervalloX.Massimo = this.Width;

            IntervalloY.Minimo = 0;
            IntervalloY.Massimo = this.Height;

            ArrayPunti[0].X = StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            ArrayPunti[0].Y = StrumentiDatiCasuali.NumeroCasuale(IntervalloY);

            ArrayPunti[1].X = StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            ArrayPunti[1].Y =  StrumentiDatiCasuali.NumeroCasuale(IntervalloY);

            ArrayPunti[2].X = StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            ArrayPunti[2].Y =  StrumentiDatiCasuali.NumeroCasuale(IntervalloY);

            return ArrayPunti;
        }

        private void frmTavolaDaDisegno_Rettangolo()
        {
            int PuntoX;
            int PuntoY;
            int Altezza;
            int Larghezza;
            Color ColoreOggetto;
            TIntervalloInteri IntervalloX;
            TIntervalloInteri IntervalloY;

            IntervalloX = new TIntervalloInteri();
            IntervalloY = new TIntervalloInteri();

            IntervalloX.Minimo = 0;
            IntervalloX.Massimo = this.Width;

            IntervalloY.Minimo = 0;
            IntervalloY.Massimo = this.Height;

            PuntoX =  StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            PuntoY =  StrumentiDatiCasuali.NumeroCasuale(IntervalloY);

            Larghezza =  StrumentiDatiCasuali.NumeroCasuale(IntervalloX);
            Altezza =  StrumentiDatiCasuali.NumeroCasuale(IntervalloY);

            ColoreOggetto = StrumentiDatiCasuali.ColoreCasuale();

            StrumentiGrafica2D.Disegno(PuntoX, PuntoY, Altezza, Larghezza, ColoreOggetto);


        }

        private void frmTavolaDaDisegno_Sfondo()
        {
            StrumentiGrafica2D.Disegno(Color.LightBlue);
        }

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

//********************** PROCEDURE DI RISPOTA AGLI EVENTI ************************

        private void mnuCerchio_Click(object sender, EventArgs e)
        {
            frmTavolaDaDisegno_Cerchio();
        }

        private void mnuTriangolo_Click(object sender, EventArgs e)
        {
            frmTavolaDaDisegno_Triangolo();
        }

        private void mnuRettangolo_Click(object sender, EventArgs e)
        {
            frmTavolaDaDisegno_Rettangolo();
        }

        private void mnuEsci_Click(object sender, EventArgs e)
        {
            frmTavolaDaDisegno_Esci();
        }

        private void frmTavolaDaDisegno_Shown(object sender, EventArgs e)
        {
            frmTavolaDaDisegno_Sfondo();
        }
    }
}
