/* 
        Nome del programma . . . . ExWindow.c
        Autore . . . . . . . . . . Graziano Pavone
        Linguaggio . . . . . . . . Lattice C
        Hardware Richiesto . . . . Amiga in qualsiasi configurazione
        Compilazione . . . . . . . lc -L exwindow
*/

#include <intuition/intuition.h>

/* Definisce un puntatore alla struttura IntuitionBase e dei puntatori 
   alle strutture Screen e Window */

struct IntuitionBase *IntuitionBase;

struct Window *finestra;
struct Screen *schermo;
struct Window *OpenWindow();
struct Screen *OpenScreen();

/* definisce mioscr come una struttura screen e 
   miawin come una struttura window */

struct NewScreen mioscr = {
 0,0,           /* Posizione dello screen */
 640,512,       /* Dimensioni */
 2,             /* 2 bit-plane, cioè 4 colori */
 0x00,0x01,     /* Colori da utilizzare */
 HIRES|LACE,    /* Alta risoluzione interlacciata */
 CUSTOMSCREEN,  /* Schermo custom */
 NULL,
 "Il mio primo screen", /* Titolo */
 NULL,NULL };

struct NewWindow miawin = {
 30,30,         /* Posizione */
 300,200,       /* Dimensioni iniziali */
 0x00,0x01,     /* Colori */
 NULL,
 WINDOWSIZING|WINDOWDRAG, /* La window avrà gadget per il
                             ridimensionamento e lo spostamento */
 NULL,NULL,
 "La mia prima window",   /* Titolo */
 NULL,          /* Il puntatore allo screen andrà inserito dopo 
                   l'apertura dello stesso */
 NULL,
 50,50,600,400, /* Limiti di ridimensionamento */
 CUSTOMSCREEN };

main()
{

        /* Innanzitutto apriamo la libreria intuition per rendere 
           disponibili le funzioni necessarie */

        IntuitionBase=(struct IntuitionBase *)
                        OpenLibrary("intuition.library",0);

        /* Controlliamo ora se tutto è andato bene */

        if(IntuitionBase==NULL) exit(FALSE);

        /* Apriamo lo screen e ricaviamo il puntatore alla struttura */

        schermo=OpenScreen(&mioscr);
        
        /* Assegnamo il puntatore allo screen dove sarà aperta la
           window e apriamo la finestra */
        miawin.Screen=schermo;
        finestra=OpenWindow(&miawin);
        
        Delay(600); /* Pausa di 12 secondi */

        CloseWindow(finestra); /* Chiudiamo la finestra */

        Delay(300); /* Pausa di 3 secondi */

        CloseScreen(schermo); /* Chiudiamo lo screen */

        CloseLibrary(IntuitionBase); /* Chiudiamo la libreria Intuition */

	exit();
}
