[GRASS-dev] Re: wxGUI: edit button
Michael Barton
michael.barton at asu.edu
Sun Aug 3 01:36:49 EDT 2008
On Aug 2, 2008, at 3:31 PM, Martin Landa wrote:
> Michael,
>
> I am just checking out r32469. Thanks for the fixes!
>
> What I don't like so much is 'edit' button, I don't see any reason for
> that button, it just simulates right-click -- pop-up menu. Also dialog
> for changing opacity is not necessary in my eyes - switching from text
> to spin mode seems to me being better. Just subjective point of
> view...
Right-click contextual menus are fine and very handy. However, widely
accepted interface standards call for also exposing functions in
contextual menus visually in some way--in a menu, button, or other
control--for several reasons. Right-click functions are visually
hidden. To 'discover' them, a users needs to click all over an
interface to see what parts respond and what parts do not. And some
users might not know to even try this trick--leading to considerable
frustration. Although most mouses have at least 2 buttons these days,
not all laptops have dual buttons--and no Mac laptop has dual buttons.
Of course you can simulate a right-click with 2 hands (holding down a
modifier key), but you should be able to access a function with one
hand. This is equally important for manually impaired users.
Conceptually, a GUI should avoid functions for which there is no
visual clue to their existence--though non-visual shortcuts also can
be available (e.g., right-click contextual menus and hot keys).
Adding the button solves several other annoying bugs. I can turn off
the tree style to allow for direct item name editing. This would
regularly pop up an editing text box when it wasn't wanted--and
sometimes was very difficult to get rid of. Also, the spin control for
opacity looked kind of clunky, as you pointed out a long time ago
(which got me thinking about better ways to do this).
This puts all the layer modification functions in one easily
accessible place--your nice menu. The right click is still functional
for those who prefer that short-cut as is double-clicking to access
the properties dialog (and the rename box no longer pops up by
accident).
A couple of ideas to run by you. Do you think users would like to see
the opacity level in the layer text? Or is it sufficient to pop up the
opacity dialog. It's easy enough to add "nnn% opacity" to each layer
name, but it makes it that much longer. Also, I could do an icon
button instead of the text "Edit...". I might try one and see which
looks better.
One problem with using the treemixin.DragAndDrop. If you are not
dropping onto a layer (i.e., above or below the tree), nothing is
passed to the OnDrop method. Normally, this is no problem. But if you
create a group, it is possible to get into a situation where you
cannot create anything outside the group. I've made a work around, but
it is not obvious. If you select a group that is closed (i.e., not
expanded) and click to add a layer, it will behave like a non-group
layer and the new layer will be inserted above the group. However, it
you select a group that is expanded and click to add a layer, the new
layer will go into the group. I'm not happy with a non-obvious
solution to this, but can't think of a better solution. Maybe you can
come up with something. Currently, the rules are:
1) add a layer and no other layer is selected (normally only happens
when you start to build the layer tree): new layer is prepended to the
top of the tree.
2) add a layer and a map/command layer is selected (i.e., not a group
but it could be IN a group): new layer is inserted directly above the
selected layer
3) add a layer and a group is selected and the group is NOT expanded:
new layer is inserted directly above the selected group
4) add a layer and a group is selected and the group IS expanded: new
layer is prepended to the top of the group's children
5) drag and drop a layer on top of another map/command layer (i.e, not
on a group but it could be IN a group): new layer is inserted directly
above the selected layer
6) drag and drop a layer on top of a group: new layer is prepended to
the top of the group's children
7) drag and drop a layer outside the tree (i.e, not on any existing
layer): layer is not moved.
Finally, there have been some lack of robustness with the interaction
of drag-and-drop and rendering. I don't know if they are fixed or not
yet as I haven't had enough time to do attempt to break this. I hope
with your changes and with mine, we've solved these, but I'll try it
out some more. One problem that still remains is that 2 rasters no
longer overlay so that the bottom one shows through the nulls. I don't
know if this is an issue with the new preferences or with something in
the rendering. I'll try to follow this up as I test this.
Cheers
Michael
>
>
> Martin
>
> --
> Martin Landa <landa.martin gmail.com> * http://gama.fsv.cvut.cz/
> ~landa *
More information about the grass-dev
mailing list