This page was created by the IDL library routine mk_html_help2.

Last modified: Thu Aug 6 12:53:14 2020.


Directory Listing of Routines


Routine Descriptions

ADDABOUTPLUGIN

[Next Routine] [List of Routines]
 NAME: 
     addAboutPlugin
     
 PURPOSE: 
     Add an about page with information on the plugin. For example, the "rules of the road"
     statement, developer credits, acknowledgements, etc.
     
 INPUT: 
     mission name: name of the mission to add to the load data panel
     procedure name: name of the procedure containing the load data panel widget for this mission
     panel title: title of the load data panel

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


ADDDATAPROCESSINGPLUGIN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    addDataProcessingPlugin
 
 PURPOSE: 
     add a new plugin to the "More..." menu in the data processing panel
   

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


ADDFILECONFIGPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     addFileConfigPanel
     
 PURPOSE: 
     Add a panel to the file configuration window
     
 INPUT: 
    mission name: name of the mission
    procedure name: name of the procedure containing the file config widget

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


ADDLOADDATAPANEL

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     addLoadDataPanel
     
 PURPOSE: 
     Add a panel to the load data window
     
 INPUT: 
     mission name: name of the mission to add to the load data panel
     procedure name: name of the procedure containing the load data panel widget for this mission
     panel title: title of the load data panel

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


ADDPLUGINMENU

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     addPluginMenu
     
 PURPOSE: 
     Add a menu item to the "Plugins" menu in the GUI
     
 INPUT: 
    item: menu item text
    procedure: name of the procedure containing the widget to open when the user selects this menu item
    location: 
 

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


GETABOUTPLUGINS

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     getAboutPlugins
     
 PURPOSE: 
     returns an array of structures, one struct for each plugin's about page
     

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


GETDATAPROCESSINGPLUGINS

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     getDataProcessingPlugins
     
 PURPOSE: 
     returns an array of structures, one for each data processing plugin

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


GETFILECONFIGPANELS

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     getFileConfigPanels
     
 PURPOSE: 
     returns an array of structures, one struct for each file config panel
     
 OUTPUT:
 

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


GETLOADDATAPANELS

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     getLoadDataPanels
     
 PURPOSE: 
     returns an array of structures, one struct for each load data panel
     
 OUTPUT:

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


GETPLUGINMENUS

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     getPluginMenus
     
 PURPOSE: 
     returns an array of structures, one for each plugin menu

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


PARSECONFIG

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
     parseConfig
     
 PURPOSE: 
     parses a SPEDAS configuration file (.txt)

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


SPD_QF_LIST__DEFINE

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

PURPOSE:
 Defines an object for quality flag lists

CALLING SEQUENCE:
 qf = Obj_New("spd_qf_list", t_start=t_start, t_end=t_end, qf_bits=qf_bits)

INPUT:
 none

KEYWORDS:
 t_start
 t_end
 qf_bits

OUTPUT:
 quality flag list object reference

METHODS:
 qf_merge(qf)  returns an spd_qf_list which is a merge of self with qf
 qf_time_slice(tstart, tend)   returns an spd_qf_list for times between tstart and tend
 get_qf(t)     returns the quality flag for scalar time t
 qf_print()    prints the values of the three arrays

NOTES:
 1. Quality flags qf_bits for semiclosed time intervals [t_start, t_end) with t_start<t_end and qf_bits>0
 2. qf_bits = 0 is ignored since it is assumed to be the default
 3. t_start = t_end is not possible
 4. Adding two quality flags (bitwise OR) is handled by qf_add() and qf_total()

EXAMPLES:
 x = obj_new('SPD_QF_LIST', t_start=[1262304000.0], t_end=[1263081600.0], qf_bits=[1])
 y = obj_new('SPD_QF_LIST', t_start=[1262649600.0,1263513600.0], t_end=[1263513600.0,1264377600.0], qf_bits=[2,3])
 z = x.qf_merge(y)
 test = z.qf_print()

HISTORY:
$LastChangedBy: nikos $
$LastChangedDate: 2015-08-04 13:34:01 -0700 (Tue, 04 Aug 2015) $
$LastChangedRevision: 18388 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_qf_list__define.pro $

(See spedas_gui/objects/spd_qf_list__define.pro)


SPD_UI_AXIS_SETTINGS__DEFINE

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

PURPOSE:  
 axis properties is an object that holds all of the settings necessary for 
 plotting a axis as specified in the Trace Properties Line panel

CALLING SEQUENCE:
 axisSettings = Obj_New("SPD_UI_AXIS_SETTINGS")

INPUT: 
 none

ATTRIBUTES:
 rangeOption           range options (auto, floating, fixed)
 touchedRangeOption   has the user modified the rangeOption field
 scaling               axis scaling (linear, log10, natural)
 touchedScaling       has the user modified the scaling field
 equalXYScaling        flag set if equal X & Y axis scaled 
 isTimeAxis            flag set if axis is time based
 touchedIsTimeAxis    has the user modified the isTimeAxis field
 rangeMargin           if auto - range margin
 boundScaling          flag set if auto scaling is bound
 boundfloating         flag set if bounded floating range is used
 minFixedRange         min range value if fixed scaling
 touchedMinFixedRange  has the user modified the minFixedRange
 maxFixedRange         max range value if fixed scaling
 touchedMaxFixedRange  has the user modified the maxFixedRange
 minFloatRange         min range bound if floating range
 maxFloatRange         max range bound if floating range
 minBoundRange         min range bound if using bounded autoscaling
 maxBoundRange         max range bound if using bounded autoscaling
 floatingSpan          value of span if floating
 floatingCenter        floating center options (mean, median, appr. mean/median)
 majorTickEvery        display major ticks every 
 minorTickEvery        display major ticks every 
 majorTickUnits        major tick units (sec, hr, min, day, none)
 minorTickUnits        major tick units (sec, hr, min, day, none)
 majorTickAuto         set to automatically figure out major ticks
 minorTickAuto         set to automatically figure out minor ticks
 firstTickAuto         set to automatically figure out first tick
 numMajorTicks         number of major ticks
 numMinorTicks         number of major ticks
 firstTickAt           value where first tick should be
 firstTickUnits        first tick unit (sec, hr, min, day, none)
 tickStyle             style (inside, outside, both)
 bottomPlacement       flag set if ticks should be on bottom axis
 topPlacement          flag set if ticks should be on top axis
 majorLength           length of major tick
 minorLength           length of minor tick
 logMinorTickType      For Log minor ticks, log-full-interval,log-first-magnitude,log-last-magnitude,even-spacing 
 lineAtZero            flag set if line is drawn at zero
 showdate              flag set if date strings are shown
 dateString1           string format of date for line 1
 dateString2           string format of date for line 1                                         
 dateFormat1           format of date string for annotation - line 1
 dateFormat2           format of date string for annotation - line 2
                       format options include 'Time', 'Date', 'Year', 'Mon', 'Day', 
                       'Hours', 'Minutes', 'Seconds', 'Day of Year'
                       respective commands are '%time', '%date', '%year', '%mon', 
                       '%day', '%hours', '%minutes', '%seconds', '%doy'
 annotateAxis          flag set to annotate along axis                         
 placeAnnotation       placement of annotation (bottom or top)
 annotateMajorTicks    set flag if major ticks are annotated
 annotateEvery         value where annotations occur
 annotateUnits         units for annotation value (sec, min, hr, day,none)
 firstAnnotation       value where annotation of first major tick occurs
 firstAnnotateUnits    units for major tick value (sec, min, hr, day,none)
 annotateRangeMin     set flag to annotate range min tick  
 annotateRangeMax     set flag to annotate range max tick  
 annotateStyle         format style of tick 
                       if IsTime
                       ['date', 'date:doy' , 'date:doy:h:m', 'date:doy:h:m:s', 'date:doy:h:m:s.ms', $
                        'h:m', 'h:m:s', 'h:m:s.ms', 'mo:day', 'mo:day:h:m', 'doy', 'doy:h:m', $
                        'doy:h:m:s', 'doy:h:m:s.ms', 'year:doy', 'year:doy:h:m', 'year:doy:h:m:s', $
                        'year:doy:h:m:s.ms']
                       otherwise
                       ['d(1234)', 'f0(1234)' , 'f1(123.4)', 'f2(12.34)', 'f3(1.234)', 'f4(0.1234)', $
                        'f5(0.01234)', 'f6(0.001234)', 'e0(123e4)', 'e1(12.3e4)', 'e2(1.23e4)', 'e2(0.123e4)', $
                        'e2(0.0123e4)', 'e2(0.00123e4)', 'e2(0.000123e4)']

 annotateOrientation   The orientation of the annotations: 0(horizontal) & 1(vertical)
 annotateTextObject    Text object that represents that textual style of annotations
 annotateExponent      Flag indicates whether to force annotations into an exponential format.  0: default behavior, 1: Always exponential, 2: Never exponential
 majorGrid=majorgrid   linestyle object of major grid 
 minorGrid=minorgrid   linestyle object of minor grid 
 orientation           orientation of labels 0=Horizontal, 1=Vertical
 margin                number of points for label margins
 showLabels            flag for whether or not labels are displayed
 labels                A container object that stores the text objects which represent each label
 stackLabels           A flag to determine whether labels should be stacked 
 lazyLabels           A flag to determine whether underscores will be converted to carriage returns (and stacking turned off)
 blackLabels           A flag to determine whether label colors are all black 
 autoticks             direct the draw object to make decisions about tick positioning automatically, and mutate axis object settings                                              
 titleobj              text object that contains the title for the axis
 subtitleobj           text object that contains the subtitle for the axis
 placeLabel            placement of labels (left/bottom or right/top)
 placeTitle            placement of title (left/bottom 0 or right/top 1)
 titleorientation      orientation for title (0=horizontal, 1=vertical)
 titlemargin           number of points for title margin
 showtitle             flag for whether the title should be displayed (mainly to allow us to turn off titles if panels are locked and titles would overlap panels)
 lazytitles            flag to determine whether underscores in titles should be converted to carriage returns   

OUTPUT:
 axis property object reference

METHODS:
 SetProperty    procedure to set keywords 
 GetProperty    procedure to get keywords 
 GetAll         returns the entire structure

 GetUnits        returns string array of unit options
 GetUnit         returns name of unit given an index
 GetOrientations returns string array of plot options
 GetOrientation  returns name of plot option given an index
 GetPlacements   returns string array of plot options
 GetPlacement    returns name of plot option given an index
 GetRangeOptions returns string array of plot options
 GetRangeOption  returns name of plot option given an index
 GetStyles       returns string array of plot options
 GetStyle        returns name of plot option given an index
 GetScalings     returns string array of plot options
 GetScaling      returns name of plot option given an index
 GetDateFormats  returns string array of date format options
 GetDateFormat   returns the name of the date format given an index
 GetDateCommands returns array of commands for date formats
 GetDateCommand  returns a string with the date command
 GetDateString   returns a string with the actual date formatted
                 given an index. if a time object is provided it
                 will format the time object, otherwise it will
                 default to the current date.

HISTORY:

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_axis_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_axis_settings__define.pro $

(See spedas_gui/objects/spd_ui_axis_settings__define.pro)


SPD_UI_CALCULATE_SETTINGS__DEFINE

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

PURPOSE:  
  Keeps track of state for calculate panel when closed.

CALLING SEQUENCE:
 calcSettings = Obj_New("SPD_UI_CALCULATE_SETTINGS")

INPUT:
 none

ATTRIBUTES:

  path:  string, path to the calculate file
  name: string,name of the calculate file
  text: string array, containing text of the buffer

OUTPUT:
  calculate settings object reference

METHODS:
   
  GetProperty
  SetProperty

NOTES:
  Methods: GetAll,SetAll are now managed automatically using the parent class spd_ui_getset.  
  You can still call these methods when using objects of type spd_ui_calculate_settings__define, and
  call them in the same way as before

$LastChangedBy: egrimes $
$LastChangedDate: 2015-04-16 11:55:55 -0700 (Thu, 16 Apr 2015) $
$LastChangedRevision: 17342 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_calculate_settings__define.pro $

(See spedas_gui/objects/spd_ui_calculate_settings__define.pro)


SPD_UI_CALL_SEQUENCE__DEFINE

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

PURPOSE:
  Stores the sequence of procedure calls that was used to load data.


CALLING SEQUENCE:
 obj = obj_new('spd_ui_call_sequence',loadeddata)
 
Methods:
  addloadcall: This method should be called in load spedas data, every time 
               'spd_ui_load_data2obj' is called(DEPRECATED, use addSt(), with type:'loadapidata')
  getCalls:  This method returns the list of stored function calls as an
             array of pointers to structs
  setCalls: This method stores an array of pointers to structs that represent
             function/procedure calls
  reCall: This method will re-execute the sequence of stored function calls
  
  merge: This method will combine two call sequence objects.  It attempts to guarantee that
          the correct data quantities are generated, while preventing duplication of effort. 

  adddeletecall: This method should be called wheneever data is deleted in the GUI
        it adds the deletion to the call sequence list, to be replayed by saved documents
  
  getDomElement: serializes this class into an XML Dom object
  BuildFromDomElement:  deserializes this class from an XML Dom Object

NOTE:  1.  This object is designed in such a way that it should be straightforward
       to ingest calls from other types of routines. For example: calls to delete data
       or calls to load data from non-spedas sources.  The public interface
       is set up in such a way that it should ease these types of extensions 
       in the future.
       
       2.  Right now, it cannot guarantee that *all* the data that was saved will
       be present when reCalled, because it does not keep track of custom tplot variables,
       or data processing calls. 
 
HISTORY:
$LastChangedBy: aaflores $
$LastChangedDate: 2015-04-24 18:45:02 -0700 (Fri, 24 Apr 2015) $
$LastChangedRevision: 17429 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_call_sequence__define.pro $

(See spedas_gui/objects/spd_ui_call_sequence__define.pro)


SPD_UI_COORDINATE_SYSTEMS

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

 PURPOSE:
     This object exists for two purposes:
         1) Maintain the list of coordinate systems used throughout SPEDAS 
            in a single location
         2) Encapsulate the methods that produce coordinate system lists
            for different contexts, e.g., the verify data panel, 
            load data panel, data processing panel, etc.
               
     Both are ultimately for code maintenance


 KEYWORDS:
     
 METHODS:
     makeCoordSysList: creates and returns a list of valid coordinate systems


 EXAMPLES:
     To make a simple list of general purpose coordinate systems:
        SPEDAS> coordSysObj = obj_new('spd_ui_coordinate_systems') ; create the object
        SPEDAS> print, coordSysObj->makeCoordSysList(/uppercase) ; make the list
           GSM AGSM GSE GEI SM GEO MAG
        SPEDAS> print, coordSysObj->makeCoordSysList(/uppercase, /include_none) ; include N/A 
           N/A GSM AGSM GSE GEI SM GEO MAG
        SPEDAS> print, coordSysObj->makeCoordSysList(/include_misc) ; include miscellaneous coordinates
           gsm agsm gse gei sm geo mag enp rtn hdz gci dsl ssl spg sse sel
        SPEDAS> obj_destroy, coordSysObj ; delete the object


 NOTE: 
      All coordinate system lists exist in this object's constructor, with pointers
        to the lists in the objects state structure
        
      Changes to this object should be reflected in the corresponding test procedure, spd_ui_test_coordinate_systems_obj

      This routine was forked from the THEMIS coord object (thm_ui_coordinate_systems)


$LastChangedBy: crussell $
$LastChangedDate: 2015-09-23 08:48:08 -0700 (Wed, 23 Sep 2015) $
$LastChangedRevision: 18883 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_coordinate_systems__define.pro $

(See spedas_gui/objects/spd_ui_coordinate_systems__define.pro)


SPD_UI_DATA_GROUP

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


Purpose:
  This object represents a group of data objects, as a means of 
  simplifying the logic of the loaded data object 

METHODS:
  addDataObject:  This method takes a dataObject, extracts the name & active flag
              Then passes those into the add method
              
  add: This is the generic add method, takes a name, an object, and an optional active 
              flag
 
  remove: This method removes an object with a particular name from the data structure
          It returns 1 on success and 0 upon failure.  Optional keyword nodelete, stops 
          data from being deleted when data Object removed.

  removeall: this method removes all objects from the group.
          It returns 1 on success and 0 upon failure.  Optional keyword nodelete, stops 
          data from being deleted when data Object removed.
          
  hasChild: this method determines if the group has a child with a particular name
            returns 1 for yes and 0 for no
            
  hasActive: this method returns 1 if the group has an active object with a 
            particular name and 0 otherwise
 
  setActive: this method sets an object with a particular name to active
             If the name provided is the groupname, the whole group will
             become active

  clearActive: this method will deactivate the object with the provided name
             If the name provided is the groupname, the whole group will
             become inactive

  clearAllActive: this method will deactive the group and all its members
  
  getActiveChildren: this method returns the names of all active members or 0 if there
             are no active members(or no members at all)
             
  getChildren: this method returns the names of all members
  
  getTimeObject: this method returns the timeobject in the group
  
  getDataObjects: this method returns the dataobjects in the group
  
  getObject: this method returns an object with a particular name or 0 if it
             is not stored in this object
  
  getObjects: this method returns all objects stored in the group or 0 if
             it contains no objects
  
  getActive: this method returns the active flag for the group
  
  getName: this method returns the group name
  
  setName: this method sets the group name
  
  getDataNames: returns the names of children BUT time
  
  setTimeName: set the name of the time object in this group
  
  getTimeName: get the name of the time object in this group
  
  setYaxisName: set the name of the yaxis group for this group
  
  getYaxisName: get the name of the yaxis group for this group
  
  setIndepName:set the name of the independent variable data name for this group
  
  getIndepName: get the name of the independent variable data name for this group
  
  getSize: this method returns the number of objects stored in the group
  
  getTimeRange: this method returns the start and stop time strings the
                time object of this group

  init: has two optional keywords.  name,active
  
  NOTES: As the data_group object is part of loaded data and data management,
         destroying this object or removing from this object will result in
         the contained objects being destroyed and their memory being freed
        
  
  
$LastChangedBy: jimm $
$LastChangedDate: 2019-05-13 11:23:24 -0700 (Mon, 13 May 2019) $
$LastChangedRevision: 27229 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_data_group__define.pro $

(See spedas_gui/objects/spd_ui_data_group__define.pro)


SPD_UI_DATA_SETTINGS

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

PURPOSE:  
 represents the default plot settings for a trace, and digests the original tplot settings

CALLING SEQUENCE:
 dsettings = obj_new('spd_ui_data_settings',limit,dlimit,element)

HISTORY:

NOTES:
  1. We need to update defaults in the instance of a rename

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_data_settings__define.pro $

(See spedas_gui/objects/spd_ui_data_settings__define.pro)


SPD_UI_DATA__DEFINE

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

PURPOSE:
 This is a data object that contains names ids (self, group, and parent)

CALLING SEQUENCE:
 To Create:    myDataObj = Obj_New("SPD_UI_DATA")
 To Use:       data = myDataObj->GetData() 

OUTPUT:
 reference to a data object

ATTRIBUTES:
 name           name of data
 timeName       name of the time component of this data
 dataPtr        ptr to the data component of this data
 yaxisName      name of the yaxis component of this data
 indepName      name of variable to use on indep axis instead of time
 limitPtr       ptr to the limit struct from the tplot variable that
                   it originated 
 dlimitPtr      ptr to the dlimit struct from the tplot variable that
                   it originated
 id             unique identifier for this data object
 groupName      group name
 fileName       data file name
 isTime         this boolean indicates whether a data object represents time
 isSpect        flag set when data is spectrographic
 mission        the mission the data is for
 observatory    spacecraft or groundstation of the data
 coordSys       coordinate system of the data, if applicable
 instrument     instrument of the data
 units          the units for this data qunatity
 yaxisunits     the units of the yaxis for this quantity(not important internally, but when we are passing around metadata during a tplot operation, it becomes more important)
                yaxisunits is stored but does not appear to be used anywhere (af, 2015-05-08)
 suffix         the suffix of the quantity(if applicable)
 settings       object representing the default data settings

OUTPUT:
 data object

METHODS:
 getName
 getDataPtr
 getRange
 Copy
 SetProperty 
 GetProperty
 GetAll

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_data, and
  call them in the same way as before

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-10 15:11:14 -0700 (Fri, 10 Jul 2015) $
$LastChangedRevision: 18081 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_data__define.pro $

(See spedas_gui/objects/spd_ui_data__define.pro)


SPD_UI_DPRINT_DISPLAY

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

PURPOSE:  
 Object to handle error reporting from ssl_general routines that use dprint

CALLING SEQUENCE:
 spd_ui_display = Obj_New("SPD_UI_DPRINT_DISPLAY")



METHODS:
 GetProperty
 SetProperty
 Print

HISTORY:

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_dprint_display__define.pro $

(See spedas_gui/objects/spd_ui_dprint_display__define.pro)


SPD_UI_FIELDMODELS_SETTINGS__DEFINE

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

 PURPOSE:
  Settings object for the field models panel

 CALLING SEQUENCE:
  fieldmodels = obj_new('SPD_UI_FIELDMODELS_SETTINGS')
 
 INPUT:
  none
  
 KEYWORDS:
   pos_tvar: variable containing position data, in km
   imf_by_tvar: variable containing IMF By data, in nT
   imf_bz_tvar: variable containing IMF Bz data, in nT
   sw_density_tvar: variable containing solar wind proton density, in #/cc
   sw_speed_tvar: variable containing solar wind proton speed, in km/s
   dst_tvar: variable containing Dst (or Sym-H) data, in nT
   w_coeff_tvar: variable containing W coefficients for the TS04 model
   g_coeff_tvar: variable containing G coefficients for the T01 model
   t89_kp: iopt for the Kp index, for the T89 model
   t89_set_tilt: user supplied tilt angle for the T89 model
   t89_add_tilt: user supplied angle to add to the model tilt angle for T89
   output_options: models to run - [model at position, equatorial footprint, ionospheric footprint]
       
$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_fieldmodels_settings__define.pro $

(See spedas_gui/objects/spd_ui_fieldmodels_settings__define.pro)


SPD_UI_GETSET

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

PURPOSE:  
  Superclass to automatically provide common gui methods: "GetAll","SetAll","GetProperty","SetProperty"


METHODS:
  GetProperty
  SetProperty
  GetAll
  SetAll


HISTORY:

NOTES:
  This object differs from other gui objects with respect to its getProperty,setProperty,getAll,setAll methods.  These methods are now provided dynamically
  so you only need to modify the class definition and the init method to if you want to add or remove a property from the object. 
  

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_getset__define.pro $

(See spedas_gui/objects/spd_ui_getset__define.pro)


SPD_UI_HIGHLIGHT_SETTINGS__DEFINE

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

PURPOSE:  
 highlight properties is an object that holds all parameters associated with
 theh Trace Properties Highlight panel

CALLING SEQUENCE:
 highlightProperties = Obj_New("SPD_UI_HIGHLIGHT_SETTINGS")

INPUT:
 none

KEYWORDS:
 markVertical      flag to mark vertical
 lineStyle         line style object
 symbol            symbol object 
 placement         droplistfor placement of symbol
                     top, bottom, both top and bottom
 labelWith         0=No label, 1=X value, 2=Y value
 format            numeric format for label 
 markWhenY         flag to mark y value 
 whenYEquals       y value to mark
 markEvery         flag to mark every y value ..
 whenEveryEquals  y value to mark
 setBackground     flag to set background
 backgroundWhenY   droplist of logical operators
 backgroundYValue  value for logical operator
 backgroundColor   r,g,b color for background

OUTPUT:
 highlight property object reference

METHODS:
 SetProperty   procedure to set keywords 
 GetProperty   procedure to get keywords 
 GetAll        returns the entire structure
 GetPlacements returns a string array with placement options
 GetPlacement  return a string with placement option of given index
 GetOperators  returns a string array with operator options ['<','<=', ...]
 GetOperator   return a string with placement option of given index

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_highlight_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_highlight_settings__define.pro $

(See spedas_gui/objects/spd_ui_highlight_settings__define.pro)


SPD_UI_HISTORY__DEFINE

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

PURPOSE:
 A widget to display the all messages generated during this session

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 08:15:04 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18090 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_history__define.pro $
+ 
NAME: 
 spd_ui_history__define

PURPOSE:
 This is a history window object used to display textual information for the user
 (such as a status bar for current states, message bar, or informational bar)

CALLING SEQUENCE:
 To Create:    myHistory = Obj_New("SPD_UI_HISTORY")
 To Use:       myHistory->Update, 'This is a test'
 Or:           result = myHistory->GetState()

INPUT:

KEYWORDS:
 name:   optional name
 state:  set this to one to display
 value:  text to be displayed in the bar 
 xSize:  size of bar in x direction
 ySize:  size of bar in y direction
 debug:  set this value to one for debugging

OUTPUT:
 message bar object reference

METHODS:
 Draw         creates/displays the bar (automatically called by INIT)
 Delete       removes bar from display (object persists)
 Update       updates bar with new message
 SetProperty  procedure to set keywords 
 GetProperty  procedure to get keywords 
 GetState     returns the current state of the bar (on/off) (this is a function)

HISTORY:

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 08:15:04 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18090 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_history__define.pro $

(See spedas_gui/objects/spd_ui_history__define.pro)


SPD_UI_LEGEND__DEFINE

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

 PURPOSE:
  Basic legend settings object

 CALLING SEQUENCE:
  legend = Obj_New('SPD_UI_LEGEND')
 
 INPUT:
  none
  
 KEYWORDS:
  enabled:         flag for disable/enabling the legend
  font:            index of legend font type - font types are from the getFonts method in spd_ui_text
  size:            size of legend text
  format:          legend font formats ('bold', 'italic', etc..)
  color:           color of legend text
  vspacing:        vertical spacing between lines in legend
  bgcolor:         background color of legend
  framethickness:  thickness of frame around legend
  bordercolor:     color of frame around legend
  bottom:          flag indicating whether explicit positioning is used
  bValue:          numerical value of the explicit position (bottom)
  bUnit:           bottom units - 0=pt, 1=in, 2=cm, 3=mm, units of numerical value
  left:            flag indicating whether explicit positioning is used
  lValue:          numerical value of the explicit position (left)
  lUnit:           'left' units
  width:           flag indicating whether explicit positioning is used
  wValue:          numerical value of the explicit position (width)
  wUnit:           'width' units
  height:          flag indicating whether explicit positioning is used
  hValue:          numerical value of the explicit position (height)
  hUnit:           'height' units
  xAxisValue:      X-axis value
  xAxisValEnabled: enable/disable showing x-axis value on legend
  yAxisValue:      Y-axis value
  yAxisValEnabled: enable/disable showing y-axis value on legend
  traces:          pointer to traces
  customTracesset: 0=no custom traces set for this panel, 1=custom traces are set
  xIsTime:         flag indicating whether X-axis is time
  yIsTime:         flag indicating whether Y-axis is time
  zIsTime:         flag indicating whether Z-axis is time
  notationSet:     0 = auto-notation, 1=decimal notation, 2=scientific notation, 4=hexadecimal notation
  timeFormat:      index of format for dates/times in legend, default is h:m:s.ms
  numformat:       index of format for numerical values shown in legend
 
 
 
$LastChangedBy: egrimes $
$LastChangedDate: 2014-06-12 08:22:12 -0700 (Thu, 12 Jun 2014) $
$LastChangedRevision: 15354 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_legend__define.pro $

(See spedas_gui/objects/spd_ui_legend__define.pro)


SPD_UI_LINEFILL_SETTINGS__DEFINE

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

PURPOSE:  
 spd_ui_linefill_settings is an object that holds the settings needed 
 to describe a shaded area between 2 traces. The spd_ui_panel object field 
 'traceFillSettings' is a container holding objects of this type.

CALLING SEQUENCE:
 lineFillSettings = Obj_New("SPD_UI_LINEFILL_SETTINGS")

 REQUIRED INPUT:
 none

KEYWORDS:
 dataX1             string naming X component of line 1
 dataY1             string naming Y component of line 1
 dataX2             string naming X component of line 2
 dataY2             string naming Y component of line 2
 FillColor          int array describing color of shading
 Opacity            float between 0 and 1 describing opacity of shaded area.
 nosave             will not save a copy on startup

OUTPUT:
 spd_ui_linefill_settings object reference

METHODS:
 Copy
 Save
 Reset

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_linefill_settings.

CREATED BY: Ayris Narock (ADNET/GSFC) 2017

 $LastChangedBy: nikos $
 $LastChangedDate: 2017-11-20 12:50:10 -0800 (Mon, 20 Nov 2017) $
 $LastChangedRevision: 24322 $
 $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_linefill_settings__define.pro $

(See spedas_gui/objects/spd_ui_linefill_settings__define.pro)


SPD_UI_LINE_SETTINGS__DEFINE

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

PURPOSE:  
 line properties is an object that holds all of the settings necessary for 
 plotting a line as specified in the Trace Properties Line panel

CALLING SEQUENCE:
 lineSettings = Obj_New("SPD_UI_LINE_SETTINGS")

INPUT:
 none

KEYWORDS:
 dataX             string naming X component of line
 dataY             string naming Y component of line
 mirrorLine        flag to mirror line
 lineStyle         line style object
 drawBetweenPts    flag set if separation attributes should be used(ie NOT drawBetweenpts)
 separatedBy       number of point separation
 separatedUnits    0=sec, 1=min, 2=hrs, 3=days 
 symbol            symbol object
 plotPoints,       all,1st/Last,1st,Last,MajorTick,EveryN                                      
 everyOther        number for every N points                         
 positiveEndPt     variable name for positive endPt
 negativeEndPt     variable name for negative endPt
 positiveEndRel    flag if relative to line
 negativeEndRel    flag if relative to line
 barLine           bar line style object
 MarkSymbol        mark symbol object
 debug=debug       set to debug 

OUTPUT:
 line property object reference

METHODS:
 SetProperty    procedure to set keywords 
 GetProperty    procedure to get keywords 
 GetAll         returns the entire structure
 GetPlotOptions returns string array of plot options
 GetPlotOption  returns name of plot option given an index
 GetUnits       returns string array of unit options
 GetUnit        returns name of unit given an index


NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_line_settings, and
  call them in the same way as before

HISTORY:

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_line_settings__define.pro $

(See spedas_gui/objects/spd_ui_line_settings__define.pro)


SPD_UI_LINE_STYLE__DEFINE

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

PURPOSE:  
 generic object for IDL line styles

CALLING SEQUENCE:
 lineStyle = Obj_New("SPD_UI_LINE_STYLE")

INPUT:
 none

KEYWORDS:
 name       name of line style (solid, dotted, dashed, dashdot, 
                                dashdotdot,long dashes)
 id         IDL line style value (0-5)
 show       set this to display line (default = 1)
 color      name of the color for this line (default is black)
 rgb        [r, g, b] value for the color for this line  
 thickness  thickness of the line (default = 1)
 opacity    the opacity of the line

OUTPUT:
 line style object reference

METHODS:
 GetProperty
 GetAll
 SetProperty
 GetLineStyleName
 GetLineStyleId
 GetLineStyle
 Copy

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_line_style, and
  call them in the same way as before

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_line_style__define.pro $

(See spedas_gui/objects/spd_ui_line_style__define.pro)


SPD_UI_LOADED_DATA::DPROC

[Previous Routine] [Next Routine] [List of Routines]
NAME:
 spd_ui_loaded_data::dproc

PURPOSE:
 extracts tplot variables from active data, performs data processing
 tasks, creates new variables, optionally sets those variables to
 active variables

CALLING SEQUENCE:
 success = loaded_data_obj -> dproc(dp_task, dp_pars,callSequence, names_out=names_out, no_setactive=no_setactive)

INPUT:
 dp_task = a string variable specifying the task to be carried
           out. The options are ['subavg', 'submed', 'smooth',
           'blkavg','clip','deflag','degap','spike','deriv',
           'pwrspc','wave','hpfilt']
 dp_pars = an anonymous structure containing the input parameters for
 the task, this will be unpacked in this routine and the parameters
 are passed through. Note that, since this is only called from the
 thm_GUI_new routine, there is no error checking for
 content, it is expected that the calling routine passes through the
 proper parameters in each case.

 callSequence = Object to store previous dproc operations for replay

OUTPUT:
 success = a byte, 0b if the process was unsuccessful or cancelled,
           1b if the process was completed

KEYWORDS:
 names_out = the tplot names of the created data variables
 no_setactive = if set, the new variables will no be set to active at
                the end of the process.
 hwin, sbar = history window and status bar objects for updates
 gui_id = the id of the calling widget - to pass into warning pop-ups

HISTORY:
 16-oct-2008, jmm, jimm@ssl.berkeley.edu
 switched output from message to byte, 29-oct-2008,jmm
 12-Dec-2008,prc Fixed bug where dproc was not reading data stored in
 loaded data,but instead was reading non-gui-data.
 Fixed bug where data produced by dproc was not inheriting any meta-data.
 23-jan-2009, jmm, deletes any tplot variables that are created
                   during processing, added catch, so that deletion
                   of tplot variables is done if an error bonks a
                   process.
 10-Feb-2009, jmm, Added hwin, sbar keywords
 24-Apr-2015, af, updating plugins, reformatting code

$LastChangedBy: nikos $
$LastChangedDate: 2016-03-07 10:51:31 -0800 (Mon, 07 Mar 2016) $
$LastChangedRevision: 20343 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_loaded_data__dproc.pro $
unction spd_ui_loaded_data::dproc, dp_task, dp_pars,callSequence=callSequence,replay=replay,in_vars=in_vars, names_out = names_out, $
                          no_setactive = no_setactive, hwin = hwin, sbar = sbar, gui_id = gui_id, $
when replaying data, need to remember user interaction responses if we're gonna get it right
                          overwrite_selections=overwrite_selections,degap_selections=degap_selections,blkavg_selections=blkavg_selections,$
                          smooth_selections=smooth_selections, hpf_selections=hpf_selections,$
                          _extra = _extra

ompile_opt idl2, hidden



Catch errors during processing
  -allows dproc window to persist in case of error?

(See spedas_gui/objects/spd_ui_loaded_data__dproc.pro)


SPD_UI_LOADED_DATA__DEFINE

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

PURPOSE:
 This is an array of data objects and represents all the data that has been loaded
 for this session.

CALLING SEQUENCE:

OUTPUT:
 reference to data object array

ATTRIBUTES:
 array of data objects

METHODS:
 Add             adds a new tplot variable to the loaded data object by tplot variable name
 Remove          removes an object from the array by name or group name
 GetAll          returns an array of all data names
 GetActive       returns a list of all data that is currently displayed
 GetChildren     returns a list of the children for a particular variable name
 SetActive       makes a data object active given a tplot name
 IsActive        Checks if a variable with a given name is active
 IsParent        Checks if a variable with a given name is a parent
 IsChild         Checks if a variable with a given name is a child
 ClearActive     makes a data object inactive
 ClearAllActive  clears all active data objects
 GetVarData      gets the data component from a variable.  For a group variable, the routine
                 will need to compose the data first
 GetTvarData     gets a tplot variable,  For a group data structure it will construct
                 a new tplot variable.  
 GetObjects      returns an array of all data objects, can also take a name or group name

  NOTE: 
  
  1. You should use 'getTvarData' to generate a
  tplot variable that has all the dimensions of the variable composed
  as a single entity.  After you have modified the variable you
  should you 'add', to add the data back in to the data structure. 
  
  2. Note also, that you don't need to have separate rules to data process parents and children, if you use
  the same getTvarData/add workflow above for children variables, it
  will work fine.

  3. INIT takes an argument, /autoload. If that is set, the load routine will load all the tplot variables in
  memory, but not all the metadata for the variables will be set correctly.


HISTORY:

$LastChangedBy: jimmpc1 $
$LastChangedDate: 2018-03-05 14:00:03 -0800 (Mon, 05 Mar 2018) $
$LastChangedRevision: 24830 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_loaded_data__define.pro $

(See spedas_gui/objects/spd_ui_loaded_data__define.pro)


SPD_UI_MARKER_SETTINGS__DEFINE

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

PURPOSE:  
 Marker Settings object - used for the marker options panel, this object holds the
 settings used for markers

CALLING SEQUENCE:
 marker = Obj_New("SPD_UI_MARKER_SETTINGS")

INPUT:
 none

ATTRIBUTES:
label             marker title text object
vertPlacement     vertical placement of marker label 
fillColor         color used to shade marked area
lineStyle         line style object for start/end points
drawOpaque        opacity of the marker(floating pt between 0 & 1])

OUTPUT:
 marker setting object reference

METHODS:
 SetProperty  procedure to set keywords 
 GetProperty  procedure to get keywords 
 GetAll       returns the entire structure

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_marker_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_marker_settings__define.pro $

(See spedas_gui/objects/spd_ui_marker_settings__define.pro)


SPD_UI_MARKER_TITLE__DEFINE

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

PURPOSE:  
 Marker object, displayed whenever user ctrl-click-drags to highlight an area

CALLING SEQUENCE:
 markerTitle = Obj_New("SPD_UI_MARKER_TITLE")

INPUT:
 none

KEYWORDS:
 name             name for this marker
 useDefault       flag set if using default name
 defaultName      default name for marker
 cancelled        flag set if window cancelled
 

OUTPUT:
 marker object reference

METHODS:
 SetProperty   procedure to set keywords 
 GetProperty   procedure to get keywords 
 GetAll        returns the entire structure

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_marker_title, and
  call them in the same way as before

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_marker_title__define.pro $

(See spedas_gui/objects/spd_ui_marker_title__define.pro)


SPD_UI_MARKER__DEFINE

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

PURPOSE:  
 Marker object, displayed whenever user ctrl-click-drags to highlight an area

CALLING SEQUENCE:
 marker = Obj_New("SPD_UI_MARKER")

INPUT:
 none

KEYWORDS:
 name              name for this marker
 range             start and stop value of marker (data coords)
 settings          property settings of the marker
 isSelected        flag set if marker is currently selected
 filename          filename, if saved

OUTPUT:
 marker object reference

METHODS:
 SetProperty   procedure to set keywords 
 GetProperty   procedure to get keywords 
 GetAll        returns the entire structure


NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_marker, and
  call them in the same way as before

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-10 15:57:36 -0700 (Fri, 10 Jul 2015) $
$LastChangedRevision: 18083 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_marker__define.pro $

(See spedas_gui/objects/spd_ui_marker__define.pro)


SPD_UI_MESSAGE_BAR__DEFINE

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

PURPOSE:
 This is a text bar object used to display textual information for the user
 (such as a status bar for current states, message bar, or informational bar)

CALLING SEQUENCE:
 To Create:    myStatusBar = Obj_New("SPD_UI_MESSAGE_BAR", myWidgetBase)
 To Use:       myStatusBar->Update, 'This is a test'
 Or:           result = myStatusBar->GetState()

INPUT:
 parent:       id for the parent widget (must be a base)

KEYWORDS:
 name:   optional name
 state:  set this to one to display
 value:  text to be displayed in the bar 
 xSize:  size of bar in x direction
 ySize:  size of bar in y direction
 debug:  set this value to one for debugging

OUTPUT:
 message bar object reference

METHODS:
 Draw         creates/displays the bar (automatically called by INIT)
 Delete       removes bar from display (object persists)
 Update       updates bar with new message
 SetProperty  procedure to set keywords 
 GetProperty  procedure to get keywords 
 GetState     returns the current state of the bar (on/off) (this is a function)

 WARNINGS:
   You should avoid calling the update method on this object before the widget is realized.

HISTORY:

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-09 10:47:18 -0700 (Thu, 09 Jul 2015) $
$LastChangedRevision: 18043 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_message_bar__define.pro $

(See spedas_gui/objects/spd_ui_message_bar__define.pro)


SPD_UI_NEUTRALSHEET_SETTINGS__DEFINE

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

 PURPOSE:
  Settings object for the field models panel

 CALLING SEQUENCE:
  neutralsheet = obj_new('SPD_UI_NEUTRALSHEET_SETTINGS')

 INPUT:
  none

 KEYWORDS:
   pos_tvar: variable containing position data, in km, in gsm
   nsmodel: neutral sheet model name. models include:
     'sm', 'aen', 'den', 'fairfield', 'themis', 'lopez'
   kp: Kp index (Kp index is only for the Lopez Neutral Sheet Model)
   magnetic_lat: magnetic latitude (mlt is only used by the Lopez Neutral Sheet Model)

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/spedas_gui/objects/spd_ui_neutralsheet_settings__define.pro $

(See spedas_gui/objects/spd_ui_neutralsheet_settings__define.pro)


SPD_UI_PAGE_SETTINGS__DEFINE

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

PURPOSE:  
 Page Settings object - holds the settings for page text, layout and data

CALLING SEQUENCE:
 page = Obj_New("SPD_UI_PAGE_SETTINGS")

INPUT:
 none

OUTPUT:
 page setting object reference

ATTRIBUTES:
 title                 text object for title
 labels                text object for labels
 variables             text object for variables
 footer                text object for footer
 marker                text object for markers  
 token                 droplist index for title token
 ifootertoken           droplist index for footer token
 defMarkerTitle        default value for marker titles
 maintainRead          flag to maintain readability
 ShowTraceNames        flag to display trace names
 xPanelSpacing         horizontal spacing between panel(pts)
 yPanelSpacing         vertical spacing between panel(pts)
 heightProp            flag to maintain prop. heights 
 gutterWidth           width size for gutter
 displayOnScreen       flag to display on screen
 altTopBottom          flag to alternate top and bottom
 offsetFirstPage       flag to offset first page
 orientation           0=portrait, 1=landscape
 backgroundColor       name of background color
 leftPrintMargin       size of left print margin (in.)
 rightPrintMargin      size of right print margin (in.)
 topPrintMargin        size of top print margin (in.)
 bottomPrintMargin     size of bottom print margin (in.)
 canvasSize            size of the page in inches
 overlapMajorTicks     flag to overlap major ticks
 showValues            set this flag to show values
 closerThanValue       show data if closer than this
 closerThanUnits       closer units (hr,min,sec,day)
 useSameYRange         flag to use the same y range 
 numMajorTicks         number of major ticks to use
 numMinorTicks         number of minor ticks to use
 skipBlanks            flag to skip blanks

METHODS:
 SetProperty   procedure to set keywords 
 GetProperty   procedure to get keywords 
 GetAll        returns the entire structure
 GetTokenNames returns all the token name options
 GetTokenName  return a token name given an index
 GetUnitNames  returns all closer than unit options
 GetUnitName   returns a unit name given an index
 SetTokenValue places the string value of the token into the text object
 
HISTORY:

NOTES:

  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_page_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_page_settings__define.pro $

(See spedas_gui/objects/spd_ui_page_settings__define.pro)


SPD_UI_PANEL_SETTINGS__DEFINE

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

PURPOSE:  
 Panel Settings object - holds the settings for panel traces, layout and grid

CALLING SEQUENCE:
 panelTrace = Obj_New("SPD_UI_PANEL_SETTINGS")

INPUT:
 none

OUTPUT:
 panel setting object reference

ATTRIBUTES:
 panelNames         list of panel names
 titleobj           titleobj panel
 titleMargin        the margin between the plot and the title in pts   
 overlay            set this flag to overlay title
 row                current row
 col                current column
 rSpan              number of rows to span
 cSpan              number of columns to span
 bottom             flag indicating value was set by user
 bvalue             value of bottom position
 bunit              unit of  position value 0=pt, 1=in, 2=cm, 3=mm
 left               flag indicating value was set by user
 lValue             value of left position
 lUnit              unit of  position value 0=pt, 1=in, 2=cm, 3=mm
 width              flag indicating value was set by user
 wValue             value of width position
 wUnit              unit of  position value 0=pt, 1=in, 2=cm, 3=mm
 height             flag indicating value was set by user
 hValue             value of height position
 hUnit              unit of  position value 0=pt, 1=in, 2=cm, 3=mm
 relVertSize        relative size (percentage)
 backgroundColor    background color
 framecolor         frame color
 framethick         framethickness

METHODS:
 SetProperty  procedure to set keywords 
 GetProperty  procedure to get keywords 
 GetAll       returns the entire structure
 GetUnitNames returns a string array of possible unit values
 GetUnitName  returns a string containing the name of the unit

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_panel_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_panel_settings__define.pro $

(See spedas_gui/objects/spd_ui_panel_settings__define.pro)


SPD_UI_PANEL__DEFINE

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

PURPOSE:  
 generic object for a panel

CALLING SEQUENCE:
 panel = Obj_New("SPD_UI_PANEL")

INPUT:
 none

ATTRIBUTES:

traceSettings IDL_Container object storing trace settings for each set of data quantities to be plotted
traceFillSettings IDL_Container object storing settings for each pair of lines to fill between
windowID    ID for parent window (defaults to -1)
name        name for this panel
id          unique identifier for this panel
settings    property object for this panel
xAxis       x axis properties object
yAxis       y axis properties object
zAxis       z axis properties object
tracking    flag set if tracking is on
isActive    flag set if panel is displayed
syncflag    flag set if label and trace colors are synced
variables   idl container of variable objects
showvariables flag indicates whether variables should be displayed or not 
markers     idl container of marker objects

OUTPUT:
 panel object reference

METHODS:
 GetProperty
 GetAll
 GetLayoutStructure
 SetLayoutStructure
 SetProperty

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_panel, and
  call them in the same way as before

$LastChangedBy: nikos $
$LastChangedDate: 2017-11-20 10:43:28 -0800 (Mon, 20 Nov 2017) $
$LastChangedRevision: 24317 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_panel__define.pro $

(See spedas_gui/objects/spd_ui_panel__define.pro)


SPD_UI_PLUGIN_MANAGER

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

PURPOSE:
    Interface for SPEDAS plugins


$LastChangedBy: nikos $
$LastChangedDate: 2016-10-11 16:59:54 -0700 (Tue, 11 Oct 2016) $
$LastChangedRevision: 22089 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_plugin_manager__define.pro $

(See spedas_gui/objects/spd_ui_plugin_manager__define.pro)


SPD_UI_PROMPT_OBJ__DEFINE

[Previous Routine] [Next Routine] [List of Routines]
 Name: spd_ui_prompt_obj
 
 Purpose:
     For encapsulating access to the prompt interface in the SPEDAS GUI
     
 
 Keywords:
     msg: message to display in the prompt
     gui_id: id of the parent (GUI) widget
     historyWin: history window object, for sending text to the history window
     statusBar: status bar object, for sending text to the status bar
     
 Output:
     reference to the new prompt object
     
 Methods:
     sendtoScreen: creates the prompt
     
 Examples:
     ; create the object
     gui_prompt_obj = obj_new('SPD_UI_PROMPT_OBJ', historyWin=historyWin, statusBar=statusBar)
     ; send the prompt to the user
     user_selection = gui_prompt_obj->sendtoScreen('Are you sure you would like to overwrite this data?', 'Overwrite Data?', gui_id = gui_id)
     ; check the option selected by the user
     ...

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_prompt_obj__define.pro $

(See spedas_gui/objects/spd_ui_prompt_obj__define.pro)


SPD_UI_READWRITE__DEFINE

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

PURPOSE:  
 Base class for object serialize/de-serialize methods.  This class
 has no data members and should not be instantiated, only inherited
 from.  It uses IDL's rudimentary reflection capabilities to 
 figure out which fields need to be read/written, and what their
 types are.


INPUT:
 none

KEYWORDS:
 none

OUTPUT:
 none

METHODS:
 read  Read an object from a file
 write Write an object to a file
 test  Write an object, read it back into a new object, write new object
 
HISTORY:

$LastChangedBy: pcruce $
$LastChangedDate: 2015-01-12 16:43:43 -0800 (Mon, 12 Jan 2015) $
$LastChangedRevision: 16649 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_readwrite__define.pro $

(See spedas_gui/objects/spd_ui_readwrite__define.pro)


SPD_UI_SCROLL_BAR__DEFINE.PRO

[Previous Routine] [Next Routine] [List of Routines]
NAME:
 spd_ui_scroll_bar__define.pro

PURPOSE:
 Object created for data slider widget. Allows scrolling back
 and forth along the data range when panels are locked.

CALLING SEQUENCE:
 sb = obj_new('SPD_UI_SCROLL_BAR', parentID, xScreenSize, windowStorage, loadedData, drawObject, statusbar, $
                                   value = 500, range = [0,1000])

ATTRIBUTES:
 id: slider widget's ID
 parent: parent widget's ID
 xsize: screen size, in pixels, of the slider bar
 range: the numerical integer range about which the slider can move, [0,1000] by default
 value: the current value of the slider, zero (fully left) in the absence of data

PUBLIC METHODS:
 getValue: Allows retrieval of value, range, and xsize
 setValue: Allows setting of value and xsize, mainly for the purpose of gui resize events
 update: (Will be called most often) Update procedure to be called any time changes have 
         been made to the locked status or the locked panel's range.

NOTES:
 Created 7-13-09
 
 Behavior:
   No locked panels: Scroll bar should be zeroed and desensitized
   Locked panels w/o valid data: Scroll bar should be centered and desensitized
   Locked panel w/ valid data: Scroll bar should be sensitized, position will
                               depend on the data and panel ranges.
   

HISTORY:


(See spedas_gui/objects/spd_ui_scroll_bar__define.pro)


SPD_UI_SPECTRA_SETTINGS__DEFINE

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

PURPOSE:  
 spectra properties is an object that holds all of the settings necessary for 
 spectral data plots

CALLING SEQUENCE:
 spectraSettings = Obj_New("SPD_UI_SPECTRA_SETTINGS")

INPUT:
 none

KEYWORDS:
 dataX              string naming the x component of the spectral plot
 dataY              string naming the y component of the spectral plot
 dataz              string naming the z component of the spectral plot

OUTPUT:
 spectra property object reference

METHODS:
 SetProperty    procedure to set keywords 
 GetProperty    procedure to get keywords 
 GetAll         returns the entire structure
 GetPlacements  returns string array of placement options
 GetPlacement   returns name of placement option given an index
 GetColorTables returns string array of color tables 
 GetColorTable  returns name of color table given an index

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_spectra_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_spectra_settings__define.pro $

(See spedas_gui/objects/spd_ui_spectra_settings__define.pro)


SPD_UI_SYMBOL__DEFINE

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

PURPOSE:  
 generic object for IDL symbols

CALLING SEQUENCE:
 symbol = Obj_New("SPD_UI_SYMBOL")

INPUT:
 none

KEYWORDS:
 name       name of symbol
              0 = No symbol
              1 = Plus sign, `+' (default)
              2 = Asterisk
              3 = Period (Dot)
              4 = Diamond
              5 = Triangle
              6 = Square
              7 = X
              8 = "Greater-than" Arrow Head (>)
              9 = "Less-than" Arrow Head (<)
 id         IDL graphics symbol index (0-9)
 show       set this to display symbol (default = 1)
 color      name of the color for this symbol (default is black)
 rgb        [r, g, b] value for the color for this symbol 
 fill       set this to fill symbol (default = 0)
 size       size of the symbol (default = 2)

OUTPUT:
 symbol object reference

METHODS:
 GetProperty
 GetAll
 SetProperty
 GetSymbolName
 GetSymbolId
 GetSymbols


NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_symbol, and
  call them in the same way as before
  
$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_symbol__define.pro $

(See spedas_gui/objects/spd_ui_symbol__define.pro)


SPD_UI_TEMPLATE

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

PURPOSE:  
  Top level object to manage the spedas gui settings template.  Mainly provides a root for serialization a la, spd_ui_document

CALLING SEQUENCE:
 template = Obj_New("spd_ui_template")


METHODS:
  GetProperty
  SetProperty


HISTORY:

NOTES:
  This object differs from other gui objects with respect to its getProperty,setProperty,getAll,setAll methods.  These methods are now provided dynamically
  by spd_ui_getset, so you only need to modify the class definition and the init method to if you want to add or remove a property from the object. 
  

$LastChangedBy: jimm $
$LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $
$LastChangedRevision: 14326 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_template__define.pro $

(See spedas_gui/objects/spd_ui_template__define.pro)


SPD_UI_TEXT__DEFINE

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

PURPOSE:  
 generic object for character strings

CALLING SEQUENCE:
 text = Obj_New("SPD_UI_TEXT")

INPUT:
 none

KEYWORDS:
value     what's contained in the string 
font      font names ('Time New Roman', etc...) 
format    font formats ('bold', 'italic', etc..)
color     name of color for text
size      character size
thickness character thickness 
show      flag to display text

OUTPUT:
 text object reference

METHODS:
 GetProperty
 GetAll
 SetProperty
 GetFonts
 GetFont
 GetFontIndex
 GetFormats
 GetFormat
 GetFormatIndex

HISTORY:

$LastChangedBy: aaflores $
$LastChangedDate: 2016-05-17 14:51:47 -0700 (Tue, 17 May 2016) $
$LastChangedRevision: 21100 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_text__define.pro $

(See spedas_gui/objects/spd_ui_text__define.pro)


SPD_UI_TIME_RANGE__DEFINE

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

PURPOSE:  
 time range object 

CALLING SEQUENCE:
 timeRange = Obj_New("SPD_UI_TIME_RANGE")

INPUT:
 none

KEYWORDS:
 startTime  start time 
 endTime    end time        

OUTPUT:
 time range object reference

METHODS:
 SetProperty  procedure to set keywords 
 GetProperty  procedure to get keywords
 GetStartTime returns the start time (default format is double)
 GetEndTime  returns the stop time (default format is double)
 GetDuration  returns duration in seconds 
 SetStartTime set start time
 SetEndTime   set end time
HISTORY:

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 09:09:53 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18094 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_time_range__define.pro $

(See spedas_gui/objects/spd_ui_time_range__define.pro)


SPD_UI_TIME__DEFINE

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

PURPOSE:
 generic time object 

CALLING SEQUENCE:
 To Create:    myTimeObj = Obj_New("SPD_UI_TIME")
 To Use:       data = myDataObj->GetAll() 

INPUT:
  optional - can provide a time value double, string, or epoch
             defaults to current time
  tDouble   
  tString
  tEpoch

OUTPUT:
 data object

METHODS:
 UpdateStructure
 GetStructure
 GetAll
 SetProperty 
 GetProperty

HISTORY:

$LastChangedBy: jimm $
$LastChangedDate: 2019-05-13 11:23:24 -0700 (Mon, 13 May 2019) $
$LastChangedRevision: 27229 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_time__define.pro $

(See spedas_gui/objects/spd_ui_time__define.pro)


SPD_UI_VARIABLE__DEFINE

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

PURPOSE:  
 Variable object, displayed at bottom of window

CALLING SEQUENCE:
 variable = Obj_New("SPD_UI_VARIABLE")

INPUT:
 none

ATTRIBUTES:
 fieldName       name of variable to be displayed
 controlName     name of variable to be used for control
 text            text object for this variable
 symbol          numeric symbols 0=none, 1=degrees, 2=seconds, 3=minutes
 format          numeric formatting style (e.g. 12.34, 1.23e4)
 minRange        the minimum range for the variable
 maxRange        the maximum range for the variable 
 scaling         the type of scaling used with the variable 0:Linear,1 Log10, 2:LogN
 useRange        0 = auto,1= user defined,2 = xrange from panel

OUTPUT:
 variable object reference

METHODS:
 SetProperty   procedure to set keywords 
 GetProperty   procedure to get keywords 
 GetAll        returns the entire structure
 GetSymbols    returns array symbol names
 GetSymbol     returns a symbol name given an index
 Copy          clone the object
 
HISTORY:

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_variable, and
  call them in the same way as before



$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 16:07:09 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18115 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_variable__define.pro $

(See spedas_gui/objects/spd_ui_variable__define.pro)


SPD_UI_WIDGET_TREE__DEFINE.PRO

[Previous Routine] [Next Routine] [List of Routines]
NAME:
 spd_ui_widget_tree__define.pro

PURPOSE:
  Object representing the loaded data tree compound widget.

CALLING SEQUENCE:
  wt = obj_new('spd_ui_widget_tree',parentid,uvalue,loadedData,xsize=200,ysize=200,mode=1)

Examples:
 1.
   widget_control,event.id,get_value=val
   print, val->getvalue()

 2. obj = obj_new('spd_ui_widget_tree,tlb,'TREE',loadedData,uname='TREE_NAME')
    id = widget_info(find_by_uname='TREE_NAME')
    widget_control,id,get_value=val
    print,val->getvalue()
    val->setProperty,multi=0

 Attributes:

  uvalue: the user value that will be returned by event handler
  uname: the user name that can be used to identify the widget
  xsize: the x axis length of the tree viewing area(scrollbars will be added automatically)
  ysize: the y axis length of the tree viewing area(scrollbars will be added automatically)
  mode: the visualization/selection mode(see NOTES below)
  multi: whether multiple selections with ctrl/shift click are allowed
  leafonly: 1: indicates selection may be only made at the lowest level of the tree
            0: indicates selections may be done at any point in the tree

NOTES:

  There are 4-different selection modes for this widget.  Each selection
  mode will be appropriate for different panels.
  Mode 0: tplot-layout selection,
          data-processing selection,
          loaded-data-selection

  Mode 1 : variable-selection,
           x-layout selection,
           y-lineplot-layout selection
           line-trace selection.
           save-data-as

  Mode 2 : y-spectra-layout selection
           z-spectra-layout selection
           (possibly data-processing)

  Mode 3 : Calculate Panel
           Possibly future versions of data analysis

  Mode Descriptions
  Mode 0 is a tplot-like selection.  It provides access to
  only the groupname and doesn't let the user drill down into internal
  quantities.

  When values are returned from mode 0, an array of pointers to
  structs that store that names of the contained variables will be returned.
  (or 0 on fail)

  Mode 1 is a 1-D component selection.  It allows the user to
  look at and select internal 1-d quantities,

  When values are returned from mode 1, an array of strings will be
  returned. (or 0 on fail)

  Mode 2 is a 2-D component selection.  It allows the user to look at
  and select any 2-d quantities.  In mode 2 yaxis-values will
  not be grouped inside their containing group, instead they will be grouped
  side-by-side with their containing group.

  Values returned from mode 2 will be an array of strings of groupnames.
  (or 0 on fail)

  Mode 3 allows selection of either group quantities('tha_state_pos') or
  components('tha_state_pos_x'), but does not allow branch selection.
  (ie Cannot grab spedas and get all quantities.)

  Public Methods:
  update: Call this routine after loaded data has been changed by
          some other process
  getProperty: Use this to get the current widget_tree settings
  setProperty: Use this to change the current widget_tree settings
  getValue(): Use this to return a list of the current selections.

  The other methods should NOT be called by external code.  Making code
  that uses them will make this code very difficult to maintain. So if
  you need a feature, just request that it be added instead.


HISTORY:
$LastChangedBy: egrimes $
$LastChangedDate: 2015-08-18 12:18:04 -0700 (Tue, 18 Aug 2015) $
$LastChangedRevision: 18516 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_widget_tree__define.pro $

(See spedas_gui/objects/spd_ui_widget_tree__define.pro)


SPD_UI_WINDOWS__DEFINE

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

PURPOSE:
 This is an array of window objects and represents all the data that has been loaded
 for this session.

CALLING SEQUENCE:

OUTPUT:
 reference to window object array

ATTRIBUTES:
 array of window objects

METHODS:
 SetProperty     
 GetProperty     
 Add             creates a new window object and adds it to the array
 GetActive       returns active window object
 SetActive       makes a window object active given a windowID
 GetSelected     returns the selected window object
 SetSelected     makes a window object selected
 
 NOTE: These 3 methods do not appear to exist
 GetDefaultTitle returns a title, if the user has provided a default one
 AskForTitle     return 1=if user wants to be asked each time, 0=don't ask, use default
 ClearActive     resets active windows to inactive (must provide a window ID)

 ClearAll        clears either selected or active windows (must use a keyword)
 AddObject       adds a new object to the array (method for internal use)   
 RemoveObject    removes an object from the array (routine for internal use) 
 GetObjects      returns an array of all data objects, can also take a name or group name (method for internal use)

  NOTE:
  
  Markers can be active and/or selected. 
  ACTIVE:  If a window is 'active' then it is currently displayed on a window. 
  If the window is no longer active, then the window is no longer
  active and must be deactivated. To make a window inactive the user must provide a windowID. 
  SELECTED: If a window is 'selected' then it is either a new window (which automatically 
  by default, becomes the selected window) or the user has clicked on a specific 
  window to select it. There can only be one 'selected' window at a time.
  
HISTORY:

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 09:37:27 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18098 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_windows__define.pro $

(See spedas_gui/objects/spd_ui_windows__define.pro)


SPD_UI_WINDOW_MENUS__DEFINE

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

  Name: SPD_UI_WINDOW_MENUS
  
  Purpose: Manages window menu


$LastChangedBy: egrimes $
$LastChangedDate: 2014-12-18 13:19:05 -0800 (Thu, 18 Dec 2014) $
$LastChangedRevision: 16510 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_window_menus__define.pro $

(See spedas_gui/objects/spd_ui_window_menus__define.pro)


SPD_UI_WINDOW__DEFINE

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

PURPOSE:  
 window object, created each time a new window is opened

CALLING SEQUENCE:
 window = Obj_New("SPD_UI_WINDOW")

INPUT:
 none

ATTRIBUTES:
 name        name for this window
 id          unique identifier for this window
 nRows       number of rows
 nCols       number of columns
 isActive    flag set if window is displayed
 panels      pointer to panel objects on this window
 settings    A list of settings for this window
 panelId     Current value of panelId
 tracking    flag set if tracking is on

OUTPUT:
 window object reference

METHODS:
 GetProperty
 GetAll
 SetProperty
 Copy
 getMargins
 repack

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_window, and
  call them in the same way as before

$LastChangedBy: egrimes $
$LastChangedDate: 2015-07-13 15:01:15 -0700 (Mon, 13 Jul 2015) $
$LastChangedRevision: 18111 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/spedas_gui/objects/spd_ui_window__define.pro $

(See spedas_gui/objects/spd_ui_window__define.pro)


SPD_UI_ZAXIS_SETTINGS__DEFINE

[Previous Routine] [List of Routines]
NAME: 
 spd_ui_zaxis_settings__define

PURPOSE:  
 zaxis_settings is an object that holds all of the settings necessary for 
 spectral data plots that are common to the entire panel

CALLING SEQUENCE:
 zaxisSettings = Obj_New("SPD_UI_ZAXIS_SETTINGS")

INPUT:
 none

KEYWORDS:

 xAxisIndex         flag to index x axis
 yAxisIndex         flag to index y axis
 colorTable         droplist value of color tables
 minRange           minimum range value 
 maxRange           maximum range value 
 fixed              flag to use fixed min/max values
 tickNum            the number of z-axis ticks
 minorTickNum       the number of minor ticks between majors
 logMinorTickType   full-interval,first-magnitude,last-magnitude,even-spacing 
 annotationStyle    droplist value for annotation style
 annotateTextObject a text object to indicate the size,color,font,format of the annotation text 
 annotationOrientation flag indicating horizontal or vertical annotations 0=horizontal, 1=vertical
 annotateExponent   Flag indicates whether to force annotations into an exponential format.  0: default behavior, 1: Always exponential, 2: Never exponential                   
 labelTextObject a text object to indicate the size,color,font,format of the label text - this is being treated as the z title
 subtitleTextObject a text object for the subtitle
 labelOrientation flag indicating horizontal/vertical text
 labelMargin in number of pts 
 lazylabels         flag indicating if underscores will be converted to carriage returns
 scaling            0=Linear, 1=Log10, 2= Natural Log
 placement          droplist value of placement location
 margin             number of points between plot & zaxis
 showFrequencies    flag to show frequencies
 frequencyMin       minimum value for showing frequencies 
 frequencyMax       maximum value for showing frequencies 
 autoticks          direct the draw object to make decisions about tick positioning automatically, and mutate axis object settings                                              
 

OUTPUT:
 spectra property object reference

METHODS:
 SetProperty    procedure to set keywords 
 GetProperty    procedure to get keywords 
 GetAll         returns the entire structure
 GetPlacements  returns string array of placement options
 GetPlacement   returns name of placement option given an index
 GetColorTables returns string array of color tables 
 GetColorTable  returns name of color table given an index

NOTES:
  Methods: GetProperty,SetProperty,GetAll,SetAll are now managed automatically using the parent class
  spd_ui_getset.  You can still call these methods when using objects of type spd_ui_zaxis_settings, and
  call them in the same way as before

$LastChangedBy:pcruce $
$LastChangedDate:2009-09-10 09:15:19 -0700 (Thu, 10 Sep 2009) $
$LastChangedRevision:6707 $
$URL:svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/spedas/spd_ui/objects/spd_ui_zaxis_settings__define.pro $

(See spedas_gui/objects/spd_ui_zaxis_settings__define.pro)