home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_BAS / DNALIB59.ZIP / MAYBE.BAS < prev    next >
BASIC Source File  |  1994-01-05  |  4KB  |  181 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. SUB MayBe(Text$,Answer%,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$) <= 28 THEN      'only size the box if the string
  27.   Size% = 32                     'is less than 16 characters
  28. ELSEIF LEN (Prompt$) >= 28 THEN
  29.   Size% = LEN (Prompt$) + 4      'make the box fit the string
  30. END IF
  31.  
  32.  
  33. SaveScreen MayBeScreen$,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.  COLOR BtFG%,BtBG%
  73.  LOCATE Row%, Col% + 17,0
  74.  PRINT " CANCEL ";
  75.  COLOR 0,BGround%
  76.  LOCATE Row%, Col% + 25,0
  77.  PRINT "▄";
  78.  COLOR 0,BGround%
  79.  LOCATE Row% + 1,Col% + 18,0
  80.  PRINT "▀▀▀▀▀▀▀▀";
  81.  
  82. WHILE NOT INSTAT
  83.   IF Mouse% THEN
  84.     ShowCursor
  85.     Rgt% = 0:Lft% = 0
  86.     Clicked Rgt%,Lft%,MRow%,MCol%
  87.     IF Lft% AND MRow% = Row%  THEN
  88.       IF LeftButtonReleased% THEN
  89.         SELECT CASE MCol%
  90.           CASE Col% TO Col% + 5
  91.             Chose% = 89
  92.             HideCursor
  93.             GOTO KeyBoardRoutine
  94.           CASE Col% + 9 TO Col% + 13
  95.             Chose% = 78
  96.             HideCursor
  97.             GOTO KeyBoardRoutine
  98.           CASE Col% + 17 TO Col% + 25
  99.             Chose% = 27
  100.             HideCursor
  101.             GOTO KeyBoardRoutine
  102.         END SELECT
  103.       END IF
  104.     ELSE
  105.       IF Lft% AND MRow% = Location% AND MCol% = 40 - (Size% / 2) + 3 THEN
  106.         IF LeftButtonReleased% THEN
  107.           Chose% = 27
  108.           GOTO KeyBoardRoutine
  109.         END IF
  110.       END IF
  111.     END IF
  112.   END IF
  113. WEND
  114. Ky$ = INKEY$
  115.  
  116.  
  117. IF LEN(Ky$) = 1 THEN
  118.   Chose% = ASC(Ky$)
  119. ELSE
  120.   Chose% = -ASC(RIGHT$(Ky$,1))
  121. END IF
  122.  
  123. KeyBoardRoutine:
  124.  
  125. SELECT CASE Chose%
  126.  
  127.     CASE 89,121 'Yes
  128.           COLOR FGround%,BGround%
  129.           LOCATE Row%,Col%,0
  130.           PRINT " ";
  131.           LOCATE Row% + 1,Col% + 1,0
  132.           PRINT "     ";
  133.       COLOR BtFG%,BtBG%
  134.           LOCATE Row%,Col% + 1,0
  135.           PRINT " YES "
  136.           Answer% = 1
  137.           Finished% = 1
  138.  
  139.     CASE 78,110 'No
  140.           COLOR FGround%,BGround%
  141.           LOCATE Row%,Col% + 9,0
  142.           PRINT " ";
  143.           LOCATE Row% + 1,Col% + 10,0
  144.           PRINT "     ";
  145.       COLOR BtFG%,BtBG%
  146.           LOCATE Row%,Col% + 10,0
  147.           PRINT " NO "
  148.           Answer% = 0
  149.           Finished% = 1
  150.  
  151.         CASE 27,67,99
  152.           COLOR FGround%,BGround%
  153.           LOCATE Row%,Col% + 17,0
  154.           PRINT " ";
  155.           LOCATE Row% + 1,Col% + 18,0
  156.           PRINT "         ";
  157.       COLOR BtFG%,BtBG%
  158.           LOCATE Row%,Col% + 18,0
  159.           PRINT " CANCEL "
  160.           Answer% = 2
  161.           Finished% = 1
  162.  
  163.     CASE ELSE
  164.       BEEP
  165.  
  166. END SELECT
  167.  
  168. LOOP UNTIL Finished%
  169.  
  170. IF Mouse% THEN ShowCursor
  171. DELAY .5
  172. IF Mouse% THEN HideCursor
  173. RestoreScreen MayBeScreen$,Location%, 40 - (Size% / 2)
  174. END SUB
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.