97 lines
3.1 KiB
COBOL
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.
|