X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/53beb697f81d7715d042af69374e599dceb3f8e0..16b530ef1bda793f687168797b982d2c504efc81:/termcol.plp diff --git a/termcol.plp b/termcol.plp index 8d707ec..92bc4f8 100644 --- a/termcol.plp +++ b/termcol.plp @@ -127,13 +127,14 @@ 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 $palette = $info->{list}) { + my $order = $get{v} && 'ansiorder'; + 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 +150,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 +192,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 +211,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) {