;******************************************************************************
;* File name: ql_ii_trt.pro                                                   *
;*                                                                            *
;* Content  : 	ql_display_info_event                                         *
;*		ql_ii_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                              *
;* 09-01-95  	E.PETIT		info window size                              *
;*                                                                            *
;******************************************************************************


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

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

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

  CASE  value OF
    'DONE': BEGIN
       curr_data_i  = sav_data_i
       curr_dctrl_i = sav_dctrl_i
       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_ii_trt                                                #
;#LEVEL            : 1                                                        #
;#                                                                            #
;#Author           : Emmanuel PETIT                                           #
;#Language         : IDL                                                      #
;#Purpose          : Header visualisation from stack                          #
;#Creation date    : December 1993                                            #
;#Update date      :                                                          #
;#External modules :                                                          #
;#                                                                            #
;#Call sequence    : Called by Event Handler                                  #
;#                                                                            #
;#Arguments        :                                                          #
;#                                                                            #
;#Description      :                                                          #
;#                                                                            #
;#                                                                            #
;##############################################################################
;*** 

PRO ql_ii_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_i_com
  COMMON get_rrd_item_com

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

  sav_data_i  = curr_data_i
  sav_dctrl_i = curr_dctrl_i


  ;============================================================================
  ;                       Processing 
  ;============================================================================
  IF (EV.RELEASE EQ 1) THEN RETURN

  WIDGET_CONTROL, /HOURGLASS 

  ; -------------------------------
  ; Identification of selected icon 
  ; -------------------------------
  FOR i=0, STACK_SZ-1 DO BEGIN
    IF (                                    $
         (ev.ID EQ image_stack_icon(i)) AND $
         (stack_hd.i(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.i(selected_item).offset
  READU    , stack_unit, info_header

  curr_dctrl_i  = stack_hd.i(selected_item).display_ctrl
  sz_x = curr_dctrl_i.x.nb_dot 
  sz_y = curr_dctrl_i.y.nb_dot 


  IF (info_header.DATAFMT EQ 1) THEN  curr_data_i = BYTARR (sz_x, sz_y)   
  IF (info_header.DATAFMT EQ 2) THEN  curr_data_i = INTARR (sz_x, sz_y)   
  IF (info_header.DATAFMT EQ 3) THEN  curr_data_i = LONARR (sz_x, sz_y)   
  IF (info_header.DATAFMT EQ 4) THEN  curr_data_i = FLTARR (sz_x, sz_y)
 
  ; --------------
  ; Format display 
  ; --------------
  title = 'Image 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 = 110    , $
                                    /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"      , $
             info_display_base   , $
             GROUP_LEADER = GROUP

END
