X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/53beb697f81d7715d042af69374e599dceb3f8e0..0380d773faba8f0b2565bedf11c6a70bd76eddca:/termcol.plp diff --git a/termcol.plp b/termcol.plp index 8d707ec..3289deb 100644 --- a/termcol.plp +++ b/termcol.plp @@ -127,13 +127,24 @@ for my $term (@termlist) { print "\n\n"; } - if (my $colours = $info->{list}) { - if (my $reorder = $info->{ansiorder} and $get{v}) { - $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ]; + if (my $table = $info->{table}) { + print ''."\n"; + printf "\n", $caption; + for my $row (@$table) { + print ''; + print colcell(@$_) for @$row; } + print "
%s
\n\n"; + } + + if (my $palette = $info->{list}) { + my $order = $get{order} && $get{order}.'order'; + my $colours = colorder($palette, + $info->{$order} // $palettes->{ $info->{parent} }->{$order} + ); my $rows = 8; - my $columns = ceil(@{$colours} / $rows); + my $columns = ceil(@{$palette} / $rows); print '', "\n"; printf "\n", $caption; @@ -149,11 +160,23 @@ for my $term (@termlist) { } } - print "
%s
", img_egapal(\@{$colours}, @{$_}) for @draw; + for (@draw) { + my $imgpal = colorder($palette, + $info->{ansiorder} // $palettes->{ $info->{parent} }->{ansiorder} + ); + print "
", img_egapal($imgpal, @{$_}); + } print "
\n\n"; } } +sub colorder { + my ($palette, $reorder) = @_; + return [ map { $palette->[$_] =~ s/:(?![^:])|$/:$_/r } @{$reorder} ] + if $reorder; + return $palette; +} + sub coltable_hsv { my ($dim, $rgbval, $greyramp) = @_; @@ -179,8 +202,9 @@ sub coltable_hsv { } $h = 1; # greyscale hue - $s = 1; # lowest saturation for other hues - $v = $s = $vmax if !$v; # black at full saturation + $s = $smax - $v + 1; # spread brightness over saturation groups + $v &&= $smax # highest saturation + or $v = $s = 1; # black at initial column } $h *= $hmax; @@ -197,7 +221,7 @@ sub coltable_hsv { my $huerow = $colmap[0][0]; # first {$_} map { @{$_} } @colmap; for my $h (grep { $huerow->[$_] } 0 .. $#{$huerow}) { $out .= ''; - $out .= colcell(@$_) for map { $_->[$h] } map { @{$_} } @colmap; + $out .= colcell(@$_) for map { $_->[$h] } map { reverse @{$_} } @colmap; } if (@greymap) {