* SS_SETMESS : Simulates SET MESSAGE TO for scrsaver user. * Paul S. Ganney, Medical Physics Hull. June 1994. * Most Recent edit: * FUNCTION ss_setmess PARAMETERS line PUBLIC ss_setmess:=line RETURN NIL ------------------------------------------------------------- * SS_PROMPT: Simulates @ .. PROMPT for scrsaver use. * Paul S. Ganney, Medical Physics, Hull. June 1994. * Most Recent edit: 6/ 6/94. * FUNCTION ss_prompt PARAMETERS x,y,pr,ms * x : } Co-ordinates for prompt * y : } * pr : Prompt * ms : Optional message IF ms=NIL ms:="" ENDIF IF TYPE("ss_prompt")="U" PUBLIC ss_prompt:={} ENDIF AADD(ss_prompt,{x,y,pr,ms}) @ x,y SAY pr IF TYPE("ss_setmess")="U" PUBLIC ss_setmess:=0 ENDIF RETURN NIL -------------------------------------------------------------- * SS_MENU : Simulates MENU TO for scrsaver use. * Paul S. Ganney, Medical Physics, Hull. June 1994. * Most Recent edit: 17/10/94. * FUNCTION ss_menu PARAMETERS var * var : initial value LOCAL loop:=(LEN(ss_prompt)>0),key,def_col,ret_val:=0,i,old_curs:=SETCURSOR(0),disp_mess:=.F. IF TYPE("var")<>"N" var:=1 ENDIF var:=INT(var) IF var<1 var:=1 ELSEIF var>LEN(ss_prompt) var:=LEN(ss_prompt) ENDIF IF ss_setmess>0 FOR i=1 TO LEN(ss_prompt) IF LEN(ss_prompt[i,4])>0 disp_mess:=.T. ENDIF NEXT ENDIF DO WHILE loop def_col:=enh_col() @ ss_prompt[var,1],ss_prompt[var,2] SAY ss_prompt[var,3] SETCOLOR(def_col) IF disp_mess @ ss_setmess,0 SAY LEFT(ss_prompt[var,4]+SPACE(80),80) ENDIF key:=scrsaver(ss_time,ss_char) @ ss_prompt[var,1],ss_prompt[var,2] SAY ss_prompt[var,3] IF key=13 ret_val:=var loop:=.F. ELSEIF key=27 ret_val:=0 loop:=.F. ELSEIF (key=5 .OR. key=19) .AND. var>1 var-- ELSEIF (key=24 .OR. key=4) .AND. var