pro kb_in_text_event,ev,a

Common Exch_kb_in_text,Value

WIDGET_CONTROL,ev.id,GET_UVALUE = uv

CASE uv OF

"DONE":	WIDGET_CONTROL,ev.top,/DESTROY
"Help": xtext,text= $
['You must press ENTER before exiting if you have made any changes.', $
'Empty lines are allowed.']
"TEXT": begin
	WIDGET_CONTROL,ev.id,GET_V=a
	Value=a
	end
ELSE:
ENDCASE
empty
end

;*************************************

	pro kb_in_text,x,prompt=prompt,xsize=xsize, $
scroll=scroll,group_leader=group_leader,n_lines=n_lines,text=text

;	Interactive input of a text.

Common Exch_kb_in_text,Value

IF(XRegistered("kb_in_text") NE 0) THEN return

device,get_scr=scr

if n_elements(prompt) le 0 then prompt='Input text'
if n_elements(group_leader) le 0 then group_leader=0
if n_elements(xsize) le 0 then xsize=scr(0)/3
if n_elements(scroll) le 0 then scroll=0
if n_elements(n_lines) le 0 then n_lines=1
if n_elements(text) le 0 then text=''

Value=[' ']

base=widget_base(/colu,xoff=scr(0)*0.01,yoff=scr(1)*0.01, $
     space=5,xsiz=xsize,ypad=6,tit=prompt,group=group_leader)

XPdMenu,	['"DONE" 			DONE', $
		'"Help" 			Help'],base

if text ne '' then Lab_val=text else Lab_val='Print text and press ENTER'

label=WIDGET_LABEL(base,val=Lab_val)

text=WIDGET_TEXT(base,/fra,scroll=scroll,/EDIT, $
	XSI=40,YSI=n_lines,UV='TEXT',val=Value)

WIDGET_CONTROL,base,/realize,/hourglass
WIDGET_CONTROL,text,/input_focus


xmanager,'kb_in_text',base,/modal

exit:

;Value=strlowcase(strcompress(Value))

x=rotate(Value(where(Value)),2)
if n_elements(x) eq 1 then x=x(0)
end
