home *** CD-ROM | disk | FTP | other *** search
/ Windoware / WINDOWARE_1_6.iso / winutil / pbtool2i / demo.bas < prev    next >
BASIC Source File  |  1991-06-02  |  7KB  |  252 lines

  1.  
  2. $LIB ALL OFF
  3. $ERROR ALL OFF
  4.  
  5. 'Declarations for PBTools
  6.  
  7. PUBLIC Xpos%(), Ypos%(), WAttr%(), Xlen%(), Ylen%(), BAttr%(), ScrSav$(),_
  8.          Brdr%(), Shad%(), Pntr%(), CurWin%, MaxWin%
  9.  
  10. MaxWin%=20  'Defaults to 15, reset to 20 for demo.
  11.  
  12. $LINK "WINDO.PBU"
  13. $LINK "SCRNIO.PBU"
  14. $LINK "DOSIO.PBU"
  15. $LINK "EMSIO.PBU"
  16. $LINK "TOOL.PBU"
  17. $SEGMENT
  18.  
  19. CALL InitPBScreen
  20.  
  21. CALL Fill(1,1,25,80,178,23)
  22.  
  23. CALL OpenWin(5,12,16,58,11,20,31,3,1,0)
  24. CALL WPrintC(1,"PBTools 2.0h",0)
  25. CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr.",0)
  26.  
  27. IF IsMouse% THEN Text$="Mouse" ELSE Text$="No Mouse"
  28. Text$=Text$+" detected"
  29. CALL WPrintC(4,Text$,0)
  30.  
  31. IF CurDisplay%=0 THEN Mon$="MONOCHROME"
  32. IF CurDisplay%=1 THEN Mon$="CGA"
  33. IF CurDisplay%=2 THEN Mon$="EGA"
  34. IF CurDisplay%=3 THEN Mon$="MCGA"
  35. IF CurDisplay%=4 THEN Mon$="VGA"
  36. Text$=Mon$+" monitor is running in display mode"+STR$(VidMode%)
  37. CALL WPrintC(5,Text$,0)
  38.  
  39. Text$="Video RAM segment located at "+HEX$(VidAddr%)+"H "
  40. CALL WPrintC(6,Text$,0)
  41.  
  42. IF IsEMS% THEN Text$="EMS Version"+STR$(EMSVer%*.1) ELSE Text$="No EMS"
  43. Text$=Text$+" detected"
  44. IF IsEMS% THEN Text$=Text$+" with"+STR$(EMSFree%)+"K Bytes Free"
  45. CALL WPrintC(7,Text$,0)
  46.  
  47. Text$="PBTools Demo is running on a"+STR$(CPU%)+" CPU"
  48. CALL WPrintC(8,Text$,0)
  49.  
  50. Text$="System has"+STR$(INT(FRE(0)*.01))+"K Free RAM"
  51. CALL WPrintC(9,Text$,0)
  52.  
  53. Text$="Current logged directory is "+CurDir$
  54. CALL WPrintC(10,Text$,0)
  55.  
  56. Text$="Free space on drive "+CHR$(64+CurDrive%)+": is"
  57. Text$=Text$+STR$(INT(DrvSpace#/1024))+"K"
  58. CALL WPrintC(11,Text$,0)
  59.  
  60. IF DesqView% THEN Text$="DesqView has been detected" ELSE Text$="DesqView is not active"
  61. CALL WPrintC(12,Text$,0)
  62.  
  63. CALL WPrintC(14,"Press Any Key to Continue",0)
  64. I$=MouseKey$
  65.  
  66. CALL CloseWin
  67. CALL OpenWin(2,20,4,45,2,30,31,3,0,0)
  68. CALL WPrintC(1,"PB Tools 2.0h",0)
  69. CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr. ",0)
  70. CALL OpenWin(8,4,11,20,2,30,31,3,1,1)
  71. DIM Menu1$(1:9)
  72. Menu1$(1)=" Border Types   "
  73. Menu1$(2)=" Moving Windows "
  74. Menu1$(3)=" Recoloring     "
  75. Menu1$(4)=" resiZing       "
  76. Menu1$(5)=" scroLling      "
  77. Menu1$(6)=" Shadows        "
  78. Menu1$(7)=" Titles         "
  79. Menu1$(8)=" Other Demos    "
  80. Menu1$(9)=" Exit Demo      "
  81. IF CurDisplay%=0 THEN Menu1$(3)=" --------------- "
  82. IF CurDisplay%=0 THEN Hilite%=Attr%(0,7) ELSE Hilite%=Attr%(1,7)
  83. XWin%=1:YWin%=2
  84.  
  85. 'Note -->  Changed Menu%() on 12-16-90, see docs for details!
  86.  
  87. MainMenu:
  88.   Choice%=Menu%(Menu1$(),1,9,Choice%,Hilite%,Attr%(14,1))
  89.   IF Choice%<1 THEN Choice%=9:GOTO MainMenu
  90.   IF Choice%=1 THEN BorTypes
  91.   IF Choice%=2 THEN MovingWin
  92.   IF Choice%=3 THEN CycleColors
  93.   IF Choice%=4 THEN Resize
  94.   IF Choice%=5 THEN Scrolling
  95.   IF Choice%=6 THEN Shadows
  96.   IF Choice%=7 THEN Titles
  97.   IF Choice%=9 THEN SayBye
  98.   GOTO MainMenu
  99.  
  100. Titles:
  101.   CALL OpenWin(7,14,15,55,2,30,31,3,1,0)
  102.   CALL WPrintC(6,"You can place titles in 6 different",0)
  103.   CALL WPrintC(8,"positions on the window border.    ",0)
  104.   DELAY 1
  105.   CALL Title(1,0,"[Position 1]")
  106.   DELAY 1
  107.   CALL Title(2,0,"[Position 2]")
  108.   DELAY 1
  109.   CALL Title(3,0,"[Position 3]")
  110.   DELAY 1
  111.   CALL Title(4,0,"[Position 4]")
  112.   DELAY 1
  113.   CALL Title(5,0,"[Position 5]")
  114.   DELAY 1
  115.   CALL Title(6,0,"[Position 6]")
  116.   DELAY 4
  117.   CALL CloseWin
  118.   GOTO MainMenu
  119.  
  120. Shadows:
  121.   CALL OpenWin(6,13,10,30,2,30,31,0,1,0)
  122.   CALL WPrintC(4,"No Shadow!",0)
  123.   DELAY 2
  124.   CALL OpenWin(8,19,10,30,2,30,31,1,1,0)
  125.   CALL WPrintC(3,"Solid Shadow",0)
  126.   CALL WPrintC(5,"Drop Left",0)
  127.   DELAY 3
  128.   CALL OpenWin(10,25,10,30,2,30,31,2,1,0)
  129.   CALL WPrintC(3,"Solid Shadow",0)
  130.   CALL WPrintC(5,"Drop Right",0)
  131.   DELAY 3
  132.   CALL OpenWin(12,31,10,30,2,30,31,3,1,0)
  133.   CALL WPrintC(3,"Transparent Shadow",0)
  134.   CALL WPrintC(5,"Drop Left",0)
  135.   DELAY 3
  136.   CALL OpenWin(14,37,10,30,2,30,31,4,1,0)
  137.   CALL WPrintC(3,"Transparent Shadow",0)
  138.   CALL WPrintC(5,"Drop Right",0)
  139.   DELAY 3
  140.   CALL CloseWin
  141.   DELAY 1
  142.   CALL CloseWin
  143.   DELAY 1
  144.   CALL CloseWin
  145.   DELAY 1
  146.   CALL CloseWin
  147.   DELAY 1
  148.   CALL CloseWin
  149.   GOTO MainMenu
  150.  
  151. Scrolling:
  152.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
  153.   CALL WPrintC(1,"Scroll the inside of a window any direction!",0)
  154.   CALL WPrintC(2,"Pres ESC to end scrolling demo.",0)
  155.   CALL OpenWin(8,28,10,50,2,30,31,3,0,0)
  156.   CALL WPrintC(1,"Bouncing!!",0)
  157.   Yscr%=1:XScr%=20:Xdir%=-1:Ydir%=1
  158.   LoopForEver:
  159.      IF Xdir%<0 THEN DECR XScr% ELSE INCR XScr%
  160.      IF Ydir%<0 THEN DECR YScr% ELSE INCR YScr%
  161.      IF XScr%<1 THEN Xdir%=1 ELSE IF XScr%>37 THEN Xdir%=-1
  162.      IF YScr%<3 THEN YDir%=1 ELSE IF YScr%>8 THEN YDir%=-1
  163.      IF Xdir%<0 THEN CALL ScrollWin(4) ELSE CALL ScrollWin(3)
  164.      IF Ydir%<0 THEN CALL ScrollWin(2) ELSE CALL ScrollWin(1)
  165.      FOR I%=-30000 TO 30000:NEXT I%    '  Makes Demo Readable at 42 Mhz
  166.      IF INKEY$<>CHR$(27) THEN LoopForEver
  167.   CALL CloseWin
  168.   CALL CloseWin
  169.   GOTO MainMenu
  170.  
  171. Resize:
  172.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
  173.   CALL WPrintC(1,"Resizing windows is easy!!",0)
  174.   CALL WPrintC(2,"Press ESC to end resizing demo.",0)
  175.   CALL OpenWin(7,35,9,25,2,30,31,0,0,0)
  176.   CALL WPrint(1,2,"Resizing!!!",0)
  177.   Xlen%=25:Ylen%=9:Xdir%=-1:Ydir%=-1
  178.   KeyLoop:
  179.      IF Xdir%<0 THEN DECR Xlen% ELSE INCR Xlen%
  180.      IF YDir%<0 THEN DECR Ylen% ELSE INCR Ylen%
  181.      IF XLen%<15 THEN Xdir%=1 ELSE IF Xlen%>34 THEN Xdir%=-1
  182.      IF Ylen%<3 THEN Ydir%=1 ELSE IF Ylen%>15 THEN Ydir%=-1
  183.      IF Xdir%<0 THEN CALL ChangeWin(2) ELSE CALL ChangeWin(1)
  184.      IF Ydir%<0 THEN CALL ChangeWin(4) ELSE CALL ChangeWin(3)
  185.      IF INKEY$<>CHR$(27) THEN KeyLoop
  186.   CALL CloseWin
  187.   CALL CloseWin
  188.   GOTO MainMenu
  189.  
  190. MovingWin:
  191.   CALL OpenWin(21,17,4,50,2,30,31,0,0,0)
  192.   CALL WPrintC(1,"Use Arrow Keys to move Menu",0)
  193.   CALL WPrintC(2,"Press ESC when your finished. ",0)
  194.   CurWin%=2      'Be Careful when you change the current windo!
  195.   CALL NoShadow
  196.   EndlessLoop:
  197.     I$=GetKey$
  198.     IF I$=CHR$(27) THEN NoMove
  199.     IF I$=CHR$(0)+CHR$(77) AND XWin%<57 THEN INCR Xwin%:CALL MoveWin(1)
  200.     IF I$=CHR$(0)+CHR$(75) AND XWin%>1 THEN DECR XWin%:CALL MoveWin(2)
  201.     IF I$=CHR$(0)+CHR$(80) AND YWin%<3 THEN INCR YWin%:CALL MoveWin(3)
  202.     IF I$=CHR$(0)+CHR$(72) AND YWin%>1 THEN DECR YWin%:CALL MoveWin(4)
  203.     GOTO EndlessLoop
  204.   NoMove:
  205.     CurWin%=3
  206.     CALL CloseWin
  207.     CALL AddShadow(3)
  208.     GOTO MainMenu
  209.  
  210. CycleColors:
  211.   IF CurDisplay%=0 THEN MainMenu
  212.   CurWin%=1
  213.     FOR I%=128 TO 1 STEP -1
  214.       CALL WinColor(I%)
  215.       FOR T%=1 TO 32000:NEXT T%
  216.       IF INKEY$<>"" THEN EXIT FOR
  217.     NEXT I%
  218.   CALL WinColor%(31)
  219.   CurWin%=2
  220.   GOTO MainMenu
  221.  
  222. BorTypes:
  223.   CALL OpenWin(7,4,17,76,2,30,31,3,0,0)
  224.   IF CurDisplay%=0 THEN Normal%=Attr%(0,7) ELSE Normal%=Attr%(1,7)
  225.   FOR I%=3 TO 0 STEP -1
  226.     CALL OpenWin(8,14+(I%*15),5,13,I%,Normal%,Normal%,3,0,0)
  227.     CALL Title(1,0,"[Frame"+STR$(I%)+"]")
  228.   NEXT I%
  229.   FOR I%=4 TO 0 STEP -1
  230.     CALL OpenWin(11,8+(I%*14),5,13,I%+4,Attr%(14,4),Attr%(14,4),3,0,0)
  231.     CALL Title(1,0,"[Frame"+STR$(I%+4)+"]")
  232.   NEXT I%
  233.   FOR I%=2 TO 0 STEP -1
  234.     CALL OpenWin(14,19+(I%*17),5,14,I%+9,Attr%(15,5),Attr%(15,5),3,0,0)
  235.     CALL Title(2,0,"[Frame"+STR$(I%+9)+"]")
  236.   NEXT I%
  237.   FOR I%=1 TO 0 STEP -1
  238.     CALL OpenWin(17,28+(I%*17),5,14,I%+12,Attr%(8,7),Attr%(8,7),3,0,0)
  239.     CALL Title(2,0,"[Frame"+STR$(I%+12)+"]")
  240.   NEXT I%
  241.   I$=MouseKey$
  242.   FOR I%=0 TO 14
  243.     CALL CloseWin
  244.   NEXT I%
  245.   GOTO MainMenu
  246.  
  247. SayBye:
  248.   CALL OpenWin(1,1,25,80,0,7,7,0,1,0)
  249.   LOCATE 1,1
  250.   PRINT "Thanks for giving PB Tools 2.0 a try!"
  251.   END
  252.