mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
new look for combo box button
This commit is contained in:
+15
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -26,7 +26,9 @@ import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.ui.ColorUtil;
|
||||
import com.intellij.ui.Gray;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.util.ui.GraphicsUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -40,7 +42,8 @@ import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
|
||||
public abstract class ComboBoxAction extends AnAction implements CustomComponentAction {
|
||||
private static final Icon DISABLED_ARROW_ICON = IconLoader.getDisabledIcon(AllIcons.General.ComboArrow);
|
||||
private static final Icon ARROW_ICON = AllIcons.General.ComboBoxButtonArrow;
|
||||
private static final Icon DISABLED_ARROW_ICON = IconLoader.getDisabledIcon(ARROW_ICON);
|
||||
|
||||
private boolean mySmallVariant = true;
|
||||
private DataContext myDataContext;
|
||||
@@ -321,7 +324,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
@Override
|
||||
public Insets getInsets() {
|
||||
final Insets insets = super.getInsets();
|
||||
return new Insets(insets.top, insets.left, insets.bottom, insets.right + AllIcons.General.ComboArrow.getIconWidth());
|
||||
return new Insets(insets.top, insets.left, insets.bottom, insets.right + ARROW_ICON.getIconWidth());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -332,10 +335,10 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
result.top += 2;
|
||||
result.left += 8;
|
||||
result.bottom += 2;
|
||||
result.right += 4 + AllIcons.General.ComboArrow.getIconWidth();
|
||||
result.right += 4 + ARROW_ICON.getIconWidth();
|
||||
}
|
||||
else {
|
||||
result.right += AllIcons.General.ComboArrow.getIconWidth();
|
||||
result.right += ARROW_ICON.getIconWidth();
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -349,7 +352,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
@Override
|
||||
public Dimension getPreferredSize() {
|
||||
final boolean isEmpty = getIcon() == null && StringUtil.isEmpty(getText());
|
||||
int width = isEmpty ? 10 + AllIcons.General.ComboArrow.getIconWidth() : super.getPreferredSize().width;
|
||||
int width = isEmpty ? 10 + ARROW_ICON.getIconWidth() : super.getPreferredSize().width;
|
||||
if (isSmallVariant()) width += 4;
|
||||
return new Dimension(width, isSmallVariant() ? 19 : UIUtil.isUnderNimbusLookAndFeel() ? 24 : 21);
|
||||
}
|
||||
@@ -357,6 +360,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
GraphicsUtil.setupAntialiasing(g);
|
||||
GraphicsUtil.setupAAPainting(g);
|
||||
final Dimension size = getSize();
|
||||
final boolean isEmpty = getIcon() == null && StringUtil.isEmpty(getText());
|
||||
|
||||
@@ -384,16 +388,15 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8)));
|
||||
}
|
||||
else {
|
||||
g2.setPaint(
|
||||
UIUtil.getGradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9)));
|
||||
g2.setPaint(UIUtil.getGradientPaint(0, 0, new JBColor(Gray._245, Gray._131), 0, h, new JBColor(Gray._208, Gray._128)));
|
||||
}
|
||||
g2.fillRect(2, 0, w - 2, h);
|
||||
g2.fillRoundRect(2, 0, w - 2, h, 5, 5);
|
||||
GraphicsUtil.setupAntialiasing(g2);
|
||||
if (!UIUtil.isUnderDarcula()) {
|
||||
if (!myMouseInside) {
|
||||
g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker()));
|
||||
} else {
|
||||
g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getBorderColor().darker(), 0, h, UIUtil.getBorderColor().darker().darker()));
|
||||
g2.setPaint(UIUtil.getGradientPaint(0, 0, Gray._131, 0, h, Gray._128));
|
||||
}
|
||||
} else {
|
||||
if (!myMouseInside) {
|
||||
@@ -403,7 +406,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
}
|
||||
}
|
||||
|
||||
g2.drawRect(2, 0, w - 3, h - 1);
|
||||
g2.drawRoundRect(2, 0, w - 3, h - 1, 5, 5);
|
||||
|
||||
final Icon icon = getIcon();
|
||||
int x = 7;
|
||||
@@ -423,7 +426,7 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent
|
||||
}
|
||||
}
|
||||
final Insets insets = super.getInsets();
|
||||
final Icon icon = isEnabled() ? AllIcons.General.ComboArrow : DISABLED_ARROW_ICON;
|
||||
final Icon icon = isEnabled() ? ARROW_ICON : DISABLED_ARROW_ICON;
|
||||
final int x;
|
||||
if (isEmpty) {
|
||||
x = (size.width - icon.getIconWidth()) / 2;
|
||||
|
||||
Reference in New Issue
Block a user