.PS
# Flow.m4
gen_init
ifdef(`FlowchartDefs_',,`include(FlowchartDefs.m4)')
define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl
define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl
define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl
define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl
define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl
define(`Beaublue',`rgbstring(0.74,0.83,0.9)')dnl
define(`Celadon',`rgbstring(0.67,0.88,0.69)')dnl
linethick_(1.0)
arrowwid = 0.05
arrowht = 0.1
fillval = 0.9
maxpsht = 20
define(`shad',`shaded rgbstring(0.9,0.8,0.7)')
define(`Below',`with .nw at last [].sw+(0,-0.25)')
TL: Here
Simple: [
Fbox("\tt F{}box",,shad)
Ftest("\tt F{}test",,shad) Below
Fdata("\tt F{}data") Below
Fprep("\tt F{}prep",) Below
Fkeying("\tt F{}keying") Below
Fkeyboard("\tt F{}keyboard") Below
Fdocument("\tt F{}document",,shaded rgbstring(0.9,0.8,0.7)) Below
Fdelay("\tt F{}delay",,shaded Beaublue) Below
Fdisplay("\tt F{}display",,shaded Celadon) Below
Fstored("\tt F{}stored",,shaded Thistle) Below
Fconnect(,,shaded Thistle) Below
Fconnect("45",wid boxwid ht boxht:45,shaded Thistle) \
with .w at last [].e+(boxht/8,0)
"\tt F{}connect" at last [].nw + (0,boxht/6)
] with .nw at TL+(0.1,0); move from Simple.nw to TL
#showbox_
Complex: [
Case: Fcase(,
"Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N
arrow down linewid/3 from last [].S
Fbox("Task 1.5",, shaded Thistle) with .N at Here
E:last [].E; S:last [].S],
"Test 2",Fbox("Task 2" "is bigger", wid fboxwid*1.2 ht fboxht*3/2, \
shaded SeaGreen),
"Test 3",Fbox("Task 3",, shaded RubineRed)dnl
)
"\sl .N" at Case.N rjust above; "\sl .S" at Case.S rjust below
"\sl .E" at Case.E ljust; "\sl .W" at Case.W rjust
"\tt F{}case" below at Case.s #+(0,-0.1)
Whiledo: Fwhiledo("$i < n$",,,Fbox("Task"),"T" above ljust at Test.E) \
with .nw at Case.ne+(0.25,0)
"\sl .N" at Whiledo.N rjust; "\sl .S" at Whiledo.S rjust below
"\sl .E" at Whiledo.E ljust; "\sl .W" at Whiledo.W rjust
"\tt F{}whiledo" below at Whiledo.s
Repeatuntil: Frepeatuntil("$n \geq 5$",,,Fbox("Task"),
"T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-0.5)
"\sl .N" at Repeatuntil.N rjust above; "\sl .S" at Repeatuntil.S rjust below
"\sl .E" at Repeatuntil.E ljust; "\sl .W" at Repeatuntil.W rjust
"\tt F{}repeatuntil" below at Repeatuntil.se +(-0.0,0.1)
Ifthenelse: Fifthenelse("$A