;##############################################################################
;#Function  name   : ql_setti_event                                           #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : manage settings of global parameters(event loop)         #
;#Creation date    : October 1995                                             #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;##############################################################################
;*** 
PRO QL_SETTI_EVENT,ev
  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON const_com
  COMMON const2_com
  COMMON setti_com

  ;============================================================================
  ;                       Initialization
  ;============================================================================
  curr_val = ''
  setti_status = 0

  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, ev.id, GET_UVALUE=val

  CASE ev.id OF
   setti_txt: BEGIN
     WIDGET_CONTROL, ev.id, GET_VALUE=tmp
     setti_curr_val = STRING(tmp(0), FORMAT=setti_fmt)
     WIDGET_CONTROL, ev.id, SET_VALUE=setti_curr_val
   END
   setti_ok: BEGIN
     WIDGET_CONTROL, setti_txt, GET_VALUE=tmp
     setti_curr_val = STRING(tmp(0), FORMAT=setti_fmt)
     WIDGET_CONTROL, setti_txt, SET_VALUE=setti_curr_val
     setti_status = 1
     setti_new_val = setti_curr_val
     WIDGET_CONTROL, ev.top, /DESTROY
   END
   setti_ko: BEGIN
     setti_status = 0
     WIDGET_CONTROL, ev.top, /DESTROY
   END

  ENDCASE
END

;##############################################################################
;#Function  name   : ql_setti_trt                                             #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : manage settings of global parameters                     #
;#Creation date    : October 1995                                             #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 
PRO QL_SETTI_TRT,ev
  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON const_com
  COMMON const2_com
  COMMON setti_com

  ;============================================================================
  ;                       Initialization
  ;============================================================================
  curr_val = ''
  setti_status = 0

  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, ev.id, GET_UVALUE=val
  test = STRMID(val,6,STRLEN(val)-1) 

  CASE test OF
    'pixoffset': BEGIN
       prompt          = 'Reference Pixel Offset for detector B'
       setti_fmt       = '(I4.4)'
       setti_curr_val  =  REFPIX_OFFSET 
     END
     ELSE:   return
  ENDCASE

  base = WIDGET_BASE(Title='Settings', XOFFSET=380, YOFFSET=100, /COLUMN,/MODAL)
  dummy = WIDGET_BASE (base, /ROW)
  ret      = WIDGET_LABEL(dummy, VALUE=prompt, FONT=Hd_Font_Bold)
  setti_txt= WIDGET_TEXT (dummy,/EDIT,VALUE=STRING(setti_curr_val,FORMAT=setti_fmt),FONT=Hd_Font)
  dummy = WIDGET_BASE (base, /ROW)
  setti_ok = WIDGET_BUTTON (dummy, VALUE='VALID')
  setti_ko = WIDGET_BUTTON (dummy, VALUE='CANCEL')

  WIDGET_CONTROL, base, /REALIZE

  XMANAGER, 'ql_setti', base

  IF (setti_status EQ 1) THEN BEGIN
    CASE test OF
      'pixoffset':REFPIX_OFFSET = FIX(setti_new_val)
       ELSE:  
    ENDCASE
  ENDIF

END                                               
  
