Navigation toolbar redraw button

I think it's important to always have an easy way of zooming

    > out to show the full plot, so if you implement your saved
    > view idea and don't want to add a 'fit to full data' button,
    > I think having a 'fit to full data' checkpoint automatically
    > added is important. It might be even be worth looking into
    > cacheing the full view to speed its rendering. That way, you
    > could quickly navigate by zooming to full and then using a
    > rectangle zoom to your area of interest.

Combining my original thoughts with yours and Charles, then. How
about the following? Allow the user to select the old style toolbar
from a config file, but the new toolbar would

  1) lose all the left, right, up down buttons, in favor of a single
     'hand' icon that allows you to move the view limits by 'grabbing
     them in the axes and moving them around. With x or y key pressed
     the pan motion will be contained to the respective axis. The
     mouse button which activates this in the axes should be easily
     configurable so as to not class with application developers.

  2) have a zoom in and zoom out button that work on both axis
     symmetrically unless the 'x' or 'y' modifier keys are pressed in
     which case work only on that axis. Allow similar functionality
     with the mouse in the axes, eg wheel mouse, as Charles suggested
     or mouse-3 as vtk interactor windows use. Then you could pan and
     zoom in an axes without ever removing your mouse from the axes

  3) have a zoom rectangle tool that allows you to zoom to a selected
     rectangle, constrained to maintain axis ratio if CTRL is pressed

  4) have a zoom to data button that changes viewlim to incorporate
     entire dataset

  5) use the 'views' navigation with forward / mark / and back buttons
     that allows you to navigate between views

  6) lose the redraw button, obsolete

  7) have a savefig button which allows you to set the dpi, filename
     and backend, so you can output with ps, gd, or gtk backend

  8) close window unchanged.

Further comments?


Hi John,

New navbar sounds good, esp. replacing arrows with hand. Default to hand
mode (maybe even revert after completing an operation with other modes).
I'm not so happy with all the modifier keys.

I'd have one modifier key, Shift, that constrains the motion, and
everything be drag-based:
  * In pan mode, Shift drag restricts motion to whichever the
    principle mouse direction is. I can keep it within 45 degrees
    myself, and this allows me to easily change x, then y.

  * In zoom mode, Shift drag zooms along principle mouse
    direction. Otherwise zooms as radial distance of drag.
    Mousewheel zoom zooms both axes.

  * Zoom rectangle: Shift-drag maintains axis ratio in
    drawing the rectangle.

I might even suggest replacing the "pan" and "zoom" buttons by just using
left-click and right-click for the drag. That way I can change tasks
without mousing around. Zoom-rectangle could even be middle-click.



Charles R. Twardy
Monash University
Computer Sci. & Software Eng.
+61(3) 9905 5823 (w) 5146 (fax)