From a911d2c0554f1af16f5e3df5a91b0e4b0b4c05e4 Mon Sep 17 00:00:00 2001 From: ellson <devnull@localhost> Date: Thu, 6 Jan 2005 15:01:43 +0000 Subject: [PATCH] add lefty, dotty, lneato to graphviz2 tree --- cmd/lefty/examples/slides.lefty | 109 ++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 cmd/lefty/examples/slides.lefty diff --git a/cmd/lefty/examples/slides.lefty b/cmd/lefty/examples/slides.lefty new file mode 100644 index 000000000..1c9b2fe3d --- /dev/null +++ b/cmd/lefty/examples/slides.lefty @@ -0,0 +1,109 @@ +load ('def.lefty'); +definit (); +# +# initialize window data +# +canvas = defcanvas; +wrect = [0 = ['x' = 0; 'y' = 0;]; 1 = ['x' = 800; 'y' = 1000;];]; +lmargin = 100; +width = 800; +height = 1000; +setwidgetattr (canvas, ['window' = wrect;]); +fonts = [ + 'timr' = [ + 14 = 'timr14'; + 18 = 'timr18'; + 24 = 'timr24'; + ]; + 'courr' = [ + 14 = 'courr14'; + 18 = 'courr18'; + 24 = 'courr24'; + ]; +]; +x2ps = [ + 'timr24' = 'Times-Roman'; + 'timr18' = 'Times-Roman'; + 'timr14' = 'Times-Roman'; + 'courr24' = 'Courier'; + 'courr18' = 'Courier'; + 'courr14' = 'Courier'; +]; + +calc = function () { + local i, j, cpos, tsiz, dist, slidep; + tsiz = ['x' = 0; 'y' = 0;]; + for (i = 0; slides[i]; i = i + 1) { + slidep = slides[i]; + if (slidep.skip) { + tsiz.y = tsiz.y + slidep.skip; + } else { + for (j = 0; slidep.text[j]; j = j + 1) { + if (j > 0) + tsiz.y = tsiz.y + 5; + if (~slidep.font) + slidep.font = slides.font; + if (~slidep.size) + slidep.size = slides.size; + if (~slidep.just) + slidep.just = slides.just; + slidep.tsiz[j] = textsize (canvas, slidep.text[j], + fonts[slidep.font][slidep.size], 0); + tsiz.y = tsiz.y + slidep.tsiz[j].y; + } + } + } + dist = (height - tsiz.y) / (i + 1); + cpos = ['x' = lmargin; 'y' = height - dist;]; + for (i = 0; slides[i]; i = i + 1) { + slidep = slides[i]; + if (slidep.skip) { + cpos.y = cpos.y - slidep.skip - dist; + } else { + for (j = 0; slidep.text[j]; j = j + 1) { + if (j > 0) + cpos.y = cpos.y - 5; + if (slidep.just == 0) + slidep.tpos[j].x = cpos.x; + else + slidep.tpos[j].x = width / 2; + cpos.y = cpos.y - slidep.tsiz[j].y; + slidep.tpos[j].y = cpos.y; + } + cpos.y = cpos.y - dist; + } + } +}; +redraw = function () { + local i, j, slidep; + for (i = 0; slides[i]; i = i + 1) { + slidep = slides[i]; + if (~slidep.skip) + for (j = 0; slidep.text[j]; j = j + 1) + text (canvas, slidep, slidep.tpos[j], slidep.text[j], + fonts[slidep.font][slidep.size], 0, slidep.just); + } +}; +dops = function () { + local i, j, slidep, r; + + r = [0 = ['x' = 0; 'y' = 0;]; 1 = ['x' = 8 * 300; 'y' = 10.5 * 300;];]; + canvas = createwidget (-1, ['type' = 'ps'; 'origin' = r[0]; 'size' = r[1] +;]); + setwidgetattr (canvas, ['window' = wrect;]); + for (i = 0; slides[i]; i = i + 1) { + slidep = slides[i]; + if (~slidep.skip) + for (j = 0; slidep.text[j]; j = j + 1) + text (canvas, slidep, slidep.tpos[j], slidep.text[j], + x2ps[fonts[slidep.font][slidep.size]], + slidep.tsiz[j].y, slidep.just, 1); + } + destroywidget (canvas); + canvas=defcanvas; +}; +doit = function () { + calc (); + redraw (); + dops (); +}; -- 2.40.0