Files
MBS/PROYECTO/otrodir/dbadministrator/fglhelp.4gl
T

115 lines
3.1 KiB
Plaintext

CONSTANT mtit=%"fgl.helpViewer.title"
CONSTANT mop1=%"fgl.helpViewer.screen"
CONSTANT mhp1=%"fgl.helpViewer.nextpage"
CONSTANT mop2=%"fgl.helpViewer.resume"
CONSTANT mhp2=%"fgl.helpViewer.finish"
CONSTANT eohm=%"fgl.helpViewer.endmsg"
FUNCTION showhelp(id)
DEFINE id INTEGER
DEFINE txt STRING
LET txt=fgl_gethelp(id)
IF txt IS NULL THEN RETURN END IF
IF fgl_getenv("FGLGUI")=0 THEN
CALL __showhelp_txt(txt)
ELSE
CALL __showhelp_gui(txt)
END IF
END FUNCTION
FUNCTION __showhelp_txt(txt)
CONSTANT nlines = 24
DEFINE idx INTEGER,again INTEGER
DEFINE txt STRING
DEFINE l,p,y,y0,y1,nrows INTEGER
DEFINE sep CHAR(2),psep CHAR(1)
DEFINE tok,ptok base.StringTokenizer
DEFINE s STRING
DEFINE lastPage STRING
LET sep[1]=ascii(10) -- \n
LET sep[2]=ascii(13) -- \r
LET psep[1]=ascii(12) -- \f
LET nrows=nlines+1
OPEN WINDOW helpSessionTxt AT 1,1 WITH nrows ROWS, 80 COLUMNS
ATTRIBUTE(MESSAGE LINE LAST, MENU LINE FIRST)
LET y0 = 4
LET y1 = nlines-1
MENU mtit
BEFORE MENU
LABEL nextpage:
LET y=y0
IF ptok IS NULL THEN
LET ptok=base.StringTokenizer.createExt(txt,psep,NULL,FALSE);
INITIALIZE tok TO NULL
END IF
IF tok IS NULL THEN
LET s=ptok.nextToken()
LET tok=base.StringTokenizer.createExt(s,sep,NULL,TRUE)
END IF
IF NOT tok.hasMoreTokens() THEN
IF NOT ptok.hasMoreTokens() THEN
INITIALIZE ptok TO NULL
MESSAGE eohm CLIPPED ATTRIBUTE(REVERSE)
NEXT OPTION mop2
ELSE
LET s=ptok.nextToken()
LET tok=base.StringTokenizer.createExt(s,sep,NULL,TRUE)
END IF
END IF
IF NOT tok.hasMoreTokens() THEN
INITIALIZE ptok TO NULL
MESSAGE eohm CLIPPED ATTRIBUTE(REVERSE)
NEXT OPTION mop2
END IF
CLEAR WINDOW helpSessionTxt
DISPLAY "-------------------------------------------------------------------------------" AT 3,1
WHILE tok.hasMoreTokens() AND y<=y1
DISPLAY tok.nextToken() AT y,1
LET y=y+1
END WHILE
IF NOT ptok.hasMoreTokens() AND NOT tok.hasMoreTokens() THEN
INITIALIZE ptok TO NULL
MESSAGE eohm CLIPPED ATTRIBUTE(REVERSE)
NEXT OPTION mop2
ELSE
NEXT OPTION mop1
END IF
COMMAND mop1 mhp1
GOTO nextpage
COMMAND mop2 mhp2
EXIT MENU
END MENU
CLOSE WINDOW helpSessionTxt
END FUNCTION
FUNCTION __showhelp_gui(thetext)
DEFINE thetext STRING
DEFINE ptok base.StringTokenizer
DEFINE s STRING
DEFINE psep CHAR(1)
LET psep[1]=ascii(12)
OPEN WINDOW helpSessionGui WITH FORM "fglhelp"
MENU
BEFORE MENU
LABEL gui_nextpage:
IF ptok IS NULL THEN
LET ptok=base.StringTokenizer.createExt(thetext,psep,NULL,FALSE);
END IF
IF ptok.hasMoreTokens() THEN
LET s=ptok.nextToken()
DISPLAY s TO theText
END IF
IF NOT ptok.hasMoreTokens() THEN
INITIALIZE ptok TO NULL
END IF
ON ACTION helpscreen GOTO gui_nextpage
ON ACTION helpresume EXIT MENU
ON ACTION close EXIT MENU
END MENU
CLOSE WINDOW helpSessionGui
END FUNCTION