
#include <stdio.h>
#include <clib/intuition_protos.h>
#include <clib/dos_protos.h>

void IDCMPHandler( void );
void Cat( int );
struct IntuiText MyText;
       FILE *DirListInput;
#include "Windows.c"

main()
{
    
    int x,y;
    WORD z[2];
    char BobChar;
    SetupScreen();
    OpenRequesterWindow();
    RequesterRender();
    z[0]=50;
    z[1]=50;
    EraseRect(RequesterWnd->RPort,12,15,225,128);
    SetAPen(RequesterWnd->RPort,1);
 //   PolyDraw(RequesterWnd->RPort,1,z);
   DirListInput = fopen("work:DirList","r");  
    MyText.FrontPen=1;
   for(x=14;x<122;x=x+8)
	{
        MyText.IText="Fishy";
        for(y=1;y<35;y++)
          {
          BobChar = fgetc( DirListInput);
          if(BobChar=='\x0A')
           {
            BobChar=0;
            break;
            }      
          MyText.IText[y]=BobChar;
        }
          MyText.IText[y]=0;
          MyText.IText[0]=' ';
          Cat(x);
        }             
        IDCMPHandler();
	CloseRequesterWindow();
	CloseDownScreen();
        fclose( DirListInput);
} 

void Cat( int Height )
{
    MyText.BackPen=0;
    MyText.DrawMode=JAM1;
    MyText.LeftEdge=10;
    MyText.TopEdge=Height;
    PrintIText(RequesterWnd->RPort,&MyText,2,2);
}

void IDCMPHandler( void )
{
 struct IntuiMessage *imsg;
 struct Gadget       *gad;
 BOOL   terminated = FALSE;
 while(!terminated)
       {
        Wait(1 <<RequesterWnd->UserPort->mp_SigBit);
        while((!terminated) && (imsg = GT_GetIMsg(RequesterWnd->UserPort)))
             {
               switch(imsg->Class)
                     {
                        case IDCMP_GADGETUP:
                              gad = (struct Gadget *)imsg->IAddress;
                               switch(gad->GadgetID)
                                     {
                                        case GD_POSITIVE:  
                                        ScrollRaster(RequesterWnd->RPort,0,1,7,12,250,150);
                                        break;
                                        case GD_CANCEL:
                                        ScrollRaster(RequesterWnd->RPort,0,-1,7,12,250,150);
                                        break;
                                    }
                                          
                         
            
                         case IDCMP_REFRESHWINDOW:
                              GT_BeginRefresh(RequesterWnd);
                              GT_EndRefresh(RequesterWnd,TRUE);
                              break;
                         
                         case IDCMP_CLOSEWINDOW:
                               terminated=TRUE;
                               break;

                     }

             GT_ReplyIMsg(imsg);
             }
       }
}   
