WINWATCH Name
      
       WINWATCH Purpose
      
       Zoom part of the current window in a display window.
Category
Calling Sequence
      
       winwatch, in Inputs
Keyword Parameters
Keywords
        
         /INIT means select area to zoom. 
        
         MAG=mag Set zoom mag factor on /INIT (def=5).
                  /CLEANUP Remove the zoom window.
        
         /NOOUTLINE Do not outline watch window in input window.
        
         COLOR=clr Outline color (remembered on next call).
        
         TITLE=tt Watch window title (/INIT only).
        
         /SAVE save the contents of the watch windows after
          
           they are updated.  They are saved as PNGs with the title
                      and a count as the names.
        
         /RESET_COUNTERS will reset save count for each window
          
           so the next save will start at 001, then returns.
        
         GET=s_out  Get internal state in a structure and return.
        
         SET=s_in   Set internal state from a structure and return.
          
           Sets only those values given in the structure.
          
           May set fewer than 10 values but not more.
        
         ARRAY=arr  Give array corresponding to full displayed
          
           image, statistics will be listed for each subimage.
        
         SUBWIN=subwin If used with ARRAY=arr then return a
          
           structure with the subarrays for each watch window.
Outputs
Common Blocks
      
       winwatch_com Notes
      
       Notes: Call this routine after graphics commands to
      
       display a part of the window zoomed in a display window.
      
       Can change the area any time by calling winwatch,ind,/init.
      
       Add a call to winwatch at the end of a command to make
      
       it easy to use the up arrow to repeat commands.
              Internal state structure:
        
         All items are 10 element arrays (up to 10 watch windows).
        
         flag[i]: 1 if watch window i is in use, else 0.
        
         win_in[i]: Input window index for watch window i.
        
         win_out[i]: window index of watch window i.
        
         mag[i]: Mag factor for watch window i.
        
         x1[i], y1[i]: Subarea start pixel for watch window i.
        
         dx[i], dy[i]: Subarea x and y size for watch window i.
        
         sv_cnt[i]: Save count for watch window i.
        
         sv_nam[i]: Base name of saved image for watch window i.
Modification History
      
       R. Sterner, 2007 Jan 23 
      
       R. Sterner, 2007 Feb 08 --- Allowed multiple watch windows.
      
       Also may give multiple windows as an array.  Default for
      
       display or cleanup are all initialized windows.  Added
              window titles.  Now may save windows.
      
       R. Sterner, 2007 Feb 09 --- Checks that window exists before deleting.
              Added /reset_counters.
      
       R. Sterner, 2007 Feb 12 --- Added GET and SET.
      
       R. Sterner, 2007 Feb 12 --- Recreated watch windows when needed.
      
       R. Sterner, 2007 Feb 23 --- Fixed default watch win for /init.
      
       R. Sterner, 2007 Apr 03 --- Added new keyword ARRAY=arr.
      
       R. Sterner, 2007 Apr 05 --- Switched to keyword NOOUTLINE.
      
       R. Sterner, 2007 Apr 05 --- Remember outline color.
      
       R. Sterner, 2010 Jun 07 --- Converted arrays from () to [].
      
       R. Sterner, 2010 Aug 12 --- Added SUBWIN to return watch window data.
  
 Copyright (C) 2007, Johns Hopkins University/Applied Physics Laboratory
  
 This software may be used, copied, or redistributed as long as it is not
  
 sold and this copyright notice is reproduced on each copy made.  This
  
 routine is provided as is without any express or implied warranties
  
 whatsoever.  Other limitations apply as described in the file disclaimer.txt.