[GRASS5] Zoom

Carl Worth cworth at east.isi.edu
Fri Apr 19 12:33:48 EDT 2002


I won't comment on what should or should not be done for the release,
(other than to say that Radim's suggestion does seem much more
consistent than the current behavior).

But, to improve d.zoom for the future, I would make a couple of
changes to the suggestions by Radim:

I don't think an initial menu that chooses between zoom/pan is very
useful. This requires two extra clicks for every complete zoom
operation, (one to choose zoom instead of pan, and another to finally
quit).

Instead, I would make d.zoom and d.pan be separate commands.

And, ideally, I would also like to have a mechanism by which zoom and
unzoom could be performed with a one-button pointer, (I often use
GRASS on handheld computers with a touchscreen). One thing that would
make this quite nice would be a mechanism for doing a click-and-drag to
select rectangular regions rather than the current two-click
style. That will require changes to the display driver, (simply needs
a function to request a rectangle rather than a point).

Finally, as a general point coming from a developer interested in
designing better user interfaces for GRASS: If higher-level
user-interfaces are going to be able to make use of GRASS commands
rather than re-implementing everything, then those commands should
provide functionality without interface, (think mechanism not
policy). For example, d.zoom should provide the functionality of
zooming in once. Things such as repeating another zoom, canceling the
last zoom, etc. should be up left available for the high-level
user-interface designer to implement as appropriate.

The current, (and proposed), d.zoom commands don't follow this
guideline, and hence would be of limited use to a higher-level
user-interface.

In the ideal case, what I would like to see is:

	d.pan -- Click button one to pan center point
	d.zoom -- Click-and-drag button one to zoom in
	d.unzoom -- Click button one to unzoom step-wise

Actually, d.zoom could also have a stepwise zoom-in for single clicks,
(or very small rectangles), and d.unzoom could even allow a
click-and-drag rectangle to determine the amount of unzoom.

Reactions?

-Carl

-- 
Carl Worth                                        
USC Information Sciences Institute                 cworth at east.isi.edu
3811 N. Fairfax Dr. #200, Arlington VA 22203		  703-812-3725


On Apr 16, Helena Mitasova wrote:
 > Radim
 > 
 > I was one of the advocates for the change in d.zoom. However at this point
 > I would suggest just to change the buttons for unzoom and quit to make it
 > consistent with other GRASS d.* programs. Your suggestions are very good but
 > as
 > I understand it there is only few days left before the release and that is
 > not enough for testing.
 > 
 > It would be good to hear from others,
 > 
 > Helena
 > 
 > Blazek wrote:
 > 
 > > Hi,
 > >
 > > it was already mentioned in grass list few times, that d.zoom could be
 > > modified, because I also think so, here is my proposal how to do that:
 > >
 > > Prerequisities (for discussion):
 > > 1. Most improtant zoom operations:
 > >    - zoom in by window
 > >    - zoom out by point
 > >    - pan by point
 > > 2. Right button used for "Quit/Go to upper menu". Right button is already
 > >    used for quit by many functions in v.digit.
 > > 3. d.zoom and Zoom in v.digit must be identical.
 > > 4. Menu should not have more than 2 levels, more levels are confusing.
 > > 5. No need to ask always user if he realy wants to do what he already
 > >    selected.
 > >
 > > Proposed behaviour for d.zoom:
 > >
 > > Main menu:
 > > L:Zoom menu
 > > M:Pan
 > > R:Quit
 > >
 > > Zoom menu - Mode 1:
 > > L: 1. corner + switch to mode 2.
 > > M: Unzoom
 > > R: Main menu
 > >
 > > Zoom menu - Mode 2:
 > > L: 1. corner (reset)
 > > M: 2. corner
 > > R: Main menu



More information about the grass-dev mailing list