/***********************************************************************/
/* Oeffnen eines Windows                                               */
/*                                                                     */
/* fuer Markt&Technik von H. Knappe                                    */
/***********************************************************************/

#include <exec/types.h>
#include <intuition/intuition.h>

struct IntuitionBase *IntuitionBase;

/* MyNewWindow ist eine NewWindow-Struktur                             */
struct NewWindow MyNewWindow;
/* MyWindow ist ein Zeiger auf eine Window-Struktur                    */
struct Window *MyWindow;



main()
{
 LONG i;

 printf("Oeffnen eines Windows...\n");

 IntuitionBase=OpenLibrary("intuition.library",29);
 /* Library-Versionen ab 29 werden verwendet                           */
 if(IntuitionBase==NULL)
 {
    printf("Intuition.library kann nicht geoeffnet werden!\n");
    exit(FALSE);
 }
 printf("Intuition.library offen -> ");

 /* MyNewWindow structure wird definiert. */
 MyNewWindow.LeftEdge= 50;     /* Fenster erscheint an Punkt (50,50)   */
 MyNewWindow.TopEdge= 50;
 MyNewWindow.Width= 400;       /* Fenster ist 400 Punkte breit         */
 MyNewWindow.Height= 100;      /* und 100 Punkte hoch                  */
 MyNewWindow.DetailPen= 0;     /* Fenster-Gadgets mit Farbregister 0   */
 MyNewWindow.BlockPen= 1;      /* Fenster-Begrenzung mit Register 1    */
 /* Schliessen des Fensters soll gemeldet werden.                      */
 MyNewWindow.IDCMPFlags= CLOSEWINDOW;
 /* Das Fenster soll geschlossen, vergroessert, verschoben und in die  */
 /* 'Tiefe' gelegt werden koennen.  Das Fenster soll nach dem Oeffnen  */
 /* aktiv sein  und im  SMART_REFRESH-Modus  soll der Inhalt erneuert  */
 /* werden.                                                            */
 MyNewWindow.Flags= SMART_REFRESH|ACTIVATE|WINDOWCLOSE|WINDOWSIZING|
                    WINDOWDRAG|WINDOWDEPTH;
 MyNewWindow.FirstGadget= NULL; /* keine Gadgets                       */
 MyNewWindow.CheckMark= NULL;  /* keine eigene CheckMark               */
 MyNewWindow.Title= "Mein erstes Window";  /* Titel des Fensters       */
 MyNewWindow.Screen= NULL;     /* kein eigener Screen -> WBENCHSCREEN  */
                               /* muß gesetzt sein!                    */
 MyNewWindow.BitMap= NULL;     /* keine eigene BitMap                  */
 MyNewWindow.MinWidth= 50;     /* maximale und minimale Groesse des    */
 MyNewWindow.MinHeight= 50;    /* Fensters                             */
 MyNewWindow.MaxWidth= 320;
 MyNewWindow.MaxHeight= 200;
 MyNewWindow.Type= WBENCHSCREEN; /* Fenster erscheint im WBenchScreen  */

 /* Oeffnen des  Fensters.  Wenn das Ergebnis gleich Null ist kann das */
 /* Window nicht geoeffnet werden und das Programm sollte abbrechen.   */
 if((MyWindow=OpenWindow(&MyNewWindow))==NULL)
 {
    printf("Window kann nicht geoeffnet werden!\n");
    CloseLibrary(IntuitionBase);
    exit(FALSE);
 }
 printf("Fenster offen\n");

 /* Warten bis das Window geschlossen wird                             */
 while(GetMsg(MyWindow->UserPort)==0);

 /* Fenster schliessen                                                 */
 CloseWindow(MyWindow);
 printf("Fenster geschlossen.\n");
}
