Mercurial > hg > camir-aes2014
diff toolboxes/graph_visualisation/lib/lefty/slides.lefty @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/graph_visualisation/lib/lefty/slides.lefty Tue Feb 10 15:05:51 2015 +0000 @@ -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 (); +};