[GRASS-SVN] r39097 -
grass/branches/develbranch_6/display/d.colortable
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Sep 10 02:10:09 EDT 2009
Author: hamish
Date: 2009-09-10 02:10:04 -0400 (Thu, 10 Sep 2009)
New Revision: 39097
Modified:
grass/branches/develbranch_6/display/d.colortable/description.html
grass/branches/develbranch_6/display/d.colortable/main.c
Log:
cleanup, fix box rendering, i18n, html bugs and modernization
Modified: grass/branches/develbranch_6/display/d.colortable/description.html
===================================================================
--- grass/branches/develbranch_6/display/d.colortable/description.html 2009-09-10 02:46:50 UTC (rev 39096)
+++ grass/branches/develbranch_6/display/d.colortable/description.html 2009-09-10 06:10:04 UTC (rev 39097)
@@ -1,89 +1,52 @@
<H2>DESCRIPTION</H2>
-
The GRASS program <EM>d.colortable</EM>
is used to display the color table associated with a raster map layer in the
-active frame on the graphics monitor. The map <EM>name</EM> should be
+active frame on the graphics monitor. The <EM>map</EM> name should be
an available raster map layer in the user's current mapset search path
and location.
<P>
-
-<H3>Parameters:</H3>
-
-<DL>
-<DT><B>map=</B><EM>name</EM>
-<DD>Name of a raster map layer in the user's current mapset search path
-whose color table is to be displayed.
-<DT><B>color=</B><EM>name</EM>
-<DD>Color of the lines separating the colors of the color table.
-<BR>
-Options: red, orange, yellow, green, blue,
-indigo, violet, gray, white</B>, and black.
-<BR>
-Default: <EM>white</EM>
-<DT><B>lines=</B><EM>value</EM>
-<DD>Number of lines to appear in the color table.
-<BR>
-Options: 1 - 1000
-<DT><B>cols=</B><EM>value</EM>
-<DD>Number of columns to appear in the color table.
-<BR>
-Options: 1 - 1000
-
-If the <EM>value</B>s</EM> of both <EM>lines</EM> and <EM>cols</EM> are not specified by
-the user, <EM>d.colortable</EM>
+If the values of both <EM>lines</EM> and <EM>cols</EM> are
+not specified by the user, <EM>d.colortable</EM>
divides the active frame equally among the number of categories
present in the named raster map layer. If one option is specified,
the other is automatically set to accommodate all categories.
If both are specified, as many categories as possible are displayed.
-</DL>
<P>
-The user can specify all needed parameters on the command line using the
-form:
-
-<P>
-<DL>
-<DD>
-<B>d.colortable map=</B><EM>name</EM>
-[<B>color=</B><EM>name</EM>]
-[<B>lines=</B><EM>value</EM>]
-[<B>cols=</B><EM>value</EM>]
-</DL>
-
-<P>
If the user specifies the name of a map on the command line but does not
specify the values of other parameters, parameter default values will be used.
-Alternately, if the user types simply <B>d.colortable</B> on the command line
+Alternately, if the user types simply <em>d.colortable</em> on the command line
without any program arguments, the program will prompt the user for parameter
-settings using the standard GRASS <A HREF="parser.html">parser</A> interface described in the manual
-entry for <EM><A HREF="parser.html">parser</A></B>.</EM>
+settings using the standard GRASS parser interface.
+
<H2>EXAMPLE</H2>
The user running the command:
<DL>
<DD>
<B>d.colortable map=</B><EM>soils</EM>
-[<B>color=</B><EM>red</EM>]
-[<B>lines=</B><EM>1</EM>]
-[<B>cols=</B><EM>3</EM>]
+ <B>color=</B><EM>red</EM>
+ <B>lines=</B><EM>1</EM>
+ <B>cols=</B><EM>3</EM>
</DL>
would see the active graphics frame divided into three columns
extending the full frame height. The lines dividing the color table
associated with the <EM>soils</EM> map would be displayed in red.
The user would see, at most, only three of the colors from the <EM>soils</EM>
color table displayed in the active frame (because the user requested
-that this frame be divided into three sections).
+that this frame be divided into three sections).
+
<H2>NOTES</H2>
If the user wishes to display the entire color table associated with
a map, the user should either stipulate a number of lines (rows) and
columns (cols) sufficient to accommodate the number of categories
in the map's color table, or fail to assign values to one or both of
-<EM>lines</EM> and/or <EM>cols</B>.</EM>
+<EM>lines</EM> and/or <EM>cols</EM>.
If the user runs <EM>d.colortable</EM> using the default number of
lines and columns (the full graphics frame), all categories from the
map's color table will be displayed. However, if the user requests
@@ -97,15 +60,20 @@
<EM><A HREF="d.erase.html">d.erase</A></EM> between
runs of <EM>d.colortable</EM> to avoid confusion.
+
<H2>SEE ALSO</H2>
-<EM><A HREF="d.colors.html">d.colors</A></EM><br>
-<EM><A HREF="d.erase.html">d.erase</A></EM><br>
-<EM><A HREF="d.rast.html">d.rast</A></EM><br>
-<EM><A HREF="parser.html">parser</A></EM>
+<EM>
+<A HREF="d.colors.html">d.colors</A><br>
+<A HREF="d.erase.html">d.erase</A><br>
+<A HREF="d.legend.html">d.legend</A><br>
+<A HREF="d.rast.html">d.rast</A><br>
+</EM>
+
<H2>AUTHOR</H2>
James Westervelt, U.S. Army Construction Engineering Research Laboratory
-<p><i>Last changed: $Date$</i>
+<p>
+<i>Last changed: $Date$</i>
Modified: grass/branches/develbranch_6/display/d.colortable/main.c
===================================================================
--- grass/branches/develbranch_6/display/d.colortable/main.c 2009-09-10 02:46:50 UTC (rev 39096)
+++ grass/branches/develbranch_6/display/d.colortable/main.c 2009-09-10 06:10:04 UTC (rev 39097)
@@ -7,11 +7,11 @@
* Bernhard Reiter <bernhard intevation.de>,
* Eric G. Miller <egm2 jps.net>,
* Glynn Clements <glynn gclements.plus.com>,
- * Hamish Bowman <hamish_nospam yahoo.com>,
+ * Hamish Bowman <hamish_b yahoo.com>,
* Jan-Oliver Wagner <jan intevation.de>
* PURPOSE: display the color table associated with a raster map layer in
* the active frame on the graphics monitor
- * COPYRIGHT: (C) 1999-2007 by the GRASS Development Team
+ * COPYRIGHT: (C) 1999-2009 by the GRASS Development Team
*
* This program is free software under the GNU General Public
* License (>=v2). Read the file COPYING that comes with GRASS
@@ -34,7 +34,6 @@
int lines;
int cols;
- char buff[256];
char window_name[64];
char *mapset;
struct FPRange fp_range;
@@ -42,20 +41,15 @@
double ratio;
DCELL dmin, dmax, dval;
int cats_num;
- int cur_dot_row;
- int cur_dot_col;
- int dots_per_line;
- int dots_per_col;
+ int cur_dot_row, cur_dot_col;
+ int dots_per_line, dots_per_col;
int atcat;
- int white;
- int black;
- int atcol;
- int atline;
+ int white, black;
+ int atcol, atline;
int count;
int t, b, l, r;
int fp, new_colr;
- int x_box[5];
- int y_box[5];
+ int x_box[5], y_box[5];
struct GModule *module;
struct Option *opt1, *opt2, *opt3, *opt4;
@@ -63,36 +57,33 @@
G_gisinit(argv[0]);
module = G_define_module();
- module->keywords = _("display, setup");
+ module->keywords = _("display, raster");
module->description =
_("Displays the color table associated with a raster map layer.");
- opt1 = G_define_option();
- opt1->key = "map";
- opt1->type = TYPE_STRING;
- opt1->required = YES;
- opt1->gisprompt = "old,cell,raster";
- opt1->description = "Name of existing raster map";
+ opt1 = G_define_standard_option(G_OPT_R_MAP);
+ opt1->description =
+ _("Name of raster map whose color table is to be displayed");
opt2 = G_define_option();
opt2->key = "color";
opt2->type = TYPE_STRING;
- opt2->answer = DEFAULT_FG_COLOR;
+ opt2->answer = DEFAULT_BG_COLOR;
opt2->options = D_color_list();
opt2->description =
- "Color of lines separating the colors of the color table";
+ _("Color of lines separating the colors of the color table");
opt3 = G_define_option();
opt3->key = "lines";
opt3->type = TYPE_INTEGER;
opt3->options = "1-1000";
- opt3->description = "Number of lines";
+ opt3->description = _("Number of lines to appear in the color table");
opt4 = G_define_option();
opt4->key = "cols";
opt4->type = TYPE_INTEGER;
opt4->options = "1-1000";
- opt4->description = "Number of columns";
+ opt4->description = _("Number of columns to appear in the color table");
/* Check command line */
if (G_parser(argc, argv))
@@ -102,6 +93,7 @@
mapset = G_find_cell2(map_name, "");
if (mapset == NULL)
G_fatal_error(_("Raster map <%s> not found"), map_name);
+
fp = G_raster_map_is_fp(map_name, mapset);
if (opt2->answer != NULL) {
@@ -113,13 +105,12 @@
lines = 1;
else
lines = 0;
+
if (opt3->answer != NULL) {
- if (fp) {
- sprintf(buff,
- "%s is fp map. Ignoring lines and drawing continuous color ramp",
- map_name);
- G_warning(buff);
- }
+ if (fp)
+ G_warning(_("<%s> is a floating point map. "
+ "Ignoring [lines] and drawing continuous color ramp"),
+ map_name);
else
sscanf(opt3->answer, "%d", &lines);
}
@@ -128,37 +119,37 @@
cols = 1;
else
cols = 0;
+
if (opt4->answer != NULL) {
- if (fp) {
- sprintf(buff,
- "%s is fp map. Ignoring cols and drawing continuous color ramp",
- map_name);
- G_warning(buff);
- }
+ if (fp)
+ G_warning(_("<%s> is a floating point map. "
+ "Ignoring [cols] and drawing continuous color ramp"),
+ map_name);
else
sscanf(opt4->answer, "%d", &cols);
}
/* Make sure map is available */
if (G_read_colors(map_name, mapset, &colors) == -1)
- G_fatal_error("R_color file for [%s] not available", map_name);
+ G_fatal_error(_("R_color file for [%s] not available"), map_name);
if (G_read_fp_range(map_name, mapset, &fp_range) == -1)
- G_fatal_error("Range file for [%s] not available", map_name);
+ G_fatal_error(_("Range file for [%s] not available"), map_name);
if (R_open_driver() != 0)
- G_fatal_error("No graphics device selected");
-
+ G_fatal_error(_("No graphics device selected"));
if (D_get_cur_wind(window_name))
- G_fatal_error("No current frame");
+ G_fatal_error(_("No current frame"));
if (D_set_cur_wind(window_name))
- G_fatal_error("Current frame not available");
+ G_fatal_error(_("Current frame not available"));
/* Figure out where to put boxes */
D_get_screen_window(&t, &b, &l, &r);
G_get_fp_range_min_max(&fp_range, &dmin, &dmax);
if (G_is_d_null_value(&dmin) || G_is_d_null_value(&dmax))
- G_fatal_error("Data range is empty");
+ G_fatal_error(_("Data range is empty"));
+
cats_num = (int)dmax - (int)dmin + 1;
+
if (lines <= 0 && cols <= 0) {
double dx, dy;
@@ -185,17 +176,18 @@
x_box[0] = 0;
y_box[0] = 0;
x_box[1] = 0;
- y_box[1] = (6 - dots_per_line);
- x_box[2] = (dots_per_col - 6);
+ y_box[1] = (5 - dots_per_line);
+ x_box[2] = (dots_per_col - 5);
y_box[2] = 0;
x_box[3] = 0;
- y_box[3] = (dots_per_line - 6);
- x_box[4] = (6 - dots_per_col);
+ y_box[3] = (dots_per_line - 5);
+ x_box[4] = (5 - dots_per_col);
y_box[4] = 0;
white = D_translate_color("white");
black = D_translate_color("black");
G_set_c_null_value(&atcat, 1);
+
if (!fp) {
for (atcol = 0; atcol < cols; atcol++) {
cur_dot_row = t;
@@ -203,7 +195,7 @@
count = 0;
for (atline = 0; atline < lines; atline++) {
cur_dot_row += dots_per_line;
- /* Draw white box */
+ /* Draw outer border box */
R_standard_color(color);
R_move_abs(cur_dot_col + 2, (cur_dot_row - 1));
R_cont_rel(0, (2 - dots_per_line));
@@ -219,7 +211,7 @@
R_cont_rel((4 - dots_per_col), 0);
/* Color box */
D_color((CELL) atcat, &colors);
- R_move_abs(cur_dot_col + 4, (cur_dot_row - 3));
+ R_move_abs(cur_dot_col + 4, (cur_dot_row - 2));
R_polygon_rel(x_box, y_box, 5);
count++;
@@ -231,33 +223,40 @@
}
if (atcat > (int)dmax)
break;
- } /* col loop */
- } /* int map */
- else { /* draw continuous color ramp for fp map */
+ } /* col loop */
+ } /* int map */
+ else {
+ /*** draw continuous color ramp for fp map ***/
+
cur_dot_row = t + dots_per_line;
cur_dot_col = l;
- /* Draw white box */
+
+ /* Draw outer border box */
R_standard_color(color);
- R_move_abs(cur_dot_col + 2, (cur_dot_row - 1));
- R_cont_rel(0, (2 - dots_per_line));
- R_cont_rel((dots_per_col - 2), 0);
- R_cont_rel(0, (dots_per_line - 2));
- R_cont_rel((2 - dots_per_col), 0);
+ R_move_abs(cur_dot_col + 1, (cur_dot_row - 3));
+ R_cont_rel(0, (4 - dots_per_line));
+ R_cont_rel((dots_per_col - 3), 0);
+ R_cont_rel(0, (dots_per_line - 3));
+ R_cont_rel((3 - dots_per_col), 0);
/* Draw black box */
R_standard_color(black);
- R_move_abs(cur_dot_col + 3, (cur_dot_row - 2));
- R_cont_rel(0, (4 - dots_per_line));
- R_cont_rel((dots_per_col - 4), 0);
- R_cont_rel(0, (dots_per_line - 4));
- R_cont_rel((4 - dots_per_col), 0);
- /* Color ramp box */
+ R_move_abs(cur_dot_col + 2, (cur_dot_row - 3));
+ R_cont_rel(0, (5 - dots_per_line));
+ R_cont_rel((dots_per_col - 5), 0);
+ R_cont_rel(0, (dots_per_line - 5));
+ R_cont_rel((5 - dots_per_col), 0);
- /* get separate color for each pixel */
- /* fisrt 5 pixels draw null color */
+ /* Color ramp box */
+ /* get separate color for each pixel */
+ /* fisrt 5 pixels draw null color */
y_box[1] = -1;
y_box[3] = 1;
- fprintf(stdout, "dots_per_line: %d\n", dots_per_line);
+ x_box[2] = (dots_per_col - 6);
+ x_box[4] = (6 - dots_per_col);
+
+ G_debug(1, "dots_per_line: %d", dots_per_line);
+
for (r = 0; r < dots_per_line - 6; r++) {
if (r <= 4)
G_set_d_null_value(&dval, 1);
@@ -265,7 +264,7 @@
dval =
dmin + (r - 1) * (dmax - dmin) / (dots_per_line - 6 - 5);
D_d_color(dval, &colors);
- R_move_abs(cur_dot_col + 4, (cur_dot_row - 3) - r);
+ R_move_abs(cur_dot_col + 3, (cur_dot_row - 3) - r);
R_polygon_rel(x_box, y_box, 5);
}
}
@@ -274,5 +273,5 @@
R_close_driver();
- return 0;
+ exit(EXIT_SUCCESS);
}
More information about the grass-commit
mailing list