home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST52.PRG < prev    next >
Encoding:
Text File  |  1989-08-08  |  3.0 KB  |  95 lines

  1. ********************
  2.  
  3. FUNCTION Pushscreen
  4.  
  5.    PARAMETERS _push1, _push2, _push3, _push4, _pushsave, _pushscr, ;
  6.               _pushbord, _pushshad
  7.  
  8.  
  9.    * This is the first function/procedure that is used
  10.    * to draw a screen and push the screen stack.  The screen
  11.    * stack is stored in the array "allscrens", the color stack
  12.    * is stored in the array "allcolor", and the window
  13.    * logic is housed in the "allwindows" array.  The stack
  14.    * counter is housed in the "scr_level" variable.
  15.    *
  16.    * The return value is the 
  17.  
  18.    IF TYPE("allscreens") != "A"
  19.       PUBLIC allscreens[20], scr_level, allcolor[20], allwindows[20]
  20.       scr_level = 2
  21.       AFILL(allscreens, "")
  22.       AFILL(allcolor, "")
  23.       AFILL(allwindows, "")
  24.    ENDIF
  25.  
  26.    IF EMPTY(PCOUNT())    && No Parameters!
  27.       _push1    = 0
  28.       _push2    = 0
  29.       _push3    = 24
  30.       _push4    = 79
  31.       _pushsave = .T.
  32.       _pushscr  = .F.
  33.       _pushbord = .F.
  34.       _pushshad = .F.
  35.  
  36.    ELSEIF PCOUNT() = 4  && 4 parameters means No border, No Frame, Just save the area
  37.       _pushsave = .T.
  38.       _pushscr = .T.
  39.       _pushbord = .F.
  40.       _pushshad = .F.
  41.  
  42.    ELSEIF PCOUNT() = 5  && 5 parameters mean Save area without border logic
  43.       _pushscr = .T.
  44.       _pushbord = .F.
  45.       _pushshad = .F.
  46.  
  47.    ELSEIF PCOUNT() = 6
  48.       _pushbord = .T.
  49.       _pushshad = .F.
  50.  
  51.    ELSEIF PCOUNT() = 7
  52.       _pushshad = .F.
  53.  
  54.    ENDIF
  55.  
  56.    IF _pushsave
  57.       allscreens[scr_level] = ""
  58.       IF _pushshad
  59.          allscreens[scr_level] = SAVESCREEN(_push1, _push2, _push3 + 1, _push4 + 2)
  60.       ELSE
  61.          allscreens[scr_level] = SAVESCREEN(_push1, _push2, _push3, _push4)
  62.       ENDIF
  63.       allcolor[scr_level] = SETCOLOR()
  64.       IF _pushshad
  65.          allwindows[scr_level] = TRANSFORM(_push1, "99") + "/" + TRANSFORM(_push2, "99") + "/" + TRANSFORM(_push3+1, "99") + "/" + TRANSFORM(_push4+2, "99") + "/.T." 
  66.       ELSE
  67.          allwindows[scr_level] = TRANSFORM(_push1, "99") + "/" + TRANSFORM(_push2, "99") + "/" + TRANSFORM(_push3, "99") + "/" + TRANSFORM(_push4, "99") + "/.F." 
  68.       ENDIF
  69.       scr_level = IF(scr_level = 20, scr_level, scr_level + 1)
  70.    ENDIF
  71.  
  72.    IF _pushbord                                         && Yes, I want a border!
  73.       IF !_pushscr                                      && No, I Just want a frame, hold the filling
  74.          IF TYPE("scrframe") = "U"                     && If not using SCREEN.SYS file for this
  75.             @ _push1, _push2 TO _push3, _push4 DOUBLE
  76.          ELSE
  77.             @ _push1, _push2, _push3, _push4 BOX SUBSTR(scrframe, 1, 8)
  78.          ENDIF
  79.       ELSE
  80.          IF TYPE("scrframe") = "U"
  81.             @ _push1, _push2 CLEAR TO _push3, _push4 
  82.             @ _push1, _push2 TO _push3, _push4 DOUBLE
  83.          ELSE
  84.             @ _push1, _push2, _push3, _push4 BOX scrframe
  85.          ENDIF
  86.       ENDIF
  87.       IF _pushshad
  88.          SHADOW(_push1, _push2, _push3, _push4, 1)
  89.       ENDIF
  90.    ENDIF
  91.  
  92.    RETURN(scr_level-1)
  93.  
  94. * End of File
  95.