keyboard: custom rows overrides in moderows attribute
[sheet.git] / keyboard.plp
index c96977d7eb7dadf4df9f596dad50222322489a90..8bbe8f7dcdbea9eec86eeb73d142ce3c914d4c98 100644 (file)
@@ -4,6 +4,7 @@ my $mode = lc($Request || 'altgr');
 my $include = "$mode.eng";
 
 my $info = eval { Data($include) } || {};
+warn "error in $include: ", @{$@} if ref $@;
 $mode = $info->{title} // $mode;
 
 Html({
@@ -32,6 +33,34 @@ say "<h2>", $info->{mode}->{''}, " (default)</h2>"
 use Shiar_Sheet::Keyboard 2.08;
 my $keys = Shiar_Sheet::Keyboard->new($info);
 $keys->map($get{map}) or undef $get{map};
-$keys->print_rows($get{rows}, $info->{rows});
-$keys->print_legends(\%get);
+$keys->print_rows($get{rows} || $info->{moderows}, $info->{rows});
 
+{
+       say "<hr/>\n";
+       say '<div class="help">';
+
+       use List::MoreUtils qw( part );
+       my @gflags = part {/^g\d/} sort keys %{ $keys->{flag} };
+
+       say "\t", '<div class="left">';
+       $keys->print_legend('legend-types', $gflags[1]);
+       say "\t</div>\n";
+
+       say "\t", '<div class="right">';
+       $keys->print_legend('legend-options', $gflags[0]);
+       say '';
+
+       say "\t\t", '<ul class="legend legend-set">';
+
+       say "\t\t<li>keyboard <strong>map</strong> is ",
+               ($get{map} ? 'set to ' : ''), "<em>$keys->{map}</em>";
+       say "\t\t<li><strong>keys</strong> are ",
+               "<em>", ($showkeys ? 'always shown' : 'hidden if unassigned'), "</em>",
+               (!defined $showkeys && ' by default');
+       say "\t\t<li>default <strong>style</strong> is ",
+               (defined $get{style} && 'set to '), "<em>$style</em>";
+
+       say "\t\t</ul>";
+       say "\t</div>\n";
+       say "</div>\n";
+}