[GRASS5] Directions for next generation UI

Glynn Clements glynn at gclements.plus.com
Tue Jan 3 12:11:06 EST 2006

Michael Barton wrote:

> -Needs to be modified to be used in GUI. High priority:

> display/d.rast.edit (needs to accept coordinate input)

If you're referring to a program to allow you to modify raster cells
(i.e. map[x,y]=val) from the command-line, I think that's really a
completely different module (r.edit?).

[Doing this for individual cells is easy enough using r.mapcalc, but a
version which takes a file of x,y,val records might be useful.]

The existing d.rast.edit really falls into the "needs GUI version"
category, IMHO.

> lib/display

Usage of R_get_location_with_* in lib/display comes down to three

int get_win_w_mouse() (get_win.c)

	Prompt the user to select a rectangular region using the mouse.
	Used by: d.frame

int ident_win() (ident_win.c)

	Select a "window" (aka "frame", as in d.frame) using the mouse.
	Used by: d.frame

D_popup() (popup.c)

	Create a popup menu on the monitor, return index of selected entry
	Used by: d.rast.edit, d.zoom

Regarding the first two, do we really need "frames"? I assume that
they date back to the use of graphics terminals (Tektronix 4105 etc)
before the advent of windowing systems meant that you could have
multiple monitor windows.

Which modules still use them? How many of those /don't/ fall into the
category of "needs GUI version"?

Regarding the third, d.rast.edit needs a standalone GUI version, and
d.zoom should be an integral feature of d.m.

> Enhance png driver and g.pnmcomp so that they can be used in new display
> monitor.

I don't think that any enhancements are strictly necessary (although
some might be useful).

BTW, you use the environment variable MONITOR_OVERRIDE to force a
display command to use a specific monitor regardless of the MONITOR
setting in $GISRC.

> -Need GUI versions. May require special widget creation. High priority but
> not sure what to do immediately.
> raster/r.digit
> vector/v.digit (merge r.digit and v.digit?)
> imagery/i.ask (what is this?)

It appears to be a "map selector" dialog using the monitor. AFAICT,
it's only used by d.ask. IOW, similar to D_popup().

> Get all of GRASS on all platforms to the same version of TclTk. What about
> 8.4.10 with expanded widget set (e.g., incl. iwidgets, tclsqlite, etc.)?
> This would require some update of NVIZ I think.

I think that we should make a reasonable effort to support all recent
(8.x) versions of Tcl/Tk, without requiring too many add-ons. We need
to accept that compatibility issues may restrict which versions of
Tcl/Tk are suitable for NVIZ on some platforms. d.m should work with
whatever version the user needs to use for NVIZ.

Glynn Clements <glynn at gclements.plus.com>

More information about the grass-dev mailing list