@ActionButtonComponent.ButtonState
  public static int getButtonState(
    boolean isEnabled,
    boolean isHovered,
    boolean isFocused,
    boolean isPressedByMouse,
    boolean isPressedByKeyboard
  ) {
    if (!isEnabled) return ActionButtonComponent.NORMAL;

    if (isPressedByMouse || isPressedByKeyboard) {
      return ActionButtonComponent.PUSHED;
    }
    else if (isHovered) {
      return ActionButtonComponent.POPPED;
    }
    else if (isFocused) {
      return ActionButtonComponent.SELECTED;
    }
    else {
      return ActionButtonComponent.NORMAL;
    }
  }
@ActionButtonComponent.ButtonState
  public static int getButtonState(
    boolean isEnabled,
    boolean isHovered,
    boolean isFocused,
    boolean isPressedByMouse,
    boolean isPressedByKeyboard
  )