;---------------------------------------------------------------------------
; Document name: ST_SUMER_WIN.PRO
; Created by:    Liyun Wang, NASA/GSFC, September 27, 1996
;
; Last Modified: Wed Apr 16 15:38:38 1997 (LWANG@sumop1.nascom.nasa.gov)
;---------------------------------------------------------------------------
;
;+
; PROJECT:
;       SOHO - CDS/SUMER
;
; NAME:
;       ST_SUMER_WIN
;
; PURPOSE: 
;       Create graphic windows for st_sumer
;
; CATEGORY:
;       widget
; 
; SYNTAX: 
;       st_sumer_win, draw_win_base, tech_win, sun_win
;
; INPUTS:
;       None.
;
; OPTIONAL INPUTS: 
;       None.
;
; OUTPUTS:
;       draw_win_base, tech_win, sun_win
;
; OPTIONAL OUTPUTS:
;       None.
;
; KEYWORDS: 
;       None.
;
; COMMON:
;       None.
;
; RESTRICTIONS: 
;       None.
;
; SIDE EFFECTS:
;       None.
;
; HISTORY:
;       Version 1, September 27, 1996, Liyun Wang, NASA/GSFC. Written
;
; CONTACT:
;       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)
;-
;
PRO st_map_win, info
   CASE (info.status) OF
      0: BEGIN
         WIDGET_CONTROL, info.tech_base, map=0
         WIDGET_CONTROL, info.phot_base, map=0
         WIDGET_CONTROL, info.sun_base, map=1
      END 
      1: BEGIN 
         WIDGET_CONTROL, info.sun_base, map=0
         WIDGET_CONTROL, info.phot_base, map=0
         WIDGET_CONTROL, info.tech_base, map=1
      END
      2: BEGIN 
         WIDGET_CONTROL, info.sun_base, map=0
         WIDGET_CONTROL, info.tech_base, map=0
         WIDGET_CONTROL, info.phot_base, map=1
      END
      ELSE:
   ENDCASE
   RETURN
END

PRO st_sumer_win_event, event
   WIDGET_CONTROL, event.top, get_uvalue=info
   WIDGET_CONTROL, event.id, get_uvalue=uvalue
   IF N_ELEMENTS(uvalue) EQ 0 THEN RETURN
   CASE (uvalue) OF
      'close': BEGIN 
         xkill, event.top
         RETURN
      END
      'disp_sun': info.status = 0
      'disp_tech': info.status = 1
      'disp_phot': info.status = 2
      ELSE:
   ENDCASE
   st_map_win, info
   RETURN
END

PRO st_sumer_win, draw_win_base, wid=wid, group=group, $
                  tki_udp_stc=tki_udp_stc
   
   ON_ERROR, 2

   mk_dfont, lfont=lfont, bfont=bfont, tfont=tfont
   
   IF N_ELEMENTS(tki_udp_stc) EQ 0 THEN status = 0 ELSE status = 2
   
   draw_win_base = WIDGET_BASE(title='SUMER Simulation Tool Graphic Output', $
                               /column)
   mappable = WIDGET_BASE(draw_win_base)

   tech_base = WIDGET_BASE(mappable, /column, map=0)
   junk = WIDGET_LABEL(tech_base, value='Technical Simulation Result', $
                       font=bfont)
   tech_win = WIDGET_DRAW(tech_base, xsize=1000, ysize=800, /scroll, $
                          scr_y=420, scr_x=1030)

   phot_base = tki_photo_base(mappable, map=0, wid=phot_wid)
   
;   phot_base = WIDGET_BASE(mappable, /column, map=0)
;   junk = WIDGET_LABEL(phot_base, value='Photometric Simulation Result', $
;                       font=bfont, /align_center)   
;   junk = WIDGET_BASE(phot_base, /row)
;   spec_win = WIDGET_DRAW(junk, retain=2, xsize=500, ysize=390, $
;                                    uvalue='spec_win')
;   det_win = WIDGET_DRAW(junk, retain=2, xsize=1000, ysize=390, $
;                                   scr_x=530, scr_y=420, /scroll)
   
   sun_base = WIDGET_BASE(mappable, /row, map=0)
   tmp = WIDGET_BASE(sun_base, /column, /frame)
   junk = WIDGET_LABEL(tmp, value='Instrument Movement', $
                       font=bfont, /align_center)
   sun_win = WIDGET_DRAW(tmp, xsize=400, ysize=400)

   tmp = WIDGET_BASE(sun_base, /column, /frame)
   junk = WIDGET_LABEL(tmp, value='Simulation Message', $
                       font=bfont, /align_center)   
   text_win=WIDGET_TEXT(tmp, ysize=28, xsize=82, /scroll, font=lfont)
   junk = WIDGET_LABEL(tmp, value='', font=bfont)
   
   misc_base = WIDGET_BASE(draw_win_base, /row)
   junk = WIDGET_BUTTON(misc_base, value=' Close ', uvalue='close', $
                        font=bfont)
   junk = WIDGET_BASE(misc_base, /row, /frame)
   tmp = WIDGET_LABEL(junk, value='   View:', font=lfont)
   junk_bt = WIDGET_BASE(junk, /exclusive, /row, /frame)
   tmp0 = WIDGET_BUTTON(junk_bt, value='Sun Window', uvalue='disp_sun', $
                       font=lfont)
   IF status EQ 0 THEN WIDGET_CONTROL, tmp0, set_button=1
   tmp1 = WIDGET_BUTTON(junk_bt, value='Tech Window', uvalue='disp_tech', $
                       font=lfont)
   tmp2 = WIDGET_BUTTON(junk_bt, value='Photo Window', uvalue='disp_phot', $
                       font=lfont)
   IF status EQ 2 THEN BEGIN
      WIDGET_CONTROL, tmp2, set_button=1
      WIDGET_CONTROL, tmp0, sensitive=0
      WIDGET_CONTROL, tmp1, sensitive=0
   ENDIF
   
   info = {tech_base:tech_base, sun_base:sun_base, phot_base:phot_base, $
          status:status}
   
   WIDGET_CONTROL, draw_win_base, set_uvalue=info, /realize
   st_map_win, info
   
   wid = {tech_win:tech_win, sun_win:sun_win, text_win:text_win, $
          spec_win:phot_wid.spec_win, det_win:phot_wid.det_win, $
          drop_base:phot_wid.drop_base, drop_id:phot_wid.drop_id}
   
   IF datatype(tki_udp_stc) EQ 'STC' THEN BEGIN 
      st_tki_init, wid4tki=wid
      tki_show_lam, tki_udp_stc.spec.pix, tki_udp_stc.spec.wav, $
         det=tki_udp_stc.spec.det
      modal = 1
   ENDIF ELSE modal = 0
   xmanager, 'st_sumer_win', draw_win_base, group=group, modal=modal
   RETURN
END

;---------------------------------------------------------------------------
; End of 'ST_SUMER_WIN.PRO'.
;---------------------------------------------------------------------------
