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