# Catalyst Source-Utilities Directory On-Line Help

This page was created by the IDL library routine `mk_html_help`. For more information on this routine, refer to the IDL Online Help Navigator or type:

         ? mk_html_help

at the IDL command line prompt.

Last modified: Sun Oct 26 20:43:12 2008.

# List of Routines

- CATCHECKDEFAULT
- CATCOLLECTSUPERCLASSNAMES
- CATDESTROYDEFAULTS
- CATEVENTDISPATCHER
- CATGETDEFAULT
- CATGETGRAPHICSWINDOW
- CATGETTOPOBJECT
- CATHELPDEFAULTS
- CATKILLNOTIFY
- CATREALIZENOTIFY
- CATREFRESHDRAW
- CATRESETSYSVARS
- CATSETDEFAULT
- CATVIEWCONTENTS
- CAT_ARROW
- MAKE_CATALYST_HTML_FILES
- MAKE_CATLIB_HELP
- OBJ_ISA_VALID
- SYSTEMCOLORS

# Routine Descriptions

## CATCHECKDEFAULT

[Next Routine] [List of Routines]

     NAME:
           CATCHECKDEFAULT

     PURPOSE:

           This function enables the caller to test system settings. The intention
           is to hide the mechanics of default storage from the caller. Use the
           CatSetDefault procedure to set up the default variable before attempting
           to retrieve it.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING_SEQUENCE:

           result = CatCheckDefault (defaultName)

     INPUT_ARGUMENTS:

         defaultName:   The name of the system setting you are checking.

     OUTPUT_KEYWORDS:

         VALUE:         The value of the defaultName, if it exists.

     RETURN_VALUE:

         result:         A 1 if the system setting exists, or a 0 if it does not exist.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12th March 2003
           Modified to use the CatGetDefault SUCCESS flag. 25th July 2006. DWF.
           Added VALUE keyword. 25th July 2006. DWF.

(See C:\IDL\Catalyst\source\utilities\catcheckdefault.pro)

## CATCOLLECTSUPERCLASSNAMES

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATCOLLECTSUPERCLASSNAMES

     PURPOSE:

           The purpose of this utility routine is to collect all the Catalyst object's
           superclass names and return them as the result of the function. The names
           IDL_CONTAINTER and IDLITCOMPONENT are removed from the names array before
           the names array is returned.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Catalyst Documentation.

     CALLING_SEQUENCE:

           superclassNames = CatCollectSuperclassNames(object)

     ARGUMENTS:

           object:           The object reference to check (object reference). (This may also be the object
                             classname.)

     RETURN_VALUE:

           superclassNames:  A string array listing the classname of the object (in position 0)
                             and the names of all of the superclasses for that object (in subsequent positions).

     EXAMPLE:

           IDL> theObject = Obj_New('CatImage2d', Loaddata(7))
           IDL> Print, CatCollectSuperclassNames(theObject)
                CATIMAGE2D CATIMAGEDATA CATDATAATOM CATATOM CATCONTAINER

     MODIFICATION_HISTORY:

           Written by: David Fanning, 5 January 2004.

(See C:\IDL\Catalyst\source\utilities\catcollectsuperclassnames.pro)

## CATDESTROYDEFAULTS

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATDESTROYDEFAULTS

     PURPOSE:

           This procedure enables the caller to clean up system settings. The intention
           is to hide the mechanics of default storage from the caller.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           CatDestroyDefaults

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12th March 2003

(See C:\IDL\Catalyst\source\utilities\catdestroydefaults.pro)

## CATEVENTDISPATCHER

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CatEventDispatcher

     PURPOSE:

           The purpose of this utility routine is to intercept the event
           callbacks from widgets and pass the "event" on to an object
           EventHandler method. The EventHandler method must be written
           with one positional parameter: the event structure that comes
           from the widget. Note that the "name" of the object is added
           as a field in every event structure.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           This routine is called by the IDL system, not by a user.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 13th March 2003.
           Added EVENT_NAME field to each event object, which contains the name of the widget event. 6 Feb 2004, DWF.
           Made a change in which the Event_Method is retrieved from the object causing the event, rather
             than from the event object itself. 19 July 2004. DWF.
           Removed reference to TOP_OBJECT. 22 January 2005. DWF.

(See C:\IDL\Catalyst\source\utilities\cateventdispatcher.pro)

## CATGETDEFAULT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATGETDEFAULT

     PURPOSE:

           This function enables the caller to get system settings. The intention
           is to hide the mechanics of default storage from the caller. Use the
           CatSetDefault procedure to set up the default variable before attempting
           to retrieve it.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           result = CatGetDefault (DefaultName)

     ARGUMENTS:

         defaultName:   The name of the system setting you are getting the value for.

     KEYWORDS:

         SUCCESS:       An output keyword set to 1 if a system setting with this name was
                        found and its value returned successfully. Otherwise, the value is
                        set to 0.

     RETURN_VALUE:

         result:        The value of the system setting.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 6th March 2003
           Added SUCCESS keyword 16 December 2004. DWF.

(See C:\IDL\Catalyst\source\utilities\catgetdefault.pro)

## CATGETGRAPHICSWINDOW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CatGetGraphicsWindow

     PURPOSE:

           The purpose of this utility routine is to allow objects lower down in a graphics
           hierarchy to obtain the object reference of a drawable graphics window (either
           a PIXMAPWIDGET or a DRAWWIDGET or a subclass of one of these) in the graphics
           hierarchy. The FIRST_PARENT of each object in the hierarchy is traversed in the
           search for a PIXMAPWIDGET or a DRAWWIDGET object.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           graphicsWindowObject = CatGetGraphicsWindow(object)

     RETURN VALUE:

           graphicsWindowObject:   The first PIXMAPWIDGET or DRAWWIDGET object found in the object's hierarchy.
                     A null object is returned if a PIXMAPWIDGET or DRAWWIDGET cannot be found.

     INPUTS:

           object:   The object which is requesting information and in whose hierarchy the
                     search is conducted. This object must be sub-classed from 'CATATOM'.

     KEYWORDS:

          None.

     MODIFICATION_HISTORY:

           Written by: David W. Fanning, 2 October 2008.

(See C:\IDL\Catalyst\source\utilities\catgetgraphicswindow.pro)

## CATGETTOPOBJECT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATGETTOPOBJECT

     PURPOSE:

           The program retrieves the object at the top of an object heirarchy, rooted at the
           specified object.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Utility Programming.

     CALLING_SEQUENCE:

           topObject = CatGetTopObject(thisObject)

     INPUT_ARGUMENTS:

         thisObject:     The object where the search for the top object is to start. The
                         program traverses the object heirarchy of thisObject to find the
                         top object.

     KEYWORDS:

         None.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12th March 2003

(See C:\IDL\Catalyst\source\utilities\catgettopobject.pro)

## CATHELPDEFAULTS

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATHELPDEFAULTS

     PURPOSE:

           This procedure enables the caller to explore any defaults existing in
           the defaults system.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING_SEQUENCE:

           CatHelpDefaults

     KEYWORDS:

           OUTPUT:      An output keyword. If set to a named variable, returns the output in
                        a string array instead of printing output to command log.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 17th April 2003
           Added OUTPUT keyword. August 18, 2005. DWF.

(See C:\IDL\Catalyst\source\utilities\cathelpdefaults.pro)

## CATKILLNOTIFY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CatKillNotify

     PURPOSE:

           The purpose of this utility routine is to make sure objects in the
           object hierarchy properly destroy themselves when the widget is
           destroyed. All object widgets will be assigned this routine to
           be the Kill_Notify routine. If a user-defined Kill_Notify method
           is defined for the widget object (and the widget object is subclassed
           from WidgetAtom), it will be called before the object is destroyed.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           This routine is called by the IDL system, not by a user.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12 June 2002.

(See C:\IDL\Catalyst\source\utilities\catkillnotify.pro)

## CATREALIZENOTIFY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CatRealizeNotify

     PURPOSE:

           The purpose of this utility routine is to intercept the NOTIFY_REALIZE
           callback from widgets and pass the notification on to a NOTIFY_REALIZE method.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           This routine is called by the IDL system, not by a user.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12 June 2002.
           Changed the notification method from a TIMER event to a PSEUDO event. 15 Dec 2004, DWF.

(See C:\IDL\Catalyst\source\utilities\catrealizenotify.pro)

## CATREFRESHDRAW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATREFRESHDRAW

     PURPOSE:

           The purpose of this utility routine is to allow objects lower down in a DRAW
           hierarchy to request DRAW events from object higher in the hierarchy. For example,
           if an IMGAXIS object needed to refresh itself, it would need to call the DRAW
           method on the DRAWWIDGET at the top of the graphics hierarchy. It couldn't just
           draw itself. There may be one or more objects between the object that requests a
           DRAW and the one that needs to perform the DRAW.

           If the "STOP_AT" keyword is not specified, the redraw request will
           progress to the top of the object hierarchy. If the final object is
           a DRAWWIDGET, the DRAW method is called with the ERASE_WINDOW keyword set.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           CatRefreshDraw, object, STOP_AT=thisObjectClass

     INPUTS:

           object:   The object which requires the refresh. This must be sub-
                     classed from 'CATATOM'.

     KEYWORDS:

          NOERASE:       If the object whose draw method is called is a DRAWWIDGET object,
                         then the draw method is called with the ERASE_WINDOW keyword set.
                         By setting this NOERASE keyword, you will prevent the ERASE_WINDOW
                         keyword from being set.

          TARGET_WINDOW: The target display window object. Sent to the DRAW method of any
                         DRAWWIDGET that is found. Ignored in any other case.

          REQUESTER:     Set this optional keyword equal the the object reference of the object
                         requesting the DRAW.

          STOP_AT:       Set this keyword to the object class name at
                         which the search is to stop.

                         For example, if "DrawWidget" is specified, the draw will
                         propogate up the hierarchy until a DRAWWIDGET object
                         (or a sub-class) is encountered. This object will have its
                         DRAW method called just before this routine completes.

     NOTES:

           Note that any PIXMAPWIDGET encountered during traversal will be refreshed.

     MODIFICATION_HISTORY:

           Written by: David W. Fanning, 21 July 2003.
           Added TARGET_WINDOW keyword, 11 July 2005. DWF.

(See C:\IDL\Catalyst\source\utilities\catrefreshdraw.pro)

## CATRESETSYSVARS

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATRESETSYSVARS

     PURPOSE:

           The program resets all plotting and mapping system variables to their default values.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING_SEQUENCE:

           rCatResetSysVars

     INPUT_ARGUMENTS:

         None.

     KEYWORDS:

         None.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12th March 2003

(See C:\IDL\Catalyst\source\utilities\catresetsysvars.pro)

## CATSETDEFAULT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSETDEFAULT

     PURPOSE:

           This function enables the caller to set existing system settings. The intention
           is to hide the mechanics of default storage from the caller.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           CatSetDefault, defaultName, value

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12th March 2003

(See C:\IDL\Catalyst\source\utilities\catsetdefault.pro)

## CATVIEWCONTENTS

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATVIEWCONTENTS

     PURPOSE:

           This function allows the user to view the contents of an object container.
           The contents of the object are shown in a TreeWidget view, with the object's
           classname, followed by the object's name in parentheses.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Utility.

     CALLING SEQUENCE:

           CatViewContents, theObject

     ARGUMENTS:

         theObject:       The object reference of the object whose contents you wish to view.

     KEYWORDS:

         GROUP_LEADER:    An object reference for a WIDGETATOM-type object.

         PARENT:          The identifier of a base widget object that will hold the tree widget
                          contents created by this program. If not supplied, a top-level base
                          object is created.

         TITLE:           If a top-level base widget is created, this is used as the title.

         XSIZE:           The final X size of the output tree widget. By default, 600 pixels.

         YSIZE:           The final Y size of the output tree widget. By default, 600 pixels.

     INTERNAL_KEYWORDS:   The internal keywords FLAG and TREE should not be used.

     MODIFICATION_HISTORY:

           Written by: David W. Fanning, 18 August 2005.

(See C:\IDL\Catalyst\source\utilities\catviewcontents.pro)

## CAT_ARROW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
        CAT_ARROW
     PURPOSE:  Draw a vector(s) with an arrow head
     CATEGORY: Graphics
     CALLING SEQUENCE:
      ARROW, x0, y0, x1, y1
     INPUTS:
      (x0, y0) = coordinates of beginning of vector(s).  May be arrays
       or scalars. Coordinates are in DEVICE coordinates
       unless otherwise specified.
      (x1, y1) = coordinates of endpoint (head) of vector.
       x0, y0, x1, y1 must all have the same number of elements.
     KEYWORD PARAMETERS:
      DATA - if set, implies that coordinates are in data coords.
      NORMALIZED - if set, coordinates are specified in normalized coords.
      HSIZE = size of arrowhead.  Default = 1/64th the width of the device,
       (!D.X_SIZE / 64.).
       If the size is positive, it is assumed to be in device
       coordinate units.  If it is NEGATIVE, then the head length
       is set to the vector length * abs(hsize), giving heads
       proportional in size to the bodies.  The size is defined as
       the length of each of the lines (separated by 60 degrees)
       that make the head.
      COLOR = drawing color.  Default = highest color index.
      HTHICK = thickness of heads.  Default = 1.0.
      SOLID = if set, make a solid arrow, using polygon fills, looks better
       for thick arrows.
      THICK = thickness of body.    Default = 1.0.

     OUTPUTS:
      No explicit outputs.
     SIDE EFFECTS:
     RESTRICTIONS:
     PROCEDURE:
      Straightforward.
      Examples:
           Draw an arrow from (100,150) to (300,350) in DEVICE units.
      ARROW, 100, 150,  300, 350

       Draw a sine wave with arrows from the line Y=0 to
       sin(x/4).
      X = FINDGEN(50)
      Y = SIN(x/4)    ;Make sin wave
      PLOT, X, Y
      ARROW, X, REPLICATE(0,50), X, Y, /DATA
     MODIFICATION HISTORY:
      DMS, Feb, 1992.
      DMS, Sept, 1992.  Added /SOLID.
      Renamed program CAT_ARROW and added LINESTYLE and _EXTRA keywords. Changed default
         arrowhead size to 1/32nd of width of the device. DWF

(See C:\IDL\Catalyst\source\utilities\cat_arrow.pro)

## MAKE_CATALYST_HTML_FILES

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           Make_Catalyst_HTML_Files

     PURPOSE:

           This is used to produce Catalyst HTML files from the Catalyst source
           code, using the IDL routine MK_HTML_HELP.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           Make_Catalyst_HTML_Files

     ARGUMENTS:

         None.

     KEYWORDS:

         None.

     MODIFICATION_HISTORY:

           Written by: David W Fanning, 12 Oct 2008.

(See C:\IDL\Catalyst\source\utilities\make_catalyst_html_files.pro)

## MAKE_CATLIB_HELP

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
      MAKE_CATLIB_HELP

     PURPOSE:
      Given a list of IDL procedure files (.PRO), VMS text library
           files (.TLB), or directories that contain such files, this procedure
           generates a file in the HTML format that contains the documentation
           for those routines that contain a DOC_LIBRARY style documentation
           template.  The output file is compatible with World Wide Web browsers.

     CATEGORY:
      Help, documentation.

     CALLING SEQUENCE:
      MAKE_CATLIB_HELP, Sources, Outfile

     INPUTS:
         Sources:  A string or string array containing the name(s) of the
         .pro or .tlb files (or the names of directories containing
                   such files) for which help is desired.  If a source file is
                   a VMS text library, it must include the .TLB file extension.
                   If a source file is an IDL procedure, it must include the .PRO
                   file extension.  All other source files are assumed to be
                   directories.
         Outfile: The name of the output file which will be generated.

     KEYWORDS:
         TITLE:   If present, a string which supplies the name that
         should appear as the Document Title for the help.
         VERBOSE: Normally, MAKE_CATLIB_HELP does its work silently.
         Setting this keyword to a non-zero value causes the procedure
         to issue informational messages that indicate what it
         is currently doing. !QUIET must be 0 for these messages
                   to appear.
         STRICT:   If this keyword is set to a non-zero value, MAKE_CATLIB_HELP will
                   adhere strictly to the HTML format by scanning the
                   the document headers for characters that are reserved in
                   HTML (<,>,&,").  These are then converted to the appropriate
                   HTML syntax in the output file. By default, this keyword
                   is set to zero (to allow for faster processing).

     COMMON BLOCKS:
      None.

     SIDE EFFECTS:
      A help file with the name given by the Outfile argument is
      created.

     RESTRICTIONS:
      The following rules must be followed in formatting the .pro
      files that are to be searched.
         (a) The first line of the documentation block contains
             only the characters ";+", starting in column 1.
                   (b) There must be a line which contains the string "NAME:",
                       which is immediately followed by a line containing the
                       name of the procedure or function being described in
                       that documentation block.  If this NAME field is not
                       present, the name of the source file will be used.
         (c) The last line of the documentation block contains
             only the characters ";-", starting in column 1.
         (d) Every other line in the documentation block contains
             a ";" in column 1.

           Note that a single .pro file can contain multiple procedures and/or
           functions, each with their own documentation blocks. If it is desired
           to have "invisible" routines in a file, i.e. routines which are only
           for internal use and should not appear in the help file, simply leave
           out the ";+" and ";-" lines in the documentation block for those
           routines.

      No reformatting of the documentation is done.

     MODIFICATION_HISTORY:
           July 5, 1995, DD, RSI. Original version.
           July 13, 1995, Mark Rivers, University of Chicago. Added support for
                   multiple source directories and multiple documentation
                   headers per .pro file.
           July 17, 1995, DD, RSI. Added code to alphabetize the subjects;
                   At the end of each description block in the HTML file,
                   added a reference to the source .pro file.
           July 18, 1995, DD, RSI. Added STRICT keyword to handle angle brackets.
           July 19, 1995, DD, RSI. Updated STRICT to handle & and ".
                   Changed calling sequence to accept .pro filenames, .tlb
                   text librarie names, and/or directory names.
                   Added code to set default subject to name of file if NAME
                   field is not present in the doc header.
           20 August 2003. Modified to search SUPERCLASS objects for hyperlinks. David Fanning.

(See C:\IDL\Catalyst\source\utilities\make_catlib_help.pro)

## OBJ_ISA_VALID

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           OBJ_ISA_VALID

     PURPOSE:

           The purpose of this utility routine is to check to be
           sure the object argument is valid and belongs to the
           specified class.

     AUTHOR:

           FANNING SOFTWARE CONSULTING
           1645 Sheely Drive
           Fort Collins, CO 80526 USA
           Phone: 970-221-0438
           E-mail: davidf@dfanning.com

     CATEGORY:

           Programming.

     CALLING SEQUENCE:

           check = OBJ_ISA_VALID(object, classname)

     ARGUMENTS:

           object - The object reference to check (object reference).
           classname - The object class name to check (string).

     RETURN VALUE:

           check - Returns 1 if the object is valid and a member of the
              specified class. Returns 0 otherwise.

     MODIFICATION_HISTORY:

           Written by: David Burridge, 12 June 2002.

           Added OBJARR handling: David Burridge, 23rd January 2003.

(See C:\IDL\Catalyst\source\utilities\obj_isa_valid.pro)

## SYSTEMCOLORS

[Previous Routine] [List of Routines]

     NAME:
           SYSTEMCOLORS

     PURPOSE:

           The program creates an object to manipulate system colors.

     AUTHORS:

            FANNING SOFTWARE CONSULTING   BURRIDGE COMPUTING
            1645 Sheely Drive             18 The Green South
            Fort Collins                  Warborough, Oxon
            CO 80526 USA                  OX10 7DN, ENGLAND
            Phone: 970-221-0438           Phone: +44 (0)1865 858279
            E-mail: davidf@dfanning.com   E-mail: davidb@burridgecomputing.co.uk

     CATEGORY:

           Utility Objects.

     CALLING_SEQUENCE:

           sysColorObject = Obj_New('SystemColors')

     INPUT_ARGUMENTS:

         None.

     KEYWORDS:

         None.

     MODIFICATION_HISTORY:

           Written by: David Fanning, 12th March 2003

(See C:\IDL\Catalyst\source\utilities\systemcolors__define.pro)