code: func drawProgress(win *Window, state nstyle.WidgetStates, style *nstyle.Progress, bounds, scursor rect.Rect, value, maxval int) {
  	out := &win.cmds
  	if style.DrawBegin != nil {
  		style.DrawBegin(out)
  	}
  	if style.DrawEnd != nil {
  		defer style.DrawEnd(out)
  	}
  
  	if style.Draw != nil {
  		style.Draw(out, state, style, bounds.Rectangle(), scursor.Rectangle(), value, maxval)
  		return
  	}
  
  	var background *nstyle.Item
  	var cursor *nstyle.Item
  
  	/* select correct colors/images to draw */
  	if state&nstyle.WidgetStateActive != 0 {
  		background = &style.Active
  		cursor = &style.CursorActive
  	} else if state&nstyle.WidgetStateHovered != 0 {
  		background = &style.Hover
  		cursor = &style.CursorHover
  	} else {
  		background = &style.Normal
  		cursor = &style.CursorNormal
  	}
  
  	/* draw background */
  	if background.Type == nstyle.ItemImage {
  		out.DrawImage(bounds, background.Data.Image)
  	} else {
  		out.FillRect(bounds, style.Rounding, background.Data.Color)
  	}
  
  	/* draw cursor */
  	if cursor.Type == nstyle.ItemImage {
  		out.DrawImage(scursor, cursor.Data.Image)
  	} else {
  		out.FillRect(scursor, style.Rounding, cursor.Data.Color)
  	}
  	return
  }
docs: ///////////////////////////////////////////////////////////////////////////////////
  // PROGRESS BAR
  ///////////////////////////////////////////////////////////////////////////////////