code: func buttonBehaviorDo(state *nstyle.WidgetStates, r rect.Rect, i *Input, repeat bool) (ret bool) {
  	exitstate := basicWidgetStateControl(state, i, r)
  
  	if *state == nstyle.WidgetStateActive {
  		if exitstate == nstyle.WidgetStateHovered {
  			if repeat {
  				ret = i.Mouse.Down(mouse.ButtonLeft)
  			} else {
  				ret = i.Mouse.Released(mouse.ButtonLeft)
  			}
  		}
  		if !i.Mouse.Down(mouse.ButtonLeft) {
  			*state = exitstate
  		}
  	}
  
  	return ret
  }
docs: ///////////////////////////////////////////////////////////////////////////////////
  // BUTTON
  ///////////////////////////////////////////////////////////////////////////////////