      PROGRAM TWIM10
C        a trivial Fortran wimp program which
C        tests panes
C
C        needs only the Wimp library
C
C        initialise the wimp
      CALL WPINIT('TWIMP0')
C        set up the desk-top
      CALL SETUP
C        go into the wimp loop (without null calls)
      CALL WPLOOP(1)
C        that's all we can do here
      END
C
      SUBROUTINE SETUP
C        here we make the windows and icons
C        keep their handles in common
      COMMON/HANDLE/ IWH,IWHP(5),IHI,IHS,JSTAT
      CHARACTER*6 SIDES(5)
      DATA SIDES/'left','top','Right','Bottom','junk'/
      SAVE SIDES
C        make the window, but without close icon
      CALL WPCHWF(25,.FALSE.)
      CALL WPMKNW(400,400,200,300,400,400,0,0,'My window',IWH)
C        and an icon for action
      CALL WPCHTF(109)
      CALL WPCHTF(201)
      CALL WPADTI(IWH,40,-80,80,48,'Next',0,IHI)
      CALL WPADTI(IWH,240,-80,80,48,'Stop',0,IHS)
C        make5 panes
C        first remove all border icons
      DO 10 INDX = 24, 30
        CALL WPCHWF(INDX,.FALSE.)
   10 CONTINUE
C        panes
      CALL WPCHWF(5,.TRUE.)
C        now make the windows
      DO 20 IP = 1, 4
        CALL WPMKNW
     +       (192,192,0,0,192,192,0,0,'Pane '//CHAR(IP+48),IWHP(IP))
C         attach panes to main window (last one will fail)
        CALL WPPANE(IWHP(IP),IWH,SIDES(IP))
   20 CONTINUE
C        open the window
      CALL WPOPNW(IWH)
      JSTAT = 0
      RETURN
      END
C
      SUBROUTINE WQCLIK(IWHAN,ICONH,IX,IY,IBUTT)
C         here we receive a mouse button click
      COMMON/HANDLE/ IWH,IWHP(5),IHI,IHS,JSTAT
C         make sure it is our window (it must be)
      IF(IWHAN.NE.IWH) RETURN
C         make sure it is the 'Stop' icon
      IF(ICONH.EQ.IHI) THEN
        JSTAT = JSTAT + 1
        IF(JSTAT.LE.4) THEN
          CALL WPOPNW(IWHP(JSTAT))
        ELSE IF(JSTAT.LE.8) THEN
          CALL WPCLSW(IWHP(JSTAT-4))
        ELSE IF(JSTAT.EQ.9) THEN
          CALL WPPANE(IWHP(2),-1)
          CALL WPOPNW(IWHP(2))
        ELSE IF(JSTAT.EQ.10) THEN
          CALL WPDELW(IWHP(1))
        ELSE IF(JSTAT.EQ.11) THEN
          CALL WPOPNW(IWHP(4))
        ENDIF
        CALL WPPLOT(IWH,-1)
      ENDIF
C         quit if click over stop icon
      IF(ICONH.EQ.IHS) CALL WPQUIT
      RETURN
      END
C
      SUBROUTINE WQPLOT(IWHAN,IX1,IY1,IX2,IY2)
C        here we have to draw things in the window
      COMMON/HANDLE/ IWH,IWHP(5),IHI,IHS,JSTAT
      IF(IWHAN.EQ.IWH) THEN
        IF(JSTAT.LT.9) CALL WPTEXT(8,-120,'Click over "Next" to')
        IF(JSTAT.LT.4) THEN
          CALL WPTEXT(8,-168,'open pane '//CHAR(JSTAT+49))
        ELSE IF(JSTAT.LT.8) THEN
          CALL WPTEXT(8,-168,'close pane '//CHAR(JSTAT+45))
        ELSE IF(JSTAT.EQ.8) THEN
          CALL WPTEXT(8,-168,'detach and open pane 2')
        ELSE IF(JSTAT.EQ.9) THEN
          CALL WPTEXT(8,-168,'delete pane 1')
        ELSE IF(JSTAT.EQ.10) THEN
          CALL WPTEXT(8,-168,'open pane 4 again')
        ELSE
          CALL WPTEXT(8,-120,'Move the window round to')
          CALL WPTEXT(8,-168,'ensure pane 4 follows')
          CALL WPTEXT(8,-216,'and pane 2 does not.')
          CALL WPTEXT(8,-264,'Click "Stop" to finish')
        ENDIF
      ENDIF
      DO 20 IW = 1, 5
        IF(IWHAN.EQ.IWHP(IW)) THEN
          IF(JSTAT.GT.8.AND.IWHAN.EQ.IWHP(2))
     +            CALL WPTEXT(8,-12,'Detached')
          CALL WPTEXT(8,-60,'Pane')
          CALL WPTEXT(8,-120,'No. '//CHAR(IW+48))
        ENDIF
   20 CONTINUE
      RETURN
      END
