code: func drawProperty(win *Window, style *nstyle.Property, bounds, labelrect rect.Rect, ws nstyle.WidgetStates, name string) {
  	out := &win.cmds
  	font := win.ctx.Style.Font
  
  	if style.DrawBegin != nil {
  		style.DrawBegin(out)
  	}
  	if style.DrawEnd != nil {
  		defer style.DrawEnd(out)
  	}
  	if style.Draw != nil {
  		style.Draw(out, style, bounds.Rectangle(), labelrect.Rectangle(), ws, name, font)
  		return
  	}
  
  	var text textWidget
  	var background *nstyle.Item
  
  	// select correct background and text color
  	if ws&nstyle.WidgetStateActive != 0 {
  		background = &style.Active
  		text.Text = style.LabelActive
  	} else if ws&nstyle.WidgetStateHovered != 0 {
  		background = &style.Hover
  		text.Text = style.LabelHover
  	} else {
  		background = &style.Normal
  		text.Text = style.LabelNormal
  	}
  
  	// draw background
  	if background.Type == nstyle.ItemImage {
  		out.DrawImage(bounds, background.Data.Image)
  		text.Background = color.RGBA{0, 0, 0, 0}
  	} else {
  		text.Background = background.Data.Color
  		out.FillRect(bounds, style.Rounding, style.BorderColor)
  		out.FillRect(shrinkRect(bounds, style.Border), style.Rounding, background.Data.Color)
  	}
  
  	// draw label
  	widgetText(out, labelrect, name, &text, "CC", font)
  	return
  }
docs: ///////////////////////////////////////////////////////////////////////////////////
  // PROPERTY
  ///////////////////////////////////////////////////////////////////////////////////