code: @Override
      protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) {
          switch (state) {
  
          case BACKGROUND_ENABLED:
          case BACKGROUND_DISABLED:
          case BACKGROUND_ENABLED_WINDOWNOTFOCUSED:
              paintBackgroundEnabled(g, c, width, height);
              paintMinimizeEnabled(g, c, width, height);
              break;
  
          case BACKGROUND_MOUSEOVER:
          case BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED:
              paintBackgroundHover(g, c, width, height);
              paintMinimizeHover(g, c, width, height);
              break;
  
          case BACKGROUND_PRESSED:
          case BACKGROUND_PRESSED_WINDOWNOTFOCUSED:
              paintBackgroundPressed(g, c, width, height);
              paintMinimizePressed(g, c, width, height);
              break;
  
          case BACKGROUND_MINIMIZED_DISABLED:
          case BACKGROUND_MINIMIZED_ENABLED:
          case BACKGROUND_MINIMIZED_ENABLED_WINDOWNOTFOCUSED:
              paintBackgroundEnabled(g, c, width, height);
              paintRestoreEnabled(g, c, width, height);
              break;
  
          case BACKGROUND_MINIMIZED_MOUSEOVER:
          case BACKGROUND_MINIMIZED_MOUSEOVER_WINDOWNOTFOCUSED:
              paintBackgroundHover(g, c, width, height);
              paintRestoreHover(g, c, width, height);
              break;
  
          case BACKGROUND_MINIMIZED_PRESSED:
          case BACKGROUND_MINIMIZED_PRESSED_WINDOWNOTFOCUSED:
              paintBackgroundPressed(g, c, width, height);
              paintRestorePressed(g, c, width, height);
              break;
          }
      }
docs: {@inheritDoc}