chiark / gitweb /
numbered-alias-sheet: wip for output, debugging
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Nov 2013 22:42:04 +0000 (22:42 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Nov 2013 22:42:04 +0000 (22:42 +0000)
numbered-alias-sheet

index e866406e19b4aa2c9f1aba1d0225858b11f93977..f23805ffdb3e3fad9fd5d5de1db3d1d19ad86122 100755 (executable)
@@ -323,7 +323,7 @@ sub determine_size_layout () {
     $lp_y->{f} = $usesz;
     
     print DEBUG Dumper($usesz, \@lp_values, \@numbers_metr,
-                      \@texts_metr, $gap_width, \$colgap_width, \@core_size,
+                      \@texts_metr, $gap_width, $colgap_width, \@core_size,
                       \@item_size, \@eff_paper_size,
                       $lp_y);
 }
@@ -355,6 +355,10 @@ sub write_output () {
        prf "0 %s translate\n", -$eff_paper_size[1];
     }
     my $rows = ceil(@strings / $lp_y->{0});
+    my @cell_size;
+
+    $cell_size[0] = ($eff_paper_size[0] + $colgap_width) / $lp_y->{0};
+    $cell_size[1] = $eff_paper_size[1] / $rows;
 
     foreach my $nums (qw(1 0)) {
        prf("%s findfont %s scalefont setfont\n",
@@ -363,25 +367,27 @@ sub write_output () {
        prf "%s setlinewidth\n", $gap_width * 0.1;
        print DEBUG "nums? $nums rows=$rows\n";
        foreach my $col (0..$lp_y->{0}-1) {
-           my $col_lhs = ($item_size[0] + $colgap_width) * $col;
+           my $col_lhs = $cell_size[0] * $col;
            if ($col > 0 && $nums) {
                prf "newpath %s ", $col_lhs - $colgap_width*0.5;
                prf "%s moveto ", $eff_paper_size[1];
-               prf "0 %s rlineto ", -$item_size[1] * $rows;
+               prf "0 %s rlineto ", -$cell_size[1] * $rows;
                prf "stroke\n";
            }
            foreach my $row (0..$rows-1) {
                my $se = $strings[$col*$rows + $row];
                next unless $se;
+               prf "newpath ";
                prf "%s ", $col_lhs 
                    + ($nums ? $numbers_metr[4]
                       : $numbers_metr[4] + $gap_width);
-               prf "%s ", $eff_paper_size[1] - $item_size[1] * $row
+               prf "%s ", $eff_paper_size[1] - $cell_size[1] * $row
                    - $core_size[1];
                prf "moveto %s ", psstring($se->[!$nums]);
                if ($nums) {
                    prf "dup stringwidth pop neg 0 rmoveto ";
                }
+#              prf " gsave 10 10 rlineto stroke grestore\n";
                prf "show\n";
            }
        }