From 787ee79e8ebc8e8446b4d20ee315bc232eacb9ad Mon Sep 17 00:00:00 2001 From: Evgeny Zakrevsky Date: Mon, 27 Feb 2012 03:13:03 +0400 Subject: [PATCH] IDEA-77370 Unaliased fonts for the current selected item in Run/Debug Configuration drop down --- .../actionSystem/ex/ComboBoxAction.java | 66 +++++++++++-------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java index 9c9694eb1e82..e0691405ef16 100644 --- a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java +++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java @@ -41,18 +41,21 @@ import java.beans.PropertyChangeListener; public abstract class ComboBoxAction extends AnAction implements CustomComponentAction { private static final Icon ARROW_ICON = IconLoader.getIcon("/general/comboArrow.png"); private static final Icon DISABLED_ARROW_ICON = IconLoader.getDisabledIcon(ARROW_ICON); - + private boolean mySmallVariant = true; private DataContext myDataContext; - protected ComboBoxAction() { } + protected ComboBoxAction() { + } - public void actionPerformed(AnActionEvent e) { } + public void actionPerformed(AnActionEvent e) { + } public JComponent createCustomComponent(Presentation presentation) { JPanel panel = new JPanel(new GridBagLayout()); ComboBoxButton button = createComboBoxButton(presentation); - panel.add(button, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 3, 0, 3), 0, 0)); + panel.add(button, + new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 3, 0, 3), 0, 0)); return panel; } @@ -216,6 +219,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent @Override public void updateUI() { super.updateUI(); + //putClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY, null); if (UIUtil.isMotifLookAndFeel()) { setBorder(BorderFactory.createEtchedBorder()); } @@ -293,25 +297,30 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent @Override protected void paintComponent(Graphics g) { final boolean isEmpty = getIcon() == null && StringUtil.isEmpty(getText()); - final Dimension size = getSize(); + final Dimension size = getSize(); if (isSmallVariant()) { - final Graphics2D g2 = (Graphics2D)g; + final Graphics2D g2 = (Graphics2D)g; g2.setColor(UIUtil.getControlColor()); final int w = getWidth(); final int h = getHeight(); if (getModel().isArmed() && getModel().isPressed()) { - g2.setPaint(new GradientPaint(0,0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8))); - } else { - g2.setPaint(new GradientPaint(0,0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9))); + g2.setPaint(new GradientPaint(0, 0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8))); } - g2.fillRect(2, 0, w-2, h); + else { + g2.setPaint( + new GradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9))); + } + g2.fillRect(2, 0, w - 2, h); + g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); if (!myMouseInside) { - g2.setPaint(new GradientPaint(0,0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker())); + g2.setPaint(new GradientPaint(0, 0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker())); //g2.setColor(UIUtil.getBorderColor()); - } else { + } + else { g2.setPaint(new GradientPaint(0, 0, UIUtil.getBorderColor().darker(), 0, h, UIUtil.getBorderColor().darker().darker())); } - g2.drawRect(2,0, w-3, h-1); + g2.drawRect(2, 0, w - 3, h - 1); final Icon icon = getIcon(); int x = 7; if (icon != null) { @@ -322,24 +331,27 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent final Font font = getFont(); g2.setFont(font); g2.setColor(UIManager.getColor("Button.foreground")); - g2.drawString(getText(), x, (size.height + font.getSize())/2 - 1); + g2.drawString(getText(), x, (size.height + font.getSize()) / 2 - 1); } - } else { + } + else { super.paintComponent(g); } - final Insets insets = super.getInsets(); - final Icon icon = isEnabled() ? ARROW_ICON : DISABLED_ARROW_ICON; - final int x; - if (isEmpty) { - x = (size.width - icon.getIconWidth()) / 2; - } else { - if (isSmallVariant()) { - x = size.width - icon.getIconWidth() - insets.right + 1; - } else { - x = size.width - icon.getIconWidth() - insets.right + (UIUtil.isUnderNimbusLookAndFeel() ? -3 : 2); - } + final Insets insets = super.getInsets(); + final Icon icon = isEnabled() ? ARROW_ICON : DISABLED_ARROW_ICON; + final int x; + if (isEmpty) { + x = (size.width - icon.getIconWidth()) / 2; + } + else { + if (isSmallVariant()) { + x = size.width - icon.getIconWidth() - insets.right + 1; } - icon.paintIcon(null, g, x, (size.height - icon.getIconHeight()) / 2); + else { + x = size.width - icon.getIconWidth() - insets.right + (UIUtil.isUnderNimbusLookAndFeel() ? -3 : 2); + } + } + icon.paintIcon(null, g, x, (size.height - icon.getIconHeight()) / 2); } private boolean isGlowSupported() {