
/*
\\    StrGad - Demo Text/Int-Gadget
*/
#include "TOOL.h"
#define ANZ_Z 20
#define BG    80
#define HG    9

struct Window *win;
UBYTE undo[ANZ_Z],text[ANZ_Z]="Text",zahl[ANZ_Z]="0",
      Ueberschrift[]="Text-Gadget   Int-Gadget";
SHORT pos[]={BG+1,HG+1, BG+1,1, BG,0, BG,HG, 0,HG, 1,HG+1, BG+1,HG+1 };
struct Border border={      0,0,  2,0,  JAM1, 7, &pos[0],  NULL      };
struct StringInfo SInfo1={text,undo,0, ANZ_Z,0, 0,0,0,0,0,0,0,  NULL };
struct StringInfo SInfo2={zahl,undo,0, ANZ_Z,0, 0,0,0,0,0,0,0,  NULL };
struct IntuiText GText  ={2,0,JAM1,0,-15,NULL,&Ueberschrift[0], NULL };

VOID error(Meldung)
    STRPTR Meldung;
{
    if(Meldung) printf("Kann %s nicht öffnen!?!\n",Meldung);
    if(win)     CloseWindow(win);
    CloseLib();
    exit(0);
}

VOID main()
{
    struct Gadget SGad, IGad;     /*die beiden Gadgets String- und IntGadget */
    SHORT ok=0;
    USHORT id;
    ULONG class,idcmp=GADGETUP|MOUSEBUTTONS|CLOSEWINDOW,
          flags=WINDOWCLOSE|WINDOWDEPTH|WINDOWDRAG|WINDOWSIZING|ACTIVATE;

    if(OpenLib()) error("Lib's");
    if(!(win=GetWindow(NULL,0,0,230,70,idcmp,flags,"Text/Int-Gadgets",NULL)))
        error("Window");
    GetGadget(&SGad,win,10,40,BG,HG,GADGHCOMP,RELVERIFY|GADGIMMEDIATE,
        STRGADGET,&border,NULL,&GText,&SInfo1,1);/* String-Gadget mit TOOL.h */
    GetGadget(&IGad,win,120,40,BG,HG,GADGHBOX,RELVERIFY|GADGIMMEDIATE|LONGINT,
        STRGADGET,&border,NULL,NULL,&SInfo2,2);     /* Int-Gadget mit TOOL.h */
    ActivateGadget(&SGad,win,NULL);              /* String-Gadget aktivieren */
    while(ok==0){       /* Bedingung ist nach CLOSEGADGET nicht mehr erfüllt */
        Wait(1<<win->UserPort->mp_SigBit);
        class=GetMessage(win,0,&id,0);
        switch(class){
            case GADGETUP:{                          /* Returntaste betätigt */
                switch(id){
                    case 1:{    /* Gadget mit ID Nummer 1: das String-Gadget */
                        printf("String: %s\n",SInfo1.Buffer);
                        ActivateGadget(&IGad,win,NULL); /* Int-G  aktivieren */
                        break;
                    }
                    case 2:{       /* Gadget mit ID Nummer 2: das Int-Gadget */
                        printf("Zahl: %ld\n",SInfo2.LongInt);
                        ActivateGadget(&SGad,win,NULL);  /* Str-G aktivieren */
                        break;
                    }
                }
                break;
            }
            case CLOSEWINDOW:{
                ok++;
                break;
            }
        }
    }
    error(0);
}

