--- /dev/null
+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 ();
+};