 $sdiskwidget = std2_tlform_setup('Fit Solar Disk', '$sdisk', topbar)
 
 ;3 major parts after the top row of buttons (in topbar)
 ft1 = xmform($sdiskwidget, 0, 0, 0, 10)
 ft2 = xmform($sdiskwidget, 0, 0, 0, 4)
 ft3 = xmform($sdiskwidget, 0, 0, 0, 4)
 sep1 = xmseparator($sdiskwidget, 0, 2, 5)
 sep2 = xmseparator($sdiskwidget, 0, 2, 5)
 sep3 = xmseparator($sdiskwidget, 0, 2, 5)
 xmsize, sep1, 0, 10
 xmsize, sep2, 0, 10
 xmsize, sep3, 0, 10

 ;part 1 -------------------------------------------------------------------
 wq = xmboard(ft1)
 b1 = xmbutton(ft1,'fit/adjust limb','manage_toggle,' +string(wq),$f4)
 formvstack, b1, wq
 bq=xmbutton(wq,'select\ncircumferential \npoints','sdisk_mark_cb', $f4,'gray')
 xmalignment, bq, 1
 xmposition, bq, 0, 0, 120, 60
 switch, bq, $sdisk_mark_but
 bq=xmbutton(wq,'redraw','sdisk_draw_cb', $f4,'gray')
 xmposition,bq, 125, 0, 100, 27
 switch, bq, $sdisk_north_but
 bq=xmbutton(wq,'adjust circle','sdisk_circle_cb', $f4,'gray')
 xmposition,bq, 125, 33, 100, 27
 switch, bq, $sdisk_north_but
 lq = xmlabel(wq, '# of points = 0', $f4)
 xmposition, lq, 10, 63
 switch, lq, $sdisk_count_lab
 bq=xmbutton(wq,'delete last','sdisk_deletelast_cb', $f4,'gray')
 xmposition,bq, 0, 90, 120, 27
 bq=xmbutton(wq,'delete all','sdisk_deleteall_cb', $f4,'gray')
 xmposition, bq, 125, 90, 100, 27
 xtunmanage, wq
 
 ;part 2 -------------------------------------------------------------------
 wq = xmboard(ft2)
 b2 = xmbutton(ft2,'coordinates','manage_toggle,' +string(wq),$f4)
 formvstack, b2, wq
 ;the fields with computed values like radius and angle
 $sdisktext2 = labeled_text_box(wq, 'radius', 'pixels', 60, 10, 0, -
 	 90, 'sdisk_theta_cb', 20)
 $sdisktext3 = labeled_text_box(wq, 'theta', 'degrees', 60, 10, 38, -
 	 90, 'sdisk_theta_cb', 20)
 $sdisktext4 = labeled_text_box(wq, 'xcen', 'pixels', 60, 10, 38*2, -
 	 90, 'sdisk_theta_cb', 20)
 $sdisktext5 = labeled_text_box(wq, 'ycen', 'pixels', 60, 10, 38*3, -
 	 90, 'sdisk_theta_cb', 20)
 $sdisktext6 = labeled_text_box(wq, 'chi', '', 60, 10, 38*4, -
 	 90, 'sdisk_theta_cb', 20)
 xmtextsetstring, $sdisktext3, '0'
 bq=xmbutton(wq,'log','sdisk_log_cb', $f4,'gray')
 xmposition, bq, 0, 38*5, 50, 27

 xtunmanage, wq

 ;part 3 -------------------------------------------------------------------
 wq = xmboard(ft3)
 b3 = xmbutton(ft3,'rotate on sun','manage_toggle,' +string(wq),$f4)
 formvstack, b3, wq
 $sdisktext6 = labeled_text_box(wq, 'ref time', '', 60, 10, 0, -
 	 150, 'sdisk_time_cb', 4)

 xtunmanage, wq

 ;put them all together ---------------------------------------------------
 formvstack, topbar, sep1, ft1, sep2, ft2, sep3, ft3
 xtpopup, $sdiskwidget
 scanpositions, $sdiskwidget, 'sdiskwidget', ix, iy
 if (ix ne 0 and iy ne 0) then xmposition, $sdiskwidget, ix, iy + $magic_mac_yoffset
 add_to_hideables, $sdiskwidget
