CLASS_NAME:
    itoolwaprofile

 PURPOSE (one line):
    To plot profiles of an extracted array of data.

 CATEGORY:
    Widgets

 SUPERCLASSES:

 SUBCLASSES:

 CREATION:
    See itoolwaprofile::init

 METHODS:
    itoolwaprofile::cleanup
    itoolwaprofile::process
    itoolwaprofile::refresh
    itoolwaprofile::getproperty
    itoolwaprofile::realize
    itoolwaprofile::init

 MODIFICATION HISTORY:
    2004/04, Written by Doug Loucks, Consultant for Lowell Observatory.
    (See cw_pfile.pro)
    Removed all remnants of compound-widget code; replaced with
 stand-alone code that is compatible with the new object-oriented version
 of itool.
    Modified the usage of the state-structure variable. A pointer to
 the state structure is stored in the object instance of this tool and
 this tool's object reference is stored in its top-level base.
    Modified the incoming argument. Now, it is the object reference of the
 host instance of itool, which is stored in this tool's object instance.


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::cleanup

 PURPOSE:
    Self-explanatory

 CALLING SEQUENCE:
    obj_destroy, oref

 INPUTS:
    oref : An itoolwaprofile object reference.

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:

 OUTPUTS:

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::process

 PURPOSE:
   To perform all processing for the draw widget and the
 hardcopy (Post Script) device.

 CALLING SEQUENCE:
    oref->process

 INPUTS:

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:
    HARDCOPY : Set this keyword to print a copy of the graphics display to the
               default printer device.

 OUTPUTS:

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::refresh

 PURPOSE:
   To refresh this widget.

 CALLING SEQUENCE:
    oref->refresh, value

 INPUTS:
    value : A structure defined as {image:array, xset:xs, yset:ys}
            where "array" is an array of data, "xs" and "ys" are the
            coordinates of the lower-left corner of "array" in a larger
            array from which "array" was extracted.

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:
    TITLE : Set this keyword to a string containing the title to be displayed
            on the title bar of the main widget.

 OUTPUTS:

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::getproperty

 PURPOSE:
   To retrieves "properties" defined for the itoolwaprofile object
 class. Properties are specified as keyword arguments.

 CALLING SEQUENCE:
    oref->getproperty

 INPUTS:

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:
    PSTATE : Set this keyword to a named variable into which will be
             placed a pointer to the state structure.

 OUTPUTS:

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::realize

 PURPOSE:
   To realize a new, managed instance of the itoolwaprofile object class.

 CALLING SEQUENCE:
    oref->realize

 INPUTS:

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:
    NO_BLOCK : Set this keyword to cause the widget application to run
               in non-blocked mode.

 OUTPUTS:

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------
 METHOD NAME:
    itoolwaprofile::init

 PURPOSE:
   To initialize a new instance of the itoolwaprofile object class.

 CALLING SEQUENCE:
    oref = obj_new('itoolwaprofile', oitool)

 INPUTS:
    oitool : An object reference of a host instance of the object class
             "itool."

 OPTIONAL INPUTS:
    
 KEYWORD PARAMETERS:
    GROUP_LEADER = The group leader for this tool.
    HCTITLE      = Title of Hard Copy.
    PLATESCALE   = Plate Scale in arcseconds per pixel (used at display time).
                   If supplied and non-zero, display the bottom axis in
                   arcseconds and the top axis in pixels, else display the
                   bottom axis in pixels.
    TITLE        = The string to be displayed on the title bar. This keyword
                   may be specified on the call to the "refresh" method, as
                   well, to update the title dynamically.

 OUTPUTS:
    oref = The object reference of the new instance of the itoolwaprofile
           object class.

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:
    After creating a new instance of this object-oriented widget application,
 it must be realized and then be given a "value" to display.

 EXAMPLE:
    oref = obj_new('itoolwaprofile', oitool, GROUP_LEADER=group_leader)
    oref->realize
    oref->refresh, {image:array, xset:xs, yset:ys}, TITLE=title

 MODIFICATION HISTORY:


 -----------------------------------------------------------------------------