home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / qb2 / pro16 / bopen.bas < prev    next >
Encoding:
BASIC Source File  |  1992-02-06  |  2.6 KB  |  75 lines

  1. ' BOpen.Bas
  2. ' Portions Copyright 1987-1990 Microsoft Corp.
  3. DEFINT A-Z
  4. SUB ButtonOpen (handle, state, title$, row1, col1, row2, col2, buttonType)
  5.  
  6. ' =======================================================================
  7. ' Open a button - first check if window can be resized - If so, do not
  8. ' open!
  9. ' =======================================================================
  10.  
  11. IF MID$(WindowBorder$(GloWindow(WindowCurrent).windowType), 9, 1) _
  12.                  = "+" THEN
  13.   resize = TRUE
  14. END IF
  15.  
  16. ' =======================================================================
  17. ' Check to see if this is a button type 5 (box-type command button). If
  18. ' so, see if row2 and col2 need adjustment
  19. ' =======================================================================
  20.  
  21. IF buttonType = 5 THEN
  22.   IF row2 = 0 THEN
  23.     row2 = row1 + 2
  24.   END IF
  25.   IF col2 = 0 THEN
  26.     col2 = col1 + LEN(title$) + 3
  27.   END IF
  28. END IF
  29.  
  30. IF (resize AND buttonType >= 6) OR NOT resize THEN
  31.  
  32.   ' ===================================================================
  33.   ' If scroll bar, then make sure "state" is valid, given bar length
  34.   ' ===================================================================
  35.  
  36.   IF buttonType = 6 THEN
  37.     length = (row2 - row1) - 1
  38.     IF state < 1 THEN state = 1
  39.     IF state > length THEN state = length
  40.   END IF
  41.  
  42.   IF buttonType = 7 THEN
  43.     length = (col2 - col1) - 1
  44.     IF state < 1 THEN state = 1
  45.     IF state > length THEN state = length
  46.   END IF
  47.  
  48.  
  49.   ' ===================================================================
  50.   ' If valid state and type, increment totals, and store button info
  51.   ' ===================================================================
  52.  
  53.   IF (buttonType = 1 AND state >= 1 AND state <= 3) OR _
  54.    (buttonType >= 2 AND buttonType <= 3 AND state >= 1 AND state <= 2) _
  55.    OR (buttonType >= 4 AND buttonType <= 7) THEN
  56.     ButtonClose handle
  57.  
  58.     GloStorage.numButtonsOpen = GloStorage.numButtonsOpen + 1
  59.     GloButton(GloStorage.numButtonsOpen).row1 = row1
  60.     GloButton(GloStorage.numButtonsOpen).col1 = col1
  61.     GloButton(GloStorage.numButtonsOpen).row2 = row2
  62.     GloButton(GloStorage.numButtonsOpen).col2 = col2
  63.     GloButton(GloStorage.numButtonsOpen).text = title$
  64.     GloButton(GloStorage.numButtonsOpen).state = state
  65.     GloButton(GloStorage.numButtonsOpen).handle = handle
  66.     GloButton(GloStorage.numButtonsOpen).buttonType = buttonType
  67.     GloButton(GloStorage.numButtonsOpen).windowHandle = WindowCurrent
  68.     ButtonShow handle
  69.   ELSE
  70.     PRINT "Cannot open button on window that can be re-sized!"
  71.     END
  72.   END IF
  73. END IF
  74. END SUB
  75.