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

  1. *******************
  2.  
  3. PROCEDURE Edithelp
  4.  
  5.    PARAMETERS p, l, v
  6.  
  7.    IF PCOUNT() = 1
  8.    ELSE
  9.       IF TYPE(v) = "A"   && Is the variable of ARRAY type?
  10.          v = v + TRANSFORM(ROW(),"99") + ;
  11.                  TRANSFORM(COL(), "99")
  12.       ENDIF
  13.    ENDIF
  14.  
  15.    scrcursor = IF( TYPE("scrcursor") = "U", .T., scrcursor)
  16.    scrhname  = IF( TYPE("scrhname")  = "U", "INHELP", scrhname)
  17.    scrprog   = IF( TYPE("scrprog")   = "U", "C:", scrprog)
  18.  
  19.    SET KEY -10 TO
  20.    SET KEY -20 TO 
  21.    SET KEY -30 TO 
  22.    SET KEY  28 TO
  23.  
  24.    _hrow      = ROW()
  25.    _hcol      = COL()
  26.    help_color = SETCOLOR()
  27.    in_help    = ""
  28.    drawscr    = ""
  29.    in_help    = SPACE(4000)
  30.    drawscr    = SPACE(4000)
  31.    scrframe   = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
  32.                 CHR(188) + CHR(205) + CHR(200) + CHR(186) + ;
  33.                 CHR(32)
  34.  
  35.    in_help = SAVESCREEN(0,0,24,79)
  36.  
  37.    SET SCOREBOARD OFF
  38.    IF !FILE( scrprog + "\" + scrhname + ".DBF")
  39.  
  40.       RESTSCREEN(0,0,24,79,in_help)
  41.  
  42.       @ _hrow, _hcol SAY ""
  43.       KEYBOARD ""
  44.       RELEASE in_help, drawscr
  45.       SET CURSOR (scrcursor)
  46.       SETCOLOR(help_color)
  47.       SET KEY -10 TO Topichelp
  48.       SET KEY -20 TO Inhelp
  49.       SET KEY -30 TO Edithelp
  50.       SET KEY  28 TO Help
  51.       RETURN
  52.    ENDIF
  53.    goback = SELECT()
  54.    SELECT 0 
  55.    USE (scrprog + "\" + scrhname) EXCLUSIVE ALIAS Help
  56.  
  57.    SET INDEX TO (scrprog + "\" + scrhname)
  58.    IF PCOUNT() <> 1
  59.       IF TYPE("help_level") = "N"
  60.          search = SUBSTR(p,1,10) + SUBSTR(v,1,10) + TRANSFORM(help_level, "9999")
  61.       ELSE
  62.          search = SUBSTR(p,1,10) + SUBSTR(v,1,10) + TRANSFORM(l, "9999")
  63.       ENDIF
  64.    ELSE
  65.       search = p
  66.    ENDIF
  67.    SEEK search
  68.    IF !FOUND()
  69.       SETCOLOR(IF( ISCOLOR(), "W/R, I/I", "N/W, W/N" ))
  70.       @ 00,10,03,70 BOX scrframe
  71.       @ 01,11 SAY " There is no HELP for this section.  " +;
  72.                   "You must ENTER HELP   "
  73.       @ 02,11 SAY "     before you can EDIT HELP.  " +;
  74.                   "Any Key to RETURN..."
  75.       INKEY(0)
  76.    ELSE
  77.       _color1 = STRTRAN(Help->helpcolor, "+", "|")
  78.       _color2 = Parsing(@_color1)
  79.       _color3 = "|"$_color2
  80.       _color2 = STRTRAN(_color2, "|", "")
  81.       SETCOLOR(Help->helpcolor)
  82.       Windowpush(Help->top, Help->left, Help->bottom, ;
  83.                  Help->right, _color1, _color2, "", "",_color3)
  84.       IF DELETED()
  85.          @ Help->top, Help->left+2 SAY "< Deleted >"
  86.       ENDIF
  87.       MEMOEDIT(Help->helpscr, Help->top+1, Help->left+1,;
  88.                Help->bottom-1,Help->right-1,.F.,.F.)
  89.       Now_edit()
  90.       Windowpop()
  91.    ENDIF
  92.    USE
  93.    SELECT (goback)
  94.    RESTSCREEN(0,0,24,79,in_help)
  95.    SET CURSOR (scrcursor)
  96.    SETCOLOR(help_color)
  97.    @ _hrow, _hcol SAY ""
  98.    SET KEY -20 TO Inhelp
  99.    SET KEY -30 TO Edithelp
  100.    SET KEY  28 TO Help
  101.    SET KEY -10 TO Topichelp
  102.  
  103. ********************
  104.  
  105. FUNCTION Scronly
  106.  
  107.    PARAMETERS p1, p2, p3
  108.  
  109.    wh = LASTKEY()
  110.    IF wh = 27
  111.       RETURN(33)
  112.    ELSEIF wh = 5 .OR. wh = 24 .OR. wh = 4 .OR. wh = 19 
  113.       RETURN(0)
  114.    ELSE
  115.       RETURN(32)
  116.    ENDIF
  117.  
  118. ********************
  119.  
  120. PROCEDURE Now_edit
  121.  
  122.    SET CURSOR OFF
  123.    DO WHILE .T.
  124.       SETCOLOR(Set_color(Attribute(22,00)))
  125.       @ 22,00 CLEAR
  126.       @ 22,00 SAY REPLICATE(CHR(220), 80)
  127.       @ 23,00 SAY " F3 - Drag ▌ F2 - Top-left ▌ F4 - Bottom-right  ▌ F10 - Contents ▌ ESC = Quit"
  128.       @ 24,00 SAY " F5 - Copy ▌ F6 - Delete   ▌ F7 - Recall        ▌ TAB - Color    ▌ "
  129.       wait_here = INKEY(0)
  130.       DO CASE
  131.       CASE wait_here = 9
  132.          Editcolor()
  133.       CASE wait_here = 27
  134.          EXIT
  135.       CASE wait_here = -4
  136.          Copyhelp()
  137.       CASE wait_here = -5
  138.          IF Delthelp()
  139.             EXIT
  140.          ENDIF
  141.       CASE wait_here = -6
  142.          Recalhelp()
  143.       CASE wait_here = -2
  144.          Move_it(1)
  145.       CASE wait_here = -1
  146.          Move_it(2)
  147.       CASE wait_here = -3
  148.          Move_it(3)
  149.       CASE wait_here = -9
  150.          Edit_in()
  151.       ENDCASE
  152.       RESTSCREEN(0,0,24,79,in_help)
  153.       SETCOLOR(Help->helpcolor)
  154.       @ Help->top, Help->left, Help->bottom, Help->right BOX scrframe
  155.       IF DELETED()
  156.          @ Help->top, Help->left+2 SAY "< Deleted >"
  157.       ENDIF
  158.       MEMOEDIT(Help->helpscr, Help->top+1, Help->left+1,;
  159.                Help->bottom-1,Help->right-1,.F., .F. )
  160.        
  161.    ENDDO
  162.    SET CURSOR ON
  163.    @ 22, 00 CLEAR
  164.  
  165. *******************
  166.  
  167. PROCEDURE Editcolor
  168.  
  169.    _holdcolor = Set_color(Attribute(Help->top, Help->left))
  170.    _startcolr = Attribute(Help->top, Help->left)
  171.    _retcolor  = _startcolr
  172.    SET CURSOR OFF
  173.    @ 23,00 CLEAR
  174.    @ 24,03 SAY " + to increment / - to decrement / ESC to Quit / TAB for Original Color"
  175.    DO WHILE .T.
  176.       _dokey = INKEY(0)
  177.       IF     CHR(_dokey) = "+"
  178.          _startcolr = IF(_startcolr = 127, 1, _startcolr + 1)
  179.  
  180.       ELSEIF CHR(_dokey) = "-"
  181.          _startcolr = IF(_startcolr = 1, 127, _startcolr - 1)
  182.  
  183.       ELSEIF _dokey = 9
  184.          _startcolr = _retcolor
  185.  
  186.       ELSEIF _dokey = 27
  187.          EXIT
  188.       ELSE
  189.          LOOP
  190.       ENDIF
  191.       RESTSCREEN(Help->top, Help->left-1, Help->bottom, ;
  192.          Help->right+1, Dulling(SAVESCREEN(Help->top, ;
  193.          Help->left-1, Help->bottom, Help->right+1), ;
  194.          _startcolr) )
  195.    ENDDO
  196.    REPLACE Help->helpcolor WITH ;
  197.            Set_color(Attribute(Help->top, Help->left))
  198.  
  199.  
  200. ********************
  201.  
  202. PROCEDURE Move_it
  203.  
  204.    PARAMETERS _direction
  205.  
  206.    * _direction = 1   The Whole Thing
  207.    * _direction = 2   The Top Left Corner
  208.    * _direction = 3   The bottom right corner
  209.  
  210.    @ 22,00 CLEAR
  211.    IF _direction = 1
  212.       @ 23,29 SAY "DRAG The Help Frame!"
  213.    ELSEIF _direction = 2
  214.       @ 23,20 SAY "Move Top-Left Corner of the Help Frame!"
  215.    ELSE
  216.       @ 23,20 SAY "Move Bottom-Right Corner of the Help Frame!"
  217.    ENDIF
  218.    t_row = Help->top
  219.    t_col = Help->left
  220.    b_row = Help->bottom
  221.    b_col = Help->right
  222.    cursor = 0
  223.    drawscr = SAVESCREEN(0,0,24,79)
  224.    DO WHILE .T.
  225.       @ t_row,t_col,b_row,b_col BOX REPLICATE(CHR(219), 8)
  226.       @ t_row,t_col SAY ""
  227.       cursor = INKEY(0)                          
  228.       DO CASE
  229.       CASE cursor = 5
  230.          IF _direction = 1
  231.             IF t_row - 1 > - 1
  232.                t_row = t_row - 1
  233.                b_row = b_row - 1
  234.             ENDIF
  235.          ELSEIF _direction = 2
  236.             IF t_row - 1 > - 1
  237.                t_row = t_row - 1
  238.             ENDIF
  239.          ELSE
  240.             IF b_row - 1 > t_row + 1
  241.                b_row = b_row - 1
  242.             ENDIF
  243.          ENDIF
  244.       CASE cursor = 24
  245.          IF _direction = 1
  246.             IF b_row + 1 < 25
  247.                t_row = t_row + 1
  248.                b_row = b_row + 1
  249.             ENDIF
  250.          ELSEIF _direction = 2
  251.             IF t_row + 1 < b_row - 1
  252.                t_row = t_row + 1
  253.             ENDIF
  254.          ELSE
  255.             IF b_row + 1 < 25
  256.                b_row = b_row + 1
  257.             ENDIF
  258.          ENDIF
  259.       CASE cursor = 4
  260.          IF _direction = 1
  261.             IF b_col + 1 < 79
  262.                b_col = b_col + 1
  263.                t_col = t_col + 1
  264.             ENDIF
  265.          ELSEIF _direction = 2
  266.             IF t_col + 1 < b_col - 1
  267.                t_col = t_col + 1
  268.             ENDIF
  269.          ELSE
  270.             IF b_col + 1 < 79
  271.                b_col = b_col + 1
  272.             ENDIF
  273.          ENDIF
  274.       CASE cursor = 19
  275.          IF _direction = 1
  276.             IF t_col - 1 > 2
  277.                t_col = t_col - 1
  278.                b_col = b_col - 1 
  279.             ENDIF
  280.          ELSEIF _direction = 2
  281.             IF t_col - 1 > 2
  282.                t_col = t_col - 1
  283.             ENDIF
  284.          ELSE
  285.             IF b_col - 1 > t_col + 1
  286.                b_col = b_col - 1
  287.             ENDIF
  288.          ENDIF
  289.       CASE cursor = 13 .OR. cursor = 27 .OR. cursor = 32
  290.          EXIT
  291.       ENDCASE
  292.       RESTSCREEN(0,0,24,79, drawscr)
  293.    ENDDO
  294.    REPLACE Help->top WITH t_row, Help->bottom WITH b_row, ;
  295.            Help->left WITH t_col, Help->right WITH b_col
  296.  
  297. ********************
  298.  
  299. PROCEDURE Edit_in
  300.  
  301.    PARAMETERS p, l, v
  302.  
  303.    @ 23,00 CLEAR
  304.    SET CURSOR ON
  305.    _thiscolor = SETCOLOR()
  306.    DO WHILE .T.
  307.       SETCOLOR(_thiscolor)
  308.       @ 23,06 SAY "Type in the HELPful message you wish to " +;
  309.                   "have displayed every time"
  310.       @ 24,06 SAY "the F1 Key is pressed.  ESC to Abandon " +;
  311.                   "the Message / F10 to Save"
  312.  
  313.       SETCOLOR(Help->helpcolor)
  314.  
  315.       Windowpush(Help->top, Help->left, Help->bottom,;
  316.                  Help->right)
  317.  
  318.       IF DELETED()
  319.          @ Help->top, Help->left+2 SAY "< Deleted >"
  320.       ENDIF
  321.       SET FUNCTION 10 TO CHR(23)
  322.       REPLACE Help->helpscr WITH MEMOEDIT(Help->helpscr,;
  323.               Help->top+1,Help->left+1,Help->bottom-1,;
  324.               Help->right-1,.T.)
  325.       SET FUNCTION 10 TO
  326.  
  327.       SETCOLOR(_thiscolor)
  328.       @ 23,00 CLEAR
  329.       @ 23,06 SAY "Please view your changes/edits.  All " +;
  330.                   "cursor keys work.  Press"
  331.       @ 24,06 SAY "           the ESC key when finished " +;
  332.                   "your review."
  333.  
  334.       SETCOLOR(Help->helpcolor)
  335.  
  336.       Windowpush(Help->top, Help->left, Help->bottom,;
  337.                  Help->right)
  338.  
  339.       @ Help->bottom,Help->left+1 SAY " View Mode "
  340.  
  341.       MEMOEDIT(Help->helpscr,Help->top+1,Help->left+1,;
  342.                Help->bottom-1,Help->right-1,.F., ;
  343.                "SCRONLY()")
  344.       @ Help->bottom,Help->left+1 SAY " Correct Now? "
  345.       nogood = !Prompt()
  346.       Windowpop()
  347.       Windowpop()
  348.       IF nogood
  349.          LOOP
  350.       ENDIF
  351.       EXIT
  352.    ENDDO
  353.    SET CURSOR OFF
  354.    SET FUNCTION 8 TO
  355.  
  356. *******************
  357.  
  358. PROCEDURE Copyhelp
  359.  
  360.    @ 23,00 CLEAR
  361.    @ 23,01 SAY "ENTER = View Total Screen ▌ Cursor Keys move position bar ▌ P/p for Pack"
  362.    @ 24,01 SAY "TAB = Copy Screen to Current Screen ▌ DEL = Delete/Recall ▌ ESC = Quit  "
  363.    _thiscolor = SETCOLOR()
  364.    DECLARE fieldshow[1]
  365.    fieldshow[1] = "SHOWHELP()"
  366.    Windowpush(5,5,20,75)
  367.    whatrec = RECNO()
  368.    search  = Help->lookit
  369.    KEYBOARD CHR(31)
  370.    DBEDIT(6,6,19,74,fieldshow,"PROCESS", .F.,;
  371.           "Current Help Screens")
  372.    SEEK search
  373.    Windowpop()
  374.  
  375. ***************
  376.  
  377. FUNCTION Showhelp
  378.  
  379.    IF RECNO() = whatrec
  380.       SETCOLOR(Reverse())
  381.    ELSE
  382.       SETCOLOR(_thiscolor)
  383.    ENDIF
  384.    RETURN( IF(DELETED(), "*", " ") + "#" + ;
  385.            TRANSFORM(RECNO(), "999") + " => [" + ;
  386.            Fill_out(SUBSTR(MEMOTRAN(Help->helpscr, ;
  387.            " ", " "), 1, 30) + "]", 35) + " @ " + ;
  388.            Help->lookit )
  389.  
  390. **************
  391.  
  392. FUNCTION Process
  393.  
  394.    PARAMETERS themode
  395.  
  396.    IF LASTKEY() = 27
  397.       RETURN(0)
  398.    ELSEIF LASTKEY() = 13
  399.       Windowpush(7,7,21,73)
  400.       MEMOEDIT(Help->helpscr, 8,8,20,72,.F.)
  401.       Windowpop()
  402.       RETURN(1)
  403.    ELSEIF LASTKEY() = 7
  404.       IF DELETED()
  405.          RECALL
  406.       ELSE
  407.          DELETE
  408.       ENDIF
  409.       RETURN(1)
  410.    ELSEIF CHR(LASTKEY()) $ "Pp"
  411.       @ 23,00 CLEAR
  412.       @ 24,00 SAY "Are you sure? "
  413.       IF Prompt()
  414.          @ 24,00 SAY "First, Renaming the screen files."
  415.          GO TOP
  416.          DO WHILE !EOF()
  417.             IF !EMPTY(Help->prgscr)
  418.                file = STRTRAN(Help->prgscr, "HLP", "Q$$")
  419.                Renfile(Help->prgscr, file)
  420.                @ 24,40 SAY "Renaming " + Help->prgscr + " to &file."
  421.  
  422.                REPLACE Help->prgscr WITH STRTRAN(Help->prgscr, "HLP", "Q$$")
  423.  
  424.             ENDIF
  425.             SKIP
  426.          ENDDO
  427.          @ 24,00
  428.          @ 24,00 SAY "Now, packing the file"
  429.          PACK
  430.          @ 24,00
  431.          @ 24,00 SAY "Final step is to rename the files back..."
  432.          GO TOP
  433.          DO WHILE !EOF()
  434.             IF !EMPTY(Help->prgscr)
  435.                Renfile(Help->prgscr, "HLP"+TRIM(TRANSFORM(RECNO(), "@B99999")) + ".SCR" )
  436.                REPLACE Help->prgscr WITH "HLP"+TRIM(TRANSFORM(RECNO(), "@B99999")) + ".SCR"
  437.             ENDIF
  438.             SKIP
  439.          ENDDO
  440.          Delfile("Q*.SCR")
  441.       ENDIF
  442.       KEYBOARD CHR(27)
  443.       RETURN(0)
  444.  
  445.    ELSEIF LASTKEY() = 9
  446.       thishelp = Help->helpscr
  447.       GOTO whatrec
  448.       @ 23,00 CLEAR
  449.       @ 24,00 SAY "Append this to old screen? " +;
  450.                   "('No' means REPLACE!) "
  451.       IF Prompt()
  452.          REPLACE Help->helpscr WITH Help->helpscr + ;
  453.                  CHR(13)+CHR(10) + thishelp
  454.       ELSE
  455.          REPLACE Help->helpscr WITH thishelp
  456.       ENDIF
  457.       SKIP 0
  458.       COMMIT
  459.       RETURN(0)
  460.    ELSE
  461.       RETURN(1)
  462.    ENDIF
  463.  
  464. ********************
  465.  
  466. FUNCTION Delthelp
  467.  
  468.    IF DELETED()
  469.       @ 23,00 CLEAR
  470.       @ 24,00 SAY "Are you SURE you want this removed? "
  471.       IF PROMPT()
  472.          @ 23,00 CLEAR
  473.          @ 24,00 SAY "One Moment!"
  474.          PACK
  475.          RETURN(.T.)
  476.       ENDIF
  477.    ELSE
  478.       DELETE
  479.    ENDIF
  480.    RETURN(.F.)
  481.  
  482. ********************
  483.  
  484. FUNCTION Recalhelp
  485.  
  486.    IF DELETED()
  487.       RECALL
  488.    ENDIF
  489.    RETURN(.T.)
  490.  
  491. * End of File
  492.