#ifndef INTUITION_INTUITIONBASE_H
#include <intuition/intuitionbase.h>
#endif

struct IntuitionBase *IntuitionBase; 
struct GfxBase *GfxBase;
struct Screen *grafikscreen;
struct Window *grafikwindow;

/* * * * * * * * * * * * * * * * * * * * *
 * DIE INITIALISIERUNG DES NEUEN SCREENS *
 * * * * * * * * * * * * * * * * * * * * */          

struct NewScreen screendata =
 {
   0,            /* Left Edge                   */
   0,            /* Top Edge                    */
   320,          /* Breite                      */
   256,          /* Hoehe                       */
   5,            /* Anzahl der BitPlanes        */
   0,            /* Detail Pen                  */
   1,            /* BlockPen                    */
   NULL,         /* Darstellungs Modus          */
   CUSTOMSCREEN, /* Screen Typ                  */
   NULL,         /* Standard Font               */
   NULL,         /* Kein Titel auf der Titlebar */
   NULL,         /* keine Gadgets               */
   NULL          /* keine besondere BitMap      */
 };

/* * * * * * * * * * * * * * * * * * * * *
 * DIE INITIALISIERUNG DES NEUEN WINDOWS *
 * * * * * * * * * * * * * * * * * * * * */

struct NewWindow windowdata =
 {
   0,                       /* Linker Rand           */
   0,                       /* Oberer Rand           */
   320,                     /* Breite                */
   255,                     /* Hoehe                 */
   0,                       /* DetailPen             */
   1,                       /* BlockPen              */
   CLOSEWINDOW,             /* IDCMP Flags           */
   ACTIVATE|WINDOWCLOSE,    /* Allgemeine Flags      */
   NULL,                    /* keine Gadgets         */
   NULL,                    /* kein eigenes Image    */
   (UBYTE *)"GRAFIKWINDOW", /* Titel des Windows     */
   NULL,                    /* Hier wird noch kein   */
      /* Screen genannt da dieser erst geoeffnet wird*/
   NULL,                    /* ohne eigene BitMap    */
   NULL,                    /* Fuer die Window Limits*/
   NULL,                    /* werden die Anfangs -  */
   NULL,                    /* groessen uebernommen  */
   NULL,
   CUSTOMSCREEN,            /* Bezug auf einen       */
                            /* eigenen Screen        */
 };


make_display()
 {

/* * * * * * * * * * * * *
 * OEFFNEN DER LIBRARIES *
 * * * * * * * * * * * * */

  if(!IntuitionBase)
   {
    IntuitionBase = (struct IntuitionBase *)
                 OpenLibrary("intuition.library",0L);
    if(!IntuitionBase) /* Bei Fehler ... */
     {
      end_display();   /* ... Abbruch */
     }
   }

  if(!GfxBase)  /* Dasselbe fuer die Grafik */
   {
    GfxBase = (struct GfxBase *)
                 OpenLibrary("graphics.library",0L);
    if(!GfxBase)
     {
      end_display();
     }
   }

/* * * * * * * * * * * *
 * OEFFNEN DES SCREENS *
 * * * * * * * * * * * */

  grafikscreen = (struct Screen*)
                          OpenScreen(&screendata);
  if(!grafikscreen)  /* Bei Fehler ... */
   {
    end_display();   /* ... Abbruch    */
   }

/* Den neuen Screen der NewWindow Struktur zuweisen */
  windowdata.Screen = grafikscreen;

/* * * * * * * * * * * *
 * OEFFNEN DES WINDOWS *
 * * * * * * * * * * * */

  grafikwindow = (struct Window*)
                          OpenWindow(&windowdata);
  if(!grafikwindow)
   {
    end_display();
   }
  
  return(NULL);
 }

/* * * * * * * * * * * * * * * * *
 * Schliessen und Freimachen, was*
 *geoefffnet und reserviert wurde*
 * * * * * * * * * * * * * * * * */

end_display()
{
 if (grafikwindow) CloseWindow(grafikwindow);
 if (grafikscreen) CloseScreen(grafikscreen);
 if (GfxBase) CloseLibrary(GfxBase);
 if (IntuitionBase) CloseLibrary(IntuitionBase);
 return(NULL);
}
