[GRASS5] New gui.tcl generic user interface

Cedric,

that's beautiful. Thanks for your great work.
To make it even prettier, I suggest, just like I would for
gis, to use non-bold fonts in the GUI forms. This
looks more elegant and fits more text in one line.
Look at NVIZ: it just looks nicer!

Actually, this would probably be the time to create a module
that lets users choose their prefered screen fonts (GUI and
console output), GUI colours and other things such as
tear-off menus True/False in gis.m.
This will also be useful once Tcl/Tk 8.5 comes out with a
lot more options on how to customize GUI look and feel.

Both gis.m and the runtime GUIs should in my opinion respect
these settings that should be saved per mapset.

Regarding GUI form settings: you just hinted me to the fact
that it would be useful to save both GUI size and coordinates
as well as values for options so they can be recalled.
It would be great if, e.g. there would be a little icon "restore last
settings" that would automatically fill in those
saved option values. This would probably also require a "Clear all
settings" button.

How did you go about default size for runtime GUIs? Right now
this is awful and you need to resize practically every form
to be able to use it.

Maybe it would be worth saving the size, positions and option values of
all open forms upon user logout and restoring everything on the
next login. At least gis.m should provide such session management.

Best,

Benjamin

----- Originalnachricht -----
Von: Cedric Shock <cedricgrass@shockfamily.net>
Datum: Dienstag, 14. März 2006 4:34 am
Betreff: [GRASS5] New gui.tcl generic user interface

Good evening,

I have hammered out a new gui.tcl. This is the file that produces
the generic
graphical user interface for all of the other programs.

Screenshots:

g.region, as it first comes up:
http://www.shockfamily.net/cedric/grass/newgui1.png

Sample output:
http://www.shockfamily.net/cedric/grass/newgui2.png

A fake test-script that shows guisections for a command like g.region
http://www.shockfamily.net/cedric/grass/newgui3.png

Output showing errors and progress bar:
http://www.shockfamily.net/cedric/grass/newgui7.png

File selection, very wide due to extremely long description text.
This module
would benefit from labels:
http://www.shockfamily.net/cedric/grass/newgui4.png

Multiple selection, same deal:
http://www.shockfamily.net/cedric/grass/newgui5.png

Dropdown box, nothing has changed:
http://www.shockfamily.net/cedric/grass/newgui6.png

Changes:

Options and Output are now displayed in tabs instead of panes

There is a new command label which shows the current command as it
is edited.
It has a button for copying the command to the clipboard. (Might be
worth
noting in wish 2074)

Programs reporting guisections will have a tab made for options in
each
toplevel section. Finer section grouping is obeyed, but no labels
are created
or displayed.

The options frames scroll with the mouse wheel.

If possible the window opens wide enough to display its contents.
This is
accomplished by adding a binding to the scrolled frames which
report their
widths to their parent frames.

Programs using the label and description attributes on options or
tabs will
now have the description displayed as balloon help.

The help button is not enabled if no help file exists for the
program. (closes
wish 3799)

The type and required text for options is displayed right justified.

Module information is displayed differently. Both the label and
description
are displayed if available. Module is displayed with an icon if a
matching
one can be found in $(GISBASE)/etc/icons. See /gui/icons/README for
more
information.

Buttons for file selection are displayed with an open file icon.

Buttons for selecting database elements and symbols are displayed
with an icon
if a matching one can be found in $(GISBASE)/etc/icons.

It is now possible to determine when a command has finished
executing. Output
text has an added graphic along with the command text when the
command is
run. When the command finishes another graphic is displayed along
with the
text "Done."

Testing:
Ran lots of different commands both from the console and from
gis.m. Only
tested against tcl/tk 8.4 on Ubuntu Linux.

Patch:
Patch of lib/gis/gui.tcl and gui/Makefile is attached

gui.tcl also needs icons. To get the icons directory do the
following in
grass6/:
tar xvfz gui-icons.tar.gz

I believe a "make install" is all that is needed, but I'm not sure.

Enjoy,

Cedric Shock