PRO qLine_XBase, state, xysize=xysize
    @compile_opt.pro                ; On error, return to caller

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