[GRASS-dev] Re: not quite there on fonts
Paul Kelly
paul-grass at stjohnspoint.co.uk
Wed May 16 08:33:14 EDT 2007
On Sun, 13 May 2007, Michael Barton wrote:
> I'll play around with these. But maybe one of you can check to see if
> d.histogram will actually accept some kind of background color change or if
> it is hardcoded to white--so I don't waste a lot of time messing with this
> in situation where it won't work.
FWIW, I was able to achieve my desired black background for the histogram
plot through changing three things:
* Setting $GRASS_BACKGROUNDCOLOR to 000000 in gui/tcltk/gis.m/mapcanvas.tcl
* Changing D_setup(1); to D_setup(0); in display/d.histogram/main.c
* Removing the hardcoded "background=255:255:255" in the call to g.pnmcomp
in gui/tcltk/gis.m/mapcanvas.tcl
It's hard to say which is the most important change - all were required -
after the first change the background originally started off black, but
the D_setup(1); erased it to white. When I changed *that* so it didn't
erase it to white first, but plotted the histogram on top of the black
background, the output was still white. I think that was because it was
transparent and the transparent parts were being made white by gis.m's
call to the g.pnmcomp command. So I had to change it too.
Something worth looking at (as Hamish hinted) might be the way D_erase(1);
erased to the hard-coded value of GRASS_BG_COLOR. As far as I can see
there is no way to change this without re-compiling - kind of thwarting
the purpose of it which was presumably to make it easier to change the
default background colour? Maybe explicit use of DEFAULT_BG_COLOR and
DEFAULT_FG_COLOR should be replaced by a call to a function which will
override the hardcoded default values by (yet more) environment variables
(if present)? I guess $GRASS_BACKGROUNDCOLOR could easily enough be used
to override DEFAULT_BG_COLOR. I'm not sure of the implications though.
That's probably too much to change now though - an option to set the
GRASS_BACKGROUNDCOLOR environment variable and removal of the hardcoded
background=255:255:255 in the call to g.pnmcomp might be enough for now,
if it doesn't mess up anything else. I've got the behaviour I wanted
anyway. Regarding d.histogram though, I'm guessing the change to the
erasing behaviour makes it now contradict the man page which explicitly
says:
[...]
NOTES
[...]
d.histogram does not erase the active frame before displaying output.
Paul
More information about the grass-dev
mailing list