code: func (win *Window) LayoutFitWidth(id int, minwidth int) {
  	layout := win.layout
  	if layout.Row.Type != layoutStatic || len(layout.Row.WidthArr) > 0 {
  		panic(WrongLayoutErr)
  	}
  	if win.adjust == nil {
  		win.adjust = make(map[int]map[int]*adjustCol)
  	}
  	adjust, ok := win.adjust[layout.Cnt]
  	if !ok {
  		adjust = make(map[int]*adjustCol)
  		win.adjust[layout.Cnt] = adjust
  	}
  	col, ok := adjust[layout.Row.Index2]
  	if !ok || col.id != id || col.font != win.ctx.Style.Font {
  		if !ok {
  			col = &adjustCol{id: id, width: minwidth}
  			win.adjust[layout.Cnt][layout.Row.Index2] = col
  		}
  		col.id = id
  		col.font = win.ctx.Style.Font
  		col.width = minwidth
  		col.first = true
  		win.ctx.trashFrame = true
  		win.LayoutSetWidth(minwidth)
  		layout.Row.CalcMaxWidth = true
  		return
  	}
  	win.LayoutSetWidthScaled(col.width)
  	layout.Row.CalcMaxWidth = col.first
  }
docs: // LayoutFitWidth adds a new column to a static layout.
  // The width of the column will be large enough to fit the largest widget
  // exactly. The largest widget will only be calculated once per id, if the
  // dataset changes the id should change.