;******************************************************************************
;* File name: ql_cstop_trt.pro                                                *
;*                                                                            *
;* Content  : 	ql_cstop_event                                                *
;*             	ql_cstop_trt                                                  *
;*                                                                            *
;*                                                                            *
;* Date		Author		Comment                                       *
;* -------------------------------------------------------------------------- *
;* 18-05-94	E.PETIT		Creation                                      *
;*                                                                            *
;******************************************************************************


;***
;##############################################################################
;#Function  name   : ql_cstop_event                                           #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : Constant operation on data -event loop-                  #
;#Creation date    : May 1994                                                 #
;#Update date      :                                                          #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 

PRO ql_cstop_event, ev

  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON curr_data_i_com
  COMMON curr_data_p_com
  COMMON cstop_com
  COMMON const_com

  ;============================================================================
  ;                       Initialization
  ;============================================================================

  err = 0
  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, /HOURGLASS

  CASE ev.id OF 
      cnst_txt: BEGIN
      END
      cnst_ok: BEGIN

        WIDGET_CONTROL,cnst_txt, GET_VALUE = str
        val = FLOAT (str(0))
        CASE cst_op_id OF
         'cstop_i_add' : BEGIN
            curr_data_i  = FLOAT(TEMPORARY(curr_data_i)) + val	; Update data
            curr_header_i.DATAFMT   = 4				; Update Header
            curr_header_i.SSTYPIMG  = -1
            ret = ql_manage_proc (curr_dctrl_i, PUSH, 18)	; update process table
            ql_get_stat,curr_data_i, IMAGE, err 		; Update banner
            ret = ql_display_data(curr_data_i, 0, curr_dctrl_i, err)
          END
         'cstop_i_mult' : BEGIN
            curr_data_i  = FLOAT(TEMPORARY(curr_data_i)) * val	; Update dat
            curr_header_i.DATAFMT   = 4				; Update Header
            curr_header_i.SSTYPIMG  = -1
            curr_header_i.SSEXPTIM  = curr_header_i.SSEXPTIM * val
            curr_header_i.SSIMGTOT  = curr_header_i.SSIMGTOT * val
            ret = ql_manage_proc (curr_dctrl_i, PUSH, 19)	; update process table
            ql_get_stat,curr_data_i, IMAGE, err 		; Update banner
            ret = ql_display_data(curr_data_i, 0, curr_dctrl_i, err)
          END



         'cstop_p_add' : BEGIN
            curr_data_p  = FLOAT(TEMPORARY(curr_data_p)) + val	; Update dat
            curr_header_p.DATAFMT   = 4				; Update Header
            curr_header_p.SSTYPIMG  = -1
            curr_dctrl_p.y.plot_min = curr_dctrl_p.y.plot_min + val
            curr_dctrl_p.y.plot_max = curr_dctrl_p.y.plot_max + val
            curr_dctrl_p.y.min      = curr_dctrl_p.y.min + val
            curr_dctrl_p.y.max      = curr_dctrl_p.y.max + val
            ret = ql_manage_proc (curr_dctrl_p, PUSH, 18)	; update process table
            ql_get_stat,curr_data_p, PROFILE, err 		; Update banner
            ret = ql_display_data(curr_data_p, 100, curr_dctrl_p, err)
          END
         'cstop_p_mult' : BEGIN
            curr_data_p  = FLOAT(TEMPORARY(curr_data_p)) * val	; Update dat
            curr_header_p.DATAFMT   = 4				; Update Header
            curr_header_p.SSTYPIMG  = -1
            curr_header_p.SSEXPTIM  = curr_header_p.SSEXPTIM  * val
            curr_dctrl_p.y.plot_min = curr_dctrl_p.y.plot_min * val
            curr_dctrl_p.y.plot_max = curr_dctrl_p.y.plot_max * val
            curr_dctrl_p.y.min      = curr_dctrl_p.y.min      * val
            curr_dctrl_p.y.max      = curr_dctrl_p.y.max      * val
            ret = ql_manage_proc (curr_dctrl_p, PUSH, 19)	; update process table
            ql_get_stat,curr_data_p, PROFILE, err 		; Update banner
            ret = ql_display_data(curr_data_p, 100, curr_dctrl_p, err)
          END
        ENDCASE 
        WIDGET_CONTROL,cnst_base, /DESTROY 
      END
      cnst_ko: BEGIN
        WIDGET_CONTROL,cnst_base, /DESTROY 
      END
  ENDCASE



END

;***
;##############################################################################
;#Function  name   : ql_cstop_trt                                             #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : Constant operation on data                               #
;#Creation date    : May 1994                                                 #
;#Update date      :                                                          #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 

PRO ql_cstop_trt, ev

  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON curr_data_i_com
  COMMON const_com
  COMMON cstop_com

  ;============================================================================
  ;                       Initialization
  ;============================================================================

  Title  = 'Constant Operation'
  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, /HOURGLASS
  
  WIDGET_CONTROL, ev.id, GET_UVALUE = cst_op_id


  cnst_base = WIDGET_BASE (TITLE   = title , $
                           XOFFSET = 500   , $
                           YOFFSET = 400   , $
                           /COLUMN, /MODAL)

  cnst_ctrl = WIDGET_BASE (cnst_base       , $
                           /ROW            , $
                           /FRAME)

  cnst_cmd = WIDGET_BASE (cnst_base       , $
                          /ROW)

  ; ------- 
  ; Control
  ; ------- 
  ret = WIDGET_LABEL (cnst_ctrl            , $
                     VALUE = 'Enter Constant Value: ')

  cnst_txt = WIDGET_TEXT(cnst_ctrl         , $
                         XSIZE = 15        , $
                         VALUE = '1.0'     , $
                         /EDITABLE) 


  ; ------- 
  ; Command
  ; ------- 
  cnst_ok = WIDGET_BUTTON (cnst_cmd        , $
                          VALUE = 'OK')
  cnst_ko = WIDGET_BUTTON (cnst_cmd        , $
                          VALUE = 'QUIT')


  WIDGET_CONTROL, cnst_base , /REALIZE 
  XMANAGER, 'ql_cstop' , cnst_base
  

END

