This topic describes how to write custom functions to handle selection change events in an ENVIView.
                         Arguments
            View
            A reference to an ENVIView object in which the selection change event occurred.
            Graphic
            The graphic to be selected or un-selected.
            Mode
            A value representing the mode used for the current selection. Possible values are:
                             - 0: Unselect
- 1: Select
- 2: Toggled selection
- 3: Additive
WasSelected
            A value of 1 indicates an item was selected prior to the event; a value of 0 indicates an item was not selected.
            Example
            The following example opens and displays two different color combinations of the same raster, each in a separate view. Pan in the first view, then pan in the second view. Select the first view again, and the yellow snail trail in the Overview window will redraw and clear the trail where you just panned.
            Copy and paste the following code into a new file named ExampleAPIEventsSelection.pro, compile it, then run it.
            FUNCTION ExampleAPIEventsSelectionChangeHandler, View, $
              graphic, mode, isSelected
              IF ISA(graphic) && ISA(graphic, 'ENVIRASTERLAYER') && ~isSelected THEN BEGIN
              View.ClearSnailTrail
              ENDIF
              RETURN, 1 
            END
             
            PRO ExampleAPIEventsSelection
              
              e = ENVI()
             
              
              file = FILEPATH('qb_boulder_msi', ROOT_DIR=e.ROOT_DIR, $
                SUBDIRECTORY = ['data'])
              raster = e.OpenRaster(file)
             
              
              view1 = e.GetView()
              v1layer1 = view1.CreateLayer(raster)
              v1layer2 = view1.CreateLayer(raster, /CIR)
              view1.SHOW_OVERVIEW = 1
              view1.SHOW_SNAIL_TRAIL = 1
             
              
              view2 = e.CreateView()
              v2layer1 = view2.CreateLayer(raster, /CIR)
              v2layer2 = view2.CreateLayer(raster)
              view2.SHOW_OVERVIEW = 1
              view2.SHOW_SNAIL_TRAIL = 1
              view1.SetProperty, SELECTION_CHANGE_HANDLER='ExampleAPIEventsSelectionChangeHandler'
              view2.SetProperty, SELECTION_CHANGE_HANDLER='ExampleAPIEventsSelectionChangeHandler'
            END