function make_views, rmap, listlabels
;
;+
;   Name: make_views
;
;   Purpose: make multiple multi window viewports 
;   
;   Inputs: rmap - roadmap vector
;
;    Outputs: function returns widget ids of top level multi_draw
;	     viewports
;
;   Catagory: X-display and X-manage
;-

; draw options defines draw event cases

mdraws=[0l]

draw_options= $
   	['ZOOM','PROFILES','HIST EQUAL','ALOG10','REFRESH','USER']
;
uniq_tab=uniq(rmap.seq_tab_serno,sort(rmap.seq_tab_serno))

; for each sequence/entry table, define a unique viewport

for tab=0, n_elements(uniq_tab)-1 do begin
;
   which=where(rmap.seq_tab_serno eq rmap(uniq_tab(tab)).seq_tab_serno)
   views = seq_cubes(rmap(which))
   or_shape,rmap(which),xs,ys,map
   size_factor=intarr(n_elements(xs))+1		
;
;  viewports are made via calls to multidraw
;
   md=multi_draw(xs*size_factor,ys*size_factor, $
      title='SXT Image Regions - Table: ' + $
      strcompress(rmap(uniq_tab(tab)).seq_tab_serno), $
	view_map=map, event_options=draw_options, /text) 
;  assign uvalues to multidraw widgets
;
   for i= 0, md.number-1 do begin
      widget_control,md.views(i).base,set_uvalue=views(i)
      widget_control,md.views(i).label,set_uvalue=	$
	 listlabels(long(str2arr(views(i))))
   endfor 
;
   mdraws=[mdraws,md.top]				; return top level ids
endfor
;
return, mdraws(1:*)
end
