From 87dea3523ca31107a5b19ce169d01cc0bedb43fd Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 7 Nov 2010 17:16:40 +0000 Subject: [PATCH] layout: support transparent colour setting, for loc label backgrounds --- layout/README.layout | 1 + layout/layout | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/layout/README.layout b/layout/README.layout index 1dcc45f..32bbae7 100644 --- a/layout/README.layout +++ b/layout/README.layout @@ -282,6 +282,7 @@ Command-line options name from rgb.txt # where R G B are each the same number of hex digits % literal postscript eg 0.5 setgray + - transparent (for element "l" only) -q quiet: do not print info to stderr (default: prints bounding box, at the moment) diff --git a/layout/layout b/layout/layout index df17126..d1ba717 100755 --- a/layout/layout +++ b/layout/layout @@ -77,6 +77,8 @@ sub parse_colour ($) { $rgbmax= (1 << ($l1 * 4))-1; } elsif ($spec eq '') { return ''; + } elsif ($spec eq '-') { + return $spec; } elsif ($spec =~ m/^\%/) { return $'; } else { @@ -131,6 +133,8 @@ while (@ARGV && $ARGV[0] =~ m/^\-/) { my @defs= split //, $1; my $nc= parse_colour($2); foreach my $def (@defs) { + die "cannot specify transparent for $def" + if $nc eq '-' && !grep { $_ eq $def } qw(l); if ($def eq '*') { $colourmap{$_}=$nc foreach keys %colourmap; } elsif (exists $colourmap{$def}) { @@ -1763,9 +1767,11 @@ dv("cmd__do $ctx @al ",'$ctx',$ctx); " sx5 neg 0 moveto\n". " sx5 neg $lmu_txtboxh lineto\n". " sx5 $lmu_txtboxh lineto\n". - " sx5 0 lineto closepath\n". - " gsave ".set_colour(1, 'l')." fill grestore\n". - " $lmu_txtboxlw setlinewidth stroke\n". + " sx5 0 lineto closepath\n"); + if ($colourmap{'l'} ne '-') { + ol(" gsave ".set_colour(1, 'l')." fill grestore\n"); + } + ol(" $lmu_txtboxlw setlinewidth stroke\n". " sx5 neg $lmu_txtboxpadx add $lmu_txtboxtxty\n". " moveto s show\n"); } -- 2.30.2