PROGRAM RequesterSimulation
   ?
   ? Program uses F-Basic's COLOR_BOX,COLOR_FLOOD, and SINGLE_CLICK Event
   ? To Simulate A Simple Requester In A Custom Amiga Window
   ?
GLOBAL
   INTEGER CHOICECOUNT,XLEFT,XRIGHT,YLEFT,YRIGHT,REQWIDTH,REQHEIGHT
   TEXT*30 MSGTEXT
   DATA (CHOICECOUNT,5),(MSGTEXT," ")
LOCAL
   INTEGER ROW,COL,FAKE
SUBPROGRAM
  SUBROUTINE MakeRequester,PrintMessage
  INTEGER ProcessClick
CALL MakeRequester()
CURS_INV
PrintMessage()
ON SINGLE_CLICK EVENT
   FAKE=ProcessClick(MOUSE_X1,MOUSE_Y1)
   IF FAKE=1 THEN
      ROW=8
      COL=19
   ELSEIF FAKE=2 THEN
      ROW=8
      COL=6
   ENDIF
   IF FAKE THEN
      DEC(CHOICECOUNT)
      PrintMessage()
      CURS_LOC(ROW,COL)
      PRINT "WHAT ABOUT ME?",
      DELAY(3)
      CURS_LOC(ROW,COL)
      PRINT "              ",
   ENDIF
END EVENT
{Again}
IF CHOICECOUNT>=1 THEN GOTO Again
END

SUBROUTINE PrintMessage
IF CHOICECOUNT>0 THEN
   CURS_LOC(2,9)
   MSGTEXT="MAKE " & DIGSTRING(CHOICECOUNT) & " MORE CHOICE(S)"
   SCR_STYL (7)
   PRINT MSGTEXT(1:LENGTH(MSGTEXT))
   SCR_STYL (0)
ENDIF
GRETURN
END

SUBROUTINE MakeRequester
LOCAL
   INTEGER UpLeftX,UpLeftY,Width,Height,FunColor
   INTEGER OutLineColor,WNDPTR,I,J,K,L
UpLeftX=170 ; UpLeftY=60 ; Width=300 ; Height=80 ; XLEFT=70 ; XRIGHT=180
YLEFT=YRIGHT=51  ;  FunColor=3  ; OutLineColor=2 ; REQWIDTH=50 ; REQHEIGHT=16
WNDPTR=WINDOW #1 (UpLeftX,UpLeftY,Width,Height,0,0,0,0,-1,-1,22,@"Requester Window",-1)
CURS_LOC(5,10) ; PRINT "LEFTY" ; CURS_LOC(5,23) ; PRINT "RIGHTY"
COLOR_BOX #OutLineColor (2,XLEFT,YLEFT,REQWIDTH,REQHEIGHT)
COLOR_BOX #OutLineColor (2,XRIGHT,YRIGHT,REQWIDTH,REQHEIGHT)
COLOR_FLOOD #FunColor (XLEFT+10,YLEFT+5,OutLineColor)
COLOR_FLOOD #FunColor (XRIGHT+10,YRIGHT+5,OutLineColor)
GRETURN
END

FUNCTION ProcessClick
? *
? * Returns 0 To Indicate Not In LeftRequester Or RightRequester
? *         1             In LeftRequester
? *         2             In RightRequester
? *
PARAMETER
   INTEGER MOUSEX,MOUSEY
IF MOUSEX<XLEFT OR MOUSEX>XRIGHT+REQWIDTH THEN
   {QuickReturn}
   ProcessClick=0
   GRETURN
ENDIF
IF MOUSEY<YLEFT OR MOUSEY>YLEFT+REQHEIGHT THEN GOTO QuickReturn
IF MOUSEX<=XLEFT+REQWIDTH THEN
   ProcessClick=1
   GRETURN
ENDIF
IF MOUSEX>=XRIGHT THEN
   ProcessClick=2
   GRETURN
ENDIF
GOTO QuickReturn
END


