115 lines
3.1 KiB
Plaintext
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
|
|
|