mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix spinners and text fields bg
(cherry picked from commit da4eeed38ffee90588466aef849d5e62b92de522)
This commit is contained in:
@@ -89,6 +89,8 @@ public final class DarculaLaf extends BasicLookAndFeel {
|
||||
initIdeaDefaults(defaults);
|
||||
patchStyledEditorKit();
|
||||
patchComboBox(metalDefaults, defaults);
|
||||
defaults.remove("Spinner.arrowButtonBorder");
|
||||
defaults.put("Spinner.arrowButtonSize", new Dimension(16, 5));
|
||||
return defaults;
|
||||
}
|
||||
catch (Exception ignore) {
|
||||
|
||||
@@ -12,7 +12,7 @@ Menu.maxGutterIconWidth=18
|
||||
MenuItem.maxGutterIconWidth=18
|
||||
MenuItem.acceleratorDelimiter=-
|
||||
|
||||
EditorPane.inactiveBackground=585D5F
|
||||
EditorPane.inactiveBackground=45494A
|
||||
EditorPane.inactiveForeground=bbbbbb
|
||||
EditorPaneUI=com.intellij.ide.ui.laf.darcula.ui.DarculaEditorPaneUI
|
||||
|
||||
@@ -45,15 +45,15 @@ Separator.foreground=2d2d2d
|
||||
|
||||
Focus.color=ff0000
|
||||
|
||||
TextField.background=585D5F
|
||||
TextField.background=45494A
|
||||
TextFieldUI=com.intellij.ide.ui.laf.darcula.ui.DarculaTextFieldUI
|
||||
TextField.border=com.intellij.ide.ui.laf.darcula.ui.DarculaTextBorder
|
||||
PasswordField.background=585D5F
|
||||
PasswordField.background=45494A
|
||||
PasswordFieldUI=com.intellij.ide.ui.laf.darcula.ui.DarculaPasswordFieldUI
|
||||
PasswordField.border=com.intellij.ide.ui.laf.darcula.ui.DarculaTextBorder
|
||||
FormattedTextField.background=585D5F
|
||||
FormattedTextField.background=45494A
|
||||
|
||||
TextArea.background=585D5F
|
||||
TextArea.background=45494A
|
||||
|
||||
CheckBoxUI=com.intellij.ide.ui.laf.darcula.ui.DarculaCheckBoxUI
|
||||
CheckBox.border=com.intellij.ide.ui.laf.darcula.ui.DarculaCheckBoxBorder
|
||||
@@ -79,6 +79,7 @@ ToolTip.background=5C5C42
|
||||
SpinnerUI=com.intellij.ide.ui.laf.darcula.ui.DarculaSpinnerUI
|
||||
Spinner.border=com.intellij.ide.ui.laf.darcula.ui.DarculaSpinnerBorder
|
||||
Spinner.background=3c3f41
|
||||
Spinner.arrowButtonInsets=1,1,1,1
|
||||
Spinner.editorBorderPainted=false
|
||||
|
||||
Hyperlink.linkColor=589df6
|
||||
|
||||
+6
-1
@@ -51,7 +51,12 @@ public class DarculaSpinnerBorder implements Border, UIResource {
|
||||
g.setColor(UIUtil.getTextFieldBackground());
|
||||
g.fillRoundRect(x1, y1, width1, height1, 5, 5);
|
||||
g.setColor(UIUtil.getPanelBackground());
|
||||
g.fillRect(x1 + width1 - 17, y1, 17, height1);
|
||||
if (editor != null) {
|
||||
final int off = editor.getBounds().x + editor.getWidth() + ((JSpinner)c).getInsets().left;
|
||||
g.fillRect(off, y1, 17, height1);
|
||||
g.setColor(Gray._100);
|
||||
g.drawLine(off, y1, off, height1+2);
|
||||
}
|
||||
|
||||
if (!c.isEnabled()) {
|
||||
((Graphics2D)g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
|
||||
|
||||
+71
-13
@@ -36,7 +36,6 @@ import java.awt.event.FocusEvent;
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class DarculaSpinnerUI extends BasicSpinnerUI {
|
||||
|
||||
private FocusAdapter myFocusListener = new FocusAdapter() {
|
||||
@Override
|
||||
public void focusGained(FocusEvent e) {
|
||||
@@ -74,15 +73,19 @@ public class DarculaSpinnerUI extends BasicSpinnerUI {
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g, JComponent c) {
|
||||
super.paint(g, c);
|
||||
final Border border = spinner.getBorder();
|
||||
if (border != null) {
|
||||
border.paintBorder(c, g, 0, 0, spinner.getWidth(), spinner.getHeight());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Component createPreviousButton() {
|
||||
JButton button = createArrow(SwingConstants.SOUTH);
|
||||
button.setName("Spinner.nextButton");
|
||||
button.setName("Spinner.previousButton");
|
||||
button.setBorder(new EmptyBorder(1, 1, 1, 1));
|
||||
|
||||
installNextButtonListeners(button);
|
||||
installPreviousButtonListeners(button);
|
||||
return button;
|
||||
}
|
||||
|
||||
@@ -91,26 +94,48 @@ public class DarculaSpinnerUI extends BasicSpinnerUI {
|
||||
JButton button = createArrow(SwingConstants.NORTH);
|
||||
button.setName("Spinner.nextButton");
|
||||
button.setBorder(new EmptyBorder(1, 1, 1, 1));
|
||||
|
||||
installNextButtonListeners(button);
|
||||
return button;
|
||||
}
|
||||
|
||||
private static JButton createArrow(@MagicConstant(intValues = {SwingConstants.NORTH, SwingConstants.SOUTH}) int direction) {
|
||||
|
||||
@Override
|
||||
protected LayoutManager createLayout() {
|
||||
return new LayoutManagerDelegate(super.createLayout()) {
|
||||
@Override
|
||||
public void layoutContainer(Container parent) {
|
||||
super.layoutContainer(parent);
|
||||
final JComponent editor = spinner.getEditor();
|
||||
if (editor != null) {
|
||||
final Rectangle bounds = editor.getBounds();
|
||||
editor.setBounds(bounds.x, bounds.y, bounds.width - 6, bounds.height);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private JButton createArrow(@MagicConstant(intValues = {SwingConstants.NORTH, SwingConstants.SOUTH}) int direction) {
|
||||
final Color shadow = UIUtil.getPanelBackground();
|
||||
final Color darkShadow = UIUtil.getLabelForeground();
|
||||
JButton b = new BasicArrowButton(direction, shadow, shadow, darkShadow, shadow) {
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
int y = direction == NORTH ? getHeight() - 6 : 2;
|
||||
paintTriangle(g, 0, y, 0, direction, DarculaSpinnerUI.this.spinner.isEnabled());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaque() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paintTriangle(Graphics g, int x, int y, int size, int direction, boolean isEnabled) {
|
||||
final GraphicsConfig config = GraphicsUtil.setupAAPainting(g);
|
||||
int mid;
|
||||
x = 5;
|
||||
y = 2;
|
||||
final int w = getWidth() - 1 - x - 2;
|
||||
final int h = getHeight() - 1 - 1;
|
||||
mid = (w + 1) / 2;
|
||||
g.setColor(UIUtil.getPanelBackground());
|
||||
g.fillRect(1, 1, getWidth() - 1, getHeight() - 1);
|
||||
final int w = 8;
|
||||
final int h = 6;
|
||||
mid = w / 2;
|
||||
|
||||
g.setColor(isEnabled ? darkShadow : darkShadow.darker());
|
||||
|
||||
@@ -141,4 +166,37 @@ public class DarculaSpinnerUI extends BasicSpinnerUI {
|
||||
b.setInheritsPopupMenu(true);
|
||||
return b;
|
||||
}
|
||||
|
||||
static class LayoutManagerDelegate implements LayoutManager {
|
||||
protected final LayoutManager myDelegate;
|
||||
|
||||
LayoutManagerDelegate(LayoutManager delegate) {
|
||||
myDelegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addLayoutComponent(String name, Component comp) {
|
||||
myDelegate.addLayoutComponent(name, comp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeLayoutComponent(Component comp) {
|
||||
myDelegate.removeLayoutComponent(comp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension preferredLayoutSize(Container parent) {
|
||||
return myDelegate.preferredLayoutSize(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension minimumLayoutSize(Container parent) {
|
||||
return myDelegate.minimumLayoutSize(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void layoutContainer(Container parent) {
|
||||
myDelegate.layoutContainer(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -17,7 +17,7 @@ package com.intellij.ide.ui.laf.darcula.ui;
|
||||
|
||||
import com.intellij.ide.ui.laf.darcula.DarculaUIUtil;
|
||||
import com.intellij.openapi.ui.GraphicsConfig;
|
||||
import com.intellij.ui.ColorUtil;
|
||||
import com.intellij.ui.Gray;
|
||||
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.plaf.InsetsUIResource;
|
||||
@@ -42,7 +42,6 @@ public class DarculaTextBorder implements Border, UIResource {
|
||||
@Override
|
||||
public void paintBorder(Component c, Graphics g2, int x, int y, int width, int height) {
|
||||
Graphics2D g = ((Graphics2D)g2);
|
||||
g.setColor(ColorUtil.fromHex("737373"));
|
||||
final GraphicsConfig config = new GraphicsConfig(g);
|
||||
g.translate(x, y);
|
||||
|
||||
@@ -50,7 +49,7 @@ public class DarculaTextBorder implements Border, UIResource {
|
||||
DarculaUIUtil.paintFocusRing(g, 2, 2, width-4, height-4);
|
||||
} else {
|
||||
boolean editable = !(c instanceof JTextComponent) || (((JTextComponent)c).isEditable());
|
||||
g.setColor(c.isEnabled() && editable ? new Color(0x939393) : new Color(0x535353));
|
||||
g.setColor(c.isEnabled() && editable ? Gray._100 : new Color(0x535353));
|
||||
g.drawRect(1, 1, width - 2, height - 2);
|
||||
}
|
||||
g.translate(-x, -y);
|
||||
|
||||
Reference in New Issue
Block a user