subr movie_list(cb_string)
 ;read a special file and load name field with choice
 ;1/26/96 the cb_string added to allow a custom routine to be called
 ;in list_callback1 after initial processing of movie name
 ;need to copy the cb_string into a global so that it can be called
 ;from the button, here and in reload_cb
 $movie_list1_cb = cb_string
 $mlist_fn0 = 'known_movies'
 ;$mlist_fn0 = getenv('ANA_MOVIE_DIR') + '/known_movies'
 $mlist_level = 0
 if defined($mlistwidget) eq 0 then {
 $mlistwidget = xmdialog_form(0,0,0, 'movie directory',0,0,5, 5)
 wq = topbuttonsetupsanslink('$mlist')
 xmposition,xmlabel(wq, 'file:' ,$f4), 150, 10
 $mlisttext1 = xmtextfield(wq,'',280,'',$f3,'white')
 xmposition, $mlisttext1, 180, 0, 300, 35
 bq = xmbutton(wq, 're-load', 'reload_cb', $f4, 'darkgreen')
 xmposition, bq, 490, 0, 70, 30
 bq = xmbutton(wq, 'previous', 'reload_prev_cb', $f4, 'gray')
 xmposition, bq, 570, 0, 80, 30
 sq = 'select one of the following, no guarantees !'
 xmposition,xmlabel(wq, sq ,$f4), 50, 50

 sq = 'list_callback1, $movie_list1_cb'
 $ls1 = xmlist($mlistwidget, sq, 10, $f3, 'white')

 formvstack, wq, xtparent($ls1)
 xmattach, xtparent($ls1), 0,   1,1,0,1
 xmtextfieldsetstring, $mlisttext1, getenv('ANA_MOVIE_DIR')+'/'+$mlist_fn0
 reload_cb
 ;} else {	;if already defined, load and list the top level
 ;xmtextfieldsetstring, $mlisttext1, fn
 ;reload_cb
 }
 xtmanage, $mlistwidget
 xmposition, $mlistwidget, 20, 20
 xmraise, xtparent($mlistwidget)
 return
 endsubr
 ;===========================================================
