BufferedImage ( @NotNull Component item, ScaleContext ctx, boolean floating, boolean toolbarVisible, boolean selected, boolean nextSelected, boolean isLastElement ) { int w = item.getWidth(); int h = item.getHeight(); int offset = (w - getDecorationOffset()); int h2 = h / 2; BufferedImage result = ImageUtil.createImage(ctx, w, h, BufferedImage.TYPE_INT_ARGB, PaintUtil.RoundingMode.FLOOR); Color defaultBg = StartupUiUtil.isUnderDarcula() ? Gray._100 : JBColor.WHITE; final Paint bg = floating ? defaultBg : null; final Color selection = UIUtil.getListSelectionBackground(true); Graphics2D g2 = result.createGraphics(); g2.setStroke(new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Path2D.Double shape = new Path2D.Double(); shape.moveTo(0, 0); shape.lineTo(offset, 0); shape.lineTo(w, h2); shape.lineTo(offset, h); shape.lineTo(0, h); shape.closePath(); Path2D.Double endShape = new Path2D.Double(); endShape.moveTo(offset, 0); endShape.lineTo(w, 0); endShape.lineTo(w, h); endShape.lineTo(offset, h); endShape.lineTo(w, h2); endShape.closePath(); if (bg != null && toolbarVisible) { g2.setPaint(bg); g2.fill(shape); g2.fill(endShape); } if (selected) { Path2D.Double focusShape = new Path2D.Double(); if (toolbarVisible || floating) { focusShape.moveTo(offset, 0); } else { focusShape.moveTo(0, 0); focusShape.lineTo(offset, 0); } focusShape.lineTo(w - 1, h2); focusShape.lineTo(offset, h - 1); if (!toolbarVisible && !floating) { focusShape.lineTo(0, h - 1); } g2.setColor(selection); if (floating && isLastElement) { g2.fillRect(0, 0, w, h); } else { g2.fill(shape); } } if (nextSelected) { g2.setColor(selection); g2.fill(endShape); } if (!isLastElement) { if (!selected && !nextSelected) { Icon icon = AllIcons.Ide.NavBarSeparator; icon.paintIcon(item, g2, w - icon.getIconWidth() - JBUIScale.scale(1), h2 - icon.getIconHeight() / 2); } } g2.dispose(); return result; }