From 0ff6e96e48ef28fb6be4277bf51d38630a4b2fc6 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Fri, 22 Feb 2013 11:30:08 +0400 Subject: [PATCH] Top-Center-Bottom alignment ability (it was always "top") --- .../core-api/src/com/intellij/ui/RowIcon.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/core-api/src/com/intellij/ui/RowIcon.java b/platform/core-api/src/com/intellij/ui/RowIcon.java index a9669f3f444e..b8c9372069e0 100644 --- a/platform/core-api/src/com/intellij/ui/RowIcon.java +++ b/platform/core-api/src/com/intellij/ui/RowIcon.java @@ -22,12 +22,20 @@ import java.awt.*; import java.util.Arrays; public class RowIcon implements Icon { + private final Alignment myAlignment; + + public enum Alignment {TOP, CENTER, BOTTOM} private final Icon[] myIcons; private int myWidth; private int myHeight; public RowIcon(int iconCount/*, int orientation*/) { + this(iconCount, Alignment.CENTER); + } + + public RowIcon(int iconCount, Alignment alignment) { + myAlignment = alignment; myIcons = new Icon[iconCount]; //myOrientation = orientation; } @@ -56,9 +64,15 @@ public class RowIcon implements Icon { @Override public void paintIcon(Component c, Graphics g, int x, int y) { int _x = x; + int _y = y; for (Icon icon : myIcons) { if (icon == null) continue; - icon.paintIcon(c, g, _x, y); + switch (myAlignment) { + case TOP: _y = y;break; + case CENTER: _y = (myHeight - icon.getIconHeight())/2;break; + case BOTTOM: _y = (myHeight - icon.getIconHeight());break; + } + icon.paintIcon(c, g, _x, _y); _x += icon.getIconWidth(); //_y += icon.getIconHeight(); }