tinycobol/test.code/00_FernandoWuthstrack/tcl/tclgui.cob

97 lines
3.1 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. tclgui.
AUTHOR. Rildo Pragana.
* REMARKS.
* Example tcl/tk GUI program for Cobol.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-BLOCK.
05 NAME PIC X(40).
05 W-ADDRESS PIC X(50).
05 PROVINCE PIC X(40).
05 PHONE PIC X(15).
05 END-PGM PIC X.
05 QUICK-RET PIC X.
01 SITE-INFO.
05 TITLE PIC X(20).
05 URL PIC X(50).
77 GUI-01 PIC X(64) VALUE "formA.tcl".
77 GUI-02 PIC X(64) VALUE "formB.tcl".
77 END-OF-STRING pic X value LOW-VALUES.
77 T-SCRIPT PIC X(128).
77 T-RESULT PIC X(80).
77 T-TXT PIC x(80).
01 dummy pic X value X"00".
PROCEDURE DIVISION.
display ""
CALL "initTcl"
* test for stcleval function
string "expr 12 * 34" END-OF-STRING into T-SCRIPT
call "stcleval" using T-SCRIPT T-RESULT.
display "eval by tcl: " T-RESULT
MOVE "Your name here" to NAME
MOVE "Your address" TO W-ADDRESS
MOVE "Phone number" to PHONE
* this variable tells Cobol that the user required an exit
MOVE "0" to END-PGM
MOVE "1" to QUICK-RET
MOVE "Afonso Pena" to NAME
* now we may have the script name as a variable,
* terminated by a space
CALL "tcleval" USING DATA-BLOCK "./formA.tcl "
if END-PGM = 1
go to 200-para.
string "lappend ::estados {rio grande do sul}"
END-OF-STRING into T-SCRIPT
call "stcleval" using T-SCRIPT T-RESULT.
string "lappend ::estados {santa catarina} paraná"
END-OF-STRING into T-SCRIPT
call "stcleval" using T-SCRIPT T-RESULT.
MOVE "Deodoro da Fonseca" to NAME
CALL "tcleval" USING DATA-BLOCK GUI-01
if END-PGM = 1
go to 200-para.
MOVE "Rui Barbosa" to NAME
CALL "tcleval" USING DATA-BLOCK GUI-01
if END-PGM = 1
go to 200-para.
MOVE "Frei Caneca" to NAME
CALL "tcleval" USING DATA-BLOCK GUI-01
if END-PGM = 1
go to 200-para.
MOVE "0" to QUICK-RET
MOVE "Your name here" to NAME.
100-restart.
* call C wrapper, passing data block and size of data
CALL "tcleval" USING DATA-BLOCK GUI-01
DISPLAY "Returned data:"
DISPLAY "NAME [" NAME "]"
DISPLAY "ADDRESS [" W-ADDRESS "]"
DISPLAY "PHONE [" PHONE "]"
* if not end of program required, loop
if END-PGM = 0
go to 100-restart.
200-para.
* to start a new GUI (graphical interface), call this first
call "newGui"
MOVE "Title of the site" to TITLE
MOVE "URL (http://..., ftp://..., etc)" to URL
* now we may draw other main window...
CALL "tcleval" USING SITE-INFO GUI-02
DISPLAY "Returned data:"
DISPLAY "TITLE [" TITLE "]"
DISPLAY "URL [" URL "]"
STOP RUN.