code: func (ctr *rowConstructor) Ratio(ratio ...float64) {
  	layout := ctr.win.layout
  	panelLayout(ctr.win.ctx, ctr.win, ctr.height, len(ratio), 0)
  
  	/* calculate width of undefined widget ratios */
  	r := 0.0
  	n_undef := 0
  	layout.Row.Ratio = ratio
  	for i := range ratio {
  		if ratio[i] < 0.0 {
  			n_undef++
  		} else {
  			r += ratio[i]
  		}
  	}
  
  	r = saturateFloat(1.0 - r)
  	layout.Row.Type = layoutDynamic
  	layout.Row.ItemWidth = 0
  	layout.Row.ItemRatio = 0.0
  	if r > 0 && n_undef > 0 {
  		layout.Row.ItemRatio = (r / float64(n_undef))
  	}
  
  	layout.Row.ItemOffset = 0
  	layout.Row.Filled = 0
  
  }
docs: // Starts new row with a fixed number of columns of width proportional
  // to the size of the window.