;+ ***********************************************************************
; NAME:
;	MENULAYOUT2D
;
; PURPOSE:
;	Cette procedure contient les WIDGETS pour la mise en page du trace 
;	des positions heliographiques a partir des mesures 1D du RH
;	"Button" Plot layout du menu MAP
;
; CATEGORY:
;	NRH1 Menu
;
; CALLING SEQUENCE:
;	MENULAYOUT2D
;
; INPUTS:
;	Non
;
; KEYWORD PARAMETERS:
;	Non
;
; OUTPUTS:
;	Non
;
; COMMON BLOCKS:
;	NRH1_HELIO
;	LAYOUT	(opitions de mise en page et du style du trace)
;
; MODIFICATION HISTORY: (Ludwig.klein@obspm.fr)
;
; cree le 8/04/1999

PRO MENULAYOUT2D_EVENT, ev

common NRH1_HELIO,mainstruct
common layout, index_repres, lo_sourcelab, lo_plotstyle, lo_lintyp, lo_symbtyp, lo_symbfill, lo_symbsize

stash = WIDGET_INFO ( ev.top, /CHILD )
WIDGET_CONTROL, stash, GET_UVALUE = state

WIDGET_CONTROL, state.bg_repres,GET_VALUE=index_repres
lo_sourcelab=WIDGET_INFO(state.sourcelabel, /DROPLIST_SELECT)
WIDGET_CONTROL, state.bg_lintyp, GET_VALUE= lo_lintyp
WIDGET_CONTROL, state.bg_symbtyp,  GET_VALUE= lo_symbindex, GET_UVALUE=symbols
lo_symbtyp=symbols(lo_symbindex)
;
; attention: lo_symbtyp doit etre une chaine de caracteres !!!!!
WIDGET_CONTROL, state.symbfill,  GET_VALUE= lo_symbfill
lo_symbfill= lo_symbfill-1
WIDGET_CONTROL, state.symbsize,  GET_VALUE= lo_symbsize

IF(ev.id EQ state.plotstyle) THEN BEGIN
	lo_plotstyle = WIDGET_INFO(state.plotstyle, /DROPLIST_SELECT)
	WIDGET_CONTROL, state.plotstyle, SET_DROPLIST_SELECT = lo_plotstyle
	IF lo_plotstyle EQ 0 THEN BEGIN
		WIDGET_CONTROL, state.bg_lintyp, SENSITIVE=1
		WIDGET_CONTROL, state.bg_symbtyp, SENSITIVE=0
	ENDIF ELSE BEGIN
		WIDGET_CONTROL, state.bg_lintyp, SENSITIVE=0
		WIDGET_CONTROL, state.bg_symbtyp, SENSITIVE=1
	ENDELSE
ENDIF

IF(ev.id EQ state.default) THEN BEGIN
	default = [1, 1, 0, 1, 0, 0]
	WIDGET_CONTROL, state.bg_lintyp, SENSITIVE=1
	WIDGET_CONTROL, state.bg_symbtyp, SENSITIVE=0
	WIDGET_CONTROL, state.bg_repres, SET_VALUE = default
	WIDGET_CONTROL, state.sourcelabel, SET_DROPLIST_SELECT = 0
	WIDGET_CONTROL, state.plotstyle, SET_DROPLIST_SELECT = 0
	WIDGET_CONTROL, state.bg_lintyp, SET_VALUE=0
	WIDGET_CONTROL, state.symbfill, SET_VALUE=1
	WIDGET_CONTROL, state.symbsize, SET_VALUE=2
ENDIF

IF (ev.id EQ state.apply) THEN BEGIN
	WIDGET_CONTROL, stash, SET_UVALUE = state
ENDIF

IF (ev.id EQ state.quit) THEN BEGIN 
	WIDGET_CONTROL, ev.top, /DESTROY
	RETURN
ENDIF

END

PRO MENULAYOUT2D

common NRH1_HELIO,mainstruct
common layout, lo_params, lo_sourcelab, lo_plotstyle, lo_lintyp, lo_symbtyp, lo_symbfill, lo_symbsize

Title = "Plot layout"
base = WIDGET_BASE (TITLE = title,/FRAME, row=2 ,XOFFSET = 190, YOFFSET = 190)
base_repres=WIDGET_BASE(base,/COLUMN,/FRAME)
base_linestyle=WIDGET_BASE(base,/COLUMN,/FRAME)
base_symbstyle=WIDGET_BASE(base,/COLUMN,/FRAME)

default = WIDGET_BUTTON(base,VALUE='Default')

REPRESENTATION = ['Frame','Limb','Shade', 'Date','Frame Labels', 'Image']
lnstls = ['Solid line',  '.....', '_ _ _', '_._._', '_..._', '__ __']
symbols = ['circle', 'triangle', 'square', 'diamond', 'pentagon']

IF NOT KEYWORD_SET(lo_params) THEN lo_params = [1, 1, 0, 1, 0, 0]
IF NOT KEYWORD_SET(lo_plotstyle) THEN lo_plotstyle = 0
IF NOT KEYWORD_SET(lo_lintyp) THEN lo_lintyp = 0
IF NOT KEYWORD_SET(lo_symbtyp) THEN lo_symbtyp = symbols(0)
IF NOT KEYWORD_SET(lo_symbfill) THEN lo_symbfill = 0
IF NOT KEYWORD_SET(lo_symbsize) THEN lo_symbsize = 2

bg_repres = CW_BGROUP( base_repres,REPRESENTATION, /COLUMN,$
                     /NONEXCLUSIVE,SET_VALUE=lo_params)
sourcelabel = WIDGET_DROPLIST(base_repres, $
	 VALUE=['No caption', 'left inside', 'right ins.', 'right outs.'])
plotstyle = WIDGET_DROPLIST(base_repres, VALUE= ['Line','Symbol'])

bg_lintyp = CW_BGROUP( base_linestyle,lnstls, /COLUMN,$
                     /EXCLUSIVE,LABEL_TOP='Line style:', SET_VALUE=lo_lintyp)

apply = WIDGET_BUTTON(base,VALUE='Apply')

symbols = ['circle', 'triangle', 'square', 'diamond', 'pentagon']
lo_symbindex = WHERE(symbols EQ lo_symbtyp)
bg_symbtyp =  CW_BGROUP( base_symbstyle,symbols, /COLUMN,/EXCLUSIVE,$
                     LABEL_TOP='Symbol type:', SET_VALUE=lo_symbindex, $
			UVALUE=symbols)
IF lo_lintyp EQ 0 THEN WIDGET_CONTROL, bg_symbtyp, SENSITIVE=0
symbfill = CW_SWITCH(base_symbstyle,[' Open ', 'Filled'],VALUE = lo_symbfill)
symbsize = CW_FIELD(base_symbstyle,TITLE="Size:",/INTEGER,VALUE=lo_symbsize,$
                     /RETURN_EVENTS,XSIZE=2)

quit = WIDGET_BUTTON(base,VALUE='Quit')

state = { base:base,$
	apply:apply, quit:quit, bg_repres:bg_repres, plotstyle:plotstyle, $
	bg_lintyp:bg_lintyp, bg_symbtyp:bg_symbtyp, symbfill:symbfill, $
	symbsize:symbsize, sourcelabel:sourcelabel, default:default}

WIDGET_CONTROL, WIDGET_INFO ( base, /CHILD ), SET_UVALUE = state 

WIDGET_CONTROL, base ,/REALIZE

XMANAGER,'MENULAYOUT2D', base,GROUP_LEADER = mainstruct.root, /NO_BLOCK


END
