;+
; Project     : SOHO - LASCO/EIT
;
; Name	      : WTIME_HEIGHT
;
; Purpose     : plot time-height, time-speed, distance-speed diagrams.
;
; Category    : Widgets
;
; Explanation : 
;
; Syntax      : wtime_height
;
; Examples    :
;
; Inputs      : 
;
; Opt. Inputs : 
;
; Outputs     : 
;
; Opt. Outputs:
;
; Keywords    : 
;
; Common      : wsave_ps_block, lines_block, t2d_common
;
; Restrictions: None.
;
; Side effects: None.
;
; History     : 11-dec-1996,Borut Podlipnik, MPAe,Written 
;		Version 1.0, 11-dec-96
;
; Contact     : BP, borut@lasco1.mpae.gwdg.de
;-
;
 
PRO wtime_height_event,event 


COMMON lines_block,plots
COMMON wsave_ps_block, scr, def_ps, a4
COMMON t2d_common, h_x,h_y,h_s,t_x,t_y,t_s,data,hours,obs,dt0,ixyax,ixyaxold

 WIDGET_CONTROL,event.id,GET_UVALUE=uval
 WIDGET_CONTROL,event.top, GET_UVALUE=uvp

 CASE uval OF 
     "PDMENU": BEGIN

       CASE event.value OF
                
        "Data.View": BEGIN                     
                      wtracktable1,data
		      table2data
                     END

      "Data.Load": BEGIN
                    work = GETENV('WORK')                   
                    IF STRLEN(work) EQ 0 THEN BEGIN
                      wu = GETENV('HOME') 
                    ENDIF ELSE BEGIN
                      wu = work + !delimiter + GETENV('USER')
                    ENDELSE                                             
                    wd = wu+!delimiter+'list'                 
                    chk = chk_dir(wd)
                    IF chk EQ 0 THEN wd = wu                                    
                    fname = pickfiles(FILTER='*.tht',PATH=wd)
                    IF fname(0) EQ '' THEN RETURN

                    sf = size(fname)
                    data = ''
                    for j=0,sf(n_elements(sf)-1)-1 do begin

                     data = [data,rd_asc(fname(j))]
   
                    endfor
 
                    i = WHERE (data GT " ")
                    data = data(i)
		    table2data
		    WIDGET_CONTROL,uvp.wt1,SET_VALUE=obs(0)
                   END

      "Data.Save": BEGIN
          
                     ;table = arrtable2string(plots.data)

                     wdn = GETENV('WORK')+!delimiter + GETENV('USER') +!delimiter+'list'+!delimiter
                     IF chk_dir(wdn) EQ 0 THEN wdn = GETENV('HOME') + !delimiter
                     fname = 'tracktable.tht'
                     xvaredt, fname
                     pf = wdn + fname
                     wrt_asc,pf,data      

                    END

      "Data.Save as": BEGIN
                     msg = "Not avaliable yet!"
                     wmessage,title='Image Save',text=msg,xsize=25,ysize=2
                     
                    ; wsave2,image,head,2, plots=plots
                       END

      "Image.Print": BEGIN


                     END

      "Image.Exit": BEGIN

                     WIDGET_CONTROL, event.top, /DESTROY
                     GOTO,eod             

                    END
 
       'Print': BEGIN
                  ps_name = GETENV('HOME')+ !delimiter + 'wplot.ps'
  
                  set_plot,'PS'
                  DEVICE,xsize=15,ysize=15,bits_per_pixel=4,$
                  filename=ps_name,/portrait


                  CASE ixyax OF
                   0: BEGIN
                       HANDLE_VALUE,h_x(0),x_time	; time
                       HANDLE_VALUE,h_y(0),y_height  	; Sun radius
                      END
                   1: BEGIN
                       HANDLE_VALUE,h_x(0),x_time	; time
                       HANDLE_VALUE,h_s(0),y_height	; speed
                       x_time   = x_time(1:n_elements(x_time)-1)
                       y_height = y_height(1:n_elements(y_height)-1)                                 
                      END
                   2: BEGIN
                       HANDLE_VALUE,h_y(0),x_time	; Sun radius
                       HANDLE_VALUE,h_s(0),y_height	; speed
                       x_time   = x_time(1:n_elements(x_time)-1)
                       y_height = y_height(1:n_elements(y_height)-1) 
                       indx = SORT(x_time)
                       x_time = x_time(indx)
                       y_height = y_height(indx)                                        
                      END
                  ELSE: donothing=0
                  ENDCASE 
            
                  IF plots.ylog EQ 1 THEN BEGIN
                     plot,x_time,y_height,/ylog,xrange=[plots.ixmin,plots.ixmax], $
                             yrange=[plots.iymin,plots.iymax], $
                             title=plots.title,subtitle=plots.subxt(ixyax), $
                             ytitle=plots.subyt(ixyax), psym =-7
                  ENDIF ELSE BEGIN
        
                     plot,x_time,y_height,xrange=[plots.ixmin,plots.ixmax], $
                             yrange=[plots.iymin,plots.iymax], $
                             title=plots.title,subtitle=plots.subxt(ixyax), $
                             ytitle=plots.subyt(ixyax), psym =-7
                  ENDELSE 
                                                 
                  FOR k=1, N_ELEMENTS(h_x)-1 DO BEGIN
            
        
                   CASE ixyax OF
                    0: BEGIN
                        HANDLE_VALUE,h_x(k),x_time	; time
                        HANDLE_VALUE,h_y(k),y_height  	; Sun radius
                       END
                    1: BEGIN
                        HANDLE_VALUE,h_x(k),x_time	; time
                        HANDLE_VALUE,h_s(k),y_height	; speed
                        x_time   = x_time(1:n_elements(x_time)-1)
                        y_height = y_height(1:n_elements(y_height)-1)                                 
                       END
                    2: BEGIN
                        HANDLE_VALUE,h_y(k),x_time	; Sun radius
                        HANDLE_VALUE,h_s(k),y_height	; speed
                        x_time   = x_time(1:n_elements(x_time)-1)
                        y_height = y_height(1:n_elements(y_height)-1)
                        indx = SORT(x_time)
                        x_time = x_time(indx)
                        y_height = y_height(indx)                  
                       END
                    ELSE: donothing=0
                   ENDCASE 
                 
                   oplot,x_time,y_height, psym =-7+k
              	       
	          ENDFOR	
	
                  DEVICE,/CLOSE
                  set_plot,'X'

                  wprint,Filename=ps_name
               END
                
      'Help':  BEGIN

               END

      'Done':  BEGIN 
                  WIDGET_CONTROL, event.top, /DESTROY
                  GOTO,eod 
               END
      ENDCASE

           END
   
     "XA": BEGIN
            uvp.xyaf = 1 
            WIDGET_CONTROL,uvp.WLineBase, SET_UVALUE=uvp
           END
     "YA": BEGIN
            uvp.xyaf = 0
            WIDGET_CONTROL,uvp.WLineBase, SET_UVALUE=uvp
           END
     "RA": BEGIN
            uvp.xyaf = 2
            WIDGET_CONTROL,uvp.p_x_min, SET_VALUE = '0'
            WIDGET_CONTROL,uvp.p_x_max, SET_VALUE = '24'
            WIDGET_CONTROL,uvp.p_y_min, SET_VALUE = '1'
            WIDGET_CONTROL,uvp.p_y_max, SET_VALUE = '30'
            WIDGET_CONTROL,uvp.resb,SET_BUTTON=0
            WIDGET_CONTROL,uvp.WLineBase, SET_UVALUE=uvp
           END

   "SYAX": BEGIN
            ixyax = event.index
            CASE ixyax OF
             0: BEGIN
                 WIDGET_CONTROL,uvp.wt3 , SET_VALUE = plots.subyt(ixyax)
                 WIDGET_CONTROL,uvp.wt2 , SET_VALUE = plots.subxt(ixyax)
                END 
             1: BEGIN
                 WIDGET_CONTROL,uvp.wt3 , SET_VALUE = plots.subyt(ixyax)
                 WIDGET_CONTROL,uvp.wt2 , SET_VALUE = plots.subxt(ixyax)
                END
             2: BEGIN
                 WIDGET_CONTROL,uvp.wt3 , SET_VALUE = plots.subyt(ixyax)
                 WIDGET_CONTROL,uvp.wt2 , SET_VALUE = plots.subxt(ixyax)
                END
             ELSE: ixyax = 0
            ENDCASE 
           END
           		  
           "PS": out_win   = 'PS'      ; write Post Script file 
            "X": out_win   = !d.name       ; output to screen 

       "ON_OFF": BEGIN
                  CASE event.value OF
                   0: BEGIN
                       uvp.back = 1
                       WIDGET_CONTROL,uvp.WLineBase, SET_UVALUE=uvp
                       WIDGET_CONTROL,uvp.draw,TIMER=0
                      END
                   1: BEGIN
                       uvp.back = 0
                       WIDGET_CONTROL,uvp.WLineBase, SET_UVALUE=uvp
                      END
                  ENDCASE                   
                 END

        "PDRAW": BEGIN
                  WSET,uvp.pwin1
                  tn = Tag_Names( event, /STRUCTURE_NAME )

                  CASE tn OF
                   'WIDGET_TIMER':BEGIN
                                   IF uvp.back THEN BEGIN
                                    WIDGET_CONTROL,event.id,TIMER=.1
                                   ENDIF
                                  END

                   'WIDGET_DRAW': BEGIN
                             IF (event.press NE 0 ) THEN uvp.press = event.press
                             IF (event.release NE 0 ) THEN uvp.press = 0B
                             IF ( uvp.press NE 0 ) THEN BEGIN
                             x = 0 > event.x < uvp.WinXsize
                             y = 0 > event.y < uvp.WinYsize
                        CASE uvp.press OF

                        1B: BEGIN ; ** Left mouse button **
                              CASE uvp.xyaf OF
                               1: BEGIN ; x-axis
                                   d=convert_coord([x,x],/DEVICE,/TO_DATA) 
                                   ixmin = d(0,0)
                                   WIDGET_CONTROL,uvp.p_x_min,SET_VALUE=STRING(ixmin)
                                  END
                               0: BEGIN ; y-axis
                                   d=convert_coord([x,x],[y,y],/DEVICE,/TO_DATA) 
                                   iymin = d(1,0)
                                   WIDGET_CONTROL,uvp.p_y_min,SET_VALUE=STRING(iymin)
                                  END
                               ELSE: donothing = 0
                               ENDCASE     
                             END

                         2B: BEGIN ; ** Middle mouse button **
                              x1=0
                              y1=0
                              box_cursor,/INIT,x,y,x1,y1
                              x1 = x + x1
                              y1 = y + Y1
                              d=convert_coord([x,x1],[y,y1],/DEVICE,/TO_DATA)
	                      ixmin = d(0,0) & ixmax = d(0,1)
                              iymin = d(1,0) & iymax = d(1,1)
                              WIDGET_CONTROL,uvp.p_x_min, SET_VALUE = STRING(ixmin)
                              WIDGET_CONTROL,uvp.p_x_max, SET_VALUE = STRING(ixmax)
                              WIDGET_CONTROL,uvp.p_y_min, SET_VALUE = STRING(iymin)
                              WIDGET_CONTROL,uvp.p_y_max, SET_VALUE = STRING(iymax)
                             END

                         4B: BEGIN ; ** Right mouse button
                              CASE uvp.xyaf OF
                               1: BEGIN  ;** x-axsis
                                   d=convert_coord([x,x],/DEVICE,/TO_DATA)
                                   ixmax = d(0,0)
                                   IF d(0,0) GT plots.ixmax THEN ixmax = d(0,0) * 2.
                                   WIDGET_CONTROL,uvp.p_x_max,SET_VALUE=STRING(ixmax)
                                   print,ixmax
                                  END
                               0: BEGIN  ;** y-axis
                                   d=convert_coord([x,x],[y,y],/DEVICE,/TO_DATA)
                                   iymax = d(1,1)
                                   IF d(1,1) GT plots.iymax THEN iymax = d(1,1) * 2.
                                   WIDGET_CONTROL,uvp.p_y_max,SET_VALUE=STRING(iymax)
                                  END
                               ELSE: donothing = 0
                               ENDCASE 
                             END

                        ENDCASE
                       ENDIF
                      END

                  ENDCASE
                 END
 
       "DoIt": BEGIN
      

               END
                   
 ELSE:   donothing=0  
 ENDCASE

        WSET,uvp.pwin1
        out_back = !d.name

        WIDGET_CONTROL,uvp.wt1, GET_VALUE = text
        plots.title = text(0)
        WIDGET_CONTROL,uvp.wt2, GET_VALUE = text
        plots.subxt(ixyax) = text(0)
        WIDGET_CONTROL,uvp.wt3, GET_VALUE = text
        plots.subyt(ixyax) = text(0)        
        WIDGET_CONTROL,uvp.p_x_min, GET_VALUE = ixmin
        WIDGET_CONTROL,uvp.p_x_max, GET_VALUE = ixmax
        WIDGET_CONTROL,uvp.p_y_min, GET_VALUE = iymin
        WIDGET_CONTROL,uvp.p_y_max, GET_VALUE = iymax

	ixmin=FLOAT(STRING(ixmin(0)))
        ixmax=FLOAT(STRING(ixmax(0)))
        iymin=FLOAT(STRING(iymin(0)))
        iymax=FLOAT(STRING(iymax(0)))

        plots.ixmin = ixmin & plots.ixmax = ixmax
        plots.iymin = iymin & plots.iymax = iymax


        CASE ixyax OF
          0: BEGIN
               HANDLE_VALUE,h_x(0),x_time	; time
               HANDLE_VALUE,h_y(0),y_height  	; Sun radius
             END
          1: BEGIN
               HANDLE_VALUE,h_x(0),x_time	; time
               HANDLE_VALUE,h_s(0),y_height	; speed
               x_time   = x_time(1:n_elements(x_time)-1)
               y_height = y_height(1:n_elements(y_height)-1)                                                               
             END
          2: BEGIN
               HANDLE_VALUE,h_y(0),x_time	; Sun radius
               HANDLE_VALUE,h_s(0),y_height	; speed
               x_time   = x_time(1:n_elements(x_time)-1)
               y_height = y_height(1:n_elements(y_height)-1)
               indx = SORT(x_time)
               x_time = x_time(indx)
               y_height = y_height(indx)                  
             END
        ELSE: donothing=0
        ENDCASE 
        
        IF ixyax NE ixyaxold THEN BEGIN
        
         plots.iymin = min(y_height) & plots.iymax = max(y_height)                       
         plots.ixmin = min(x_time)   & plots.ixmax = max(x_time)
        
        ENDIF
        
        ixyaxold = ixyax
        
        IF plots.ylog EQ 1 THEN BEGIN
         plot,x_time,y_height,/ylog,xrange=[plots.ixmin,plots.ixmax], $
                             yrange=[plots.iymin,plots.iymax], $
             title=plots.title,subtitle=plots.subxt(ixyax),ytitle=plots.subyt(ixyax), psym =-7
        ENDIF ELSE BEGIN
         plot,x_time,y_height,xrange=[plots.ixmin,plots.ixmax], $
                             yrange=[plots.iymin,plots.iymax], $
             title=plots.title,subtitle=plots.subxt(ixyax),ytitle=plots.subyt(ixyax), psym =-7
        ENDELSE
                                      
        FOR k=1, N_ELEMENTS(h_x)-1 DO BEGIN
        
        
         CASE ixyax OF
          0: BEGIN
               HANDLE_VALUE,h_x(k),x_time	; time
               HANDLE_VALUE,h_y(k),y_height  	; Sun radius
             END
          1: BEGIN
               HANDLE_VALUE,h_x(k),x_time	; time
               HANDLE_VALUE,h_s(k),y_height	; speed
               x_time   = x_time(1:n_elements(x_time)-1)
               y_height = y_height(1:n_elements(y_height)-1)                      
             END
          2: BEGIN
               HANDLE_VALUE,h_y(k),x_time	; Sun radius
               HANDLE_VALUE,h_s(k),y_height	; speed
               x_time   = x_time(1:n_elements(x_time)-1)
               y_height = y_height(1:n_elements(y_height)-1) 
               indx = SORT(x_time)
               x_time = x_time(indx)
               y_height = y_height(indx)           
             END
         ELSE: donothing=0
         ENDCASE 
                 
         oplot,x_time,y_height, psym =-7+k
              	      
	ENDFOR
	
	      
        xrange = !X.CRANGE &  yrange = !Y.CRANGE
        ixmin = xrange(0) & ixmax = xrange(1)
        iymin = yrange(0) & iymax = yrange(1) 

        IF !Y.TYPE EQ 1 THEN BEGIN
           iymin = 10^iymin
           iymax = 10^iymax
        ENDIF
  
        WIDGET_CONTROL,uvp.p_x_min, SET_VALUE = STRCOMPRESS(STRING(ixmin),/REMOVE_ALL)
        WIDGET_CONTROL,uvp.p_x_max, SET_VALUE = STRCOMPRESS(STRING(ixmax),/REMOVE_ALL)
        WIDGET_CONTROL,uvp.p_y_min, SET_VALUE = STRCOMPRESS(STRING(iymin),/REMOVE_ALL)
        WIDGET_CONTROL,uvp.p_y_max, SET_VALUE = STRCOMPRESS(STRING(iymax),/REMOVE_ALL)
      
eod:
END 
 
 
PRO wtime_height,table=table,GROUP=GROUP,ylog=ylog,xlog=xlog

COMMON lines_block,plots
COMMON wsave_ps_block, scr, def_ps, a4
COMMON t2d_common, h_x,h_y,h_s,t_x,t_y,t_s,data,hours,obs,dt0,ixyax,ixyaxold

IF (XRegistered("Height_Time") NE 0) THEN RETURN 

IF KEYWORD_SET(table) THEN data = table
IF KEYWORD_SET(ylog) THEN ylog = 1 ELSE ylog = 0
IF KEYWORD_SET(xlog) THEN xlog = 1 ELSE xlog = 0
 
IF NOT KEYWORD_SET(table) THEN BEGIN

 fname = pickfiles(FILTER='*.tht',PATH=GETENV('WORK')+!delimiter+GETENV('USER')+!delimiter+'list'+!delimiter)

 IF fname(0) EQ '' THEN RETURN

 sf = size(fname)
 data = ''
 for j=0,sf(n_elements(sf)-1)-1 do begin

  data = [data,rd_asc(fname(j))]
   
 endfor
 
 i = WHERE (data GT " ")
 data = data(i)

ENDIF
 
 
 table2data

; init
  
WinXsize = 400
WinYsize = 500

if n_elements(ixmin) eq 0 then ixmin=0
if n_elements(ixmax) eq 0 then ixmax=24
if n_elements(iymin) eq 0 then iymin=0
if n_elements(iymax) eq 0 then iymax=30

if n_elements(press) eq 0 then press=0

subxt = ['Time','Time','Sun radius']
subyt = ['Sun radius','Speed km/s','Speed km/s']
selyax = ['Time v Height','Time v Speed','Distance v Speed']

IF N_ELEMENTS ( def_ps ) EQ 0 THEN def_ps = [ 1,0,0,8,20,15,3.5,21.5]
                                  ;def_ps = [ 0.0  ; portrait (pl), $
                                  ;           0.0  ; non-encapsulated (ec), $
                                  ;           1.0  ; color on (co), $
                                  ;           8.0  ; bits_per_pixel (bpp), $
                                  ;          15.0  ; xcm , $
                                  ;          15.0  ; ycm, $
                                  ;           3.5  ; x offset, $
                                  ;           7.5  ; y offset ]

 
WLineBase = WIDGET_BASE(TITLE = "LASCO Height-Time Plots",/ROW) 
lcol     = WIDGET_BASE(WLineBase, /FRAME, /COLUMN) 
rcol     = WIDGET_BASE(WLineBase, /FRAME, /COLUMN) 

junk = { CW_PDMENU_P, flags:0, name:'' }

pdm_desc = [{ CW_PDMENU_P, 1, 'Data' },		 $
               { CW_PDMENU_P, 0, 'View' },	 $
               { CW_PDMENU_P, 0, 'Load' }, 	 $
               { CW_PDMENU_P, 0, 'Save' },	 $
               { CW_PDMENU_P, 2, 'Save as' }, 	 $
             { CW_PDMENU_P, 0, 'Print'},	 $
             { CW_PDMENU_P, 0, 'Help' },	 $
             { CW_PDMENU_P, 0, 'Done' } ]

menu = CW_PDMENU(lcol, pdm_desc, UVALUE='PDMENU', /RETURN_FULL_NAME)

;
; Create 4 editable WIDGET_TEXT for scale input
;
lcols      = WIDGET_BASE(lcol,/FRAME, /COLUMN)
  
minvalue = STRING(hours(0))			; first image start at hour = 0
maxvalue = STRING(hours(n_elements(hours)-1)) 	; time_0 - time_n in hours
 
sxmin  = STRCOMPRESS(string(minvalue),/REMOVE_ALL)
sxmax  = STRCOMPRESS(string(maxvalue),/REMOVE_ALL)

b_x_min    = WIDGET_BASE(lcols,/ROW)
p_x_lab    = WIDGET_LABEL(b_x_min,VALUE='X min range :')
p_x_min    = WIDGET_TEXT(b_x_min,XSIZE=12,/EDITABLE,VALUE=sxmin, $
                         UVALUE='XMIN')

b_x_max    = WIDGET_BASE(lcols,/ROW)
p_x_lab    = WIDGET_LABEL(b_x_max,VALUE='X max range :')
p_x_max    = WIDGET_TEXT(b_x_max,XSIZE=12,/EDITABLE,VALUE=sxmax, $
                         UVALUE='XMAX')

minvalue = '1'    ; from Rs_min
maxvalue = '30'   ; to   Rs_rmax  
symin  = STRCOMPRESS(STRING(FLOAT(minvalue)),/REMOVE_ALL)
symax  = STRCOMPRESS(STRING(FLOAT(maxvalue)),/REMOVE_ALL)

b_y_min    = WIDGET_BASE(lcols,/ROW)
p_y_lab    = WIDGET_LABEL(b_y_min,VALUE='Y min range :')
p_y_min    = WIDGET_TEXT(b_y_min,XSIZE=12,/EDITABLE,VALUE=symin, $
                         UVALUE='YMIN')

b_y_max    = WIDGET_BASE(lcols,/ROW)
p_y_lab    = WIDGET_LABEL(b_y_max,VALUE='Y max range :')
p_y_max    = WIDGET_TEXT(b_y_max,XSIZE=12,/EDITABLE,VALUE=symax, $
                         UVALUE='YMAX')
;
; Two-button toggle switch for axis selection
;
s_base = WIDGET_BASE(lcols,/ROW, /EXCLUSIVE) 
xaxisb = WIDGET_BUTTON(s_base ,VALUE='X-axis', $ 
                           UVALUE='XA', /NO_RELEASE) 
yaxisb = WIDGET_BUTTON(s_base ,VALUE='Y-axis', $ 
                           UVALUE='YA', /NO_RELEASE) 
resetb = WIDGET_BUTTON(s_base ,VALUE='Reset axis', $ 
                           UVALUE='RA') 
;
;  
;
 
lcol3  = WIDGET_BASE(lcol, /FRAME,/COLUMN) 

w5 = WIDGET_BASE(lcol3, /ROW)
w15 = WIDGET_LABEL(w5,VALUE = 'Main Title:')
w16 = WIDGET_BASE(lcol3,/ROW)
wt1 = WIDGET_TEXT(w16,XSIZE=25,YSIZE=1,/EDITABLE, VALUE=obs(0),UVALUE='title') 

w5 = WIDGET_BASE(lcol3,/ROW)
w15 = WIDGET_LABEL(w5,VALUE = 'X-axis Title:')
w16 = WIDGET_BASE(lcol3,/ROW)
wt2 = WIDGET_TEXT(w16,XSIZE=25,YSIZE=1,/EDITABLE, VALUE=subxt(0),UVALUE='title')

w5 = WIDGET_BASE(lcol3,/ROW)
w15 = WIDGET_LABEL(w5,VALUE = 'Y-axis Title:')
w16 = WIDGET_BASE(lcol3,/ROW)
wt3 = WIDGET_TEXT(w16,XSIZE=25,YSIZE=1,/EDITABLE, VALUE=subyt(0),UVALUE='title')

w17 = WIDGET_BASE(lcol,/ROW)
w15 = WIDGET_LABEL(w17,VALUE = 'Diag:')
wdl = WIDGET_DROPLIST(w17, VALUE=selyax, UVALUE = "SYAX")

doit = WIDGET_BUTTON(lcol ,VALUE='Just Do It!',UVALUE='DoIt')

;
; Create DRAW , LABEL, TEXT WIDGET
;
 
drawbase = WIDGET_BASE(rcol,/COLUMN) 
draw = WIDGET_DRAW(drawbase,Xsize=WinXsize,Ysize=WinYsize, UVALUE="PDRAW", /BUTTON) 
 


;*-------------------- Done Creating Widgets --------------------*
 
WIDGET_CONTROL, WLineBase, /REALIZE 

WIDGET_CONTROL, draw,GET_VALUE = win_wplot_id 
WSET,win_wplot_id 
 


;WIDGET_CONTROL, out_X, /SET_BUTTON 
out_win = !d.name 

WIDGET_CONTROL,xaxisb,/SET_BUTTON
xya_flag = 1

ixyaxold = 0
ixyax = 0
WIDGET_CONTROL,wdl,SET_DROPLIST_SELECT=ixyax ; default as Sun Radius
ixax = 0
WIDGET_CONTROL,wdl,SET_DROPLIST_SELECT=ixax ; default as Sun Radius
 
press = 0
;
; Create a structure that will be carried around as the UVALUE of the WLineBase
;

Wpbv = { WLineBase:WLineBase,   $ ; Base WIDGET ID
         draw:draw,             $
         pwin1:win_wplot_id,    $ ; Window ID
         WinXsize:WinXsize,	$
         WinYsize:WinYsize,	$
         wt1:wt1,		$
         wt2:wt2,		$
         wt3:wt3,		$
         p_x_min:p_x_min,       $
         p_x_max:p_x_max,       $
         p_y_min:p_y_min,       $
         p_y_max:p_y_max,       $
         press:press,           $
         back:0,                $
         xyaf:xya_flag,         $
         resb:resetb            $        
       } 
               
plots = { ixmin:ixmin, $ ; xrange min
          ixmax:ixmax, $ ; xrange max
          iymin:iymin, $ ; yrange min
          iymax:iymax, $ ; yrange max
          title:dt0,   $
          subxt:subxt, $ ; subtitle on x axis
          subyt:subyt, $ ; subtitle on y axis
          ylog:ylog, $
          xlog:xlog  $
        }

WIDGET_CONTROL,WLineBase, SET_UVALUE= Wpbv
 
XMANAGER,"wtime_height",WLineBase, $ 
                EVENT_HANDLER = "wtime_height_event", $ 
                GROUP_LEADER = GROUP  
END 
