;+ ; NAME: ; qLine_XBase ; PURPOSE: ; Creates the widgets for the X-axis parameters ; CATEGORY: ; Widget qLine ; CALLING SEQUENCE: PRO qLine_XBase, state, xysize=xysize ; INPUTS: ; state array[1]; type: structure ; qLine state structure ; OPTIONAL INPUT PARAMETERS: ; xysize=xysize array[2]; type: integer ; size of draw widget. The window size is also stored as value ; in the state.wid_xysize widgets, but may not be available yet ; if the widget has not been realized yet. ; OUTPUTS: ; (creates widgets) ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; BadValue, IsTime ; PROCEDURE: ; The x-base part of the widget consists of the draw widget, and other widgets ; that apply to all curves. The draw widget is not sensitive (i.e. no mouse events ; are processed (until the 'fit' widget is activated) ; The widgets are grouped under state.wid_xbase, which is a child of state.wid_top. ; Note that a call to this procedure is followed by a call to qLine_YBase, which ; creates the widgets for the individual curves. ; MODIFICATION HISTORY: ; FEB-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ;- IF widget_info(state.wid_xbase, /valid) THEN $ widget_control, state.wid_xbase, /destroy state.wid_xbase = widget_base(state.wid_top, /column) dummy1 = widget_base(state.wid_xbase, /row) dummy2 = widget_base(dummy1, /column) dummy3 = widget_base(dummy2, /column) dummy4 = widget_base(dummy3, /column, /nonexclusive) state.wid_ymd = widget_button(dummy4, value='ymd' , uvalue=0B, sensitive=IsTime(*state.t)) state.wid_ydoy = widget_button(dummy4, value='ydoy', uvalue=0B, sensitive=IsTime(*state.t)) dummy3 = widget_base(dummy2, /row) dummy4 = widget_base(dummy3, /column) state.wid_degree = cw_field(dummy4, value=1, /integer, $ uvalue=replicate(BadValue(0.0),2), title='Fit Deg', /row, /return_ev, xsize=3) ;dummy4 = widget_base(dummy3) state.wid_scalefit = cw_field(dummy4, value=0, /float, $ title='Scale', /row, /return_ev, xsize=3) state.wid_badvalue = cw_field(dummy4, value='NaN', /string, $ title='Bad Value', /row, /return_ev, xsize=3) CASE IsType(xysize, /defined) OF 0: BEGIN widget_control, state.wid_xysize[0], get_value=xsize widget_control, state.wid_xysize[1], get_value=ysize END 1: BEGIN xsize = xysize[0] ysize = xysize[1] END ENDCASE state.wid_draw = widget_draw(dummy1, xsize=xsize, ysize=ysize, frame=4, /button_events, sensitive=0) RETURN & END