;******************************************************************************
;* File name: ql_pi_trt.pro                                                   *
;*                                                                            *
;* Content  : 	ql_disp_info_p_event                                          *
;*		ql_pi_trt                                                     *
;*                                                                            *
;*                                                                            *
;* Date		Author		Comment                                       *
;* -------------------------------------------------------------------------- *
;* 10-01-94	E.PETIT		Creation                                      *
;* 13-04-94  	E.PETIT		Remove discret format                         *
;* 18-05-94  	E.PETIT		Enhance box size, byte format                 *
;* 09-01-95  	E.PETIT		info window size                              *
;*                                                                            *
;******************************************************************************


;***
;##############################################################################
;#Function  name   : ql_disp_info_p_event                                     #
;#LEVEL            :                                                          #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : manage header visualization of profile from stack        #
;#Creation date    : December 1993                                            #
;#Update date      :                                                          #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    :                                                          #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 

PRO ql_disp_info_p_event, ev

  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON info_display_com
  COMMON get_rrd_item_com
  COMMON curr_data_p_com
  COMMON info_com
                   
  ;============================================================================
  ;                       Initialization
  ;============================================================================
  ret = 0

  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, ev.id, GET_UVALUE = value
  CASE  value OF
    'DONE': BEGIN
       curr_data_p  = sav_data_p
       curr_dctrl_p = sav_dctrl_p
       WIDGET_CONTROL, info_display_base, /DESTROY
     END

    'FULL': BEGIN
       WIDGET_CONTROL, info_cancel_full, SENSITIVE=1
       WIDGET_CONTROL, info_full, SENSITIVE=0

       ql_fmt_full_hd, info_display_ctrl, sel_header
     END

    'CANCEL FULL': BEGIN
       full_hd_flg = 0
       WIDGET_CONTROL, fhd_text, /DESTROY
       WIDGET_CONTROL, info_cancel_full, SENSITIVE=0
       WIDGET_CONTROL, info_full, SENSITIVE=1
     END

  ENDCASE                                                   

END      

;***
;##############################################################################
;#Function  name   : ql_pi_trt                                                #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : Profile visualisation from stack                         #
;#Creation date    : January 1994                                             #
;#Update date      :                                                          #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 

PRO ql_pi_trt, ev

  ;============================================================================
  ;                       Common Block in use
  ;============================================================================
  COMMON const_com
  COMMON widget_id_com
  COMMON info_com
  COMMON stack_com
  COMMON info_display_com
  COMMON curr_data_p_com
  COMMON get_rrd_item_com

  ;============================================================================
  ;                       Initialization
  ;============================================================================
  selected_item = -1
  full_hd_flg = 0

  sav_data_p  = curr_data_p
  sav_dctrl_p = curr_dctrl_p

                 
  ;============================================================================
  ;                       Processing 
  ;============================================================================
  WIDGET_CONTROL, /HOURGLASS 
  IF (EV.RELEASE EQ 1) THEN RETURN

  ; -------------------------------
  ; Identification of selected icon 
  ; -------------------------------
  FOR i=0, STACK_SZ-1 DO BEGIN
    IF (                                      $
         (ev.ID EQ profile_stack_icon(i)) AND $
         (stack_hd.p(i).free EQ 1)            $
       ) THEN BEGIN
      selected_item = i
    ENDIF
  ENDFOR
  
  IF (selected_item EQ -1 ) THEN RETURN

  ; ----------------------------------
  ; Load Header of selected stack item 
  ; ----------------------------------
  POINT_LUN, stack_unit, stack_hd.p(selected_item).offset
  READU    , stack_unit, info_header

  curr_dctrl_p  = stack_hd.p(selected_item).display_ctrl
  sz_x = curr_dctrl_p.x.nb_dot 

  IF (info_header.DATAFMT EQ 1) THEN  curr_data_p = BYTARR (1, sz_x)   
  IF (info_header.DATAFMT EQ 2) THEN  curr_data_p = INTARR (1, sz_x)   
  IF (info_header.DATAFMT EQ 3) THEN  curr_data_p = LONARR (1, sz_x)   
  IF (info_header.DATAFMT EQ 4) THEN  curr_data_p = FLTARR (1, sz_x)
 
  ; --------------
  ; Format display 
  ; --------------
  title = 'Profile Stack Information'
  ql_format_hd, info_header, text_value, err
  IF (err NE 0) THEN BEGIN
    ql_err_msg, err
    RETURN
  ENDIF
  
  sel_header=info_header

  ;---------------
  ;Base Hierarchie
  ;---------------
   info_display_base = WIDGET_BASE (TITLE  = title   , $
                                    XOFFSET = 430    , $
                                    YOFFSET = 450    , $
                                    /COLUMN, /MODAL)
     info_display_ctrl = WIDGET_BASE (info_display_base , /ROW)
     info_display_cmd = WIDGET_BASE  (info_display_base , /ROW)

  ; ------------------
  ; Widgets Definition
  ; ------------------
  info_text        = WIDGET_TEXT   (info_display_ctrl    , $
                                    XSIZE = 60           , $
                                    YSIZE = 22           , $
                                    VALUE = text_value   , $
                                    FONT = Hd_Font_Bold)

  info_done        = WIDGET_BUTTON  (info_display_cmd    , $
                                     VALUE  = "DONE"     , $
                                     UVALUE = "DONE")   

  info_full        = WIDGET_BUTTON  (info_display_cmd       , $
                                     VALUE  = "FULL HEADER" , $
                                     UVALUE = "FULL")

  info_cancel_full = WIDGET_BUTTON  (info_display_cmd       , $
                                     VALUE  = "CANCEL FULL HEADER" , $
                                     UVALUE = "CANCEL FULL")




  ; ----------------   
  ; Widgets Creation
  ; ----------------   
  WIDGET_CONTROL, info_display_base , /REALIZE
  WIDGET_CONTROL, info_cancel_full, SENSITIVE=0
  WIDGET_CONTROL, info_done         , /INPUT_FOCUS

  ; ------------------
  ; Call Event manager
  ; ------------------
   XMANAGER, "ql_disp_info_p"    , $
             info_display_base   , $
             GROUP_LEADER = GROUP

END
