Catalyst Source-Widgets 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


Routine Descriptions

BASEWIDGET

[Next Routine] [List of Routines]
 NAME:
       BASEWIDGET

 PURPOSE:

       The purpose of this routine is to implement a base widget as an object. If you wish
       to create a top-level base widget object, use the TOPLEVELBASE 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:

       Object widgets.

 SYNTAX:

       baseWidget = Obj_New("baseWidget", parentObjectID)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { BASEWIDGET, $           ; The BASEWIDGET object class name.
              INHERITS WidgetAtom, $  ; Subclassed from WIDGETATOM.
              _Map: 0L $              ; A flag that indicates whether this base is mapped or not.
            }


 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2002.
       Added TITLE keyword in SetProperty and GetProperty methods, 23 March 2005. DWF.
       Added TOOLBAR keyword in INIT method. 26 September 2005. DWF.
       Made a change in ADD method to keep the basewidget from adding itself as a parent
          twice to the object being added. 16 July 2007. DWF.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::ADD

 PURPOSE:

       This method adds an object widget to the base object widget. The
       added object widget must be subclassed from the WIDGETATOM object.

 SYNTAX:

       self -> Add, object

 ARGUMENTS:

       object: The object to add to the container. The object must be
          subclassed from the WIDGETATOM object. (Required)

 KEYWORDS:

       _EXTRA: Any keyword appropriate for superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::CLEANUP

 PURPOSE:

       This is the BASEWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::DRAW

 PURPOSE:

       This method realizes the BaseWidget object if it has not already been realized.

 SYNTAX:

       self -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the supercalss Draw methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the BaseWidget object's properties

 SYNTAX:

       aBaseWidget -> GetProperty, Map=ismapped

 ARGUMENTS:

       None.

 KEYWORDS:

       CONTEXT_EVENTS: Returns a 1 if context events are on, a 0 otherwise.

       MAP:            Returns a 0 or 1 to indicate if the current base widget hierarchy is
                       mapped (1) or not (0).

       TITLE:          The title of the base widget. Applies only to base widgets
                       that are children of tab widgets.

       _EXTRA:         Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::INIT

 PURPOSE:

       This is the BASEWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theParent:         An object reference to a WIDGETATOM-subclassed object.
                          This is the same as using the PARENT keyword.

 KEYWORDS:

       ALIGN_BOTTOM:      Set this keyword to align the base widget with the bottom of the parent base.

       ALIGN_CENTER:      Set this keyword to align the base widget with the center of the parent base.

       ALIGN_LEFT:        Set this keyword to align the base widget with the left of the parent base.

       ALIGN_RIGHT:       Set this keyword to align the base widget with the right of the parent base.

       ALIGN_TOP:         Set this keyword to align the base widget with the top of the parent base.

       BASE_ALIGN_BOTTOM: Set this keyword to align the children of this base to the bottom of the base widget.

       BASE_ALIGN_CENTER: Set this keyword to align the children of this base to the center of the base widget.

       BASE_ALIGN_LEFT:   Set this keyword to align the children of this base to the left of the base widget.

       BASE_ALIGN_RIGHT:  Set this keyword to align the children of this base to the right of the base widget.

       BASE_ALIGN_TOP:    Set this keyword to align the children of this base to the top of the base widget.

       COLUMN:            Arrange the children of this base into this many columns.

       CONTEXT_EVENTS:    Set this keyword to turn context events on for this widget object.

       CONTEXT_MENU:      Set this keyword to create a base widget that can be used to hold
                          context-sensitive menu items.

       EXCLUSIVE:         Set this keyword to make an exclusive button base.

       FRAME:             Create a frame this many pixels wide around base.

       GRID_LAYOUT:       Set this keyword to lay children out in equally-spaced grid.

       KBRD_FOCUS_EVENTS: Set this keyworld to enable keyboard focus events.

       MAP:               Set this keyword to map (1) or unmap (0) the base. Mapped by default.

       NONEXCLUSIVE:      Set this keyword to make an non-exclusive button base.

       PARENT:            An object reference to a WIDGETATOM-subclassed object.

       ROW:               Arrange children of this base into this many rows.

       SCR_XSIZE:         Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:         Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SCROLL:            Set this keyword to add scroll bars to the base widget.

       SPACE:             Set this keyword to the number of pixels between children in the base.
                          Ignored for exclusive and non-exclusive bases.

       TITLE:             Set this keyword to a string that will be the title for this base widget.
                          A title becomes the tab value if the base widget is added to a tab widget.
                          A title only makes sense in this context.

       TOOLBAR:           Setting this keyword allows the base to have a slightly different appearance
                          on Motif platforms. The keyword is ignored on Windows.

       UNITS:             The units for measurments. The default is 0 for pixels. Other values are
                          1 for inches, and 2 for centimeters.

       X_SCROLL_SIZE:     The X size (pixels) of the scrollable window area.

       XOFFSET:           The horizontal space (pixels) from upper left corner of the display.

       XPAD:              The amount of horizontal space (pixels) to add to edges of children.

       XSIZE:             The X size of the widget.

       Y_SCROLL_SIZE:     The Y size (pixels) of the scrollable window area

       YPAD:              The amount of vertical space (pixels) to add to edges of children.

       YOFFSET:           The vertical space (pixels) from upper left corner of the display.

       YSIZE:             The Y size of the widget.

       _EXTRA:            Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BASEWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BASEWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the BaseWidget object's properties

 SYNTAX:

       aBaseWidget -> SetProperty, Map=1

 ARGUMENTS:

       None.

 KEYWORDS:

       CONTEXT_EVENTS:    Set to 1 to turn context events on for the base widget.

       KBRD_FOCUS_EVENTS: Set to 1 to turn keyboard focus events on for the base widget.

       MAP:               Set to 1 to map a base widget hierarchy. Set to 0 to unmap.

       TITLE:             Sets the title of the base widget. Applies only to base widgets
                          that are children of tab widgets.

       _EXTRA:            Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\basewidget__define.pro)


BUTTONWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET

 PURPOSE:

       The purpose of this routine is to implement a button widget as an 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:

       Object widgets.

 SYNTAX:

       buttonWidget = Obj_New("buttonWidget", theParent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { ButtonWidget, $        ; The BUTTONWIDGET object class definition.
              _menu:0B, $            ; A flag that indicates this is a menu button.
              INHERITS WidgetAtom $  ; Inherits WIDGETATOM properties.
             }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2002.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add methods to make sure only button widgets are
       added to menu buttons.

 SYNTAX:

       thisButtonObj -> Add, thatButtonObj

 ARGUMENTS:

       object: The object to add to the container. Only objects subclassed from BUTTONWIDGET
               can be added, and only if the current object has a menu flag set for it.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::CLEANUP

 PURPOSE:

       This is the BUTTONWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::DRAW

 PURPOSE:

       A dummy DRAW method. All keywords are passed to the WIDGETATOM::DRAW superclass.

 SYNTAX:

       buttonObject -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the WIDGETATOM::DRAW method.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to get the object's properties.

 SYNTAX:

       buttonObject -> GetProperty, VALUE=buttonValue

 ARGUMENTS:

       None.

 KEYWORDS:

       BUTTON_SET:     This keyword will return 1 if the button is set, or 0 otherwise.

       DYNAMIC_RESIZE: This keyword will be set to 1 if the button currently will resize dynamically.
                       It is set to 0 otherwise.

       TOOLTIP:        Returns the current tooltip associated with this button.

       VALUE:          The current value of the button widget.

       _REF_EXTRA:     Any keyword appropriate for the GETPROPERTY method of superclass objects.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::INIT

 PURPOSE:

       This is the BUTTONWIDGET object class initialization method.

 ARGUMENTS:

       parent:         The parent object reference.

 KEYWORDS:

       ACCELERATOR:    Set this keyword to a string that defines an accelerator key for the
                       button. See the documentation for WIDGET_BUTTON for details. Accelerator
                       keys can only be assigned at initialization of the widget.

       ALIGN_CENTER:   Align the button with the center of it's parent base.

       ALIGN_LEFT:     Align the button with the left of it's parent base.

       ALIGN_RIGHT:    Align the button with the right of it's parent base.

       BITMAP:         Set this keyword to specify that the button value is a color bitmap.

       CHECKED_MENU:   Set this keyword to enable a check mark to be placed next to a button
                       that is used as a menu item.

       DYNAMIC_RESIZE: Set this keyword to specify a button that is dynamically resized.

       FONT:           The name of the font to use for button text.

       FRAME:          Create a frame this many pixels wide around base.

       MENU:           Set this keyword to make this button a menu button.

       NO_RELEASE:     Set this keyword enable only SELECT events for exclusive and non-exclusive
                       buttons. The keyword has no effect on regular button widgets.

       SCR_XSIZE:      Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:      Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SEPARATOR:      Set this keyword to add a separator line above the button.

       TOOLTIP:        The tooltip associated with this button.

       UNITS:          The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

       VALUE:          The initial value of the button. Text in most cases, but a bitmap if the BITMAP
                       keyword is set.

       X_BITMAP_EXTRA: When creating a bitmap button that is not of a "byte-aligned" size (in other words,
                       does not have a dimension that is a multiple of 8), this keyword specifieds how
                       many bits of the supplied bitmap must be ignored (within the end byte). For example,
                       to create a 10 by 8 bitmap, you must supply a 2 by 8 array of bytes and ignore the
                       bottom 6 bits. Therefore, you would specify X_BITMAP_EXTRA=6.

       XOFFSET:        The horizontal space (pixels) from upper left corner of the parent bullitin-board base

       XSIZE:          The X size of the widget. (Use discouraged.)

       YOFFSET:        The vertical space (pixels) from upper left corner of the parent bullitin-board base

       YSIZE:          The Y size of the widget. (Use discouraged.)

       _EXTRA: Any extra keywords are passed along to the WIDGETATOM superclass object.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


BUTTONWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       BUTTONWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties.

 SYNTAX:

       buttonObject -> SetProperty, VALUE=buttonValue

 ARGUMENTS:

       None.

 KEYWORDS:

       BITMAP:         Set this keyword if the VALUE is a bitmap, rather than text.

       DYNAMIC_RESIZE: This keyword will be set to 1 if the button currently will resize dynamically.
                       It is set to 0 otherwise.

       INPUT_FOCUS:    Set this keyword to make this button have the current keyboard focus.

       MENU:           Set this keyword to turn this into a button capably

       VALUE:          Set this keyword to the current value of the button widget.

       _EXTRA:         Any keyword appropriate for the GETPROPERTY method of superclass objects.

(See C:\IDL\Catalyst\source\widgets\buttonwidget__define.pro)


CATGRAPHICSWINDOW::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::ADD

 PURPOSE:

       This method adds the object to the draw widget of the graphics window. To
       be displayed in the graphics window, the added object will require a DRAW method.

 SYNTAX:

       aGraphicsWindow -> Add, theObject

 ARGUMENTS:

     theObject:     The object to be added to this object's draw widget object. Must be either
                    a CATDATAATOM (direct graphics) with a DRAW method or a CATOBJECTVIEW
                    (object graphics) object. If a CATOBJECTVIEW object, the object will be
                    expected to handle all draw widget events. Button events and expose events
                    are turned on by default.

 KEYWORDS:

     _EXTRA:        Extra keywords for the TOPLEVELBASE::ADD method or the object graphics
                    oDrawWidget::SetProperty method.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::CLEANUP

 PURPOSE:

       This is the CatGraphicsWindow object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::DRAWWIDGETEVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        CatGraphicsWindow::DRAWWIDGETEVENTHANDLER

 PURPOSE:

        This method is the event handler for an events being generated by the
        draw widget.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event:    The event structure as described in the IDL help files.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        CatGraphicsWindow::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the CatGraphicsWindow interface. It
        exists purely to handle resize events which are passed to the
        child object.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event:    The event structure as described in the IDL help files.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::GETPROPERTY

 PURPOSE:

       This method enables the getting of the CatGraphicsWindow object class
       properties.

 SYNTAX:

       aCatGraphicsWindow -> GetProperty

 ARGUMENTS:

     None.

 KEYWORDS:

     DRAWID:     The draw widget object.

     WINDOWID:   The window index number of the draw widget (direct graphics) or the
                 IDLgrWindow object (object graphics).

     _EXTRA:     Any keywords appropriate for the "DrawWidget::SetProperty" method.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::INIT

 PURPOSE:

       This is the CatGraphicsWindow object class initialization method.

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent:          The parent object of this object.

 KEYWORDS:
 
    BACKGROUND_COLOR: Set this to the name of a background color. Used only when the
                      keyword ERASE_WINDOW is set. Set to "BLACK" by default.

     ERASE_WINDOW:    Set this keyword to 1 to have the draw widget erase before drawing. Set
                      to 0 to skip the erasing.

     OBJECT_GRAPHICS: Set this keyword to make the draw widget an ODRAWWIDGET instead of a DRAWWIDGET object.
     
     OUTPUT_FILENAME: The base name for the output filename. This will be given the proper extension
                      by the program.

     TITLE:           The title of the top-level base widget.
     
     XSIZE:           The X size of the enclosed draw widget in pixels.

     YSIZE:           The Y size of the enclosed draw widget in pixels.

     _EXTRA:          Any keywords appropriate for TopLevelBase::INIT method.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::SAVEAS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::SAVEAS

 PURPOSE:

       This method allows the draw widget to save its contents in hardcopy. It is an
       event handler method.

 SYNTAX:

       Called by a widget event occurring.

 ARGUMENTS:

     event:      The Save As... button event structure.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::SETPROPERTY

 PURPOSE:

       This method enables the setting of the CatGraphicsWindow object class
       properties.

 SYNTAX:

       aCatGraphicsWindow -> SetProperty, XSIZE=500, YSIZE=300

 ARGUMENTS:

     None.

 KEYWORDS:

     BACKGROUND:   The name of the background color. Normally, this keyword will require ERASE_WINDOW=1, too.

     ERASE_WINDOW: Set this keyword to 1 to have the draw widget erase before drawing. Set
                   to 0 to skip the erasing.

     _EXTRA:       Any keywords appropriate for the  TopLevelBase SetProperty" method.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW::SETWINDOW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatGraphicsWindow::SETWINDOW

 PURPOSE:

       This method sets the window index number of the draw widget to be the
       current graphics window.

 SYNTAX:

       thisWindow -> SetWindow

 ARGUMENTS:

       None.

 KEYWORDS:

       None

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATGRAPHICSWINDOW__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CATGRAPHICSWINDOW__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a draw widget inside a top-level base widget.
       Objects with DRAW methods can be added to the CatGraphicsWindow object and their graphics
       will be displayed in the window.

 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:

       Object widgets.

 SYNTAX:

       aGraphicsWindow = Obj_New("CatGraphicsWindow")


 SUPERCLASSES:

       TOPLEVELBASE
       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER

 CLASS_STRUCTURE:

   class = {CatGraphicsWindow, _draw:OBJ_NEW (), INHERITS TopLevelBase}

 MODIFICATION_HISTORY:

       Written by: David Fanning, 6 July 2003.

(See C:\IDL\Catalyst\source\widgets\catgraphicswindow__define.pro)


CATIMAGE::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CatImage::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the CATIMAGE object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


CAT_TRACKBALL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   CAT_TRACKBALL

 PURPOSE:
   This object translates widget events for draw widgets into
       transformations that emulate a virtual trackball (for transforming
       object graphics in three dimensions).

 CATEGORY:
   Object Graphics.

 CALLING SEQUENCE:
   To initially create:
       oTrackball = OBJ_NEW('Cat_Trackball', Center, Radius)

   To update the trackball state based on a widget event:
       oCat_Trackball->Update, sEvent

   To re-initialize the trackball state:
       oCat_Trackball->Reset, Center, Radius

   To destroy:
       OBJ_DESTROY, oCat_Trackball

 INPUTS:
   CAT_TRACKBALL::INIT:
   Center: A two-dimensional vector, [x,y], representing the requested
       center (measured in device units) of the trackball.
       Radius: The requested radius (measured in device units) of the
       trackball.

   CAT_TRACKBALL::UPDATE:
        sEvent: The widget event structure.  The event type indicates
       how the trackball state should be updated.

   CAT_TRACKBALL::RESET:
   Center: A two-dimensional vector, [x,y], representing the requested
       center (measured in device units) of the trackball.
       Radius: The requested radius (measured in device units) of the
       trackball.

 KEYWORD PARAMETERS:
   CAT_TRACKBALL::INIT:
   AXIS:       Set this keyword to indicate the axis about which
           rotations are to be constrained if the CONSTRAIN
           keyword is set to a nonzer value.  Valid values
           include:
               0 = X-Axis
               1 = Y-Axis
               2 = Z-Axis (default)
   CONSTRAIN:  Set this keyword to a nonzero value to indicate that
           the trackball transformations are to be constrained
           about a given axis (as specified by the AXIS
           keyword).  The default is zero (no constraints).
   MOUSE:      Set this keyword to a bitmask to indicate which
           mouse button to honor for trackball events.  The
           least significant bit represents the leftmost
           button, the next highest bit represents the middle
           button, and the next highest bit represents the
           right button.  The default is 1b, for the left
           mouse button.

   CAT_TRACKBALL::UPDATE:
   MOUSE:      Set this keyword to a bitmask to indicate which
           mouse button to honor for trackball events.  The
           least significant bit represents the leftmost
           button, the next highest bit represents the middle
           button, and the next highest bit represents the
           right button.  The default is 1b, for the left
           mouse button.
   TRANSFORM:  Set this keyword to a named variable that upon
           return will contain a floating point 4x4 array
           if a transformations matrix is calculated as
           a result of the widget event.
   TRANSLATE:  Set this keyword to indicate that the trackball
           movement should be constrained to x and y translation
           rather than rotation about an axis.

   CAT_TRACKBALL::RESET:
   AXIS:       Set this keyword to indicate the axis about which
           rotations are to be constrained if the CONSTRAIN
           keyword is set to a nonzer value.  Valid values
           include:
               0 = X-Axis
               1 = Y-Axis
               2 = Z-Axis (default)
   CONSTRAIN:  Set this keyword to a nonzero value to indicate that
           the trackball transformations are to be constrained
           about a given axis (as specified by the AXIS
           keyword).  The default is zero (no constraints).
   MOUSE:      Set this keyword to a bitmask to indicate which
           mouse button to honor for trackball events.  The
           least significant bit represents the leftmost
           button, the next highest bit represents the middle
           button, and the next highest bit represents the
           right button.  The default is 1b, for the left
           mouse button.

 OUTPUTS:
   CAT_TRACKBALL::UPDATE:
   This function returns a 1 if a transformation matrix is calculated
   as a result of the widget event, or 0 otherwise.

 EXAMPLE:
   Create a trackball centered on a 512x512 pixel drawable area, and
   a view containing the model to be manipulated:
       xdim = 512
       ydim = 512
       wBase = WIDGET_BASE()
       wDraw = WIDGET_DRAW(wBase, XSIZE=xdim, YSIZE=ydim, $
                           GRAPHICS_LEVEL=2, /BUTTON_EVENTS, $
                           /MOTION_EVENTS, /EXPOSE_EVENTS, RETAIN=0 )
       WIDGET_CONTROL, wBase, /REALIZE
       WIDGET_CONTROL, wDraw, GET_VALUE=oWindow

       oCat_Trackball = OBJ_NEW('Cat_Trackball', [xdim/2.,ydim/2.], xdim/2.)
       oView = OBJ_NEW('IDLgrView')
       oModel = OBJ_NEW('IDLgrModel')
       oView->Add, oModel

       XMANAGER, 'TrackEx', wBase

   In the widget event handler, handle trackball updates.
   As the trackball transformation changes, update the transformation
   for a model object (instance of IDLgrModel), and redraw the view:

   PRO TrackEx_Event, sEvent
       ...
       bHaveXform = oCat_Trackball->Update( sEvent, TRANSFORM=TrackXform )
       IF (bHaveXform) THEN BEGIN
           oModel->GetProperty, TRANSFORM=ModelXform
           oModel->SetProperty, TRANSFORM=ModelXform # TrackXform
           oWindow->Draw, oView
       ENDIF
       ...
   END

 MODIFICATION HISTORY:
   Written by: DD, December 1996
   Modified by David Fanning, Aug 9, 2003 to work with Catalyst System.
      Required modification to UPDATE method to allow events from objects.

(See C:\IDL\Catalyst\source\widgets\cat_trackball__define.pro)


COMBOBOXWIDGET::ADD

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

 NAME:
       COMBOBOXWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add method to prevent addition of
       other widget objects to text objects.

 SYNTAX:

       textObject -> Add, object

 ARGUMENTS:

       object: The object to add to the container. Only objects that are NOT subclassed
               from WIDGETATOM objects can be added.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


COMBOBOXWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       COMBOBOXWIDGET::CLEANUP

 PURPOSE:

       This is the COMBOBOXWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


COMBOBOXWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       COMBOBOXWIDGET::GETPROPERTY

 PURPOSE:

       This method enables the getting of the COMBOBOXWIDGET object class
       properties.

 SYNTAX:

       aComboBoxWidget -> GetProperty, TEXT=theText

 ARGUMENTS:

     None.

 KEYWORDS:

     DYNAMIC_RESIZE: Returns a 1 if dynamic resizing is on for this widget, and a 0 otherwise.

     NUMBER:         Returns the number of elements in the combobox widget's selection list.

     TEXT:           Returns the current text in the text field of the combobox widget.

     VALUE:          Returns a string or string array containing the combobox widget's current selection list.

     _REF_EXTRA:     Any keywords appropriate for the WIDGETATOM::GetProperty method.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


COMBOBOXWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       COMBOBOXWIDGET::INIT

 PURPOSE:

       This is the COMBOBOXWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent          The parent object reference for this object widget.

 KEYWORDS:

     DYNAMIC_RESIZE: Set this keyword to enable dynamic resizing for this widget.

     EDITABLE:       Set this keyword to create an editable combobox.

     FONT:           Set this variable to the name of the font to use for the ComboBox elements.

     SCR_XSIZE:      Set the screen X size of the base to this many pixels. (Use discouraged.)

     SCR_YSIZE:      Set the screen Y size of the base to this many pixels. (Use discouraged.)

     SELECTION:      Set this keyword to the index of an item in the VALUE list to be the
                     current ComboBox selection.

     UNITS:          Set to 0 (the default) to specify sizes in pixels. 1 - inches, 2 - centimeters.

     VALUE:          Set this variable to a string, or array of strings, containing the ComboBox selections.

     XOFFSET:        The X offset of the widget, in UNITS.

     XSIZE:          The desired X size of the widget, in UNITS.

     YOFFSET:        The Y offset of the widget, in UNITS.

     YSIZE:          The desired Y size of the widget, in UNITS.

     _EXTRA:         Any keywords appropriate for the WIDGETATOM::INIT method.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


COMBOBOXWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       COMBOBOXWIDGET::SETPROPERTY

 PURPOSE:

       This method enables the setting of the COMBOBOXWIDGET object class
       properties.

 SYNTAX:

       aComboBoxWidget -> SetProperty, DELETE=5

 ARGUMENTS:

     None.

 KEYWORDS:

     ADD:            Set this keyword to a string variable of an item to add to the ComboBox list of items.
                     By default, the item is added to the end of the list, unless INDEX is specified.

     DELETE:         Set this keyword to the index of an item to be deleted from the ComboBox list of items.

     DYNAMIC_RESIZE: Set this keyword to enable dynamic resizing for this widget.

     INDEX:          Set this keyword to the index where addtional items should be ADDed to the list.

     SELECTION:      Set this keyword to the index of an item to be the current ComboBox selection.

     VALUE:          Set this variable to a string, or array of strings, containing the ComboBox selections.

     _EXTRA:         Any keywords appropriate for the WIDGETATOM::SetProperty method.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


COMBOBOXWIDGET__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       COMBOBOXWIDGET__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a combobox widget as an 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:

       Objects.

 SYNTAX:

       aComboBoxWidget = Obj_New("COMBOBOXWIDGET", parent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { COMBOBOXWIDGET, $      ; ComboBox widget object class
             INHERITS WIDGETATOM $  ; Inherits WidgetAtom object class.
           }

 MODIFICATION_HISTORY:

       Written by: David Fanning, 20 April 2003.

(See C:\IDL\Catalyst\source\widgets\comboboxwidget__define.pro)


CONTEXTMENUBASE::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CONTEXTMENUBASE::ADD

 PURPOSE:

       This method is where you can screen what kinds of objects are
       added to this object's hierarchy. The method is not always needed.
       If you do create it, be CERTAIN to call the superclass ADD method
       or your program will not work correctly.

 SYNTAX:

       theObject -> Add, object

 ARGUMENTS:

     object:     The object to be added to this one.

 KEYWORDS:

     _EXTRA:     Any keywords appropriate for the superclass Add method.

(See C:\IDL\Catalyst\source\widgets\contextmenubase__define.pro)


CONTEXTMENUBASE::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CONTEXTMENUBASE::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain CONTEXTMENUBASE properties. Be sure
       you ALWAYS call the superclass GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     _REF_EXTRA:     Any keywords appropriate for the superclass GetProperty method.

(See C:\IDL\Catalyst\source\widgets\contextmenubase__define.pro)


CONTEXTMENUBASE::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CONTEXTMENUBASE::INIT

 PURPOSE:

       This is the CONTEXTMENUBASE object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theParent:         An object reference to a WIDGETATOM-subclassed object.
                          This is the same as using the PARENT keyword.

 KEYWORDS:

       ALIGN_BOTTOM:      Set this keyword to align the base widget with the bottom of the parent base.

       ALIGN_CENTER:      Set this keyword to align the base widget with the center of the parent base.

       ALIGN_LEFT:        Set this keyword to align the base widget with the left of the parent base.

       ALIGN_RIGHT:       Set this keyword to align the base widget with the right of the parent base.

       ALIGN_TOP:         Set this keyword to align the base widget with the top of the parent base.

       BASE_ALIGN_BOTTOM: Set this keyword to align the children of this base to the bottom of the base widget.

       BASE_ALIGN_CENTER: Set this keyword to align the children of this base to the center of the base widget.

       BASE_ALIGN_LEFT:   Set this keyword to align the children of this base to the left of the base widget.

       BASE_ALIGN_RIGHT:  Set this keyword to align the children of this base to the right of the base widget.

       BASE_ALIGN_TOP:    Set this keyword to align the children of this base to the top of the base widget.

       COLUMN:            Arrange the children of this base into this many columns.

       EXCLUSIVE:         Set this keyword to make an exclusive button base.

       FRAME:             Create a frame this many pixels wide around base.

       GRID_LAYOUT:       Set this keyword to lay children out in equally-spaced grid.

       KBRD_FOCUS_EVENTS: Set this keyworld to enable keyboard focus events.

       MAP:               Set this keyword to map (1) or unmap (0) the base. Mapped by default.

       NONEXCLUSIVE:      Set this keyword to make an non-exclusive button base.

       PARENT:            An object reference to a WIDGETATOM-subclassed object.

       ROW:               Arrange children of this base into this many rows.

       SCR_XSIZE:         Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:         Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SCROLL:            Set this keyword to add scroll bars to the base widget.

       SPACE:             Set this keyword to the number of pixels between children in the base.
                          Ignored for exclusive and non-exclusive bases.

       TITLE:             Set this keyword to a string that will be the title for this base widget.
                          A title becomes the tab value if the base widget is added to a tab widget.
                          A title only makes sense in this context.

       UNITS:             The units for measurments. The default is 0 for pixels. Other values are
                          1 for inches, and 2 for centimeters.

       X_SCROLL_SIZE:     The X size (pixels) of the scrollable window area.

       XOFFSET:           The horizontal space (pixels) from upper left corner of the display.

       XPAD:              The amount of horizontal space (pixels) to add to edges of children.

       XSIZE:             The X size of the widget.

       Y_SCROLL_SIZE:     The Y size (pixels) of the scrollable window area

       YPAD:              The amount of vertical space (pixels) to add to edges of children.

       YOFFSET:           The vertical space (pixels) from upper left corner of the display.

       YSIZE:             The Y size of the widget.

       _EXTRA:            Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\contextmenubase__define.pro)


CONTEXTMENUBASE::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CONTEXTMENUBASE::SETPROPERTY

 PURPOSE:

       This method allows the user to set the CONTEXTMENUBASE object's properties. Be sure
       you ALWAYS call the superclass SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     _EXTRA:     Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\widgets\contextmenubase__define.pro)


CONTEXTMENUBASE__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CONTEXTMENUBASE__DEFINE

 PURPOSE:

       The purpose of this routine is to provide a starting template
       for object creation.

 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("CONTEXTMENUBASE")

 BASEWIDGETES:

       WIDGETBASE
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { CONTEXTMENUBASE, $
             INHERITS BASEWIDGET $
           }

 MESSAGES:

   None.

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, April 17, 2003.

(See C:\IDL\Catalyst\source\widgets\contextmenubase__define.pro)


CT_STRETCH::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::CLEANUP

 PURPOSE:

       This is the CT_STRETCH object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the CT_STRETCH object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::CONTROLPANEL_EVENTS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::CONTROLPANEL_EVENTS

 PURPOSE:

       This method handles events from the control panel.

 SYNTAX:

       Called automatically when an event is generated.

 ARGUMENTS:

     event:        The event structure.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::DRAW

 PURPOSE:

       This method draws the image histogram and image threshold lines in the draw widget.

 SYNTAX:

       ct_Stretch -> Draw

 ARGUMENTS:

     None.

 KEYWORDS:

     _EXTRA:  Any keywords appropriate for the superclass Add method.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::EVENTHANDLER

 PURPOSE:

       This is the event handler method for the compound widget object.
       All internal events are handled here.

 SYNTAX:

       Called by the Catalyst system when an event for one of the compound
       object's widgets is generated.

 ARGUMENTS:

     event:    The event object from the system.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::GETPROPERTY

 PURPOSE:

       This method enables the getting of the CT_STRETCH properties.

 SYNTAX:

       ct_Stretch -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     C_BG:          The name of the background color for the histogram plot. "Charcoal" by default.

     C_BORDER:      The name of the  color for the histogram plot. "Wheat" by default.

     C_CENTHRESH:   The name of the center theshold color for the histogram plot. "Sky Blue" by default.

     C_MAXTHRESH:   The name of the maximum theshold color for the histogram plot. "Green" by default.

     C_MINTHRESH:   The name of the minimum theshold color for the histogram plot. "Yellow" by default.

     COLORTABLE:    A (standard) color table index number.

     COLORTOOL:     A ColorTool object.

     FORMAT:        A format specification for formatting the MIN/MAX annotations.

     MAXTHRESH:     Set this keyword to the maximum threshold value.

     MINTHRESH:     Set this keyword to the minimum threshold value.

     RANGE:         The data range of the color table.

     XSIZE:         The X size of the histostretch draw widget.

     YSIZE:         The Y size of the histostretch draw widget.

     _REF_EXTRA:    Any keywords appropriate for the superclass GetProperty" method.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::INIT

 PURPOSE:

       This is the CT_STRETCH object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent:        The parent object widget for this compound widget. Must be a BASEWIDGET.

 KEYWORDS:

     C_BG:          The name of the background color for the histogram plot. "Charcoal" by default.

     C_BORDER:      The name of the  color for the histogram plot. "Wheat" by default.

     C_CENTHRESH:   The name of the center theshold color for the histogram plot. "Sky Blue" by default.

     C_MAXTHRESH:   The name of the maximum theshold color for the histogram plot. "Green" by default.

     C_MINTHRESH:   The name of the minimum theshold color for the histogram plot. "Yellow" by default.

     COLORTABLE:    The color table index number. This keyword is ignored if the COLORTOOL keyword is used.

     COLORTOOL:     A ColorTool object can be passed into the program with this keyword. If it is, this
                    object is used as the color object for the internal image and the COLORTABLE keyword
                    is ignored. Also, the original R, G, and B vectors will be obtained from this object.

     FORMAT:        A format specification for formatting the MIN/MAX annotations. By default, "(F8.2)".

     FRAME:         Set this keyword to put a frame around the compound widget.

     MAXTHRESH:     Set this keyword to the maximum threshold value. Set to the maximum
                    value of the image data by default.

     MINTHRESH:     Set this keyword to the minimum threshold value. Set to the minimum
                    value of the image data by default.

     RANGE:         A two-element array specifying the minimum and maximum range of the color bar.
                    By default, [0, 255]. If the default range is used, the FORMAT keyword is set to '(I3)'.

     XSIZE:         The X size of the compound widget in pixels. By default, 50 pixels. (The minimum size
                    allowed is also 50 pixels.)


     YSIZE:         The Y size of the compound widget in pixels. By default, 300 pixels.

     _EXTRA:        Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::RESET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::RESET

 PURPOSE:

       This method resets the histogram GUI, based on the display image current in the image object.

 SYNTAX:

       ct_Stretch -> DrawPlot

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH::SETPROPERTY

 PURPOSE:

       This method enables the setting of the CT_STRETCH properties.

 SYNTAX:

       ct_Stretch -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     C_BG:          The name of the background color for the histogram plot. "Charcoal" by default.

     C_BORDER:      The name of the  color for the histogram plot. "Wheat" by default.

     C_CENTHRESH:   The name of the center theshold color for the histogram plot. "Sky Blue" by default.

     C_MAXTHRESH:   The name of the maximum theshold color for the histogram plot. "Green" by default.

     C_MINTHRESH:   The name of the minimum theshold color for the histogram plot. "Yellow" by default.

     COLORTABLE:    A (standard) color table index number.

     COLORTOOL:     A ColorTool object.

     DRAW:          Set this keyword if you wish to call the DRAW method when all properties have been set.

     FORMAT:        A format specification for formatting the MIN/MAX annotations.

     MAXTHRESH:     Set this keyword to the maximum threshold value.

     MINTHRESH:     Set this keyword to the minimum threshold value.

     RANGE:         The data range of the color table.

     XSIZE:         The X size of the histostretch draw widget.

     YSIZE:         The Y size of the histostretch draw widget.

     _EXTRA:        Any keywords appropriate for the superclass SetProperty" method.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CT_STRETCH__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CT_STRETCH__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a colortable stretch
       widget for images. Essentially, it allows the use to window/level
       an image with respect to its display colors. No image data is changed.

 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:

       Objects.

 SYNTAX:

       tlb = Obj_New("TOPLEVELBASE")
       stretch = Obj_New('CT_STRETCH', tlb, Range=[0, 255])
       tlb -> Draw

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { CT_STRETCH, $
             r: BytArr(256), $               ; The original red color vector.
             g: BytArr(256), $               ; The original green color vector.
             b: BytArr(256), $               ; The original blue color vector.
             c_bg: "", $                     ; The name of the background color.
             c_border: "", $                 ; The name of the border color.
             c_centhresh: "", $              ; The name of the center threshold color.
             c_maxthresh: "", $              ; The name of the maximum threshold color.
             c_minthresh: "", $              ; The name of the minimum threshold color.
             cenThresh: 0.0, $               ; The center of the threshold range.
             closeto: 0.0, $                 ; A delta for establishing if you are "close" to a line.
             colors: Obj_New(), $            ; A colortool object for image colors.
             coords: Obj_New(), $            ; A coordinate object for the colorbar.
             drawID: Obj_New(), $            ; The draw widget object.
             format: "", $                   ; The string text format.
             image: Obj_New(), $             ; The internal image that is displayed.
             lineToMove: "", $               ; A string identifying which line we should move. MIN, MAX, CENTER.
             maxThresh: 0.0, $               ; The maximum threshold.
             minThresh: 0.0, $               ; The minimum threshold.
             pixmapID: Obj_New(), $          ; The pixmap widget object.
             minTextID: Obj_New(), $         ; The minimum Text Widget.
             maxTextID: Obj_New(), $         ; The maximum Text Widget.
             range: FltArr(2), $             ; The range of the color table.
             INHERITS BASEWIDGET $           ; Inherits base widget capability.
           }

 MESSAGES:

       A message with a title of 'CT_STRETCH_CHANGE is sent whenever there is a change in
       a histogram threshold line. The image object passed into the INIT method is automatically
       registered to receive these messages. The DATA passed with the message contains the
       minumum and maximum threshold values, like this:

         DATA={maxThresh:self.maxThresh, minThresh:self.minThresh}

 MODIFICATION_HISTORY:

       Written by: David Fanning, 20 January 2004.
       Removed RETAIN=1 keyword on PIXMAPWIDGET to allow display on UNIX machines. 4 Jan 2008. DWF.

(See C:\IDL\Catalyst\source\widgets\ct_stretch__define.pro)


CW_HISTOSTRETCH::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::CLEANUP

 PURPOSE:

       This is the CW_HISTOSTRETCH object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::DRAW

 PURPOSE:

       This method draws the image histogram and image threshold lines in the draw widget.

 SYNTAX:

       histoStretch -> Draw

 ARGUMENTS:

     None.

 KEYWORDS:

     _EXTRA:  Any keywords appropriate for the superclass Add method.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::DRAWLINES

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::DRAWLINES

 PURPOSE:

       This method draws the image threshold lines on the histogram plot. It also
       updates the threshold value widgets in the interface.

 SYNTAX:

       histoStretch -> DrawLines

 ARGUMENTS:

     None.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::DRAWPLOT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::DRAWPLOT

 PURPOSE:

       This method draws the image histogram plot, both in the display window
       and in a pixmap window for faster copying as the cursor moves the threshold
       lines.

 SYNTAX:

       histoStretch -> DrawPlot

 ARGUMENTS:

     None.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::EVENTHANDLER

 PURPOSE:

       This is the event handler method for the compound widget object.
       All internal events are handled here.

 SYNTAX:

       Called by the Catalyst system when an event for one of the compound
       object's widgets is generated.

 ARGUMENTS:

     event:    The event object from the system.

 KEYWORDS:

     None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::GETPROPERTY

 PURPOSE:

       This method enables the getting of the CW_HISTOSTRETCH properties.

 SYNTAX:

       histoStretch -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     _REF_EXTRA:    Any keywords appropriate for the superclass GetProperty" method.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::INIT

 PURPOSE:

       This is the CW_HISTOSTRETCH object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent:        The parent object widget for this compound widget. A BASEWIDGET.

     image:         The image object that will be controlled by this compound widget object.
                    Data for the histogram will be obtained via the image object's GETDATA
                    method. The MESSAGEHANDLER method of th image object will be called when
                    the user causes the histogram threshold values to change.

 KEYWORDS:

     C_AXES:        The name of the axes color for the histogram plot. "Wheat" by default.

     C_BG:          The name of the background color for the histogram plot. "Charcoal" by default.

     C_CENTHRESH:   The name of the center theshold color for the histogram plot. "Sky Blue" by default.

     C_DATA:        The name of the data color for the histogram plot. "White" by default.

     C_MAXTHRESH:   The name of the maximum theshold color for the histogram plot. "Green" by default.

     C_MINTHRESH:   The name of the minimum theshold color for the histogram plot. "Yellow" by default.

     FORMAT:        A format specification for formatting the histogram annotations.

     FRAME:         Set this keyword to put a frame around the compound widget.

     MAXTHRESH:     Set this keyword to the maximum threshold value. Set to the maximum
                    value of the image data by default.

     MINTHRESH:     Set this keyword to the minimum threshold value. Set to the minimum
                    value of the image data by default.

     NBINS:         The number of bins in the histogram. Set to 100 by default.

     _EXTRA:        Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::MESSAGEHANDLER

 PURPOSE:

       This method responds to "messages" sent from other objects. It is called
       automatically by other objects. To receive messages, it is necessary to
       "register" with the messaging object.

 SYNTAX:

       None. Called by other objects.

 ARGUMENTS:

       TITLE:  The message title. This is the "name" of the message indicated when
               the object registered for messages with the messaging object.

 KEYWORDS:

       DATA:   Information from the SENDER that may be relevant in processing the message.
               Typically, an anonymous structure variable, although it could be anything at all.

       SENDER: An output keyword. This is the object reference of the object that is sending
               the message.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::NOTIFY_REALIZE

 PURPOSE:

       When the compound object widget is realized, it should draw the histogram plot in its
       display window.

 SYNTAX:

       self -> Notify_Realize, object

 ARGUMENTS:

       object:    The object that was realized (often the self object).

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::RESET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::RESET

 PURPOSE:

       This method resets the histogram GUI, based on the display image current in the image object.

 SYNTAX:

       histoStretch -> DrawPlot

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH::SETPROPERTY

 PURPOSE:

       This method enables the setting of the CW_HISTOSTRETCH properties.

 SYNTAX:

       histoStretch -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     C_AXES:        The name of the axes color for the histogram plot. "Wheat" by default.

     C_BG:          The name of the background color for the histogram plot. "Charcoal" by default.

     C_CENTHRESH:   The name of the center theshold color for the histogram plot. "Sky Blue" by default.

     C_DATA:        The name of the data color for the histogram plot. "White" by default.

     C_MAXTHRESH:   The name of the maximum theshold color for the histogram plot. "Green" by default.

     C_MINTHRESH:   The name of the minimum theshold color for the histogram plot. "Yellow" by default.

     XSIZE:         The X size of the histostretch draw widget.

     YSIZE:         The Y size of the histostretch draw widget.

     _EXTRA:        Any keywords appropriate for the superclass SetProperty" method.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


CW_HISTOSTRETCH__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       CW_HISTOSTRETCH__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a histogram stretch interactive
       widget for images.

 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:

       Objects.

 SYNTAX:

       tlb = Obj_New("TOPLEVELBASE")
       stretch = Obj_New('CW_HISTOSTRETCH', tlb, imageObject)

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { CW_HISTOSTRETCH, $
             image: Obj_New(), $             ; The image object we are interacting with.
             drawID: Obj_New(), $            ; The draw widget object.
             pixmapID: Obj_New(), $          ; The pixmap widget object.
             minThresh: 0.0, $               ; The minimum threshold.
             maxThresh: 0.0, $               ; The maximum threshold.
             cenThresh: 0.0, $               ; The center of the threshold range.
             minTextID: Obj_New(), $         ; The minimum Text Widget.
             maxTextID: Obj_New(), $         ; The maximum Text Widget.
             cenTextID: Obj_New(), $         ; The center Text Widget.
             format: "", $                   ; The string text format.
             colors: Obj_New(), $            ; A colortool object.
             coords: Obj_New(), $            ; A coordinates object.
             xdata: Ptr_New(), $             ; The X data for the histogram plot.
             histoplot: Ptr_New(), $         ; The histogram plot data itself.
             closeto: 0.0, $                 ; A delta for establishing if you are "close" to a line.
             lineToMove: "", $               ; A string identifying which line we should move. MIN, MAX, CENTER.
             range: FltArr(2), $             ; The range of the histogram plot.
             INHERITS BASEWIDGET $           ; Inherits base widget capability.
           }

 MESSAGES:

       A message with a title of 'HISTOSTRETCH_CHANGE is sent whenever there is a change in
       a histogram threshold line. The image object passed into the INIT method is automatically
       registered to receive these messages. The DATA passed with the message contains the
       minumum and maximum threshold values, like this:

         DATA={maxThresh:self.maxThresh, minThresh:self.minThresh}

 MODIFICATION_HISTORY:

       Written by: David Fanning, July 17, 2003.

(See C:\IDL\Catalyst\source\widgets\cw_histostretch__define.pro)


DRAWBUTTONWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET

 PURPOSE:

       The purpose of this routine is to construct a button widget from a draw widget.
       The button is constucted using the system colors of the user's computer, so it
       could look differently on each individual's computer.

 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:

       Object compound widgets.

 SYNTAX:

       buttonWidget = Obj_New("DrawButtonWidget", theParent)

 SUPERCLASSES:

       DRAWWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 EVENT_STURCTURE:

   event  = { DRAWBUTTONWIDGET_EVENT, $
                ID:Obj_New(), $            ; The widget object that caused the event.
                TOP: Obj_New(), $          ; The object at the top of the object hierarchy.
                HANDLER:Obj_New(), $       ; The event handler object.
                EVENT_NAME: "", $          ; The name of the event. (DRAWBUTTONWIDGET_EVENT)
                NAME: "", $                ; The name of the DrawButtonWidget object.
                SELECT:0L $                ; Always set to 1 for button events.
            }

 CLASS_STRUCTURE:

   class = { DRAWBUTTONWIDGET, $
             colors: Obj_New(), $         ; A SystemColors object for drawing colors.
             event_handler:Obj_New(), $   ; The real event handler object(s) for the DROPLISTWIDGET.
             event_method_real: "", $     ; The event method assigned by the user to this object widget.
             fontname: "", $              ; The name of a true-type font to use for button text.
             fontsize: 0.0, $             ; The font size of button text.
             fonttype: 0L, $              ; The type of font you want (e.g, !P.Font).
             offcenter: 0L, $             ; An offset from center of widget.
             pixmap: Obj_New(), $         ; The pixmap for buffering output.
             selected: 0L, $              ; A flag that indicates if the button has a selected (1) or unselected (0) appearance.
             sensitive: 0L, $             ; A flag that indicates if the button is sensitive (1) or insensitive (0).
             xsize: 0L, $                 ; The X size of the widget.
             ysize: 0L, $                 ; The Y size of the widget.
             value: "", $                 ; The button value (text).
             INHERITS DrawWidget $
           }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 21 January 2004.
       Added NORELEASE keyword to INIT and SETPROPERTY methods. 10 May 2004. DWF.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::ADD

 PURPOSE:

       This method is a dummy ADD method that ensures nothing can be added to this object.
       This object is meant to be a terminal object.

 SYNTAX:

       Not used.

 ARGUMENTS:

       object: The object to add to the container.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::CLEANUP

 PURPOSE:

       This is the DRAWBUTTONWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::DRAW

 PURPOSE:

       Draws the button appearance in the draw widget. Superclass DRAW methods are NOT called,
       since this is a terminal draw event.

 SYNTAX:

       buttonObject -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the WIDGETATOM::DRAW method.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::EVENTHANDLER

 PURPOSE:

       This is the event handler method of the object. The purpose is to send an event to the
       real event handler on a button UP event that is within the confines of the button.
       A DRAWBUTTONWIDGET event is sent to the parent object's event handler.

 SYNTAX:

       widgetObject -> EventHandler, event, object

 ARGUMENTS:

       EVENT:  The event created by the droplist widget.

       OBJECT: The object reference of the widget object causing the event.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to get the object's properties.

 SYNTAX:

       buttonObject -> GetProperty, VALUE=buttonValue

 ARGUMENTS:

       None.

 KEYWORDS:

       FONTNAME:       The name of the font to used for button text.

       FONTSIZE:       The size of the font. .

       FONTTYPE:       The type of font used for button text. (-1 Hershey, 0 Hardware, 1 True-Type)..

       OFFCENTER:      The number of pixels in Y direction that text is offset.

       SELECTED:       Set if the button has a selected appearance.

       SENSITIVE:      Set if the button is sensitive.

       VALUE:          The text value of the button.

       _REF_EXTRA:     Any keyword appropriate for the GETPROPERTY method of superclass objects.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::INIT

 PURPOSE:

       This is the BUTTONWIDGET object class initialization method.

 ARGUMENTS:

       parent:        The parent object reference.

 KEYWORDS:

       FONTNAME:       The name of the font to use for button text. Default is "". Only valid if FONTTYPE=1.

       FONTSIZE:       The size of the font. Not valid with FONTTYPE=0. Default is 1.0.

       FONTTYPE:       The type of font to use. (-1 Hershey, 0 Hardware, 1 True-Type). Default is 0.

       NORELEASE:      If this keyword is set, the button will assume a SELECTED appearance upon
                       selection.

       OFFCENTER:      The number of pixels in Y direction that text should be offset. Default is 5.

       SELECTED:       Set this keyword to give the button a selected appearance.

       SENSITIVE:      Set this keyword to make the button sensitive (1) or insensitive (0). Default is 1.

       UNITS:          The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

       VALUE:          The initial text value of the button.

       XOFFSET:        The horizontal space (pixels) from upper left corner of the parent bullitin-board base.

       XSIZE:          The X size of the button.

       YOFFSET:        The vertical space (pixels) from upper left corner of the parent bullitin-board base.

       YSIZE:          The Y size of the button.

       _EXTRA:         Any extra keywords are passed along to the DRAWWIDGET superclass object.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWBUTTONWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWBUTTONWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties.

 SYNTAX:

       buttonObject -> SetProperty, VALUE=buttonValue

 ARGUMENTS:

       None.

 KEYWORDS:

       DRAW:           Set this keyword if you wish to draw the button after properties have been set.

       FONTNAME:       The name of the font to use for button text. Only valid if FONTTYPE=1.

       FONTSIZE:       The size of the font. Not valid with FONTTYPE=0.

       FONTTYPE:       The type of font to use. (-1 Hershey, 0 Hardware, 1 True-Type).

       NORELEASE:      If this keyword is set, the button will assume a SELECTED appearance upon
                       selection.

       OFFCENTER:      The number of pixels in Y direction that text should be offset.

       SELECTED:       Set this keyword to give the button a selected appearance.

       SENSITIVE:      Set this keyword to make the button sensitive (1) or insensitive (0).

       VALUE:          The initial text value of the button.

       _EXTRA:         Any keyword appropriate for the SETPROPERTY method of superclass objects.

(See C:\IDL\Catalyst\source\widgets\drawbuttonwidget__define.pro)


DRAWWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET

 PURPOSE:

       The purpose of this routine is to implement a draw widget as an 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:

       Object widgets.

 SYNTAX:

       drawWidget = Obj_New("DrawWidget", theParent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 MESSAGES:

       RESIZEDDRAWWIDGET:  If the XSIZE or YSIZE keywords are used with the SETPROPERTY method, a
                           RESIZEDRAWWIDGET message is sent to registered users (often a pixmap).
                           The DATA passed with the message is a two-element array containing the
                           new X and Y size of the draw widget canvas.

       DRAWWIDGETREALIZED: When the Draw Widget is realized a DRAWWIDGETREALIZED message is sent to
                           registered users.

       DRAWWIDGET_DRAW:    When the Draw Widget draws itself a DRAWWIDGET_DRAW message is sent to
                           registered users. If it is available, the REQUESTER of the DRAW is sent
                           with the message as the DATA of the message.

 CLASS_STRUCTURE:

   class = { DrawWidget,          $
             _coords    : OBJ_NEW(), $   ; A CATCOORD object of some type.
             _colors    : OBJ_NEW(), $   ; A COLORTOOL object for setting up color tables.
             _drawBase   : OBJ_NEW (), $ ; A top-level base widget object, if required.
             _noDraw     : 0B, $         ; Flag that, if set, inhibits draw method calls.
             _videoRAM   : 0L, $         ; amount of video memory consumed by the widget
             _psconfig   : OBJ_NEW(), $  ; A PostScript configuration object.
             _eraseWindow: 0B, $         ; A flag that indicates the window should be erased before drawing.
             _refreshbuffer: OBJ_NEW(), $; The identifier of a PIXMAPWIDGET that can carry out window refresh.
             INHERITS WidgetAtom $       ; INHERITS WIDGETATOM capabilities.
             }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2002.
       Added a RESIZEDRAWWIDGET message in SetProperty method. 7 December 2004. DWF.
       I made the default background for draw widget's white to facilitate PostScript
         output. Default annotation colors are not black. 11 Dec 2004. DWF.
       Added refresh buffer capability along with REFRESH method. 23 January 2005. DWF.
       Changed the INITIALCOLOR back to "black". Tired of fighting it... 5 July 2005. DWF.
       Fixed a problem that occurred when setting XSIZE, but not YSIZE. 29 Aug 2005. DWF.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::ADD

 PURPOSE:

       This method adds an object to the DrawWidget object container. The DrawWidget
       object's DRAW method is called automatically, unless adviced otherwise.

 SYNTAX:

       thisDrawObj -> Add, object

 ARGUMENTS:

       object:      The object to add to the draw widget container.

 KEYWORDS:

       DRAW:        If this keyword is set, the DRAW method is called as soon as the object has
                    been added to the DrawWidget object container.

       SETWINDOW:   Set this keyword, if you wish to add this draw widget as the display window
                    for the object being added.

       USE_COLORS:  If this keyword is set, replace the COLORTOOL object (if any) in the object
                    being added, with the one associated with this DrawWidget object.

       USE_COORDS:  If this keyword is set, replace the CATCOORD object (if any) in the object
                    being added, with the one associated with this DrawWidget object.

       _EXTRA:      Any keyword appropriate for the superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::APPLYCOLORS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::APPLYCOLORS

 PURPOSE:

       This method sets up the colors for the data object if they exist. For this
       reason, sub-classes *MUST* call this method at the *START* of their draw methods.

 SYNTAX:

       self -> ApplyColors

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::APPLYCOORDS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::APPLYCOORDS

 PURPOSE:

       This method sets up the coordinates for the data object if they exist. For this
       reason, sub-classes *MUST* call this method at the *START* of their draw methods.

 SYNTAX:

       self -> ApplyCoords

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::CLEANUP

 PURPOSE:

       This is the DRAWWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::CONTROLPANELEVENTS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        DrawWidget::CONTROLPANELEVENTS

 PURPOSE:

        This method is the event handler for the DrawWidget object's ControlPanel.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::COPY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::COPY

 PURPOSE:

       This method copies the contents of the draw widget to the current graphics window using
       the DEVICE COPY method. The DEVICE COPY command looks like this:

       DEVICE, COPY=[origin[0], origin[1], extent[0], extent[1], destination[0], destination[1], drawWindowID]

       If the IMAGE keyword is used, the window contents are stored in an image variable
       and the window contents are *not* copied into the current graphics window.

 SYNTAX:

       thisDrawObj -> Copy

 ARGUMENTS:

       None.

 KEYWORDS:

       DESINATION: A two-element array specifying the device coordinates of the lower-left
                   corner of the copied region in the destination window. By default: [0,0].

       EXTENT:     A two-element array specifying the number of columns and rows to copy.
                   If missing, the entire draw widget window is copied.

       IMAGE:      Set this keyword to a named IDL variable that returns a copy of the draw
                   widget contents as an image. (Output). If this keyword is used, the draw
                   widget contents are stored here, rather than copied to the current graphics
                   window.

       ORIGIN:     A two-element array specifying the device coordinates of the lower-left
                   corner of region in the draw widget window to be copied. By default: [0,0].

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::DRAW

 PURPOSE:

       This method draws the contents of the draw widget object's container in the draw widget window.
       It does this by calling the DRAW methods of any objects found in its container object.
;
 SYNTAX:

       thisDrawObj -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       BACKGROUND_COLOR: Set this keyword to the name of the background color. Used
                         only when erasing window contents. On 8-bit displays, this
                         will load a color in !P.BACKGROUND. The color "BLACK" by default.

       ERASE_WINDOW:     Set this keyword to erase the window before drawing contents.

       HOURGLASS:        Set this keyword to enable the hourglass cursor for the draw operation.

       REQUESTER:        This optional keyword is set to the object that requests a DRAW of the
                         DrawWidget. This is helpful sometimes when DRAWWIDGET_DRAW messages
                         are received by other objects. The object reference is passed on as
                         the DATA in the DRAWWIDGET_DRAW message.

       TARGET_WINDOW:    Normally the draw widget draws into its own window. But, sometimes you
                         want the draw widget to draw somewhere else. Setting this keyword to
                         another DRAWWIDGET or PIXMAPWIDGET object reference allows graphics
                         to be drawn there.

       TARGETS:          Typically, calling the DRAW method of a DrawWidget will call the DRAW
                         method of any objects in its container. However, if the TARGETS keyword
                         is set to an object reference (or array of object references), only these
                         objects will be drawn. This would allow you, for example, to re-draw only
                         a single image object in a window with several image objects.

       _EXTRA:           Any extra keywords appropriate for superclass DRAW methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the DrawWidget object's properties

 SYNTAX:

       aDrawWidget -> GetProperty, WINDOW_ID=wid

 ARGUMENTS:

       None.

 KEYWORDS:

       BUTTON_EVENTS:    Returns a 1 if button events are on for the draw widget. Returns 0 otherwise.

       COLOR_OBJECT:     The COLORTOOL object associated with this draw widget.

       CONTEXT_EVENTS:   Returns a 1 if context events are on, a 0 otherwise.

       COORD_OBJECT:     The CATCOORD object associated with this draw widget.

       ERASE_WINDOW:     Returns a 1 if the ERASE_WINDOW keyword is set. Returns 0 otherwise.

       EXPOSE_EVENTS:    Returns a 1 if expose events are on for the draw widget. Returns 0 otherwise.

       INITIAL_COLOR:    The name of the initial color for the draw widget.

       KEYBOARD_EVENTS:  Returns a 1 if keyboard events are on for the draw widget. Returns 0 otherwise.

       MOTION_EVENTS:    Returns a 1 if motion events are on for the draw widget. Returns 0 otherwise.

       NO_DRAW:          Returns a 1 if drawing is turned off for the draw widget. Returns 0 otherwise.

       REFRESHBUFFER:    An object reference to a PIXMAPWIDGET object that can serve to refresh the
                         draw widget display.

       TOOLTIP:          The tooltip associated with this widget object. Null string if no tooltip.

       VIEWPORT_EVENTS:  Returns a 1 if scroll events are on for the draw widget. Returns 0 otherwise.

       WHEEL_EVENTS:     Returns a 1 if wheel events are on for the draw widget. Returns 0 otherwise.

       WINDOWID:         The window index number of the draw widget.

       _REF_EXTRA:       Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::INIT

 PURPOSE:

       This is the DRAWWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theParent - An object reference to a WIDGETATOM-subclassed object.
           This is the same as using the PARENT keyword.

 KEYWORDS:

       APP_SCROLL:      A memory-saving way of scrolling draw widgets. See WIDGET_DRAW documentation.

       BUTTON_EVENTS:   Set this keyword to enable widget button events in the draw widget.

       COLOR_OBJECT:    Use this keyword to load a COLORTOOL object for setting up colors
                        for data display.

       CONTEXT_EVENTS:  Set this keyword to turn context events on for this widget object..

       COORD_OBJECT:    Use this keyword to load a CATCOORD object for setting up
                        the data coordinate system for data display.

       ERASE_WINDOW:    Set this keyword to cause the draw widget to execute an ERASE before drawing.

       EXPOSE_EVENTS:   Set this keyword to enable widget expose events in the draw widget.

       FRAME:           Create a frame this many pixels wide around the widget.

       IGNORE_ACCELERATORS: Set this keyword to specify what WIDGET_BUTTON accelerators are to be
                        ignored when this draw widget has keyboard focus. Setting IGNORE_ACCELERATORS
                        allows a defined list of accelerators to be processed by the draw widget instead
                        of by the conflicting accelerated button. Valid values are:

                             A string or string array containing any value that is legal for the
                             ACCELERATOR keyword for BUTTONWIDGET, or

                             1 -- Indicating that all accelerators should be ignored.

                        Ordinarily, accelerators are processed before keyboard events reach the
                        widget that has the keyboard focus. Setting IGNORE_ACCELERATORS allows a
                        defined list of accelerators to be processed by the draw widget instead of
                        by associated buttons or menu items. Once the draw widget loses focus, all
                        specified accelerators are automatically re-enabled.

       INITIAL_COLOR:   The name of the initial color for the draw widget. Used when realized and
                        if the draw widget is set up to erase before display (i.e., ERASE_WINDOW=1).

       KEYBOARD_EVENTS: Set this keyword to enable keyboard events for this widget. Setting
                        the value to 1 will enable "normal" keys. Setting the value to 2 will enable
                        modifier keys. See the IDL documenation for WIDGET_DRAW for details.

       MOTION_EVENTS:   Set this keyword to enable widget motion events in the draw widget.

       NODRAW:          Set this keyword to prohibit re-drawing via the DRAW method.

       PARENT:          An object reference to a WIDGETATOM-subclassed object.

       REFRESHBUFFER:   An object reference to a PIXMAPWIDGET object that can serve to refresh the
                        draw widget display. The draw widget takes no parental interest in this object
                        and doesn't destroy it when the draw widget is destroyed. The refresh buffer is
                        accessed via the REFRESH method. If no buffer is present, the REFRESH method
                        simply calls the DRAW method for the object.

       RETAIN:          Set this keyword to determine how backing store is handled. See IDL WIDGET_DRAW
                        documentation for details. Set to 1 by default for Windows machines and to 2 otherwise.

       SCR_XSIZE:       Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:       Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SCROLL:          Set this keyword to add scroll bars to the draw widget.

       TOOLTIP:         Set this keyword to a string that will be displayed if the cursor hovers
                        over the draw widget.

       UNITS:           The units for measurments. The default is 0 for pixels. Other values are
                        1 for inches, and 2 for centimeters.

       VIEWPORT_EVENTS: Set this keyword to enable widget viewport scroll events in the draw widget.

       WHEEL_EVENTS:    Set this keyword to enable wheel events in the draw widget.

       X_SCROLL_SIZE:   The X size (pixels) of the scrollable window area.

       XOFFSET:         The horizontal space (pixels) from upper left corner of the display.

       XSIZE:           The X size of the widget. (300 pixels by default.)

       Y_SCROLL_SIZE:   The Y size (pixels) of the scrollable window area

       YOFFSET:         The vertical space (pixels) from upper left corner of the display.

       YSIZE:           The Y size of the widget. (300 pixels by default.)

       _EXTRA:          Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::MESSAGEHANDLER

 PURPOSE:

       This method receives notification of a message call from another object's SENDMESSAGE
       method.

 SYNTAX:

       thisObject -> MessageHandler, title, SENDER=sender, MESSAGE=message

 ARGUMENTS:

       TITLE:   The title of the message.

 KEYWORDS:

       DATA:    A keyword that contains any information the sender wishes to pass
                with the message. It can be empty.

       SENDER:  The object that generated the message

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::NOTIFY_REALIZE

 PURPOSE:

       At realization, the draw widget draws it's contents.

 SYNTAX:

       self -> Notify_Realize, object

 ARGUMENTS:

       OBJECT: The object that was realized (often the self object).

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::OUTPUT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::Output

 PURPOSE:

       This method will create graphic output files of the draw widget contents. The default
       is to create JPEG output files unless other output is selected via keywords.

 SYNTAX:

       drawWidget -> Output

 ARGUMENTS:

       None.

 KEYWORDS:

      BMP:        Set this keyword to create a BMP output file.

      JPEG:       Set this keyword to create a JPEG output file.

      FILENAME:   Set this keyword to the name of the output file. If the filename
                  is specified without a file extension, the appropriate file
                  extension will be added to the filename, based on the type of
                  the file.

      NODIALOG:   Set this keyword if you want to write the file directly,
                  without giving the user a chance to change the filename.

      PNG:        Set this keyword to create a PNG output file.

      POSTSCRIPT: Set this keyword to create a PostScript output file.

      TIFF:       Set this keyword to create a TIFF output file.

      TYPE        Can be set to the type of file to write. Use this instead of
                  setting BMP, JPEG,PNG, or TIFF keywords: TYPE='JPEG'. The
                  primary purpose of this is to make event handlers easier to write.

      _EXTRA:     Any keywords appropriate for the WRITE_*** routines.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::REFRESH

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::REFRESH

 PURPOSE:

       This method refreshs the draw widget from a refresh buffer, if available.
       If not available, the method simply calls the DRAW method of the object.
;
 SYNTAX:

       thisDrawObj -> Refresh

 ARGUMENTS:

       None.

 KEYWORDS:

       REQUESTER:        This optional keyword is set to the object that requests a DRAW of the
                         DrawWidget. This is helpful sometimes when DRAWWIDGET_DRAW messages
                         are received by other objects. The object reference is passed on as
                         the DATA in the DRAWWIDGET_DRAW message.

       TARGET_WINDOW:    Normally the draw widget draws into its own window. But, sometimes you
                         want the draw widget to draw somewhere else. Setting this keyword to
                         another DRAWWIDGET or PIXMAPWIDGET object reference allows graphics
                         to be drawn there.

       _EXTRA:           Any extra keywords appropriate for the DRAW method.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::RESIZE

 PURPOSE:

       This method resizes the canvas area of the draw widget.
;
 SYNTAX:

       thisDrawObj -> Resize, xsize, ysize

 ARGUMENTS:

       XSIZE:    The new X size of the canvas area of the draw widget, in pixels.

       YSIZE:    The new Y size of the canvas area of the draw widget, in pixels.

 KEYWORDS:

       DRAW:     Set this keyword to call the draw method when the draw widget
                 resizing is completed.

       SCREEN:   Normally, the XSIZE and YSIZE keywords apply to the draw widget canvas.
                 If the SCREEN keyword is set, the keywords apply to the screen coordinates
                 of the draw widget. (It's actual size on the display. Usually about 6 pixels
                 larger than the canvas.)

       VIEWPORT: Normally, the XSIZE and YSIZE keywords apply to the draw widget canvas.
                 If the VIEWPORT keyword is set, the keywords apply to the viewport size
                 of the draw widget.

       _EXTRA:   Any extra keywords appropriate for the DRAW method.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::SELECTOBJECTS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::SELECTOBJECTS

 PURPOSE:

       This method searches through the object hierarchy, rooted at the draw widget,
       for selectable objects. Valid objects are returned in an object array.

 SYNTAX:

       selectableObjects = drawObj->SelectObjects()

 ARGUMENTS:

       X:      The X location of the selection in the draw widget window.
       Y:      The Y location of the selection in the draw widget window.

 KEYWORDS:

       COUNT:  Returns the number of valid objects found.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the DrawWidget object's properties

 SYNTAX:

       aDrawWidget -> SetProperty, BUTTON_EVENTS=1

 ARGUMENTS:

       None.

 KEYWORDS:


       BUTTON_EVENTS:    Turns draw widget button events on if set to 1. Events off if set to 0.

       COLOR_OBJECT:     Use this keyword to load a COLORTOOL object for setting up colors
                         for data display.

       CONTEXT_EVENTS:   Set to 1 to turn context events on for the base widget.

       COORD_OBJECT:     Use this keyword to load a CATCOORD object for setting up
                         the data coordinate system for data display.

       ERASE_WINDOW:     Set this keyword to cause the draw widget to execute an ERASE before drawing.

       EXPOSE_EVENTS:    Turns draw widget expose events on if set to 1. Events off if set to 0.

       IGNORE_ACCELERATORS: Set this keyword to specify what WIDGET_BUTTON accelerators are to be
                        ignored when this draw widget has keyboard focus. Setting IGNORE_ACCELERATORS
                        allows a defined list of accelerators to be processed by the draw widget instead
                        of by the conflicting accelerated button. Valid values are:

                             A string or string array containing any value that is legal for the
                             ACCELERATOR keyword for BUTTONWIDGET, or

                             1 -- Indicating that all accelerators should be ignored.

                        Ordinarily, accelerators are processed before keyboard events reach the
                        widget that has the keyboard focus. Setting IGNORE_ACCELERATORS allows a
                        defined list of accelerators to be processed by the draw widget instead of
                        by associated buttons or menu items. Once the draw widget loses focus, all
                        specified accelerators are automatically re-enabled.
       INITIAL_COLOR:    The name of the initial color for the draw widget. Used when realized and
                         if the draw widget is set up to erase before display (i.e., ERASE_WINDOW=1).
                         By default, set to "WHITE" to facilitate output to PostScript.

       INPUT_FOCUS:      Set this keyword to configure the draw widget to receive keyboard focus.

       KEYBOARD_EVENTS:  Turns draw widget keyboard events on.

       MOTION_EVENTS:    Turns draw widget motion events on if set to 1. Events off if set to 0.

       NO_DRAW:          Prevents drawing of contents if set to 1. Allows drawing if set to 0.

       REFRESHBUFFER:    An object reference to a PIXMAPWIDGET object that can serve to refresh the
                         draw widget display. The draw widget takes no parental interest in this object
                         and doesn't destroy it when the draw widget is destroyed.

       SCREEN:           Normally, the XSIZE and YSIZE keywords apply to the draw widget canvas.
                         If the SCREEN keyword is set, the keywords apply to the screen coordinates
                         of the draw widget. (It's actual size on the display. Usually about 6 pixels
                         larger than the canvas.)

       SET_DRAW_VIEW:    A two-element array that defines the current position of the viewport in UNITS
                         relative to the lower-left corner of the draw widget.

       TOOLTIP:          A short string that will be displayed if the cursor hovers over this widget.

       VIEWPORT_EVENTS:  Turns draw widget viewport events on if set to 1. Events off if set to 0.

       VIEWPORT_SIZE:    Normally, the XSIZE and YSIZE keywords apply to the draw widget canvas.
                         If the VIEWPORT_SIZE keyword is set, the keywords apply to the viewport size
                         of the draw widget.

       XSIZE:            The new X size of the canvas area of the draw widget, in pixels.

       YSIZE:            The new Y size of the canvas area of the draw widget, in pixels.


       _EXTRA:           Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::SETWINDOW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::SETWINDOW

 PURPOSE:

       This method sets the window index number of the draw widget to be the
       current graphics window.

 SYNTAX:

       thisDrawObj -> SetWindow

 ARGUMENTS:

       None.

 KEYWORDS:

       None

(See C:\IDL\Catalyst\source\widgets\drawwidget__define.pro)


DRAWWIDGET::SET_WINDOW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DRAWWIDGET::SET_WINDOW

 PURPOSE:

       This method simply overwrites the DRAWWIDGET Set_Window method to do nothing.

 SYNTAX:

       thisDrawObj -> Set_Window

 ARGUMENTS:

       None.

 KEYWORDS:

       None

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


DROPLISTWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET

 PURPOSE:

       The purpose of this routine is to implement a droplist widget in an object
       structure. This routine is a compound widget in order to give the droplist
       more functionality than the current IDL droplist widget. In particular, it
       is much easier to keep track of the current value of the droplist in this
       implementation.

 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:

       Compound object widgets.

 SYNTAX:

       aDroplist = Obj_New("DROPLISTWIDGET", parent, VALUE=['pig', 'cow', coyote'], INDEX=2)

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       ATOM
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { DROPLISTWIDGET, $                ; The DROPLISTWIDGET object class definition.
                _droplistID:0L, $             ; The droplist widget identifier.
                _event_handler:Obj_New(), $   ; The assigned event handler object for the DROPLISTWIDGET.
                _event_method_real: "", $     ; The event method assigned by the user to this object widget.
                _index:0L, $                  ; The index number of the current selecton.
                _title: "", $                 ; The droplist title.
                _selection:Ptr_New(), $       ; The current droplist selection.
                _value: Ptr_New(), $          ; The values or selections on the droplist.
                INHERITS BASEWIDGET $
            }

 EVENT_STRUCTURE:

       This is the event structure sent to the parent widget object.

   event  = { DROPLISTWIDGET_EVENT, $
                ID:Obj_New(), $            ; The widget object that caused the event.
                TOP: Obj_New(), $          ; The object at the top of the object hierarchy.
                HANDLER:Obj_New(), $       ; The event handler object.
                EVENT_NAME: "", $          ; The name of the event, DROPLISTWIDGET_EVENT.
                NAME: "", $                ; The name of the object.
                INDEX:0L, $                ; The index number of the current selection.
                SELECTION:Ptr_New() $      ; The current droplist selection (i.e., value[index]).
      }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 23 July 2002.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::CLEANUP

 PURPOSE:

       This is the DROPLISTWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::EVENTHANDLER

 PURPOSE:

       This is the event handler method of the object. The purpose is to set the
       object's current selection and index number. A DROPLISTWIDGET event is
       sent to the parent object's event handler.

 SYNTAX:

       widgetObject -> EventHandler, event

 ARGUMENTS:

       EVENT:  The event created by the droplist widget.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the DroplistWidget object's properties

 SYNTAX:

       aDroplistWidget -> GetProperty, Selection=currentSelection

 ARGUMENTS:

       None.

 KEYWORDS:

       EVENT_OBJECTS:   Normally, the EVENT_OBJECTS are obtained in the CATATOM object, but the
                        DROPLISTWIDGET is compound object, so we have to intercept the process
                        and get the event object that will *eventually* receive the DROPLISTWIDGET event.

       DYNAMIC_RESIZE : Returns a 1 if the droplist is configued for dynamic resizing. Otherwise, 0.

       INDEX:           Returns the index number of the current selection.

       NUMBER:          Returns the number of selections available in the droplist.

       SELECTION:       Returns the current selection in the droplist values.

       VALUES:          Returns the current possible values or selections in the droplist.

       _REF_EXTRA:      Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::INIT

 PURPOSE:

       This is the DROPLISTWIDGET object class initialization method

 SYNTAX:

       aDropList = Obj_New('DROPLISTWIDGET')

 ARGUMENTS:

       theParent:     An object reference to a WIDGETATOM-subclassed object.
                      This is the same as using the PARENT keyword.

 KEYWORDS:

       DYNAMIC_RESIZE: Set this keyword to enable dynamic resizing of the droplist.

       FONT:           Set this keyword to the name of a font to use on the droplist.

       FORMAT:         Set this keyword to a format for processing the "values" of the
                       droplist. For example, VALUES=[4, 5], FORMAT='(F4.2)'.

       FRAME:          Set this keyword to create a frame this many pixels wide around the droplist.

       INDEX:          The index of the value that should be the current droplist selection.

       PARENT:         An object reference to a WIDGETATOM-subclassed object.

       LABEL_SIZE:     The scr_xsize of the "label" to the left of the droplist.

       SCR_XSIZE:      Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:      Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SPACES:         A one- or two-element array that indicates how many blank spaces to
                       insert around the "values" of the droplist. The first element is the
                       before-value spacing, the secound element is the after-value spacing.
                       A single value adds the same spacing both before and after the value.

       TITLE:          A string that is the "title" of the droplist.

       UNITS:          The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

       VALUE:          A vector of possible selections for the droplist. May be any data type.

       XSIZE:          The X size of the widget.

       YSIZE:          The Y size of the widget.

       _EXTRA:         Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::RESIZE

 PURPOSE:

       This method is used to dynamically resize the droplist.

 SYNTAX:

       aDroplistWidget -> Resize, newsize

 ARGUMENTS:

       newSize:      The new size of the droplist. If the variable newSize is
                     not provided, the new size is set by the parent widget's
                     X screen size. This makes it possible to have the droplist
                     sized to fit it's parent base widget.

 KEYWORDS:

       PARENT_SIZE:  Returns the SCR_XSIZE of the parent widget. (Output keyword)

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


DROPLISTWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       DROPLISTWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the DroplistWidget object's properties

 SYNTAX:

       aDroplistWidget -> SetProperty, Map=1

 ARGUMENTS:

       None.

 KEYWORDS:

       DYNAMIC_RESIZE : Set this keyword to 1 to turn dynamic resizing on. To 0 to turn it off..

       EVENT_OBJECTS:   Normally, the EVENT_OBJECTS are set by the CATATOM object, but the
                        LISTWIDGET is compound object, so we have to intercept the process
                        and set the event object that will *eventually* receive the LISTWIDGET event.

       INDEX:           Set the current droplist selection to this index number.

       SELECTION:       Set the current droplist selection to this selection. (An alternative
                        to using the INDEX keyword.)

       SPACES:          A one- or two-element array that indicates how many blank spaces to
                        insert around the "values" of the droplist. The first element is the
                        before-value spacing, the secound element is the after-value spacing.
                        A single value adds the same spacing both before and after the value.

       VALUE:           A vector of possible selections for the droplist. May be any data type.

       _EXTRA:          Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\droplistwidget__define.pro)


FIELDWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::CLEANUP

 PURPOSE:

       This is the FIELDWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        FIELDWIDGET::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the FIELDWIDGET object.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain FIELDWIDGET properties. Be sure
       you ALWAYS call the superclass GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

   CR_EVENTS:          Indicates if carriage return events are passed to the parent.

   DATATYPE:           The type of data displayed in the widget.

   DECIMAL:            The number of digits to the right of the decimal in floating number.

   DIGITS:             The number of digits permitted in integer numbers.

   FOCUS_EVENTS:       Indicates if keyboard focus events are passed to the parent.

   LABELSIZE:          The X screen size of the label widget.

   TEXTSIZE:           The X screen size of the text widget.

   VALUE:              The current value of the compound widget.

   XSIZE:              The X size of the Text Widget.

     _REF_EXTRA:       Any keywords appropriate for the superclass GetProperty method.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::INIT

 PURPOSE:

       This is the FIELDWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     None.

 KEYWORDS:

   COLUMN:             Set this keyword to have the Label Widget above the Text Widget.

   CR_EVENTS:          Set this keyword if you only want Carriage Return events to be returned.

   DECIMAL:            Set this keyword to the number of digits to the right of the decimal
                       point in FLOATVALUE and DOUBLEVALUE numbers.

   DIGITS:             Set this keyword to the number of digits permitted in INTERGERVALUE and LONGVALUE numbers.

   FIELDFONT:          The font name for the text in the Text Widget.

   FOCUS_EVENTS:       Set this keyword if you want text events when the keyboard focus is
                       moved out of the text widget.

   FRAME:              Set this keyword to put a frame around the compound widget.

   LABEL_LEFT:         Set this keyword to align the label to the left of the label.

   LABEL_RIGHT:        Set this keyword to align the label to the right of the label.

   LABELFONT:          The font name for the text in the Label Widget.

   LABELSIZE:          The X screen size of the Label Widget.

   NOEDIT:             Set this keyword to make the text widget non-editable.

   POSITIVE:           Set this keyword if you want only positive numbers allowed.

   ROW:                Set this keyword to have the Label beside the Text Widget. (The default.)

   SCR_XSIZE:          The X screen size of the compound widget.

   SCR_YSIZE:          The Y screen size of the compound widget.

   TITLE:              The text to go on the Label Widget.

   VALUE:              The "value" of the compound widget.

   XSIZE:              The X size of the text widget in the usual character units

    _EXTRA:            Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::MOVETAB

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::MOVETAB

 PURPOSE:

       This method moves the focus to the next Inputwidget.

 SYNTAX:

       theObject -> MoveTab

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::RESIZE

 PURPOSE:

       This method resizes the widget by making the text widget fit the new size.

 SYNTAX:

       theobject -> Resize, newsize

 ARGUMENTS:

       newsize:          The new size of the compound text widget.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::RETURNVALUE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::RETURNVALUE

 PURPOSE:

       This method takes a string and turns it into a number,depending upon the current data
       type of the compound widget. For numbers, if the input value is a null string, then
       an undefined variable is returned.

 SYNTAX:

       A private method.

 ARGUMENTS:

       inputValue:       A string value that is to be turned into a number.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::SETPROPERTY

 PURPOSE:

       This method allows the user to set the FIELDWIDGET object's properties. Be sure
       you ALWAYS call the superclass SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

   CR_EVENTS:          Set this keyword if you want Carriage Return events to be returned.

   DECIMAL:            Set this keyword to the number of digits to the right of the decimal
                       point in FLOATVALUE and DOUBLEVALUE numbers.

   DIGITS:             Set this keyword to the number of digits permitted in INTERGERVALUE and LONGVALUE numbers.

   FIELDFONT:          The font name for the text in the Text Widget.

   FOCUS_EVENTS:       Set this keyword if you only want text events when the keyboard focus is
                       moved in or out of the text widget.

   INPUT_FOCUS:        Set this keyword to set input focus to/from the text widget.

   LABELSIZE:          The X screen size of the Label Widget.

   POSITIVE:           Set this keyword if you want only positive numbers allowed.

   SCR_XSIZE:          The X screen size of the compound widget.

   SCR_YSIZE:          The Y screen size of the compound widget.

   SELECT:             Set this keyword to select the text in the Text Widget.

   TABNEXT:            The inputwidget object to receive focus upon tabbing.

   TEXTSIZE:           The X screen size of the Text Widget.

   TITLE:              The text to go on the Label Widget.

   VALUE:              The "value" of the compound widget.

   XSIZE:              The X size of the Text Widget.

     _EXTRA:           Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET::VALIDATE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET::VALIDATE

 PURPOSE:

       This function eliminates illegal characters from a string that represents
       a number. The return value is a properly formatted string that can be turned into
       an INT, LONG, FLOAT, or DOUBLE value.


 SYNTAX:

       This is a private method.

 NOTES:

      + 43B
      - 45B
      . 46B
      0 - 9 48B -57B
      'eEdD' [101B, 69B, 100B, 68B]

 ARGUMENTS:

       value:          The input value to validate.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


FIELDWIDGET__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FIELDWIDGET__DEFINE

 PURPOSE:

       The purpose of this routine is to create an object widget similar to FSC_FIELD
       (which is itself similar to CW_FIELD).

 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("FIELDWIDGET")

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { FIELDWIDGET, $
             _event_handler: Obj_New(), $ ; The real event handler object or objects for this compound object.
             _event_method_real: "", $    ; The event method assigned by the user to this object widget.
             cr_events: 0L, $             ; A flag meaning send carriage return events.
             datatype: "" , $             ; The type of data to be returned from the text widget.
             decimal: 0, $                ; The number of decimals points in FLOAT and DOUBLE numbers.
             digits: 0, $                 ; The number of digits in INT and LONG numbers.
             focus: 0L, $                 ; A flag to indicate focus events should be returned.
             gentype: "", $               ; The "general" type of data: INTEGER, UNSIGNED, FLOAT, or STRING.
             labelID: Obj_New(), $        ; The label widget ID.
             tabnext: Obj_New(), $        ; The identifier of a widget to receive the cursor focus if a TAB character is detected.
             textID: Obj_New(), $         ; The text widget ID.
             theText: "", $               ; The actual text in the text widget.
             theValue: Ptr_New(), $       ; The actual "value" of the text in the text widget. :-)
             positive: 0, $               ; A flag meaning only positive numbers allowed.
             undefined: Ptr_New(), $      ; The undefined data type.
             INHERITS BASEWIDGET $
           }

 MESSAGES:

   None.

 EVENTS:

   All events are handled internally unless the keywords CR_EVENTS or FOCUS_EVENTS are used.
   If the CR_EVENTS keyword is used, the event structure returned to your Event Handler routine
   is defined like this:

       {ID:Obj_New(), TOP:Obj_New(), HANDLER:Obj_New(), NAME:self._name, $
         EVENT_NAME:'FIELD_CARRIAGE_RETURN_EVENT', VALUE:Ptr_New(), TYPE:""}

   If the FOCUS_EVENTS keyword is use, the event structure returned to your Event Handler routine
   is defined like this, where ENTER is 0 if focus leaves the text widget and is 1 if focus enters
   the text widget:

       {ID:Obj_New(), TOP:Obj_New(), HANDLER:Obj_New(), NAME:self._name, $
         EVENT_NAME:'FIELD_CARRIAGE_RETURN_EVENT', VALUE:Ptr_New(), TYPE:"", ENTER:0}

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 18 July 2004.

(See C:\IDL\Catalyst\source\widgets\fieldwidget__define.pro)


IMAGESTRIP::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::CLEANUP

 PURPOSE:

       This is the IMAGESTRIP object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::DRAW

 PURPOSE:

       This method draws all the images in the ImageContainer object. It is assumed
       that the ImageContainer object contains CatImage or ImageFrame objects that
       can have their output size and starting coordinates set by the SetProperty
       method.

 SYNTAX:

       theObject -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        IMAGESTRIP::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the IMAGESTRIP object.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain IMAGESTRIP properties. Be sure
       you ALWAYS call the superclass GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     ANNOTATECOLOR:    The name of the annotation color for this object. Image frame
                       dividers are drawn in this color.

     COLOR_OBJECT:     A ColorTool object for the draw widget object. Use this if you
                       want the draw widget to manage colors for the images.

     DRAWOBJECT:       The object reference of the draw widget object.

     IMAGECONTAINER:   The image container object containing CATIMAGE or IMAGEFRAME objects.

     FRAMES:           The number of image "frames" to display in the frame window. Note, this
                       is the number of visible images, not the total number of images in the
                       container.

     START_FRAME:      The initial frame to put on the left side of the visible images. By default, 0.

     XSIZE:            The output image X size. Each image frame with have this X size.

     YSIZE:            The output image Y size. Each image frame with have this Y size.

     _REF_EXTRA:       Any keywords appropriate for the superclass GetProperty method.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::INIT

 PURPOSE:

       This is the IMAGESTRIP object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     ANNOTATECOLOR:    The name of the annotation color for this object. Image frame
                       dividers are drawn in this color. By default, "sky blue".

     COLOR_OBJECT:     A ColorTool object for the draw widget object. Use this if you
                       want the draw widget to manage colors for the images.

     IMAGECONTAINER:   The image container object containing CATIMAGE or IMAGEFRAME objects.

     FRAMES:           The number of image "frames" to display in the frame window. Note, this
                       is the number of visible images, not the total number of images in the
                       container.

     START_FRAME:      The initial frame to put on the left side of the visible images. By default, 0.

     UNITS:            The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

     XSIZE:            The output image X size. Each image frame with have this X size.

     YSIZE:            The output image Y size. Each image frame with have this Y size.

 KEYWORDS:

     _EXTRA:           Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::MESSAGEHANDLER

 PURPOSE:

       This method receives notification of a message call from another object's SENDMESSAGE
       method.

 SYNTAX:

       thisObject -> MessageHandler, title, SENDER=sender, MESSAGE=message

 ARGUMENTS:

       TITLE:   The title of the message.

 KEYWORDS:

       DATA:    A keyword that contains any information the sender wishes to pass
                with the message. It can be empty.

       SENDER:  The object that generated the message

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP::SETPROPERTY

 PURPOSE:

       This method allows the user to set the IMAGESTRIP object's properties. Be sure
       you ALWAYS call the superclass SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     ANNOTATECOLOR:    The name of the annotation color for this object. Image frame
                       dividers are drawn in this color.

     COLOR_OBJECT:     A ColorTool object for the draw widget object. Use this if you
                       want the draw widget to manage colors for the images.

     IMAGECONTAINER:   The image container object containing CATIMAGE or IMAGEFRAME objects.

     FRAMES:           The number of image "frames" to display in the frame window. Note, this
                       is the number of visible images, not the total number of images in the
                       container.

     START_FRAME:      The initial frame to put on the left side of the visible images. By default, 0.

     XSIZE:            The output image X size. Each image frame with have this X size.

     YSIZE:            The output image Y size. Each image frame with have this Y size.

 KEYWORDS:

     _EXTRA:     Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


IMAGESTRIP__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       IMAGESTRIP__DEFINE

 PURPOSE:

       The purpose of this routine is to allow a sequence of images to exist in
       a rwo or strip of images. The object is a compound widget object and is
       a subclassed BASEWIDGET. Buttons at either end of the image strip draw widget
       allow the strip to be "moved" one image at a time. If you hold the buttons down
       and touch the space bar, images can be move very rapidly. See the text program at
       the end of this file for an example.

 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("IMAGESTRIP")

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { IMAGESTRIP, $
             imageContainer: Obj_New(), $           ; An ImageContainer object.
             l_buttonID: Obj_New(), $               ; The left button identifier.
             r_buttonID: Obj_New(), $               ; The right button identifier.
             start_frame: 0L, $                     ; The starting frame on the left.
             drawID: Obj_New(), $                   ; Draw widget for image display. (X size is xsize*frames, Y size is ysize.)
             pixmap: Obj_New(), $                   ; A pixmap for buffering image display.
             xsize: 0L, $                           ; Image X size.
             ysize: 0L, $                           ; Image Y size.
             frames: 0L, $                          ; The number of frames in the strip.
             annotateColor: "", $                   ; The annotation color.
             _event_handler:Obj_New(), $            ; The real event handler object(s) for the IMAGESTRIP.
             _event_method_real: "", $              ; The event method assigned by the user to this object widget.
             INHERITS BASEWIDGET $
           }

 EVENT_STRUCTURE:

   This is the event structure sent from the IMAGESTRIP when someone clicks the mouse
   inside the image strip window..

   event  = { IMAGESTRIP_EVENT, $
                ID:Obj_New(), $            ; The widget object that caused the event.
                TOP: Obj_New(), $          ; The object at the top of the object hierarchy.
                HANDLER:Obj_New(), $       ; The event handler object.
                EVENT_NAME: "", $          ; The name of the event, IMAGESTRIP_EVENT.
                NAME: "", $                ; The name of the object.
                SELECTION:Obj_New() $      ; The selected image object in the ImageContainer.
                BUTTON_DOWN: ""            ; The button clicked DOWN in draw widget. "LEFT", "MIDDLE", or "RIGHT".
            }

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 21 February 2004.
       Added BUTTON_DOWN field in IMAGESSTRIP_EVENT. 20 Dec 2004. DWF.

(See C:\IDL\Catalyst\source\widgets\imagestrip__define.pro)


LABELWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LABELWIDGET

 PURPOSE:

       The purpose of this routine is to implement a label widget as an 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:

       Object widgets.

 SYNTAX:

       labelWidget = Obj_New("LabelWidget", parent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = {LABELWIDGET, INHERITS WidgetAtom }

 MODIFICATION_HISTORY:

       Written by: David Burridge, 15th July 2002.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LABELWIDGET::ADD

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

 NAME:
       LABELWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add method to prevent addition of
       other widget objects to label objects.

 SYNTAX:

       labelObject -> Add, object

 ARGUMENTS:

       object: The object to add to the container. Only objects that are NOT subclassed
               from WIDGETATOM objects can be added.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LABELWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LABELWIDGET::CLEANUP

 PURPOSE:

       This is the LABELWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the "WidgetAtom::Cleanup" method.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LABELWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LABELWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to get the object's properties.

 SYNTAX:

       labelObject -> GetProperty, VALUE=labelValue

 ARGUMENTS:

       None.

 KEYWORDS:

       VALUE:       The current value of the slider widget.

       _REF_EXTRA:  Any keyword appropriate for the "WidgetAtom::GetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LABELWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LABELWIDGET::INIT

 PURPOSE:

       This is the LABELWIDGET object class initialization method.

 ARGUMENTS:

       theParent - The parent object reference. This is the same as using the PARENT keyword.

 KEYWORDS:

       ALIGN_CENTER:    Set this keyword to center-align text on the widget.

       ALIGN_LEFT:      Set this keyword to left-align text on the widget.

       ALIGN_RIGHT:     Set this keyword to right-align text on the widget.

       DYNAMIC_RESIZE:  Set this keyword to enable dynamic resizing of the widget.

       FONT:            The name of a font to be used by the widget.

       FRAME:           Create a frame this many pixels wide around base.

       PARENT:          An object reference to a container object.

       SCR_XSIZE:       Set the screen X size of the widget to this many pixels. (Use discouraged.)

       SCR_YSIZE:       Set the screen Y size of the widget to this many pixels. (Use discouraged.)

       SUNKEN_FRAME:    Set this keyword to obtain a 3D look for the lable.

       UNITS:           The units for measurments. The default is 0 for pixels. Other values are
                        1 for inches, and 2 for centimeters.

       VALUE:           The text to be placed on the label widget.

       XOFFSET:         The horizontal space (pixels) from upper left corner of the parent.

       XSIZE:           The X size of the widget.

       YOFFSET:         The vertical space (pixels) from upper left corner of the parent.

       YSIZE:           The Y size of the widget.

       _EXTRA:          Any keyword appropriate for the "WidgetAtom::Init" method.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LABELWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LABELWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties.

 SYNTAX:

       labelObject -> SetProperty, VALUE='Test'

 ARGUMENTS:

       None.

 KEYWORDS:

       VALUE:          The value of the label widget.

       DYNAMIC_RESIZE: Set this keyword to make the label size itself for its contents

       _EXTRA:         Any keyword appropriate for the "WidgetAtom::SetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\labelwidget__define.pro)


LISTWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET

 PURPOSE:

       The purpose of this routine is to implement a list widget in an object
       structure. This routine is a compound widget in order to give the list
       more functionality than the current IDL list widget.

 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:

       Compound object widgets.

 SYNTAX:

       aList = Obj_New("LISTWIDGET", theParent, VALUE=['pig', 'cow', coyote'], INDEX=2)

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

      class = { LISTWIDGET, $                ; The LISTWIDGET object class definition.
                _clicks: 0L, $               ; The number of clicks required to generate events.
                _index: Ptr_New(), $         ; A pointer to the index or indices of the selections.
                _listID:0L, $                ; The list widget identifier.
                _listtitle: Obj_New(), $     ; The title object.
                _listbutton: Obj_New(), $    ; The button object.
                _multiple: 0L, $             ; A flag that indicates this list widget generates multiple selections.
                _selection: Ptr_New(), $     ; A pointer to the selections.
                _value: Ptr_New(), $         ; The values or selections on the list.
                _event_handler: Obj_New(), $ ; The real (assigned) event handler object for this compound object.
                _event_method_real: "", $    ; The event method assigned by the user to this object widget.
                INHERITS BASEWIDGET $
              }

 EVENT_STRUCTURE:

   This is the event structure sent from the LISTWIDGET to the event handler object.

      event = { LISTWIDGET_EVENT, $
                ID:Obj_New(), $            ; The widget object that caused the event.
                TOP: Obj_New(), $          ; The object at the top of the object hierarchy.
                HANDLER:Obj_New(), $       ; The event handler object.
                EVENT_NAME: "", $          ; The name of the event, LISTWIDGET_EVENT.
                NAME: "", $                ; The name of the object.
                CLICKS: 0L, $              ; The number of clicks for selection. 1 or 2.
                INDEX: Ptr_New(), $        ; The index (or indices) of the current selection.
                NUM_SELECTED: 0L, $        ; The number of elements in the selection pointer.
                SELECTION:Ptr_New() $      ; The current list selection (i.e., value[index]).
              }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 25 March 2003.
       Fixed a problem with the EventHandler when using context sensitive menus with ListWidget. DWF. 15 May 2004.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::CLEANUP

 PURPOSE:

       This is the LISTWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::EVENTHANDLER

 PURPOSE:

       This is the event handler method of the object. The purpose is to set the
       object's current selection and index number. A LISTWIDGET event is
       sent to the parent object's event handler.

 SYNTAX:

       widgetObject ->EventHandler, event

 ARGUMENTS:

       EVENT:  The event created by the list widget.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the ListWidget object's properties

 SYNTAX:

       aListWidget -> GetProperty, Selection=currentSelection

 ARGUMENTS:

       None.

 KEYWORDS:

       CONTEXT_EVENTS:  Returns a 1 if context events are on, a 0 otherwise.

       EVENT_OBJECT:    Normally, the EVENT_OBJECT is obtained in the ATOM object, but the
                        LISTWIDGET is compound object, so we have to intercept the process
                        and get the event object that will *eventually* receive the LISTWIDGET event.

       INDEX:           The index number or numbers of the current selection.

       MULTIPLE:        Returns a 1 is this is a multiple-selection list, 0 otherwise.

       NUMBER:          Returns the number of selections available in the list.

       NUM_SELECTED:    Returns the number of selections in the SELECTION.

       SELECTION:       Returns the current selection or selections in the list values.

       TOP:             Returns the index number of the list item current at the top
                        of the visible portion of the list.

       VALUE:           Returns the current possible values or selections in the list.

       VISIBLE:         Returns the number of list items visible at the current time.

       XSIZE:           The size of the list widget
       _REF_EXTRA:      Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::INIT

 PURPOSE:

       This is the LISTWIDGET object class initialization method

 SYNTAX:

       alist = Obj_New('LISTWIDGET')

 ARGUMENTS:

       theParent:     An object reference to a WIDGETATOM-subclassed object.
                      This is the same as using the PARENT keyword.

 KEYWORDS:

       CONTEXT_EVENTS:    Set this keyword to turn context events on for this widget object..

       FONT:           Set this keyword to the name of a font to use on the list.

       FORMAT:         Set this keyword to a format for processing the "values" of the
                       list. For example, VALUES=[4, 5], FORMAT='(F4.2)'.

       FRAME:          Set this keyword to create a frame this many pixels wide around the list.

       MULTIPLE:       Set this keyword if you want to make multiple selections in the list. If
                       this keyword is set, a button is placed at the bottom of the list widget

       MULTI_TITLE:    The text on the MULTI_BUTTON widget. It will be "Apply" by default.

       NO_MULTI_BUTTON: Set this keyword if you are making a MULTIPLE selection and do not want
                       an APPLY button at the bottom of the list.

       PARENT:         An object reference to a WIDGETATOM-subclassed object.

       SCR_XSIZE:      Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:      Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SPACES:         A one- or two-element array that indicates how many blank spaces to
                       insert around the "values" of the list. The first element is the
                       before-value spacing, the secound element is the after-value spacing.
                       A single value adds the same spacing both before and after the value.

       TITLE:          A string that is the "title" of the list. If absent, no Title Label
                       appears above the list.

       UNITS:          The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

       VALUE:          A vector of possible selections for the list. May be any data type.

       XSIZE:          The X size of the widget.

       YSIZE:          The Y size of the widget.

       _EXTRA:         Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::NOTIFY_REALIZE

 PURPOSE:

       This method is used to make sure all the components of the list compound widget object
       are the same size when they are realized

 SYNTAX:

       Called automatically when widget hierarchy is realized.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::RESIZE

 PURPOSE:

       This method is used to dynamically resize the list.

 SYNTAX:

       aListWidget -> Resize, newsize

 ARGUMENTS:

       newSize:      The new size of the list. If the variable newSize is
                     not provided, the new size is set by the parent widget's
                     X screen size. This makes it possible to have the list
                     sized to fit it's parent base widget.

 KEYWORDS:

       PARENT_SIZE:  Returns the SCR_XSIZE of the parent widget. (Output keyword)

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


LISTWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       LISTWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the ListWidget object's properties

 SYNTAX:

       aListWidget -> SetProperty, Map=1

 ARGUMENTS:

       None.

 KEYWORDS:

       CONTEXT_EVENTS:    Set to 1 to turn context events on for the base widget.

       EVENT_OBJECTS: Normally, the EVENT_OBJECTS keyword is set by the ATOM object, but the
                 LISTWIDGET is compound object, so we have to intercept the process
                 and set the event object(s) that will *eventually* receive the LISTWIDGET event.

       FORMAT:   Set this keyword to a format for processing the "values" of the
                 list. For example, VALUES=[4, 5], FORMAT='(F4.2)'. Only used if VALUE is set.

       SELECT:   A scalar or vector of indices into the list items that will highlight or
                 select these items in the list.

       SPACES:   A one- or two-element array that indicates how many blank spaces to
                 insert around the "values" of the list. The first element is the
                 before-value spacing, the secound element is the after-value spacing.
                 A single value adds the same spacing both before and after the value.
                 Only used if VALUE is set.

       TOPVALUE: Set this keyword to an integer that specified the index of the item
                 at the top of the list in the list widget.

       VALUE:   A vector of possible selections for the list. May be any data type.

       XSIZE:   The size of the list widget in character units.

       YSIZE:   The size of the list widget in terms of items in the list.


       _EXTRA:  Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\listwidget__define.pro)


MENUBARWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       MENUBARWIDGET

 PURPOSE:

       The purpose of this routine is to wrap a top-level base menubar widget identifier
       up in a widget object. This object should never be defined by the user. Rather, it
       is defined automatically when a TOPLEVELBASE object is created.

 AUTHOR:

        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:

       Object widgets.

 SYNTAX:

       None. This is called automatically from the TOPLEVELBASE INIT method.

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { MENUBARWIDGET, $       ; The MENUBARWIDGET object class name.
              INHERITS WidgetAtom $  ; Subclassed from WIDGETATOM.
            }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2002.

(See C:\IDL\Catalyst\source\widgets\menubarwidget__define.pro)


MENUBARWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       MENUBARWIDGET::ADD

 PURPOSE:

       This method adds an object widget to the menubase object widget. The
       added object widget must be subclassed from the BUTTONWIDGET object.

 SYNTAX:

       self -> Add, object

 ARGUMENTS:

       object: The object to add to the container. The object must be
          subclassed from the BUTTONWIDGET object. (Required)

 KEYWORDS:

       _EXTRA: Any keyword appropriate for superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\menubarwidget__define.pro)


MENUBARWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       MENUBARWIDGET::INIT

 PURPOSE:

       This is the MENUBARWIDGET object class initialization method.

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       ID: The menubar identifier obtained from the MBAR keyword in the creation of a
           TOPLEVELBASE object.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\menubarwidget__define.pro)


MENUBARWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       MENUBARWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties. It is really only a wrapper to
       the WIDGETATOM SETPROPERTY method written to prevent XSIZE and YSIZE keywords being
       used as these are invalid for menu widgets.

 SYNTAX:

       self -> SetProperty, UVALUE=theValue

 ARGUMENTS:

       None.

 KEYWORDS:

       XSIZE:  This keyword is ignored by the MENUBARWIDGET object.

       YSIZE:  This keyword is ignored by the MENUBARWIDGET object.

       _EXTRA: Any keyword appropriate for WIDGETATOM::SETPROPERTY methods.

(See C:\IDL\Catalyst\source\widgets\menubarwidget__define.pro)


ODRAWWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET

 PURPOSE:

       The purpose of this routine is to implement an object graphics draw widget as an 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:

       Object widgets.

 SYNTAX:

       oDrawWidget = Obj_New("ODrawWidget", theParent)

 SUPERCLASSES:

       DRAWWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { ODRAWWIDGET, $
             INHERITS DrawWidget }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2003.
       Fixed a problem involving getting the graphics tree in GetProperty method. 19 July 2004. DWF.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::ADD

 PURPOSE:

       This method adds an IDLgrView or IDLgrScene object to the ODrawWidget container.
       Unlike direct graphics DrawWidget objects, ODrawWidgets do NOT draw all of the
       objects in their container. In fact, only ONE object can be added to the container.
       Subsequent ADD method calls will replace the IDLgrView object with another.

       While the draw widget is adding the object, it will also regester for any
       SETPROPERTY_CHANGE messages.

 SYNTAX:

       thisDrawObj -> Add, viewObject

 ARGUMENTS:

       viewObject:    The IDLgrView or IDLgrScene object to add to the draw widget container.

 KEYWORDS:

       EXCLUSIVE:     This keyword is used only if HANDLE_EVENTS is also set. If EXCLUSIVE
                      is set the EXCLUSIVE_EVENT_OBJECT property is set instead of the
                      EVENT_OBJECT property.

       HANDLE_EVENTS: If this keyword is set, the object that is being added will set the
                      EVENT_OBJECT property of the oDrawWidget, and all subsequent
                      draw widget events will be sent to the EVENT_HANDLER method of the
                      object being added.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::CLEANUP

 PURPOSE:

       This is the DRAWWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::COPY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::COPY

 PURPOSE:

       This method copies the contents of the draw widget to an image variable.

 RETURN_VALUE:

       image:     A (3, winXsize, winYsize) or (4, winXsize, winYsize) array (depending
                  upon whether an alpha channel is present or not) image.

 SYNTAX:

       image = oDrawWidget -> Copy()

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::DRAW

 PURPOSE:

       This method draws the contents of the draw widget object's container in the draw widget window.
       It does this by calling the DRAW methods of any objects found in its container object.
;
 SYNTAX:

       thisDrawObj -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       HOURGLASS:        Set this keyword to enable the hourglass cursor for the draw operation.

       _EXTRA:           Any extra keywords appropriate for superclass DRAW methods.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the DrawWidget object's properties

 SYNTAX:

       aDrawWidget -> GetProperty, RESOLUTION=resolution

 ARGUMENTS:

       None.

 KEYWORDS:

       GRAPHICS_TREE:     Set this keyword to an named variable to retrieve the IDLgrView or
                          IDLgrScene object contained in the draw widget.

       RESOLUTION:        The pixel resolution [xres, yres] of the window measured in centimeters per pixel.

       SCREEN_DIMENSIONS: A two-element array of the form [height, width] specifying the dimensions
                          of the display device in pixel or device coordinates.

       WINDOWOBJECT:      The window object associated with the the draw widget.

       VIEWOBJECT:        Set this keyword to return the CATOBJECTVIEW object contained in the
                          oDrawWidget container.

       ZBUFFER_DATA:      Set this keyword to a named variable that will contain a floating array
                          representing the z-buffer currently in the window. The returned array
                          will have dimensions of [winXsize, winYsize].

       _REF_EXTRA:        Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::INIT

 PURPOSE:

       This is the ODRAWWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theParent:      An object reference to a WIDGETATOM-subclassed object.

 KEYWORDS:

       APP_SCROLL:      The "application scroll" keyword. See Widget_Draw documentation for details.

       BUTTON_EVENTS:   Set this keyword to enable widget button events in the draw widget.

       COLOR_MODEL:     Set this keyword to 1 to use INDEXED color for associated IDLgrWindow.
                        Set to 0 (the default) for RBG color model.

       EXPOSE_EVENTS:   Set this keyword to enable widget expose events in the draw widget.

       FRAME:           Create a frame this many pixels wide around the widget.

       GRAPHICS_TREE:   Set this keyword to an IDLgrView or IDLgrScene object to be displayed
                        in the draw widget.

       KEYBOARD_EVENTS: Set this keyword to enable keyboard events for this widget. Setting
                        the value to 1 will enable "normal" keys. Setting the value to 2 will enable
                        modifier keys. See the IDL documenation for WIDGET_DRAW for details.

       MOTION_EVENTS:   Set this keyword to enable widget motion events in the draw widget.

       NODRAW:          Set this keyword to prohibit re-drawing via the DRAW method.

       PARENT:          An object reference to a WIDGETATOM-subclassed object.

       RENDERER:        Set this keyword to 1 to use IDL software OpenGL library. Set to 0
                        (the default) to use hardware OpenGL rendering (if available).

       RETAIN:          Set this keyword to determine how backing store is handled. See IDL WIDGET_DRAW
                        documentation for details. Set to 1 by default for Windows machines and to 2 otherwise.

       SCR_XSIZE:       Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:       Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SCROLL:          Set this keyword to add scroll bars to the draw widget.

       UNITS:           The units for measurments. The default is 0 for pixels. Other values are
                        1 for inches, and 2 for centimeters.

       VIEWPORT_EVENTS: Set this keyword to enable widget viewport scroll events in the draw widget

       X_SCROLL_SIZE:   The X size (pixels) of the scrollable window area.

       XOFFSET:         The horizontal space (pixels) from upper left corner of the display.

       XSIZE:           The X size of the widget. (300 pixels by default.)

       Y_SCROLL_SIZE:   The Y size (pixels) of the scrollable window area

       YOFFSET:         The vertical space (pixels) from upper left corner of the display.

       YSIZE:           The Y size of the widget. (300 pixels by default.)

       _EXTRA:          Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::MESSAGEHANDLER

 PURPOSE:

       This method responds to "messages" sent from other objects. It is called
       automatically by other objects. To receive messages, it is necessary to
       "register" with the messaging object.

 SYNTAX:

       None. Called by other objects.

 ARGUMENTS:

       TITLE:  The message title. This is the "name" of the message indicated when
               the object registered for messages with the messaging object.

 KEYWORDS:

       DATA:   Information from the SENDER that may be relevant in processing the message.
               Typically, an anonymous structure variable, although it could be anything at all.

       SENDER: An output keyword. This is the object reference of the object that is sending
               the message.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::OUTPUT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::Output

 PURPOSE:

       This method will create graphic output files of the draw widget contents. The default
       is to create JPEG output files unless other output is selected via keywords.

 SYNTAX:

       drawWidget -> Output

 ARGUMENTS:

       None.

 KEYWORDS:

      BMP:        Set this keyword to create BMP output file.

      JPEG:       Set this keyword to create JPEG output file.

      FILENAME:   Set this keyword to the name of the output file.

      NODIALOG:   Set this keyword if you want to write the file directly,
                  without giving the user a chance to change the filename.

      PNG:        Set this keyword to create PNG output file.

      TIFF:       Set this keyword to create TIFF output file.

      POSTSCRIPT: Set this keyword to create encapsulated PostScript output file.

      _EXTRA:     Any keywords appropriate for the WRITE_*** routines.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::PRINT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::PRINT

 PURPOSE:

       This method will send the contents of the draw widget to the default printer.

 SYNTAX:

       drawWidget -> Print

 ARGUMENTS:

       None.

 KEYWORDS:

      LANDSCAPE:  Set this keyword to 1 to select landscape output. The default in portrait output.

      VECTOR:     Set this keyword to draw using vector output. The output is not guaranteed to be
                  correct, but this may be a faster option.

      _EXTRA:     Any keywords appropriate for the IDLgrPrinter object.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


ODRAWWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ODRAWWIDGET::RESIZE

 PURPOSE:

       This method resizes the canvas area of the draw widget.
;
 SYNTAX:

       thisDrawObj -> Resize, xsize, ysize

 ARGUMENTS:

       XSIZE:  The new X size of the canvas area of the draw widget, in pixels.

       YSIZE:  The new Y size of the canvas area of the draw widget, in pixels.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\odrawwidget__define.pro)


PIXMAPWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET

 PURPOSE:

       The purpose of this routine is to implement a pixmap window as a
       widget object.

       Putting this widget into a hierarchy will cause the display generated
       by drawing the child widgets to be buffered through the pixmap to the
       target window. For this reason, invoking the DRAW method on the pixmap
       simply does a copy to the target window (or current window, if the target
       window is undefined). If you wish to simple draw the child widgets on the
       pixmap without affecting the target window, use the REFRESH method.
       
       The pixmap actually exists in an unmapped TopLevelBaseWidget. This is
       super convenient, because if you need to see the pixmap for debugging
       purposes, all you need to is set the MAP=1 keyword on its SetProperty
       method. To make the pixmap disappear again, set MAP=0.

 AUTHOR:

        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:

       Object widgets.

 SYNTAX:

       pixmapWidget = Obj_New("PixmapWidget", theParent)

 SUPERCLASSES:

       TOPLEVELBASE
       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { PixmapWidget, $
             _backgroundColor: "", $     ; The name of the background color.
             _drawWidget: 0L, $          ; The Widget ID of the draw widget.
             _keep: 0B, $                ; To conserve pixmap memory, KEEP=1 retains the pixmap, KEEP=0 does not.
             _isReady: 0B, $             ; A flag to show if the window needs updating before copy.
             _noDraw: 0B, $              ; A flag to inhibit drawing operation.
             _snapshot: OBJ_NEW(), $     ; For KEEP=0, a snapshot of the required pixmap
             _targetWindow: OBJ_NEW(), $ ; A window object that is to be the target of the pixmap.
             _xsize: 0L,  $              ; The X size of the pixmap window.
             _ysize: 0L,  $              ; The Y size of the pixmap window.
             INHERITS TOPLEVELBASE }


 NOTES:

       Note that unless the PIXMAPWIDGET is a child of another widget, that
       the user will be responsible for destroying the PIXMAPWIDGET. Failure to
       do this will result in memory leakage. In other words, if the PIXMAPWIDGET
       exists in its own unmapped TOPLEVELBASE, it will NOT be automatically destroyed
       when the program that uses it is destroyed. This must be done *explicitly*.

 MODIFICATION_HISTORY:

       Written by: David Burridge, 13th July 2002.
       Small change to SetProperty and GetProperty methods to get READY status. 28 Oct 2004. DWF.
       Added response to RESIZEDRAWWIDGET message in MessageHandler method. 7 Dec 2004. DWF.
       I made the default BACKGROUND_COLOR for pixmaps white to facilitate PostScript
          output and conform to draw widgets. 12 Dec 2004. DWF
       Removed the "overlay" capability, which we were not using. 23 January 2005. DWF.
       Changed the BACKGROUND_COLOR back to "black". Tired of fighting it... 5 July 2005. DWF.
       Renamed the former RETAIN keyword to KEEP, so that RETAIN can be used in its normal
          IDL window definition. 21 August 2006. DWF.
       Changed BACKGROUND_COLOR to BACKGROUNDCOLOR to remain consistent with GET/SET methods. And
          removed DRAW_COLOR keyword, which was used for overlays. 21 August 2006. DWF.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::ADD

 PURPOSE:

       This method adds an object to the PixmapWidget object container.

 SYNTAX:

       pixmapObj -> Add, object

 ARGUMENTS:

       object:  The object to add to the container.

 KEYWORDS:

      DRAW:     Set this keyword to cause the pixmap to be re-drawn as soon as the
                object has been added.

      _EXTRA:   Any keyword appropriate for the superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::CLEANUP

 PURPOSE:

       This is the PIXMAPWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the PIXMAPWIDGET object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::COPY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::COPY

 PURPOSE:

       This method copies the contents of the draw widget to the current graphics window using
       the DEVICE COPY method. The DEVICE COPY command looks like this:

       DEVICE, COPY=[origin[0], origin[1], extent[0], extent[1], destination[0], destination[1], self._windowID]

       If the IMAGE keyword is used, the window contents are stored in an image variable
       and the window contents are *not* copied into the current graphics window.

 SYNTAX:

       pixmapObj -> Copy

 ARGUMENTS:

       None.

 KEYWORDS:

       ERASE_WINDOW: Set this keyword to erase the window before drawing contents.

       DESINATION:   A two-element array specifying the device coordinates of the lower-left
                     corner of the copied region in the destination window. By default: [0,0].

       EXTENT:       A two-element array specifying the number of columns and rows to copy.
                     If missing, the entire draw widget window is copied.

       IMAGE:        Set this keyword to a named IDL variable that returns a copy of the draw
                     widget contents as an image. (Output). If this keyword is used, the draw
                     widget contents are stored here, rather than copied to the current graphics
                     window.

       ORDER:        Set this keyword to affect the order of image transfer when the COPY is
                     to an image rather than to a display. Applies only if the IMAGE keyword is used.

       ORIGIN:       A two-element array specifying the device coordinates of the lower-left
                     corner of region in the draw widget window to be copied. By default: [0,0].

       HOURGLASS:    Turn the cursor into an hourglass for the processing.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::DRAW

 PURPOSE:

       This method copies the contents of the pixmap widget object into the current window.
       IF the REFRESH keyword is specified or the contents have changed, the contents are
       regenerated before the copy.

 SYNTAX:

       pixmapObj -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       REFRESH:        Set this keyword to force the pixmap to refresh it's contents.

       ERASE_WINDOW:   Set this keyword to erase the target window before drawing contents.

       HOURGLASS:      Set this keyword to enable the hourglass cursor for the draw operation.

       _EXTRA:         Any extra keywords appropriate for the "WidgetAtom::Draw" method.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        PIXMAPWIDGET::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the PIXMAPWIDGET object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the PixmapWidget object's properties

 SYNTAX:

       pixmapObject -> GetProperty, XSIZE=xsize, YSIZE=ysize

 ARGUMENTS:

       None.

 KEYWORDS:

     BACKGROUNDCOLOR: The background color of the pixmap window.

     KEEP:            The "keep" status of the pixmap.

     NO_DRAW:         The flag to determine if the pixmap ignores draw invocations.

     READY:           A flag to show if the window needs updating before copy.

     RETAIN:          The RETAIN status of the window.

     WINDOWID:        The window index number of the draw widget used as the pixmap. If
                      the draw widget doesn't exist when the keyword is invoked (e.g, KEEP=0)
                      then a -1 is returned.

     XSIZE:           The width of the pixmap window canvas.

     YSIZE:           The height of the pixmap window canvas.

     _REF_EXTRA:      Any keywords appropriate for the  superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::INIT

 PURPOSE:

       This is the PIXMAPWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     theParent: An object reference to a WIDGETATOM-subclassed object.
                This is the same as using the PARENT keyword.

 KEYWORDS:

     BACKGROUNDCOLOR:  The name of the background color of the pixmap window. "Black" by default.

     KEEP:             Keep the pixmap in memory, rather than re-create it when needed. Set to 1 by default.

     MAP:              Set this keyword to make the pixmap visible (for testing purposes).

     NO_DRAW:          The flag to determine if the pixmap ignores draw invocations.

     PARENT:           The object to be parent of this one in a hierarchy.

     RETAIN:           Set this keyword to determine how backing store is handled. See IDL WIDGET_DRAW
                       documentation for details. Set to 1 by default for Windows machines and to 2 otherwise.

     TARGETWINDOW:     Set this to a window object reference that will be the target window for the pixmap.
                       If this property is undefined, the current graphics window is used as the target window.

     UNITS:            The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

     XSIZE:            The width of the pixmap window canvas.

     YSIZE:            The height of the pixmap window canvas.

     _EXTRA:           Any keywords appropriate for the "WidgetAtom::Init" method.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::MESSAGEHANDLER

 PURPOSE:

       This method receives notification of a message call from another object's SENDMESSAGE
       method.

 SYNTAX:

       thisObject -> MessageHandler, title, SENDER=sender, MESSAGE=message

 ARGUMENTS:

       TITLE:   The title of the message.

 KEYWORDS:

       DATA:    A keyword that contains any information the sender wishes to pass
                with the message. It can be empty.

       SENDER:  The object that generated the message

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::NOTIFY_REALIZE

 PURPOSE:

       At realization, the pixmap's draw widget is initialized

 SYNTAX:

       self -> Notify_Realize, object

 ARGUMENTS:

       OBJECT: The object that was realized (often the self object).

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::REFRESH

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::REFRESH

 PURPOSE:

       This method regenerates the contents of the pixmap window.

 SYNTAX:

       pixmapObj -> Refresh

 ARGUMENTS:

       None.

 KEYWORDS:

       HOURGLASS:      Set this keyword to enable the hourglass cursor for the draw operation.

       NO_DELETE:      Set this keyword to prevent the method from destroying the draw widget
                       when KEEP=0. Primarily when the refresh is called from the COPY method.

       REQUESTER:      This optional keyword is set to the object that requests a DRAW of the
                       DrawWidget. This is helpful sometimes when DRAWWIDGET_DRAW messages
                       are received by other objects. The object reference is passed on as
                       the DATA in the DRAWWIDGET_DRAW message.

       TARGETS:        Typically, calling the REFRESH method of a PixmapWidget will call the DRAW
                       method of any objects in its container. However, if the TARGETS keyword
                       is set to an object reference (or array of object references), only these
                       objects will be drawn. This would allow you, for example, to re-draw only
                       a single image object in a window with several image objects.

       _EXTRA:         Any extra keywords appropriate for the "WidgetAtom::Draw" method.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::RESIZE

 PURPOSE:

       This method resizes the canvas area of the pixmap widget.
;
 SYNTAX:

       pixmapObj -> Resize, xsize, ysize

 ARGUMENTS:

       XSIZE:     The new X size of the canvas area of the draw widget, in pixels.

       YSIZE:     The new Y size of the canvas area of the draw widget, in pixels.

 KEYWORDS:

       NOREFRESH: Set this keyword to disable the default call to the REFRESH method when the draw widget
                  resizing is completed. If you use this keyword, you will be responsible for setting
                  the pixmap READY flag when the pixmap is ready for display.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the PixmapWidget object's properties

 SYNTAX:

       PixmapWidget -> SetProperty, XSIZE=300, YSIZE=500

 ARGUMENTS:

       None.

 ARGUMENTS:

       None.

 KEYWORDS:

     BACKGROUNDCOLOR: The background color of the pixmap window.

     DRAW_COLOR:      The name of the drawing color to use for overlays.

     KEEP:            Keep the pixmap in memory, rather than re-create it when needed.

     NO_DRAW:         Set this keyword to 1 to make pixmap ignore all DRAW method calls.

     READY:           A flag to show if the window needs updating before copy.

     XSIZE:           The width of the pixmap window canvas.

     YSIZE:           The height of the pixmap window canvas.

     _EXTRA:          Any keywords appropriate for the  superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::SETWINDOW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::SETWINDOW

 PURPOSE:

       This method sets the window pixmap widget to be the current graphics window.
       Note that when the pixmap is no longer required to be the current window, the
       UnSetWindow method below should be called which will delete the draw widget
       (and free the memory resources) if required.

 SYNTAX:

       thisPixmapObj -> SetWindow

 ARGUMENTS:

       None.

 KEYWORDS:

       None

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PIXMAPWIDGET::UNSETWINDOW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PIXMAPWIDGET::UnSetWindow

 PURPOSE:

       This method is used to tell the pixmap that it is no longer required
       as the current window. This is so that if KEEP=0, the draw widget
       can be destroyed.

 SYNTAX:

       thisPixmapObj -> UnSetWindow

 ARGUMENTS:

       None.

 KEYWORDS:

       NO_DELETE:      If this keyword is set, the draw widget is not destroyed.

       NO_SNAPSHOT:    If this keyword is set, a snapshop of the pixmap is not created.

(See C:\IDL\Catalyst\source\widgets\pixmapwidget__define.pro)


PROPERTYPANEL::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYPANEL::CLEANUP

 PURPOSE:

       This is the PROPERTYPANEL object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::DISPLAY_SLIDER_BAR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        PROPERTYPANEL::DISPLAY_SLIDER_BAR

 PURPOSE:

        A utility routine for drawing the slider bar that is the panel separator.

 SYNTAX:

        theObject -> Display_Slider_Bar, index

 ARGUMENTS:

       index:    An integer specifying which view of the slider bar to display.  0 - normal view
                 (active, gray background), 1 - inactive, 2 - highlighted.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::DRAW_DASHED_BAR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        PROPERTYPANEL::DRAW_DASHED_BAR

 PURPOSE:

        A utility routine for drawing a dashed bar as the panel separator
        is moved.

 SYNTAX:

        theObject -> DrawDashedBar

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        PROPERTYPANEL::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the PROPERTYPANEL object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYPANEL::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain PROPERTYPANEL properties. Be sure
       you ALWAYS call the superclass GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     MINSIZE:        The minimum X size of either the left or right panel.

     _REF_EXTRA:     Any keywords appropriate for the superclass GetProperty method.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYPANEL::INIT

 PURPOSE:

       This is the PROPERTYPANEL object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theObject:     An object reference to the objects whose contents you wish to view.

 KEYWORDS:

     MINSIZE:        The minimum X size of either the left or right panel. By default 200 pixels.

     LEFT_XSIZE:     The pixel size of the left-most panel containing the tree widgets. By default, 2*MINSIZE.

     RIGHT_XSIZE:    The pixel size of the right-most panel containing the property sheet of the
                     currently selected tree-widget. By defaul,t 2*MINSIZE.

     TITLE:          The title of the PropertyPanel top-level base.

     YSIZE:          The Y pixel size of the panels. By default, 2*MINSIZE.

     _EXTRA:         Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYPANEL::SETPROPERTY

 PURPOSE:

       This method allows the user to set the PROPERTYPANEL object's properties. Be sure
       you ALWAYS call the superclass SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     MINSIZE:        The minimum X size of either the left or right panel.

 KEYWORDS:

     _EXTRA:         Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYPANEL__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYPANEL__DEFINE

 PURPOSE:

       The purpose of this routine is to create a panel object, which has
       a tree-widget showing the object hierarchy on the left and the
       control panel of each selected tree-widget object on the right.

 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("PROPERTYPANEL")

 SUPERCLASSES:

       TOPLEVELBASE
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { PROPERTYPANEL, $
             INHERITS TOPLEVELBASE, $          ; The PROPERTYPANEL is a TOPLEVELBASE.
             controlPanel: Obj_New(), $        ; The current control panel in the display.
             curpos: 0L, $                     ; Current position of line. Used to move the line.
             delta: 0L, $                      ; Current distance line has moved.
             down: 0L, $                       ; Status flag of button DOWN in line widget.
             left_arrow: Obj_New(), $          ; The left-facing arrow.
             left_base: Obj_New(), $           ; The left-most base widget (holds tree-widgets).
             left_xsize: 0L, $                 ; Y size of left base.
             line_base: Obj_New(), $           ; Holds separator widgets.
             line_drawID: Obj_New(), $         ; Contains the line.
             linepix: Ptr_New(), $             ; An array of values that make up the line.
             minsize: 0L, $                    ; The minumum X size allowed for the left and right base widgets.
             move_drawID_1: Obj_New(), $       ; Allows the line to be moved.
             move_drawID_2: Obj_New(), $       ; Allows the line to be moved in X Windows.
             move_base_1: Obj_New(), $         ; Allows the line to be moved.
             move_base_2: Obj_New(), $         ; Allows the line to be moved in X Windows.
             right_arrow: Obj_New(), $         ; The right-facing arrow.
             right_base: Obj_New(), $          ; The right-most base widget (holds control panels).
             right_xsize: 0L, $                ; X size of right base.
             statusbar: Obj_New(), $           ; A statusbar widget.
             topbase: Obj_New(), $             ; The top-most widget in the widget hierarchy.
             treeWidget: Obj_New(), $          ; The container contents tree widget.
             visible: 0L, $                    ; Current visibility. 1-left base only, 2-right base only, 3-both bases.
             xspace: 0L, $                     ; Used to create the line image.
             ysize: 0L $                       ; The Y size of the right and left base widgets.
           }

 MESSAGES:

   None.

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 1 Sept 2005.

(See C:\IDL\Catalyst\source\widgets\propertypanel__define.pro)


PROPERTYSHEETWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::ADD

 PURPOSE:

       This method is where you can screen what kinds of objects are
       added to this object's hierarchy. The method is not always needed.
       If you do create it, be CERTAIN to call the WIDGETATOM ADD method
       or your program will not work correctly.

 SYNTAX:

       theObject -> Add, object

 ARGUMENTS:

     object:     The object to be added to this one.

 KEYWORDS:

     _EXTRA:     Any keywords appropriate for the WIDGETATOM Add method.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::CLEANUP

 PURPOSE:

       This is the PROPERTYSHEETWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the PROPERTYSHEETWIDGET object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::DRAW

 PURPOSE:

       This method may or may not be needed by your object, depending
       upon whether a graphical representation of the object is required.
       If you wish the DRAW method to automatically propogates down to any
       objects contained in this object's container, call the WIDGETATOM DRAW
       method.

 SYNTAX:

       theObject -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        PROPERTYSHEETWIDGET::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the PROPERTYSHEETWIDGET object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain PROPERTYSHEETWIDGET properties. Be sure
       you ALWAYS call the WIDGETATOM GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     COMPONENT:      Set this to the component (object) for which information is requested.

     PROPERTY_VALID: Set this to a string to see if this string is a valid property of the widget.
                     The return value of this variable will be a 1 if the string is a valid property,
                     or a 0 if the string is not a valid property.

     PROPERTY_VALUE: Set this to the particular property identifier you which to know the
                     value of.

     VALUE:          The value of a particular COMPONENT and PROPERTY_VALUE.

     _REF_EXTRA:     Any keywords appropriate for the WIDGETATOM GetProperty method.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::INIT

 PURPOSE:

       This is the PROPERTYSHEETWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     None.

 KEYWORDS:

     ALIGN_BOTTOM: Set this keyword to align the base widget with the bottom of the parent base.

     ALIGN_CENTER: Set this keyword to align the base widget with the center of the parent base.

     ALIGN_LEFT:   Set this keyword to align the base widget with the left of the parent base.

     ALIGN_RIGHT:  Set this keyword to align the base widget with the right of the parent base.

     ALIGN_TOP:    Set this keyword to align the base widget with the top of the parent base.

     CONTEXT_EVENTS: Set this keyword to make the base widget return WIDGET_CONTEXT events when
                   the right mouse button is clicked over this base widget.

     SCR_XSIZE:    Set the screen X size of the base to this many pixels. (Use discouraged.)

     SCR_YSIZE:    Set the screen Y size of the base to this many pixels. (Use discouraged.)

     UNITS:        The units for measurments. The default is 0 for pixels. Other values are
                   1 for inches, and 2 for centimeters.

     VALUE:        The object associated with the property sheet.

     XOFFSET:      The horizontal space (pixels) from upper left corner of the display.

     XSIZE:        The X size of the widget.

     YOFFSET:      The vertical space (pixels) from upper left corner of the display.

     YSIZE:        The Y size of the widget.

     _EXTRA:       Any keywords appropriate for the WIDGETATOM INIT method.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET::SETPROPERTY

 PURPOSE:

       This method allows the user to set the PROPERTYSHEETWIDGET object's properties. Be sure
       you ALWAYS call the WIDGETATOM SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

    REFRESH_PROPERTY: Set this keyword to refresh all the properties in the property sheet widget.

     _EXTRA:          Any keywords appropriate for the WIDGETATOM SetProperty method.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


PROPERTYSHEETWIDGET__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       PROPERTYSHEETWIDGET__DEFINE

 PURPOSE:

       The purpose of this routine is to create a propertysheet widget as an 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("PROPERTYSHEETWIDGET")

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { PROPERTYSHEETWIDGET, $
             INHERITS WIDGETATOM $
           }

 MESSAGES:

   None.

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 21 April 2004.

(See C:\IDL\Catalyst\source\widgets\propertysheetwidget__define.pro)


SELECTABLEDRAWWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET

 PURPOSE:

       The purpose of this routine is to subclass a draw widget so that items in the
       draw widget can be "selectable" and interactive. The type of interaction available
       is limited to moving objects (with the left mouse button) or calling their
       control panel (with the right mouse button).

 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:

       Object widgets.

 SYNTAX:

       selectableDrawWidget = Obj_New("SelectableDrawWidget", theParent)

 SUPERCLASSES:

       DRAWWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { SelectableDrawWidget,          $
             _event_handler: Obj_New(), $ ; The real event handler object(s) for the DROPLISTWIDGET.
             _event_method_real: "", $    ; The event method assigned by the user to this object widget.
             _select_events: 0L, $        ; A flag that indicates SELECT_EVENTS are turned on.
             INHERITS DRAWWIDGET $        ; INHERITS DRAWWIDGET capabilities.
             }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 31 March 2005.
       Added ability to double-buffer output through BUFFER_OUTPUT keyword. 8 July 2005. DWF.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SELECTABLEDRAWWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET::CLEANUP

 PURPOSE:

       This is the SELECTABLEDRAWWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SELECTABLEDRAWWIDGET::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET::EVENTHANDLER

 PURPOSE:

       This is the event handler method of the object. The purpose is to check
       for SELECTABLEOBJECTS if SELECT_EVENTS is set. Otherwise, the object acts
       identically to a draw widget.

 SYNTAX:

       widgetObject -> EventHandler, event

 ARGUMENTS:

       event:  The event created by the draw widget.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SELECTABLEDRAWWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to obtain the SelectableDrawWidget object's properties

 SYNTAX:

       aSelectableDrawWidget -> GetProperty, WINDOW_ID=wid

 ARGUMENTS:

       None.

 KEYWORDS:

      BUFFER_OUTPUT:     Set to 1 if buffer output is turned on, to 0 otherwise.
    
      BUFFER_PIXMAP:     The buffer pixmap object, if one is available.

      SELECT_EVENTS:     Set to 1 if SELECT_EVENTS is turned on, to 0 otherwise.

       _REF_EXTRA:       Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SELECTABLEDRAWWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET::INIT

 PURPOSE:

       This is the SELECTABLEDRAWWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       theParent - An object reference to a WIDGETATOM-subclassed object.
           This is the same as using the PARENT keyword.

 KEYWORDS:

       BUFFER_OUTPUT:   Output to the display window is typically buffered to some extent,
                        but still requires drawing to a pixmap window, which can be slower
                        than you like under some circumstances. Setting this keyword creates
                        a second pixmap so that output can be double-buffered. This results
                        in faster display, but at the cost of additional window memory.

       SELECT_EVENTS:   Set this keyword to turn selection events (the ability to sense SELECTABLEOBJECTS)
                        on for this draw widget. The keyword is turned OFF by default to conform with
                        the expectations of normal draw widgets.

       _EXTRA:          Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SELECTABLEDRAWWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SELECTABLEDRAWWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the SelectableDrawWidget object's properties

 SYNTAX:

       aSelectableDrawWidget -> SetProperty, BUTTON_EVENTS=1

 ARGUMENTS:

       None.

 KEYWORDS:


       BUFFER_OUTPUT:   Normally, output to the display window is not buffered.
                        Depending upon what is in the window, this may result in
                        distracting flashing. If this is undesireable, set this keyword
                        and the output will be double-buffered to the display window.
                        
       INITIAL_COLOR:   The name of the initial color for the draw widget. Used when realized and
                        if the draw widget is set up to erase before display (i.e., ERASE_WINDOW=1).    

       SELECT_EVENTS:   Turns select events on (1) or off (0).

       _EXTRA:          Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\selectabledrawwidget__define.pro)


SLIDERWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SLIDERWIDGET

 PURPOSE:

       The purpose of this routine is to implement a slider widget as an 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:

       Object widgets.

 SYNTAX:

       sliderWidget = Obj_New("sliderWidget", parent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { sliderWidget, INHERITS widgetAtom }

 MODIFICATION_HISTORY:

       Written by: David Fanning, 24 March 2003.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SLIDERWIDGET::ADD

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

 NAME:
       SLIDERWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add method to prevent addition of
       other widget objects to slider objects.

 SYNTAX:

       sliderObject -> Add, object

 ARGUMENTS:

       object: The object to add to the container. Only objects that are NOT subclassed
               from WIDGETATOM objects can be added.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SLIDERWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SLIDERWIDGET::CLEANUP

 PURPOSE:

       This is the SLIDERWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the "WidgetAtom::Cleanup" method.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SLIDERWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SLIDERWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to get the object's properties.

 SYNTAX:

       sliderObject -> GetProperty, VALUE=sliderValue

 ARGUMENTS:

       None.

 KEYWORDS:

       VALUE:       The current value of the slider widget.

       MINIMUM:     The minimum value for the slider.

;      MAXIMUM:     The maximum value for the slider.

       _REF_EXTRA:  Any keyword appropriate for the "WidgetAtom::GetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SLIDERWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SLIDERWIDGET::INIT

 PURPOSE:

       This is the SLIDERWIDGET object class initialization method.

 ARGUMENTS:

       theParent - The parent object reference. This is the same as using the PARENT keyword.

 KEYWORDS:

       DRAG:        Set this keyword to create events as the slider is dragged. Drag events
                    are not possible on WINDOWS operating systems. It is not possible to turn
                    continuous drag events on using SETPROPETY.

       FONT:        The name of a font to be used by the widget.

       FRAME:       Create a frame this many pixels wide around base.

       MINIMUM:     The minimum value for the slider.

       MAXIMUM:     The maximum value for the slider.

       PARENT:      An object reference to a container object.

       SCR_XSIZE:   Set the screen X size of the widget to this many pixels. (Use discouraged.)

       SCR_YSIZE:   Set the screen Y size of the widget to this many pixels. (Use discouraged.)

       TITLE:       The text title on the slider.

       UNITS:       The units for measurments. The default is 0 for pixels. Other values are
                    1 for inches, and 2 for centimeters.

       VALUE:       The value of the slider widget.

       VERTICAL:    Set this keyword to create a vertical slider as opposed to the default
                    horizontal slider.

       XOFFSET:     The horizontal space (pixels) from upper left corner of the parent.

       XSIZE:       The X size of the widget.

       YOFFSET:     The vertical space (pixels) from upper left corner of the parent.

       YSIZE:       The Y size of the widget.

       _EXTRA:      Any keyword appropriate for the "WidgetAtom::Init" method.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SLIDERWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SLIDERWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties.

 SYNTAX:

       sliderObject -> SetProperty, VALUE=sliderValue

 ARGUMENTS:

       None.

 KEYWORDS:

       VALUE:       The value of the slider widget.

       MINIMUM:     The minimum value for the slider.

;      MAXIMUM:     The maximum value for the slider.

       _EXTRA:      Any keyword appropriate for the "WidgetAtom::SetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\sliderwidget__define.pro)


SPINNER::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::CLEANUP

 PURPOSE:

       This is the SPINNER object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

      None.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the SPINNER object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::CONTROLPANELEVENTS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        Spinner::CONTROLPANELEVENTS

 PURPOSE:

        This method is the event handler for the Spinner object's ControlPanel.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       SPINNER::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the SPINNER object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::GETPROPERTY

 PURPOSE:

       This method allows the user to obtain SPINNER properties. Be sure
       you ALWAYS call the superclass GETPROPERTY method if you have extra
       keywords!

 SYNTAX:

       theObject -> GetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     INCREMENT:      The increment by which the spinner value changes.

     LABELWIDGET:    The label widget holding the title (if there is one).

     SPINDELAY:      The time delay before the spinner kicks into gear. Allows the user
                     to depress the arrow buttons without activating the spinner. By default 0.05 seconds.

     TEXTWIDGET:     The text widget holding the value of the spinner.

     VALUE:          The current value of the spinner.

     _REF_EXTRA:     Any keywords appropriate for the superclass GetProperty method.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::INIT

 PURPOSE:

       This is the SPINNER object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent:     The parent object referece. This object will be added to the parent's container.

 KEYWORDS:

     INCREMENT:    The increment by which the spinner value changes. By default, 1.0D.

     SPINDELAY:    The time delay before the spinner kicks into gear. Allows the user
                   to depress the arrow buttons without activating the spinner. By default 0.05 seconds.

     TITLE:        A string label that goes next to the spinner to identify it. By default, "".

     VALUE:        The current value of the spinner. By default, 0.0D.

     VERTICAL:     Set this keyword to put the spinner title (if there is one) above the spinner, rather
                   than beside it.

     XTITLESIZE:   Passed on the the SCR_XSIZE of the label widget that holds the title. No default value.

     XSPINSIZE:    Passed on to the XSIZE of the text widget used to hold the value of the spinner. By default, 8.

     _EXTRA:       Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::SENDEVENT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::SENDEVENT

 PURPOSE:

       This method sends an event from the compound widget to the actual event handler.


 SYNTAX:

       theObject -> SendEvent

 ARGUMENTS:

     None.

 KEYWORDS:

     None

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER::SETPROPERTY

 PURPOSE:

       This method allows the user to set the SPINNER object's properties. Be sure
       you ALWAYS call the superclass SETPROPERTY method if you have extra keywords!


 SYNTAX:

       theObject -> SetProperty ...

 ARGUMENTS:

     None.

 KEYWORDS:

     INCREMENT:    The increment by which the spinner value changes. By default, 1.0D.

     SPINDELAY:    The time delay before the spinner kicks into gear. Allows the user
                   to depress the arrow buttons without activating the spinner. By default 0.05 seconds.

     VALUE:        The current value of the spinner. By default, 0.0D.

     _EXTRA:       Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


SPINNER__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
      SPINNER__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a spinner widget, in which
       arrow buttons affect the value of the spinner. Leaving the cursor down
       on an arrow button will cause the value of the spinner to "spin" or
       change rapidly.

 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:

       Objects.

 SYNTAX:

       theObject = Obj_New("SPINNER")

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = {SPINNER, $
             INHERITS BASEWIDGET $
           }

 MESSAGES:

   None.

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 26 September 2005.
       Fixed bug that allows spinner value to be set manually. 25 July 2007. DWF.

(See C:\IDL\Catalyst\source\widgets\spinner__define.pro)


STATUSBAR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR

 PURPOSE:

       The purpose of this routine is to implement a status bar that can be used
       to alert the user to the current status of the 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:

       Compound object widgets.

 SYNTAX:

       aStatusBar = Obj_New("STATUSBAR", theParent, Status='Ready')

 SUPERCLASSES:

       LABELWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { STATUSBAR, $
             INHERITS LABELWIDGET, $ ; Inherits LABELWIDGET.
             _percent: 0L $          ; Percentage of size of parent widget.
           }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 25 August 2002.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::CLEANUP

 PURPOSE:

       This is the STATUSBAR object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::CONTROLPANEL

 PURPOSE:

       This method creates a control panel for the STATUSBAR object. A
       control panel is a graphical user interface for setting object
       properties. If you create a control panel, the events are typically
       sent to the EVENTHANDLER method.

 SYNTAX:

       theObject -> ControlPanel, baseObject

 ARGUMENTS:

       baseObject:    The object reference of a base widget for this control to
                      be added to. If not supplied, the control panel will be in a
                      self contained window (i.e., a TOPLEVELBASE object).

 KEYWORDS:

       _EXTRA:       Any keywords appropriate for the CatControlPanel::INIT method.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::EVENTTRACKING

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        STATUSBAR::EVENTTRACKING

 PURPOSE:

        This a genertic method for handling widget tracking events. The HELPLINE
        string is removed from the event.ID object and used in the status bar as
        the one-line widget tracking value.

 SYNTAX:

        This method is called (typically) from an EVENTHANDLER method.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        STATUSBAR::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the STATUSBAR object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::GETPROPERTY

 PURPOSE:

       This method is used to obtain the STATUSBAR object's properties

 SYNTAX:

       aStatusBar -> GetProperty, Status=theStatus

 ARGUMENTS:

       None.

 KEYWORDS:

       TEXT:          The current status text.

       _REF_EXTRA:    Any keywords appropriate for the superclass GetProperty methods.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::INIT

 PURPOSE:

       This is the STATUSBAR object class initialization method

 SYNTAX:

       statusbar = Obj_New('STATUSBAR')

 ARGUMENTS:

       theParent:     An object reference to a WIDGETATOM-subclassed object.
                      This is the same as using the PARENT keyword.

 KEYWORDS:

       ALIGN_BOTTOM:   Set this keyword to align the statusbar widget with the bottom of the parent base.

       ALIGN_CENTER:   Set this keyword to align the statusbar widget with the center of the parent base.

       ALIGN_LEFT:     Set this keyword to align the statusbar widget with the left of the parent base.

       ALIGN_RIGHT:    Set this keyword to align the statusbar widget with the right of the parent base.

       ALIGN_TOP:      Set this keyword to align the statusbar widget with the top of the parent base.

       FONT:           Set this keyword to the name of a font to use on the status bar.

       FRAME:          Set this keyword to create a frame this many pixels wide around the
                       status bar. Set to 1 by default.

       PARENT:         An object reference to a WIDGETATOM-subclassed object.

       PERCENT:        A number between 10 and 100 indicating the size of the status bar
                       with respect to the size of its parent widget object.

       SCR_XSIZE:      Set the screen X size of the widget to this many pixels. (Use discouraged.)

       SCR_YSIZE:      Set the screen Y size of the widget to this many pixels. (Use discouraged.)

       TEXT:           A text string for display in the status bar. Set to "Ready" by default.

       UNITS:          The units for measurments. The default is 0 for pixels. Other values are
                       1 for inches, and 2 for centimeters.

       XOFFSET:        The horizontal space (pixels) from upper left corner of the parent.

       XSIZE:          The X size of the widget.

       YOFFSET:        The vertical space (pixels) from upper left corner of the parent.

       YSIZE:          The Y size of the widget.

       _EXTRA:         Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::NOTIFY_REALIZE

 PURPOSE:

       This method is used to set the initial size of the status bar when
       it is realized.

 SYNTAX:

       It is called automatically by the Catalyst Library system.

 ARGUMENTS:

       object:   The widget object reference of the object being realized.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::RESIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::RESIZE

 PURPOSE:

       This method is used to resize the status bar at the end of a resize event.

 SYNTAX:

       statusBar -> Resize

 ARGUMENTS:

       objectToMatch:   When resizing, the status bar will normally size itself according
                        to its parent base object. If this parameter is passed, it will size
                        itself to the dimensions of this object.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


STATUSBAR::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       STATUSBAR::SETPROPERTY

 PURPOSE:

       This method is used to set the STATUSBAR object's properties

 SYNTAX:

       aStatusBar -> SetProperty, Status=theStatus

 ARGUMENTS:

       None.

 KEYWORDS:

       TEXT:            The status bar text.

       _EXTRA:          Any keywords appropriate for the superclass SetProperty methods.

(See C:\IDL\Catalyst\source\widgets\statusbar__define.pro)


TABWIDGET::ADD

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

 NAME:
       TABWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add method to prevent addition of
       other widget objects to text objects.

 SYNTAX:

       textObject -> Add, object

 ARGUMENTS:

       object: The object to add to the container. Only objects that are NOT subclassed
               from WIDGETATOM objects can be added.

 KEYWORDS:

       _Extra: Any keywords for the superclass object.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TABWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TABWIDGET::CLEANUP

 PURPOSE:

       This is the TABWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TABWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TABWIDGET::GETPROPERTY

 PURPOSE:

       This method enables the getting of the TABWIDGET object class
       properties.

 SYNTAX:

       aTabWidget -> GetProperty, CURRENT=tab_current

 ARGUMENTS:

     None.

 KEYWORDS:

     CURRENT:     The index value of the current or visible tab.

     MULTILINE:   The current value of the MULTILINE property.

     NUMBER:      The number of tabs contained in the tab widget.

     _REF_EXTRA:  Any keywords appropriate for the WIDGETATOM::GetProperty method.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TABWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TABWIDGET::INIT

 PURPOSE:

       This is the TABWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent      The parent object reference for this object widget.

 KEYWORDS:

     ALIGN_BOTTOM: Set this keyword to align the base widget with the bottom of the parent base.

     ALIGN_CENTER: Set this keyword to align the base widget with the center of the parent base.

     ALIGN_LEFT:   Set this keyword to align the base widget with the left of the parent base.

     ALIGN_RIGHT:  Set this keyword to align the base widget with the right of the parent base.

     ALIGN_TOP:    Set this keyword to align the base widget with the top of the parent base.

     LOCATION:     Set this keyword to an integer that specifies which edge of the widget will contain
                   the tabs. Possible values are:

                   0 - Tabs are placed along the top of the widget. (The default.)
                   1 - Tabs are placed along the bottom of the widget.
                   2 - Tabs are placed along the left edge of the widget. (Text is displayed vertically.)
                   3 - Tabs are placed along the right edge of the widget. (Text is displayed vertically.)

     MULTILINE:    This keyword controls how tabs appear when all of the tabs do not fit on the widget
                   in a single row. The behavior and value of the keyword differs in Windows and in Motif.
                   Check the IDL on-line documentation for WIDGET_TAB for more detail. Set this keyword to
                   1 on Windows and the tabs will be displayed with scroll bars. On Motif, set this keyword
                   to the maximum number of tabs for each row of tabs.

     SCR_XSIZE:    Set the screen X size of the base to this many pixels. (Use discouraged.)

     SCR_YSIZE:    Set the screen Y size of the base to this many pixels. (Use discouraged.)

     UNITS:        The units for measurments. The default is 0 for pixels. Other values are
                   1 for inches, and 2 for centimeters.

     XOFFSET:      The horizontal space (pixels) from upper left corner of the display.

     XSIZE:        The X size of the widget.

     YOFFSET:      The vertical space (pixels) from upper left corner of the display.

     YSIZE:        The Y size of the widget.

     _EXTRA:       Any keywords appropriate for the WIDGETATOM::INIT method.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TABWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TABWIDGET::SETPROPERTY

 PURPOSE:

       This method enables the setting of the TABWIDGET object class
       properties.

 SYNTAX:

       aTabWidget -> SetProperty, CURRENT=4

 ARGUMENTS:

     None.

 KEYWORDS:

     CURRENT:       Set this keyword equal to the index of the tab to be set as the current
                    (visible) tab. If the index is invalid, it is quietly ignored.

     MULTILINE:     Set this keyword to control how multiple tabs appear. The value is platform
                    dependent. See the IDL on-line documentation for WIDGET_TAB for details.

     _EXTRA:       Any keywords appropriate for the WIDGETATOM::SetProperty method.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TABWIDGET__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TABWIDGET__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a tab widget as an 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:

       Objects.

 CALLING_SYNTAX:

       aTabWidget = Obj_New("TABWIDGET", parent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { TABWIDGET, $           ; Tab widget object class
             INHERITS WIDGETATOM $  ; Inherits WidgetAtom object class.
           }

 MODIFICATION_HISTORY:

       Written by: David Fanning, 20 April 2003.

(See C:\IDL\Catalyst\source\widgets\tabwidget__define.pro)


TEXTWIDGET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TEXTWIDGET

 PURPOSE:

       The purpose of this routine is to implement a text widget as an 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:

       Object widgets.

 SYNTAX:

       textWidget = Obj_New("TextWidget", theParent, Value='The Text')

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { TEXTWIDGET, INHERITS WidgetAtom }

 MODIFICATION_HISTORY:

       Written by: David W. Fanning, 24 July 2002.
       Modified keywords in the SetProperty method that started with SET_, dropping this prefix
          to keep them consistent with the same keywords in the GetProperty method. 18 July 2004. DWF.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TEXTWIDGET::ADD

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

 NAME:
       TEXTWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add method to prevent addition of
       other widget objects to text objects.

 SYNTAX:

       textObject -> Add, object

 ARGUMENTS:

       object: The object to add to the container. Only objects that are NOT subclassed
               from WIDGETATOM objects can be added.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TEXTWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TEXTWIDGET::CLEANUP

 PURPOSE:

       This is the TEXTWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the "WidgetAtom::Cleanup" method.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TEXTWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TEXTWIDGET::GETPROPERTY

 PURPOSE:

       This method is used to get the object's properties.

 SYNTAX:

       textObject -> GetProperty, VALUE=theText

 ARGUMENTS:

       None.

 KEYWORDS:

       ALL_EVENTS:  Returns a 1 if ALL_EVENTS is turned on for text widget. Returns a 0 otherwise.

       CONTEXT_EVENTS: Returns a 1 if context events are on, a 0 otherwise.

       EDITABLE:    Returns a 1 if EDITABLE is turned on for text widget. Returns a 0 otherwise.

       NUMBER:      Returns the number of characters currently in the text widget.

       TEXT_OFFSET_TO_XY: Use this keyword to translate a text widget character offset
                    into column and line form. The value of this keyword should
                    be set to the character offset (an integer) to be translated.
                    A two-element integer array is returned, giving the column
                    (element 0) and line (element 1) corresponding to the offset.
                    If the offset specified is out of range, the array [-1,-1]
                    is returned.

       TEXT_SELECT: Set this keyword to return the starting character offset
                    and length (in characters) of the selected (highlighted)
                    text in the specified text widget. A two-element integer
                    array is returned containing the starting position of
                    the highlighted text as an offset from character zero
                    of the text in the widget (element 0), and length of
                    the current selection (element 1).

       TEXT_TOP_LINE: Set this keyword to return the zero-based line
                    number of the line currently at the top of a text widget's
                    display viewport. Note that this value is different from
                    the zero-based character offset of the characters in the
                    line. The character offset can be calculated from the line
                    offset via the TEXT_XY_TO_OFFSET keyword.

       TEXT_XY_TO_OFFSET: Use this keyword to translate a text widget position given in
                    line and column form into a character offset. The value of this
                    keyword should be set to a two-element integer array specifying
                    the column (element 0) and line (element 1) position. The character
                    offset (as a longword integer) is returned corresponding to the
                    position. If the position specified is out of range, -1 is returned.

       VALUE:       The current value of the text widget.

       _REF_EXTRA:  Any keyword appropriate for the "WidgetAtom::GetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TEXTWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TEXTWIDGET::INIT

 PURPOSE:

       This is the TEXTWIDGET object class initialization method.

 ARGUMENTS:

       theParent - The parent object reference. This is the same as using the PARENT keyword.

 KEYWORDS:

       ALL_EVENTS:  Set this keyword to enable all possible text events to be generated.
                    Events depend upon the interaction of the ALL_EVENTS and EDITABLE keywords.
                    See the IDL On-Line Help for WIDGET_TEXT for details.

       CONTEXT_EVENTS:    Set this keyword to turn context events on for this widget object..

       EDITABLE:    Set this keyword to allow user editing of text widget contents.

       FONT:        The name of a font to be used by the widget.

       FRAME:       Create a frame this many pixels wide around base.

       KBRD_FOCUS_EVENTS: Set this keyword to allow keyboard focus events be generated.

       NO_NEWLINE:  Set this character to prevent new lines of text from being added when text
                    is appended to the text already available in the text widget.

       SCR_XSIZE:   Set the screen X size of the widget to this many pixels. (Use discouraged.)

       SCR_YSIZE:   Set the screen Y size of the widget to this many pixels. (Use discouraged.)

       SCROLL:      Set this keyword to allow scroll bars to be placed on the text widget.

       UNITS:       The units for measurments. The default is 0 for pixels. Other values are
                    1 for inches, and 2 for centimeters.

       VALUE:       The text to be placed in the text widget. Must be a string or string array.

       WRAP:        Set this keyword to allow text wrapping in the text widget.

       XOFFSET:     The horizontal space (pixels) from upper left corner of the parent.

       XSIZE:       The X size of the widget.

       YOFFSET:     The vertical space (pixels) from upper left corner of the parent.

       YSIZE:       The Y size of the widget.

       _EXTRA:      Any keyword appropriate for the "WidgetAtom::Init" method.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TEXTWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TEXTWIDGET::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties.

 SYNTAX:

       textObject -> SetProperty, VALUE='Test'

 ARGUMENTS:

       None.

 KEYWORDS:

       ALL_EVENTS:  Set this keyword to enable all possible text events to be generated.
                    Events depend upon the interaction of the ALL_EVENTS and EDITABLE keywords.
                    See the IDL On-Line Help for WIDGET_TEXT for details.

       APPEND:      If this keyword is set, and you set the VALUE of the text widget, then
                    the text is appended to the text already in the text widget, rather than
                    replacing it.

       CONTEXT_EVENTS:    Set to 1 to turn context events on for the base widget.

       EDITABLE:    Set this keyword to allow user editing of text widget contents.

       INPUT_FOCUS: Set this keyword to configure the text widget to receive keyboard focus.

       KBRD_FOCUS_EVENTS: Set this keyword to allow keyboard focus events be generated.

       NO_NEWLINE:  Set this character to prevent new lines of text from being added when text
                    is appended to the text already available in the text widget.

       TEXT_SELECT: Use this keyword to clear any current selection in the specified table
                    cell or text widget, and either set a new selection, or simply set the text
                    insertion point. To set a selection, specify a two-element integer array
                    containing the starting position and the length of the selection. For example,
                    to set a selection covering characters 3 though 23:

                    textWidget -> SetProperty, SET_TEXT_SELECT=[3, 20]

                    To move the text insertion point without setting a selection, omit the
                    second element, or set it to zero.

       TEXT_TOP_LINE: Set this keyword to the zero-based line number of the line to
                    be positioned on the topmost visible line in the text widget's
                    viewport. No horizontal scrolling is performed. Note that this
                    is a line number, not a character offset.

       USE_TEXT_SELECT: Set this keyword to modify the behavior of the VALUE keyword.
                    If USE_TEXT_SELECT is set, the VALUE replaces only the text in the
                    current text selection, not the entire text.

       VALUE:       The text that goes into the text widget.

       _EXTRA:  Any keyword appropriate for the "WidgetAtom::SetProperty" object method.

(See C:\IDL\Catalyst\source\widgets\textwidget__define.pro)


TOPLEVELBASE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE

 PURPOSE:

       The purpose of this routine is to implement a top-level base widget as an object. If you wish
       to create a non-top-level base widget object, use the BASEWIDGET object.

 AUTHOR:

        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:

       Object widgets.

 SYNTAX:

       topLevelBase = Obj_New("TopLevelBase")

 SUPERCLASSES:

       BASEWIDGET
       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { TOPLEVELBASE, $         ; The TOPLEVELBASE object class name.
              INHERITS BaseWidget, $  ; Subclassed from BASEWIDGET.
              _TLB_Frame_Attr: 0 $    ; A flag that indicates the current top-level base frame attributes.
            }

 MODIFICATION_HISTORY:

       Written by: David W.Fanning, 28 June 2002.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::CLEANUP

 PURPOSE:

       This is the TOPLEVELBASE object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the "BaseWidget::Cleanup" method.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::Draw

 PURPOSE:

       This method is used to realize and draw the widget hierarchy. It also starts
       XMANAGER to managing the widget hierarchy.

 SYNTAX:

       aTopLevelBase -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       BLOCK:         Set this keyword to create a blocking widget hierarchy.

       CENTER:        Set this keyword to center the TLB before display.

       REGISTER_NAME: The name by which the program will be registered with XManager.

       GROUP_LEADER:  The widget identifier of a group leader for this widget hierarchy.

       JUST_REGISTER: Set his keyword to just register with XManager, but not to fire it up.

       _EXTRA:        To pass additional keywords BaseWidget::Draw

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::GETPROPERTY

 PURPOSE:

       This method is used to obtain the TopLevelBase object's properties

 SYNTAX:

       aTopLevelBase -> GetProperty, Map=ismapped

 ARGUMENTS:

       None.

 KEYWORDS:

       ICONIFY_EVENTS: Set to 1 if ICONIFY events are set for this top-level base widget.

       MAP:            Returns a 0 or 1 to indicate if the current base widget hierarchy is
                       mapped (1) or not (0).

       MODAL:          Returns a 0 or 1 to indicate if the current base widget hierarchy is modal (1) or not (0).

       MOVE_EVENTS:    Set to 1 if move events are set for this top-level base widget.

       SIZE_EVENTS:    Set to 1 if size events are set for this top-level base widget.

       _EXTRA:         Any keyword appropriate for the supercalss Draw methods.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::INIT

 PURPOSE:

       This is the TOPLEVELBASE object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       None.

 KEYWORDS:

       ALIGN_BOTTOM:      Set this keyword to align the base widget with the bottom of the parent base.

       ALIGN_CENTER:      Set this keyword to align the base widget with the center of the parent base.

       ALIGN_LEFT:        Set this keyword to align the base widget with the left of the parent base.

       ALIGN_RIGHT:       Set this keyword to align the base widget with the right of the parent base.

       ALIGN_TOP:         Set this keyword to align the base widget with the top of the parent base.

       BASE_ALIGN_BOTTOM: Set this keyword to align the children of this base to the bottom of the base widget.

       BASE_ALIGN_CENTER: Set this keyword to align the children of this base to the center of the base widget.

       BASE_ALIGN_LEFT:   Set this keyword to align the children of this base to the left of the base widget.

       BASE_ALIGN_RIGHT:  Set this keyword to align the children of this base to the right of the base widget.

       BASE_ALIGN_TOP:    Set this keyword to align the children of this base to the top of the base widget.

       CENTER:            Set this keyword to center the top-level base before it is realized.

       COLUMN:            Arrange the children of this base into this many columns.

       CONTEXT_EVENTS:    Set this keyword to make the base widget return WIDGET_CONTEXT events when
                          the right mouse button is clicked over this base widget.

       CONTEXT_MENU:      Set this keyword to create a base widget that can be used to hold
                          context-sensitive menu items.

       EXCLUSIVE:         Set this keyword to make an exclusive button base.

       FLOATING:          Set this keyword to have this base widget float over the top of its group leader.
                          An error results if the GROUP_LEADER keyword is not set to a valid widget identifier.

       FRAME:             Create a frame this many pixels wide around base.

       GRID_LAYOUT:       Set this keyword to lay children out in equally-spaced grid.

       GROUP_LEADER:      The widget identifier of a group leader widget. Required for
                          floating and modal top-level widgets.

       ICONIFY_EVENTS:    Set this keyword to enable events when the top-level base is iconified.

       KBRD_FOCUS_EVENTS: Set this keyworld to enable keyboard focus events.

       KILL_REQUEST_EVENTS: Set this keyword to enable a kill request event to be sent
                          to widget's event handler method.

       MAP:               Set this keyword to map (1) or unmap (0) the base. Mapped by default.

       MBAR:              This keyword returns an object reference to a MENUBARWIDGET object with
                          the name MENUBAR - see also the 'NO_MBAR' keyword below. (Output keyword).

       MODAL:             Set this keyword to create a modal top-level base widget.
                          An error results if the GROUP_LEADER keyword is not set to a valid widget identifier.

       MOVE_EVENTS:       Set this keyword to enable move events in the objects event handler.

       NO_MBAR:           Set this keyword to inhibits the creation of a MENUBARWIDGET object for this base.

       NONEXCLUSIVE:      Set this keyword to make an non-exclusive button base.

       ONLY_ONE:          Set this keyword if you wish to have only one TLB with this REGISTER_NAME on
                          the display at any one time. If the REGISTER_NAME keyword is undefined or
                          a null string, then this keyword is ignored.

       PARENT:            Set this keyword to the object reference of the "parent" of the top-level
                          base object. Doing so will cause any events that reach the top-level base event
                          handler without being handled to go to the "parent" event handler. This is
                          necessary, for example, if you are creating a "control panel" for an object,
                          when the control panel is in it's own top-level base.

       ROW:               Arrange children of this base into this many rows.

       REGISTER_NAME:     A name by which this TLB is to be registered with XMANAGER.

       SCR_XSIZE:         Set the screen X size of the base to this many pixels. (Use discouraged.)

       SCR_YSIZE:         Set the screen Y size of the base to this many pixels. (Use discouraged.)

       SCROLL:            Set this keyword to add scroll bars to the base widget.

       SIZE_EVENTS:       Set this keyword to enable events to be generated when the
                          top-level base is resized.

       SPACE:             Set this keyword to the number of pixels between children in the base.
                          Ignored for exclusive and non-exclusive bases.

       TITLE:             Set this keyword to a string containing the title for the widget.

       TLB_FRAME_ATTR:    Set this keyword to a value representing the top-level base's
                          frame attributes. The values can be additive.

                          1  Base cannot be resized, minimized, or maximized.
                          2  Suppress display of system menu.
                          4  Suppress title bar.
                          8  Base cannot be closed.
                         16 Base cannot be moved.

       UNITS:            The units for measurments. The default is 0 for pixels. Other values are
                         1 for inches, and 2 for centimeters.

       X_SCROLL_SIZE:    The X size (pixels) of the scrollable window area.

       XOFFSET:          The horizontal space (pixels) from upper left corner of the display.

       XPAD:             The amount of horizontal space (pixels) to add to edges of children.

       XSIZE:            The X size of the widget.

       Y_SCROLL_SIZE:    The Y size (pixels) of the scrollable window area

       YPAD:             The amount of vertical space (pixels) to add to edges of children.

       YOFFSET:          The vertical space (pixels) from upper left corner of the display.

       YSIZE:            The Y size of the widget.

       _EXTRA:           Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::POSITION

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::POSITION

 PURPOSE:

       This is a utility method to position the top-level base
       on the display at an arbitrary location. By default the
       widget is centered on the display.


 SYNTAX:

       tlbObject -> POSITION [,x, y, NOCENTER=noCenter]

 INPUTS:

       x:  Set this equal to a normalized position for the center
           of the widget as measured from the left-hand side of the screen.
           The default value is 0.5 (the center)  Setting this equal to 1.0
           places the widget at the far right-hand side of the screen.

       y:  Set this equal to a normalized position for the center
           of the widget as measured from the top of the screen.
           The default value is 0.5 (the center) Setting this equal to 1.0
           places the widget at the top of the screen.

 KEYWORDS:

      DEVICE:   Normally, the x and y parameters are specified in normalized
                coordinates. If this keyword is set, they are taken to be in DEVICE
                coordinates.

      NOCENTER: Typically, the center of the widget is positioned at the
                x, y point. Setting this keyword, forces the top-left
                corner to be at x, y.

 MODIFICATION HISTORY:

       Written by:  Dick Jackson, 12 Dec 98.
       Modified to use device-independent Get_Screen_Size
            function. 31 Jan 2000. DWF.
       Added x, y, NOCENTER and run-off protection. 26 Jan 2001. BT.
       Converted to be an object method. DB & DWF, 13th March 2003

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::Realize

 PURPOSE:

       This method is used to realize the widget hierarchy.

 SYNTAX:

       aTopLevelBase -> Realize

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TOPLEVELBASE::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TOPLEVELBASE::SETPROPERTY

 PURPOSE:

       This method is used to set the TopLevelBase object's properties

 SYNTAX:

       aTopLevelBase -> SetProperty, Map=1

 ARGUMENTS:

       None.

 KEYWORDS:

       ICONIFY_EVENTS:      Set this keyword to turn iconify events on.

       KBRD_FOCUS_EVENTS:   Set to 1 to turn keyboard focus events on for the base widget.

       KILL_REQUEST_EVENTS: Set this keyword to turn top-level base kill request events on.

       MAP:                 Set to 1 to map a base widget hierarchy. Set to 0 to unmap.

       MOVE_EVENTS:         Set this keyword to turn move event requests on.

       SIZE_EVENTS:         Set this keyword to turn re-size events on.

       TITLE:               The title of the top-level base.

       _EXTRA:              Any keyword appropriate for the supercalss Draw methods.

(See C:\IDL\Catalyst\source\widgets\toplevelbase__define.pro)


TREEWIDGET::ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET::ADD

 PURPOSE:

       This method overrides the superclass Add methods to make sure tree widgets are only
       added to other tree widgets.

 SYNTAX:

       thisTreeObj -> Add, thatTreeObj

 ARGUMENTS:

       object: The object to add to the container. Only objects subclassed from TREEWIDGET can be added.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the superclass ADD methods.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


TREEWIDGET::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET::CLEANUP

 PURPOSE:

       This is the TREEWIDGET object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


TREEWIDGET::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET::GETPROPERTY

 PURPOSE:

       This method enables the getting of the TREEWIDGET object class
       properties.

 SYNTAX:

       aTreeWidget -> GetProperty, CURRENT=tree_current

 ARGUMENTS:

     None.

 KEYWORDS:

     CONTEXT_EVENTS: Returns a 1 if context events are on, a 0 otherwise.

     EXPANDED:   If 1, the current node is expanded, if 0 then it is collapsed.

     ROOT:       Returns the object reference of the root node of the tree widget.

     SELECT:     This keyword acts differently depending upon whether the specified tree widget
                 idenifier is a root node or just a normal node in a tree.

                 If this node is a root node, then this keyword returns an object reference, or
                 an array of object references (if in MULTIPLE selection mode), that are currently
                 selected. If no nodes are selected, a null object is returned.

                 If this node is a normal node, this keyword returns a 1 if the node is selected
                 and a zero otherwise.

     VALUE:      The text string used to label the tree widget.

     _REF_EXTRA:  Any keywords appropriate for the WIDGETATOM::GetProperty method.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


TREEWIDGET::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET::INIT

 PURPOSE:

       This is the TREEWIDGET object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent          The parent object reference for this object widget.

 KEYWORDS:

     ALIGN_BOTTOM:    Set this keyword to align the base widget with the bottom of the parent base.

     ALIGN_CENTER:    Set this keyword to align the base widget with the center of the parent base.

     ALIGN_LEFT:      Set this keyword to align the base widget with the left of the parent base.

     ALIGN_RIGHT:     Set this keyword to align the base widget with the right of the parent base.

     ALIGN_TOP:       Set this keyword to align the base widget with the top of the parent base.

     BITMAP:          Set this keyword equal to a 16x16x3 array representing an RGB image that will
                      be displayed next to the node in the tree widget.

     CONTEXT_EVENTS:  Set this keyword to turn context events on for this widget object..

     EXPANDED:        If the tree node being created is a FOLDER, set this keyword to cause the folder
                      to be initially displayed expanded. Be default, folders are initially displayed
                      collapsed.

     FOLDER:          Set this keyword to cause the tree node being created to act as a folder (that is,
                      as a branch of the tree, rather than as a leaf. Only tree widgets that are set
                      as folders can act as parents to other tree widgets (with the exception of the
                      root node, whose parent is a base widget).

     MULTIPLE:        Set this keyword to enable multiple selection operations in the tree widget. If
                      enabled, multiple elements in the tree widget can be selected at one time by holding
                      down the Control or Shift key while clicking the left mouse button. The keyword is
                      valid only if the parent of the tree widget is a base widget.

     SCR_XSIZE:       Set the screen X size of the base to this many pixels. (Use discouraged.)

     SCR_YSIZE:       Set the screen Y size of the base to this many pixels. (Use discouraged.)

     TOP:             Set this keyword to cause the tree node being created to be inserted as the parent
                      node's top entry. By default, new nodes are created as the parent node's bottom entry.

     UNITS:           The units for measurments. The default is 0 for pixels. Other values are
                      1 for inches, and 2 for centimeters.

     VALUE:           Set this keyword equal to a string containing the text that will be
                      displayed next to the tree node. If this keyword is not set, the
                      default value "Tree" is used.

     XOFFSET:         The horizontal space (pixels) from upper left corner of the display.

     XSIZE:           The X size of the widget.

     YOFFSET:         The vertical space (pixels) from upper left corner of the display.

     YSIZE:           The Y size of the widget.

     _EXTRA:          Any keywords appropriate for the WIDGETATOM::INIT method.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


TREEWIDGET::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET::SETPROPERTY

 PURPOSE:

       This method enables the setting of the TREEWIDGET object class
       properties.

 SYNTAX:

       aTreeWidget -> SetProperty, CURRENT=4

 ARGUMENTS:

     None.

 KEYWORDS:

     BITMAP:     Set this keyword equal to a 16x16x3 array representing an RGB image that will
                 be displayed next to the node in the tree widget.

     CONTEXT_EVENTS:    Set to 1 to turn context events on for the base widget.

     EXPANDED:   Set this keyword to expand the current folder node.

     SELECT:     This keyword acts differently depending upon whether the specified tree widget
                 idenifier is a root node or just a normal node in a tree.

                 If a root node, then set this keyword to an object reference, or an array of
                 object references (if in MULTIPLE selection mode), that should be selected.
                 To clear *all* selections, set this keyword to 0. If the tree widget is in
                 MULTIPLE selection mode, the selection changes made to the tree widget with
                 this keyword are additive, not exclusive.

                 If a normal node, set this keyword to select this node. Set the keyword
                 to zero to deselect this node.

     VALUE:      Set this keyword equal to a string containing the text that will be
                 displayed next to the tree node.

     VISIBLE:    Set his keyword to make the current node visible to the user. This does not affect
                 the current selection status of the node.

     _EXTRA:     Any keywords appropriate for the WIDGETATOM::SetProperty method.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


TREEWIDGET__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TREEWIDGET__DEFINE

 PURPOSE:

       The purpose of this routine is to implement a tree widget as an 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:

       Objects.

 SYNTAX:

       aTreeWidget = Obj_New("TREEWIDGET", parent)

 SUPERCLASSES:

       WIDGETATOM
       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { TREEWIDGET, $          ; Tree widget object class
             INHERITS WIDGETATOM $  ; Inherits WidgetAtom object class.
           }

 MODIFICATION_HISTORY:

       Written by: David Fanning, 20 April 2003.

(See C:\IDL\Catalyst\source\widgets\treewidget__define.pro)


VIEWCONTENTS::EVENT_HANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
        VIEWCONTENTS::EVENT_HANDLER

 PURPOSE:

        This method is the event handler for the VIEWCONTENTS object. It will typically
        be used to respond to events from widget objects created in the CONTROLPANEL
        method.

 SYNTAX:

        This method is called automatically by the event handling mechanism.

 ARGUMENTS:

       event: The event structure as described in the IDL help files, except
              that the ID, TOP and HANDLER tags will be object references.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\viewcontents__define.pro)


VIEWCONTENTS::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       VIEWCONTENTS::INIT

 PURPOSE:

       This is the VIEWCONTENTS object class initialization method

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

     parent:     The parent object referece. This object will be added to the parent's container.

 KEYWORDS:

     _EXTRA:     Any keywords appropriate for the superclass INIT method.

(See C:\IDL\Catalyst\source\widgets\viewcontents__define.pro)


VIEWCONTENTS__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       VIEWCONTENTS__DEFINE

 PURPOSE:

       The purpose of this object is to have a top-level base object
       with an event handler that can handle tree-widget events silently.

 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:

       Object widgets.

 SYNTAX:

       theObject = Obj_New("VIEWCONTENTS")

 SUPERCLASSES:

       TOPLEVEBASE
       WIDGETATOM
       CATATOM
       CATCONTAINER IDLITCOMPONENT
       IDL_CONTAINER

 CLASS_STRUCTURE:

   class = { VIEWCONTENTS, $
             INHERITS TOPLEVELBASE $
           }

 MESSAGES:

   None.

 MODIFICATION_HISTORY:

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

(See C:\IDL\Catalyst\source\widgets\viewcontents__define.pro)


WIDGETATOM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM

 PURPOSE:

       The purpose of this routine is to create a widget object class that can
       be subclassed for all widget objects. Any keyword that is available for
       all widgets is implemented in this object class.

 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:

       Object widgets.

 SYNTAX:

       widgetatom = Obj_New("WidgetAtom", parent, widgetID)

 SUPERCLASSES:

       CATATOM
       CATCONTAINER
       IDL_CONTAINER

 CLASS_STRUCTURE:

    class = { WIDGETATOM,                  $ ; The WidgetAtom object class name.
              INHERITS CATATOM,            $ ; Subclassed from CATATOM object.
              _group_leader  : OBJ_NEW (), $ ; The group leader object for this object.
              _id            : 0L,         $ ; The widget idenfier of the widget wrapped up in the widget object.
              _invisible     : 0B,         $ ; This is a flag that indicates if the widget is invisible or not.
              _killNotify    : 0L,         $ ; Set this to an object whose kill notifiy method should be called before self is destroyed.
              _notifyRealize : 0B,         $ ; Set this flag to send a notify realize callback to the Notify_Realize method.
              _sensitive     : 0B,         $ ; Set this flag to indicate whether the widget is sensitive (1) or not (0).
              _helpline      : ""          $ ; A string used, for example, in a status bar when tracking cursor movements.
            }

 MODIFICATION_HISTORY:

       Written by: David Burridge, 12 June 2002.
       Added HELPLINE keyword and field. 6 Feb 2004. DWF.
       Modified the KILL_NOTIFY keyword to accept the name of a KILL_NOTIFY procedure. 29 Aug 2005. DWF.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::CLEANUP

 PURPOSE:

       This is the WIDGETATOM object class destructor method.

 SYNTAX:

       Called automatically when the object is destroyed.

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA:  Any keyword appropriate for the  superclass CLEANUP methods.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::DRAW

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::DRAW

 PURPOSE:

       A dummy DRAW method. All keywords are passed to the ATOM::DRAW superclass.
       If you overwrite this DRAW method for subclassed widget objects, be sure
       to also call the ATOM::DRAW method (or this method), so that the DRAW methods
       of any child objects also get called.

 SYNTAX:

       self -> Draw

 ARGUMENTS:

       None.

 KEYWORDS:

       _EXTRA: Any keyword appropriate for the ATOM::DRAW method.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::EVENTHANDLER

 PURPOSE:

       This is an event handler for all widgets. It's real purpose is to
       serve as a pseudo notify realize mechanism for objects.

 SYNTAX:

       theObject -> EventHandler, event

 ARGUMENTS:

       event:    The event structure from a widget event.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::GETID

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::GETID

 PURPOSE:

       This returns the widget object's widget identifier.

 SYNTAX:

       theValue = object -> GetD()

 RETURN VALUE:

       theValue: The widget identifier for this widget, if the widget has been realized.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::GETPROPERTY

 PURPOSE:

       This method is used to obtain the object's properties. Keywords here apply to all
       widgets. Defining the keywords here eliminates work in defining subclassed widget
       classes.

 SYNTAX:

       self -> GetProperty, UVALUE=theValue

 ARGUMENTS:

       None.

 KEYWORDS:

       CHILD:          The object reference of the first child of this widget object. If there
                       is no child, a null object is returned.

       GEOMETRY:       The current geometry structure of the widget.

       GROUP_LEADER:   The identifier of the group leader widget.

       HELPLINE:        A string used as a help line for widget tracking purposes.

       ID:             The widget identifier of this particular widget object.

       INVISIBLE:      This keyword returns a flag that indicates if the widget is invisible (1) or not (0).

       KBRD_FOCUS_EVENTS: The current keyboard focus event status of the widget.

       KILL_NOTIFY:    Flag indicating that user-defined KILL_NOTIFY method is called for this widget.

       MANAGED:        The current managed status of the widget.

       NOTIFY_REALIZE: Flag indicating that user-defined NOTIFY_REALIZE method is called for this widget.

       REALIZED:       The current realization of the widget.

       SCR_XSIZE:      The X screen size of the widget.

       SCR_YSIZE:      The Y screen size of the widget.

       SIBLING:        The object reference of the first sibling of this widget object. If there
                       is no sibling, a null object is returned.

       SENSITIVE:      Indicates whether the current widget is sensitive (1) or not (0).

       STRING_SIZE:    Set this keyword to retrieve the dimensions of a string. The return value is a
                       two-element vector containing the string's width and height in pixels. A widget
                       identifier must always be specified in the call. The keyword's value can be
                       either the measured string or a two-element vector containing first the string
                       and then a font. If a font is specified, that font is used in the calculations.
                       Otherwise, the widget's font is used. In the case of a table widget with multiple
                       fonts, the default font is used.

       SYSTEM_COLORS:  Returns a WIDGET_SYSTEM_COLORS structure containing the colors IDL uses for
                       its widget system. The colors can be used to make your application looks like
                       IDL widgets.

       TAB_MODE:       The current tab mode for the widget.

       TRACKING_EVENTS: The current state of tracking events for this widget.

       TYPE:           The type code for this widget. See the IDL WIDGET_INFO documentation for details.

       UNITS:          The units that widget size is measured in.

       UPDATE:         Inidcates whether the widget is current enabled (1) or disabled (0) for updates.

       VALID_ID:       Indicates where the ID of the widget is valid or not.

       VERSION:        The version of widgets used. See the IDL WIDGET_INFO documentation for details.

       WIDGETNAME:     The name of the type of widget (e.g, "BASE", "DRAW", etc.). Don't confuse this
                       with the name of the object (obtained with the NAME keyword to the ATOM object.)

       XOFFSET:        The X offset relative to it parent base in UNITS.

       XSIZE:          The X size of the widget.

       YOFFSET:        The Y offset relative to it parent base in UNITS.

       YSIZE:          The Y size of the widget.

       _REF_EXTRA:     Any keyword appropriate for the superclass GETPROPERTY methods.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::GET_UVALUE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::GET_UVALUE

 PURPOSE:

       This returns the widget object's user value.

 SYNTAX:

       theValue = object -> Get_UValue()

 RETURN VALUE:

       theValue: The IDL variable that is to be transfered from the UVALUE location.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::INIT

 PURPOSE:

       This is the WIDGETATOM object class creator method.

 SYNTAX:

       Called automatically when the object is created.

 ARGUMENTS:

       parent:         The object reference of the parent object for the widget

       widgetID:       The widget idenfier of the widget in the widget object being created.

 KEYWORDS:

       HELPLINE:       A string used as a help line for widget tracking purposes.

       INVISIBLE:      Set this keyword if you wish the widget you are creating to
                       remain "invisible" to the user. Invisible widgets are never
                       realized, allowing you to use their properties without exposing
                       them in the widget hierarchy. For example, an invisible widget
                       could be used to implement a TIMER function.

       KILL_NOTIFY:    Set this keyword to 1 to call the KILL_NOTIFY method of this object
                       when the widget is destroyed. Or, set this keyword to the name of
                       a callback procedure to call when the object is destroyed. If you
                       choose to use a kill notify name, your callback procedure is responsible
                       for destroying the object. If this is not done, memory leaking is sure
                       to occur! Here is a sample KILL_NOTIFY procedure:

                       PRO TLB_REPORT, tlbID

                         ; Get the TLB object.
                         Widget_Control, tlbID, Get_UValue=tlb

                         .... whatever it is you want to do....

                         ; Destroy the TLB object.
                         Obj_Destroy, tlb

                       END

                       This routine is set up as the callback routine by specifying its name
                       in the TLB object creation routine:

                       tlb = Obj_New('TopLevelBase', Kill_Notify='TLB_Report')

       GROUP_LEADER:   The group leader widget ID. Must be used for floating and
                       modal base widgets.

       NOTIFY_REALIZE: Set this keyword to register and NOTIFY_REALIZE callback to
                       the widget, which will be directed to the NOTIFY_REALIZE method
                       of this object.

       SENSITIVE:      Set this keyword to set the widget's sensitivity. (Sensitive = 1 is the default.)

       TAB_MODE:       Determines how the widget hierarchy can be navigated using the Tab key.
                       Default value is 0, indicating no navigation onto or off the widget with Tabs.
                       Note that this is *always* the case under UNIX. On Windows, a value of 1 enables
                       navigation onto and off of the widget. A value of 2 enables navigation onto the
                       widget only. And a value of 3 enables navigation off of the widget only.

       TIMER:          Starts a timer event with the delay set to this value.

       TRACKING_EVENTS: Set this keyword to turn on tracking events.

       _EXTRA:         Any keyword appropriate for the superclass INIT methods.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::KILL_NOTIFY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::KILL_NOTIFY

 PURPOSE:

       A dummy KILL_NOTIFY method. If a kill notification reaches this point, an
       warning is issued.

 SYNTAX:

       self -> Kill_Notify

 ARGUMENTS:

       None.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::NOTIFY_REALIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::NOTIFY_REALIZE

 PURPOSE:

       A dummy NOTIFY_REALIZE method to catch unhandled NOTIFY_REALIZE calls.

 SYNTAX:

       self -> Notify_Realize, object

 ARGUMENTS:

       OBJECT: The object that was realized (often the self object).

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::SEND_EVENT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::SEND_EVENT

 PURPOSE:

       Sends a pseudo-event to a widget. If thisEvent.TOP (see below) is an object refernce,
       the event is sent to the Event_Handler method of the toThisWidget. If thisEveven.TOP
       is a valid widget identifier, then Widget_Control is used to send an event to the
       widget identifed in toThisWidget via SEND_EVENT and thisEvent must be a normal widget
       event structure, not a widget object event structure.

 SYNTAX:

       self -> Send_Event, toThisWidget, thisEvent

 ARGUMENTS:

       toThisWidget:   The widget object reference of the widget to receive the event

       thisEvent:      The event structure to send. If TOP field is an object reference, the
                       event structure is send directly to the EVENT_METHOD of toThisWidget object.
                       Otherwise, a normal widget event is sent to the widget identified in toThisWidget.

 KEYWORDS:

       None.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       WIDGETATOM::SETPROPERTY

 PURPOSE:

       This method is used to set the object's properties. Keywords here apply to all
       widgets. Defining the keywords here eliminates work in defining subclassed widget
       classes.

 SYNTAX:

       self -> SetProperty, UVALUE=theValue

 ARGUMENTS:

       None.

 KEYWORDS:

       CLEAR_EVENTS:   Set this keyword to clear all events queued for this widget.

       DESTROY:        Set this keyword to destroy this widget.

       GROUP_LEADER:   The widget group leader for this particular widget.

       HELPLINE:       A string used as a help line for widget tracking purposes.

       ICONIFY:        Set this keyword to iconify/de-iconfy the widget.

       ID:             The widget identifier.

       INVISIBLE:      Set this keyword to create an "invisible" widget.

       KILL_NOTIFY:    Set this keyword to 1 to call the KILL_NOTIFY method of this object
                       when the widget is destroyed. Or, set this keyword to the name of
                       a callback procedure to call when the object is destroyed. If you
                       choose to use a kill notify name, your callback procedure is responsible
                       for destroying the object. If this is not done, memory leaking is sure
                       to occur! Here is a sample KILL_NOTIFY procedure:

                       PRO TLB_REPORT, tlbID

                         ; Get the TLB object.
                         Widget_Control, tlbID, Get_UValue=tlb

                         .... whatever it is you want to do....

                         ; Destroy the TLB object.
                         Obj_Destroy, tlb

                       END

                       This routine is set up as the callback routine by specifying its name
                       in the TLB object creation routine:

                       tlb = Obj_New('TopLevelBase', Kill_Notify='TLB_Report')

       NO_COPY:        If a UVALUE is being set, setting this keyword will make the
                       transfer of the variable to the UVALUE without copying.

       MAP:            Set this keyword to map (1) or unmap (0) the widget.

       NOTIFY_REALIZE: Set this keyword to register and NOTIFY_REALIZE callback to
                       the widget, which will be directed to the NOTIFY_REALIZE method
                       of this object.

       SCR_XSIZE:      The X screen size of the widget in pixel units.

       SCR_YSIZE:      The Y screen size of the widget in pixel units.

       SEND_EVENT:     Set this keyword to an event structure in order to send the event
                       structure to the widget. The event is handled in the normal way.

       SENSITIVE:      Set to set the widget's sensitivity. (Sensitive = 1 is the default.)

       SHOW:           Set this keyword to bring the window containing the widget to the
                       front of other windows on the display.

       TAB_MODE:       Determines how the widget hierarchy can be navigated using the Tab key.
                       Default value is 0, indicating no navigation onto or off the widget with Tabs.
                       Note that this is *always* the case under UNIX. On Windows, a value of 1 enables
                       navigation onto and off of the widget. A value of 2 enables navigation onto the
                       widget only. And a value of 3 enables navigation off of the widget only.

       TIMER:          Starts a timer event with the delay set to this value.

       TRACKING_EVENTS: Set this keyword to turn tracking events on for the widget object.

       UPDATE:         Set this keyword to enable (1) or disable (0) immediate screen updates
                       for this widget. (Normally this would only apply to base widgets.)

       UNITS:          The units that widget size is measured in. Default is 0, pixels.
                       Other values are 1, inches, and 2, centimeters.

       XOFFSET:        The X offset relative to it parent base in UNITS. Does not apply to
                       column or row bases.

       XSIZE:          Set this keyword to the X "size" of the widget. (Units of size varies
                       with type of widget, etc. See the IDL documentation for details.)

       YOFFSET:        The Y offset relative to it parent base in UNITS. Does not apply to
                       column or row bases.

       YSIZE:          Set this keyword to the Y "size" of the widget. (Units of size varies
                       with type of widget, etc. See the IDL documentation for details.)

       _EXTRA:         Any keyword appropriate for the superclass SETPROPERTY methods.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)


WIDGETATOM::SET_UVALUE

[Previous Routine] [List of Routines]
 NAME:
       WIDGETATOM::SET_UVALUE

 PURPOSE:

       This sets the widget object's user value.

 SYNTAX:

       object -> Set_UValue, theValue

 ARGUMENTS:

       theValue: The IDL variable that is to be transfered to the UVALUE location.

 KEYWORDS:

       NO_COPY:  Set this keyword to do the variable transfer without copying the variable.

(See C:\IDL\Catalyst\source\widgets\widgetatom__define.pro)