home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progbas / pwl50x.arj / WINDEMO1.BAS < prev    next >
BASIC Source File  |  1992-03-10  |  5KB  |  173 lines

  1. '    WINDEMO1.BAS - ProWindows(tm) LITE Demo Program
  2.  
  3. REM $DYNAMIC        ' <= SET UP QUICKBASIC FOR DYNAMIC MEMORY USAGE
  4. DEFINT A-Z          ' <= DEFAULT TO INTEGERS
  5.  
  6. REM $INCLUDE: 'LITE.BI'       ' <= REQUIRED FOR WINDOW CALLS
  7.  
  8. ' === DEFINE A FEW CONSTANTS
  9.  
  10. CONST WINMEMSIZE% = 8191      ' <= VIRTUAL WINDOW MEMORY SIZE
  11. CONST SCRNMEMSIZE% = 4096     ' <= SCREEN BUFFER MEMORY SIZE
  12. CONST MAXWINDOWS% = 30        ' <= MAXIMUM NUMBER OF WINDOWS
  13.  
  14.     CLEAR , , 4096           ' <= SET ASIDE ADDITIONAL "STACK" SPACE
  15.  
  16.     LOCATE 1, 1
  17.  
  18.     PreInit                  ' <= PRE-INITIALIZE THE WINDOW MANAGER
  19.  
  20. ' === DIMENSION GLOBAL ARRAYS WITH ABOVE DEFINED CONSTANTS
  21.                                          
  22.     REDIM SHARED VirMem(WINMEMSIZE) AS INTEGER    ' <= VIRTUAL MEMORY
  23.     REDIM SHARED scrn(SCRNMEMSIZE) AS INTEGER     ' <= SCREEN MEMORY
  24.     REDIM SHARED vcb(MAXWINDOWS) AS vircb         ' <= VIRTUAL WINDOW INFO
  25.     REDIM SHARED wcb(MAXWINDOWS) AS wincb         ' <= DISPLAYED WINDOW INFO
  26.     REDIM SHARED cursor(MAXWINDOWS) AS cursorTYPE ' <= CURSOR CONTROL ARRAY
  27.     REDIM SHARED wcbndx(MAXWINDOWS) AS INTEGER    ' <= LIST OF HANDLES
  28.  
  29.     CLS
  30.     
  31.     InitPro                  ' <= INITIALIZE THE WINDOW MANAGER
  32.  
  33.     MouseInstalled = CheckMouse(buttons)    ' <= DETECT AND ENABLE THE MOUSE
  34.  
  35.     ReCycleMode 1            ' <= ENABLE "VIDEO RECYCLING"
  36.     
  37.     SetEventDelay 18         ' <= SET MAXIMUM EVENT DELAY TIME
  38.  
  39.     UseDrivers 0, 0, 1       ' <= INSTALL ANY NEEDED DRIVERS
  40.  
  41. REM  setBWmode 1              ' <= SWITCH TO MONOCHROME MODE
  42.  
  43. ' === DEFINE THE "GLOBAL WINDOW OPTIONS"
  44.  
  45.     GlobalOptions = SELECTABLE + DRAGBAR + OFFBUTTON + RESIZEBUTTON + AUTOSCROLL
  46.  
  47.     FillScreen 1, 1, MAXROWS, MAXCOLS, 23, 250, SNOW
  48.  
  49.     Notice
  50.  
  51. ' === OPEN AND TITLE A FEW WINDOWS
  52.  
  53.     OpenWindow 1, 10, 60, attr(7, 1), 1, 1, 1, GlobalOptions
  54.     TitleWindow 1, " Window #1 "
  55.  
  56.     OpenWindow 2, 10, 60, attr(7, 4), 1, 1, 1, GlobalOptions
  57.     TitleWindow 1, " Window #2 "
  58.  
  59.     OpenWindow 3, 3, 45, attr(15, 2), 1, 1, 1, SELECTABLE + DRAGBAR
  60.     wcprint 1, "The World's Greatest QuickBASIC ToolBox"
  61.  
  62. ' === PRINT SOME TEXT TO THE CURRENT WORKING WINDOW
  63.  
  64.     SetWindow 1          ' <= WORK ON WINDOW #2
  65.  
  66.     wprint 1, 2, "F3  - Display window #1"       ' <= PRINT TEXT TO WINDOW
  67.     wprint 2, 2, "F4  - Display window #2"
  68.     wprint 3, 2, "F5  - Move window #1"
  69.     wprint 4, 2, "F6  - Move window #2"
  70.     wprint 5, 2, "F7  - Re-size window #1"
  71.     wprint 6, 2, "F8  - Re-size window #2"
  72.     wprint 7, 2, "F9  - Hide window #1"
  73.     wprint 8, 2, "F10 - Hide window #2"
  74.  
  75.     SetWindow 2
  76.  
  77.     wprint 1, 1, ""
  78.     wprint 2, 1, "└─── Click Up here to Hide"
  79.  
  80.     wprint 1, 30, ""
  81.     wprint 2, 30, "└─── Click Over here to Drag"
  82.  
  83.     wprint 7, 27, " Click Down here to Re-Size ───┐"
  84.     wprint 8, 58, ""
  85.  
  86.     cwcprint 4, attr(15, 4), "Check out our demo of ProWindows(tm) PROFESSIONAL 3.1"
  87.     cwcprint 5, attr(11, 4), "<Run DEMO.EXE from the DOS Prompt>"
  88.  
  89.     QuickKey 1, CHR$(0) + CHR$(61)     ' <= ASSIGN <F3> AS A "QUICK KEY"
  90.     QuickKey 2, CHR$(0) + CHR$(62)     ' <= AND <F4>
  91.     QuickKey 3, CHR$(0) + CHR$(63)     ' <= F5
  92.     QuickKey 4, CHR$(0) + CHR$(64)     ' <= F6
  93.     QuickKey 5, CHR$(0) + CHR$(65)     ' <= F7
  94.     QuickKey 6, CHR$(0) + CHR$(66)     ' <= F8
  95.     QuickKey 7, CHR$(0) + CHR$(67)     ' <= F9
  96.     QuickKey 8, CHR$(0) + CHR$(68)     ' <= F10
  97.  
  98.     FillScreen MAXROWS, 1, 1, 23, 112, 32, SNOW  ' <= COLOR AREA FOR CLOCK
  99.  
  100.     SetCalendar 0, MAXROWS, 2, attr(11, 2), 1    ' <= PUT A CALENDAR ON SCREEN
  101.     SetClock 0, MAXROWS, 15, attr(14, 2), 1      ' <= PUT A CLOCK ON SCREEN
  102.     
  103.     DisplayWindow 1, 5, 5, 25, 80      ' <= DISPLAY WINDOW #1
  104.     DisplayWindow 2, 11, 17, 25, 80    ' <= AND #2
  105.     DisplayWindow 3, 4, 30, 25, 80     ' <= AND #3
  106.  
  107.     MouseCursorOn       ' <= TURN ON THE MOUSE CURSOR (if available)
  108.     
  109.     IF MouseInstalled THEN
  110.         PopWindow 14, 28, 5, 40, 112, 21, 0, 0
  111.         wcprint 2, "Mouse Driver Installed"
  112.         SLEEP 2
  113.         RemoveWindow
  114.     END IF
  115.  
  116. Main:
  117.  
  118.     DO   ' <= ENTER THE POLLING LOOP
  119.  
  120.         SELECT CASE GetEvent(0)  ' <= POLL THE EVENT MANAGER
  121.  
  122.             CASE 15, 16         ' <= WAS <CR> OR <ESC> PRESSED?
  123.                 IF MouseInstalled THEN
  124.                     MouseCursoroff
  125.                     termMouse      ' <= TERMINATE THE MOUSE DRIVER
  126.                     ResetVideo     ' <= RESET VIDEO (FOR GRAPHIC MOUSE)
  127.                 END IF
  128.                 END
  129.  
  130.             CASE 17             ' <= EVENT LOOP TIME-OUT
  131.                 
  132.             CASE 18             ' <= WAS <F1> PRESSED?
  133.                 BEEP           ' <= "HELP" KEY IN PROFESSIONAL VERSION
  134.  
  135.             CASE 19             ' <= A "QUICK KEY" WAS PRESSED
  136.                 GOSUB DispatchQuickKey
  137.  
  138.             CASE ELSE           ' <= SKIP ANY OTHER EVENTS
  139.  
  140.         END SELECT
  141.  
  142.     LOOP
  143.  
  144.  
  145. DispatchQuickKey:
  146.  
  147.     SELECT CASE GetEvent(19)
  148.         CASE 1
  149.             MainWindow 1
  150.         CASE 2
  151.             MainWindow 2
  152.         CASE 3
  153.             MoveWindow 1, RND * 15 + 1, RND * 20 + 1
  154.         CASE 4
  155.             MoveWindow 2, RND * 15 + 1, RND * 20 + 1
  156.         CASE 5
  157.             ResizeWindow 1, (RND * 8) + 3, (RND * 68) + 1
  158.         CASE 6
  159.             ResizeWindow 2, (RND * 8) + 3, (RND * 68) + 1
  160.         CASE 7
  161.             HideWindow 1
  162.         CASE 8
  163.             HideWindow 2
  164.         CASE 9
  165.             RefreshWindow 3     ' <= REFRESH WINDOW #3
  166.  
  167.         CASE ELSE
  168.     END SELECT
  169.  
  170.     RETURN
  171.  
  172.  
  173.