# Function: zoomtool

## CALL:

zoomtool zoomtool(1) zoomtool(1,option) zoomtool(N,<property1>,<value1>,<property2>,<value2>,...) zoomtool('set',hax,<property1>,<value1>,<property2>,<value2>) zoomtool(hax,arg1,arg2,...) is equivalent to : zoomtool(arg1,arg2,...'axes',hax)

## DESCRIPTION:

Install Modelit zoomtool.

## INPUT:

N | any |
    mode of operation, available values:
     1 install zoom utility (default)
     2 zoom in using rbbox
     3 zoom back using history of zoom windows
     3.1 Maximise  X&Y
     3.2 Maximise  X
     3.3 Maximise  Y
     4 clear zoom history
     5 add current zoomwindow to menu
     6 toggle sliders on/off
     7 delete stored zoomwindows
     8 temporaly disable zoom buttond
     9 reinstall zoom buttond
     10 zoom out (in this case axis&factor are supplied with arg2&arg3)
     11 zoom to predefined values
        Example: zoomtool(11,'axes',hax,'xlim',xlim,'ylim',ylim)
     12 execute callback of x slider
     13 execute callback of y slider
     14 set up X movie
     16 force execution of synchronisation callback
     17 pretend current view is result of zoom action (enables undo,
        xsync, ysync, scale, move, etc)
     18 return zoomhandle
     19 change view so that specific hg object fit
     20 center view on selected objects, do not resize
option | any |
    Structure with name/value pairs (or specify name value pairs as
    seperate arguments). Specific zoom settings
        opt.axes:
            handle van zoom axes
        opt.parent:
            uses 'axes' or 'window'(default: axes)
                       axes: install buttondown on axes
                       window: install windowbuttondown on figure
        opt.xsync:
            handles of synchronized x-axes
        opt.ysync:
            handles of synchronized y_axes
        opt.patchsync:
            handle of patch object (usually in overview map)
        opt.scale:
            string containing name of function to call after scaling
            coordinates.
                     (will also be added to windowresize function)
                     WARNING: opt.scale installs a resize function on
                     top of current resize function. when axes is
                     deleted this resize function is not disabled
            This function is typically used to recompute xdata and
            ydata values of points that must be plotted a few pixels
            apart from a specific position.
        opt.prescale
            similar to scale but called before syncing the current
            axes with other axes' as specified in xsync and ysync.
            This is typically needed if xlim/ylim are changed, as is
            the case with MapViewer
        opt.move:
            string containing name of function to call after shifting
            coordinates
                 ============
                 When ZOOMING on axes : first call opt.move, then call opt.scale
                 When RESIZE on window: only call opt.scale
                 When MOVE on axes    : only call opt.move
                 ============
            See also "zoomtool/exitaction"
            Typical signature of call:
                opt.move([],ISSCALE,arg1,arg2,...), where ISSCALE is
                set to true if a call to scale function will follow
                shortlty. if "move" and "scale" do overlapping
                actions it is a good policy to use argument ISSCALE
                for early cancelling of move action.
        opt.shiftclick:
            function that is called after shift+click (windows)
                     example: opt.shiftclick='rbrect_init(1,0,''line'');'
        opt.dblclick:
            function called when doubleclicked in axes
        opt.leftclick:
            "leftclick" mean clicking in a normal way (left mouse
            button) without movement of te mouse.
            specify function (hint: to prevent zooming at left
            mouseclick specify ' ')
        opt.xmovie:
            set to 'on' if Xmovie capability is needed (default: 'off')
        opt.label:
            Label van hoofd menu (default: Zoom)
        opt.visible:
            Label voor zoom 'on' or 'off'
        opt.fa_zoom:
            if 1: keep fixed aspect ratio
        opt.keypress:
            if 1: enable zooming by key press (this will
                     overwite keypress function for current window)
        opt.wheel:
            if 0: disable mousewheel while zooming
                     if 1: enable mousewheel zooming (standard mode)
                     if <1: enable mousewheel zooming (slow)
                     if >1: enable mousewheel zooming (fast)
        opt.interactive:
            if false: disable interaction with the mousewheel, keys and mouse
            if true: enable interaction with the mousewheel, keys and mouse
        opt.xrange:
            zoom range (x-axis)
        opt.yrange:
            zoom range (y-axis)