home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_BAS / DNALIB59.ZIP / YESNO.BAS < prev   
BASIC Source File  |  1993-11-02  |  4KB  |  159 lines

  1. DECLARE SUB Popwind(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%, Shadow%, Border%)
  2. DECLARE SUB SaveScreen(ScreenID$,TopRow%,LeftColumn%,BottomRow%,RightColumn%,Shadow%)
  3. DECLARE SUB RestoreScreen(ScreenID$,TopRow%,LeftColumn%)
  4. DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
  5. DECLARE SUB Clicked(Rgt%,Lft%,Row%,Col%)
  6. DECLARE SUB HideCursor()
  7. DECLARE SUB ShowCursor()
  8. DECLARE FUNCTION LeftButtonReleased%()
  9.  
  10. FUNCTION YesNo%(Text$,Mouse%,Location%,BAttr%,Attr%,Shadow%,Border%) PUBLIC
  11.  
  12. CalcByte Attr%,FGround%,BGround%
  13. CalcByte BAttr%,BtFG%,BtBG%
  14. Finished% = 0
  15.  
  16. IF Mouse% THEN HideCursor
  17.  
  18. X% = LEN (Text$) AND 1
  19.  
  20. IF X% = 0 THEN                   'see if the string is odd or even
  21.   Prompt$ = Text$
  22. ELSE
  23.   Prompt$ = Text$ + CHR$(32)     'if it's odd add a space
  24. END IF
  25.  
  26. IF LEN (Prompt$) <= 16 THEN      'only size the box if the string
  27.   Size% = 20                     'is less than 16 characters
  28. ELSEIF LEN (Prompt$) >= 16 THEN
  29.   Size% = LEN (Prompt$) + 4      'make the box fit the string
  30. END IF
  31.  
  32.  
  33. SaveScreen YesNoScreen$,Location%, 40 - (Size% / 2), Location% + 5, 40 + (Size% / 2) - 1, Shadow%
  34.  
  35. Popwind Title$,Location%, 40 - (Size% / 2), Location% + 5, 40 + (Size% / 2) - 1, Attr%, Shadow%, Border%
  36.  
  37. COLOR Fground%, Bground%
  38. LOCATE Location% + 1, 40 - LEN (Prompt$) / 2,0
  39. PRINT Prompt$;
  40.  
  41.  Row% = Location% + 3
  42.  Col% = 40 - (Size% / 2) + 3
  43.  
  44. IF Mouse% THEN
  45.   COLOR FGround%,BGround%
  46.   LOCATE Location%,40 - (Size% / 2) + 2,0
  47.   PRINT CHR$(91,254,93);
  48. END IF
  49.  
  50. DO
  51.  
  52.  COLOR BtFG%,BtBG%
  53.  LOCATE Row%, Col%,0
  54.  PRINT " YES ";
  55.  COLOR 0,BGround%
  56.  LOCATE Row%, Col% + 5,0
  57.  PRINT "▄";
  58.  COLOR 0,BGround%
  59.  LOCATE Row% + 1,Col% + 1,0
  60.  PRINT "▀▀▀▀▀";
  61.  
  62.  COLOR BtFG%,BtBG%
  63.  LOCATE Row%,Col% + 9,0
  64.  PRINT " NO ";
  65.  COLOR 0,BGround%
  66.  LOCATE Row%,Col% + 13,0
  67.  PRINT "▄";
  68.  COLOR 0,BGround%
  69.  LOCATE Row% + 1,Col% + 10,0
  70.  PRINT "▀▀▀▀"
  71.  
  72. WHILE NOT INSTAT
  73.   IF Mouse% THEN
  74.     ShowCursor
  75.     Rgt% = 0:Lft% = 0
  76.     Clicked Rgt%,Lft%,MRow%,MCol%
  77.     IF Lft% AND MRow% = Row%  THEN
  78.       IF LeftButtonReleased% THEN
  79.         SELECT CASE MCol%
  80.           CASE Col% TO Col% + 5
  81.             Chose% = 89
  82.             HideCursor
  83.             GOTO KeyBoardRoutine
  84.           CASE Col% + 9 TO Col% + 13
  85.             Chose% = 78
  86.             HideCursor
  87.             GOTO KeyBoardRoutine
  88.         END SELECT
  89.       END IF
  90.     ELSE
  91.       IF Lft% AND MRow% = Location% AND MCol% = 40 - (Size% / 2) + 3 THEN
  92.         IF LeftButtonReleased% THEN
  93.           Chose% = 27
  94.           GOTO KeyBoardRoutine
  95.         END IF
  96.       END IF
  97.     END IF
  98.   END IF
  99. WEND
  100. Ky$ = INKEY$
  101.  
  102.  
  103. IF LEN(Ky$) = 1 THEN
  104.   Chose% = ASC(Ky$)
  105. ELSE
  106.   Chose% = -ASC(RIGHT$(Ky$,1))
  107. END IF
  108.  
  109. KeyBoardRoutine:
  110.  
  111. SELECT CASE Chose%
  112.  
  113.     CASE 89,121 'Yes
  114.           COLOR FGround%,BGround%
  115.           LOCATE Row%,Col%,0
  116.           PRINT " ";
  117.           LOCATE Row% + 1,Col% + 1,0
  118.           PRINT "     ";
  119.       COLOR BtFG%,BtBG%
  120.           LOCATE Row%,Col% + 1,0
  121.           PRINT " YES "
  122.           YesNo% = 1
  123.           Finished% = 1
  124.  
  125.     CASE 78,110 'No
  126.           COLOR FGround%,BGround%
  127.           LOCATE Row%,Col% + 9,0
  128.           PRINT " ";
  129.           LOCATE Row% + 1,Col% + 10,0
  130.           PRINT "     ";
  131.       COLOR BtFG%,BtBG%
  132.           LOCATE Row%,Col% + 10,0
  133.           PRINT " NO "
  134.           YesNo% = 0
  135.           Finished% = 1
  136.  
  137.         CASE 27
  138.           YesNo% = 0
  139.           Finished% = 1
  140.  
  141.     CASE ELSE
  142.       BEEP
  143.  
  144. END SELECT
  145.  
  146. LOOP UNTIL Finished%
  147.  
  148. IF Mouse% THEN ShowCursor
  149. DELAY .5
  150. IF Mouse% THEN HideCursor
  151. RestoreScreen YesNoScreen$,Location%, 40 - (Size% / 2)
  152. END FUNCTION
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.