From 44ff7a0b51e577928c88e5fde53d80869b986aab Mon Sep 17 00:00:00 2001 From: Kirill Kirichenko Date: Wed, 5 Apr 2017 17:57:13 +0300 Subject: [PATCH] IDEA-170165 Rework Mac OS focused button and other controls highlighting --- .../execution/ui/JreComboboxEditor.java | 20 +++ .../intellij/openapi/ui/FixedSizeButton.java | 4 +- .../ide/ui/laf/icons/browseButton.png | Bin 435 -> 0 bytes .../ide/ui/laf/icons/browseButton@2x.png | Bin 499 -> 0 bytes .../ide/ui/laf/icons/buttonComboLeft.png | Bin 191 -> 0 bytes .../ide/ui/laf/icons/buttonComboLeft@2x.png | Bin 336 -> 0 bytes .../ide/ui/laf/icons/buttonComboMiddle.png | Bin 95 -> 0 bytes .../ide/ui/laf/icons/buttonComboMiddle@2x.png | Bin 125 -> 0 bytes .../ide/ui/laf/icons/buttonComboRight.png | Bin 204 -> 0 bytes .../ide/ui/laf/icons/buttonComboRight@2x.png | Bin 335 -> 0 bytes .../intellij/ide/ui/laf/icons/buttonLeft.png | Bin 187 -> 0 bytes .../ide/ui/laf/icons/buttonLeft@2x.png | Bin 333 -> 0 bytes .../ide/ui/laf/icons/buttonLeftFocused.png | Bin 289 -> 0 bytes .../ide/ui/laf/icons/buttonLeftFocused@2x.png | Bin 675 -> 0 bytes .../ide/ui/laf/icons/buttonLeftSelected.png | Bin 319 -> 0 bytes .../ui/laf/icons/buttonLeftSelected@2x.png | Bin 861 -> 0 bytes .../laf/icons/buttonLeftSelectedFocused.png | Bin 408 -> 0 bytes .../icons/buttonLeftSelectedFocused@2x.png | Bin 1095 -> 0 bytes .../ide/ui/laf/icons/buttonMiddle.png | Bin 92 -> 0 bytes .../ide/ui/laf/icons/buttonMiddle@2x.png | Bin 132 -> 0 bytes .../ide/ui/laf/icons/buttonMiddleFocused.png | Bin 107 -> 0 bytes .../ui/laf/icons/buttonMiddleFocused@2x.png | Bin 171 -> 0 bytes .../ide/ui/laf/icons/buttonMiddleSelected.png | Bin 195 -> 0 bytes .../ui/laf/icons/buttonMiddleSelected@2x.png | Bin 405 -> 0 bytes .../laf/icons/buttonMiddleSelectedFocused.png | Bin 208 -> 0 bytes .../icons/buttonMiddleSelectedFocused@2x.png | Bin 400 -> 0 bytes .../intellij/ide/ui/laf/icons/buttonRight.png | Bin 201 -> 0 bytes .../ide/ui/laf/icons/buttonRight@2x.png | Bin 335 -> 0 bytes .../ide/ui/laf/icons/buttonRightFocused.png | Bin 302 -> 0 bytes .../ui/laf/icons/buttonRightFocused@2x.png | Bin 677 -> 0 bytes .../ide/ui/laf/icons/buttonRightSelected.png | Bin 330 -> 0 bytes .../ui/laf/icons/buttonRightSelected@2x.png | Bin 857 -> 0 bytes .../laf/icons/buttonRightSelectedFocused.png | Bin 406 -> 0 bytes .../icons/buttonRightSelectedFocused@2x.png | Bin 1097 -> 0 bytes .../ui/laf/icons/graphite/browseButton.png | Bin 435 -> 0 bytes .../ui/laf/icons/graphite/browseButton@2x.png | Bin 499 -> 0 bytes .../ui/laf/icons/graphite/buttonComboLeft.png | Bin 191 -> 0 bytes .../laf/icons/graphite/buttonComboLeft@2x.png | Bin 336 -> 0 bytes .../laf/icons/graphite/buttonComboMiddle.png | Bin 95 -> 0 bytes .../icons/graphite/buttonComboMiddle@2x.png | Bin 125 -> 0 bytes .../laf/icons/graphite/buttonComboRight.png | Bin 204 -> 0 bytes .../icons/graphite/buttonComboRight@2x.png | Bin 335 -> 0 bytes .../ide/ui/laf/icons/graphite/buttonLeft.png | Bin 227 -> 0 bytes .../ui/laf/icons/graphite/buttonLeft@2x.png | Bin 333 -> 0 bytes .../laf/icons/graphite/buttonLeftFocused.png | Bin 288 -> 0 bytes .../icons/graphite/buttonLeftFocused@2x.png | Bin 647 -> 0 bytes .../laf/icons/graphite/buttonLeftSelected.png | Bin 307 -> 0 bytes .../icons/graphite/buttonLeftSelected@2x.png | Bin 701 -> 0 bytes .../graphite/buttonLeftSelectedFocused.png | Bin 387 -> 0 bytes .../graphite/buttonLeftSelectedFocused@2x.png | Bin 862 -> 0 bytes .../ui/laf/icons/graphite/buttonMiddle.png | Bin 138 -> 0 bytes .../ui/laf/icons/graphite/buttonMiddle@2x.png | Bin 132 -> 0 bytes .../icons/graphite/buttonMiddleFocused.png | Bin 108 -> 0 bytes .../icons/graphite/buttonMiddleFocused@2x.png | Bin 166 -> 0 bytes .../icons/graphite/buttonMiddleSelected.png | Bin 180 -> 0 bytes .../graphite/buttonMiddleSelected@2x.png | Bin 288 -> 0 bytes .../graphite/buttonMiddleSelectedFocused.png | Bin 189 -> 0 bytes .../buttonMiddleSelectedFocused@2x.png | Bin 304 -> 0 bytes .../ide/ui/laf/icons/graphite/buttonRight.png | Bin 236 -> 0 bytes .../ui/laf/icons/graphite/buttonRight@2x.png | Bin 335 -> 0 bytes .../laf/icons/graphite/buttonRightFocused.png | Bin 290 -> 0 bytes .../icons/graphite/buttonRightFocused@2x.png | Bin 650 -> 0 bytes .../icons/graphite/buttonRightSelected.png | Bin 311 -> 0 bytes .../icons/graphite/buttonRightSelected@2x.png | Bin 668 -> 0 bytes .../graphite/buttonRightSelectedFocused.png | Bin 387 -> 0 bytes .../buttonRightSelectedFocused@2x.png | Bin 845 -> 0 bytes .../laf/intellij/MacIntelliJButtonBorder.java | 16 +- .../ui/laf/intellij/MacIntelliJButtonUI.java | 160 ++++++++++-------- .../laf/intellij/MacIntelliJTextBorder.java | 8 +- .../src/com/intellij/util/ui/MacUIUtil.java | 5 +- 70 files changed, 131 insertions(+), 82 deletions(-) delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused.png delete mode 100644 platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused@2x.png diff --git a/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java b/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java index 4611b62acad4..5c13a5e2f9e4 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java +++ b/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java @@ -24,6 +24,9 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.plaf.basic.BasicComboBoxEditor; +import java.awt.*; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; /** * @author nik @@ -56,6 +59,23 @@ class JreComboboxEditor extends BasicComboBoxEditor { protected JTextField createEditorComponent() { JBTextField field = new JBTextField(); field.setBorder(null); + field.addFocusListener(new FocusListener() { + @Override public void focusGained(FocusEvent e) { + update(e); + } + @Override public void focusLost(FocusEvent e) { + update(e); + } + + private void update(FocusEvent e) { + Component c = e.getComponent().getParent(); + if (c != null) { + c.revalidate(); + c.repaint(); + } + } + }); + return field; } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java b/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java index 036e574263ea..c4d62c4f5d0d 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java @@ -16,6 +16,7 @@ package com.intellij.openapi.ui; import com.intellij.icons.AllIcons; +import com.intellij.openapi.util.SystemInfo; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; @@ -88,10 +89,11 @@ public class FixedSizeButton extends JButton { public Dimension getPreferredSize() { if (myComponent != null) { int size = myComponent.getPreferredSize().height; - if (myComponent instanceof JComboBox && (UIUtil.isUnderIntelliJLaF() || UIUtil.isUnderDarcula())) { + if (myComponent instanceof JComboBox && (!SystemInfo.isMac && UIUtil.isUnderIntelliJLaF() || UIUtil.isUnderDarcula())) { // JComboBox's preferred height is 2px greater than JTextField's one, because // javax.swing.DefaultListCellRenderer#getNoFocusBorder returns (1,1,1,1) border. // Decrement to have equal sizes for pretty look when stacked vertically + // Mac default border is computed correctly, so don't account for on Mac. size -= 2; } return new Dimension(size, size); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png deleted file mode 100644 index e85a8e49a1d51df8544eed8541cfc7ea3f43cbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)(OSj$$O?C&4-)%RA7xpgTagt zJ|Q-lOhN-|tr<*1dTY+-^U%Q37BC;ER4N&>*(@}$6bW!pu@Pp)C-4dUPr%*vdaW~= z47c0u-KMOw*)03MAH?D%#s%{Z1-~wrOC68L*|zQ7rmU06B(GMhAQmriDwXno1S6yQ z{Yq~(8@;V+YqCbdFFlYL3G_Y~V^_fU0*;MFqtJRRbJ=kmgDREEH53{c)rzjD-|wI0 zayh$DD6q_Bj6Ef-IaY(gfQ!W#z38Sz5D@{DoNq0J=bWSBFBFOi< z?x{Pd6G#ePse*q4Ua!}Y#bWV3pU+**X0zxc>y$$#**^yJ* z;Z$X}+j)z{hS42WallroR5YDVy#-^#=neyq?}K)`t$MxgEf^a{oz90xqfx9-DCqd= z9TwAhIWKxMl;_5;Fh$4e5GRek(1=Ho+?rxaK@PmHo_xozK pS_;F^4Mm<&WRXcW1}wKj#!qL|fdS~M*46+3002ovPDHLkV1lW*<@Epn diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png deleted file mode 100644 index d99be4d5ab003b6b536e8e0588c9461adc369d39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTv!3HGzcB<3?sWwj+$B>F!$q5b&athO!lT2qc z+&DMadh@;g_4O~_-`^ka$h0SVd*0c9pP!#^{~y306jJy7-Q9)%Js4D0Fkkt^8XNH5 zUP>aU=|;_xpU=+DUi_kIk#^V`jlX|?e|JxDR8t6x-BVF`wOd@@kE!{Cwa$ddh6t$+ r-^Lr9nq~*AZZynjW=vtRVq@SxDi}C(`QL{?7cqFc`njxgN@xNA-cL(b)|QDJa~0 zcK;3C#QqE+g; z#!}7O(Mpfd3@K9(1XwGkZQI@2mNT5do=!H7<2tOWYOg2?w(1>9lJta6_ zbCzZ3`~D}SL*;q?>ia$@h9C&wc^(|cfo0jR^P4aYRmvPi5nR`WZQGzB%X}a9_snz$ i=qHLqy$F~3*YFJ>%)12zpCg9=0000F!Z!a41G8phMJ2vaB zeQ-jGNAZ!~(g%L|FP}@Vc~@p+X#-RV0}b^Kp_Vh#j-A}HTYcs|{*8|gux5Kzoc=m_ QqBBT|r>mdKI;Vst0O5}&HUIzs diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png deleted file mode 100644 index dbfe3db00c08c0a87c5bfc41717101a3e9ac3420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTv!3HGzcB<3?smY!$jv*Ddk`odV0+^F56`mzF zH14neUswD8-`|6Ct;^Gxb|xhp{2%b)`T6<$x3}ee$$<_~Y5x*^3<U7L^L!`G4O19uOGL^Vq?a| zMP3UUv;>SBo33zn_%=pJbwnmKo@YFgV<5U=!tnzPZNCHqdQ{KH0-eX;>FVdQ&MBb@ E0Ak@$u>b%7 diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png deleted file mode 100644 index 0b720a9e23848fab809ceb7279bf539ef3bda6bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHmwP)lNNw<>)C^&QAKs2BzK4VY^8t|=SMMr;gE*LCrOhy@$9Jo60 z^Z2XW!|A#X!!Tf37JT1Fk|bVPmLCAP^`Zl-d7jZU4WcN5>$*tObl>;=?iXBFUDvET z;Z3+;>b%6b38_w}6U%%TE)lw}+ik*Wn%Eb)-0;2$sWeSPRaN()q9`x;g8v_WJsFPU z$adjnyKcjxC}5iA{Q=-O4vxnoHb+X9WjGuTbl%^Dgj7{!bEj?Fw;ymA2At1lmPwXn z*tSg>ualSKc^-lwKomttlEfYth9UAi|D>0=LK>Ey=OG9J#Bt0r(ePX&2B|$Qx=8F!$q5b&athN}lR{@S z+&DMadh@;g_4O~_-`^ka$h0SVd*0c9pP!#^{~y306jJy7-Q9)%Js4D0Fkkt^8XNH5 zUP@wK)2|zU*8O~TcJ|^IO-b5eYc&4;{r%lN#ZfIlL?>>~j#o#!#nl@d|H_KV>Nx1| n9$Dt_rbQ$_K{m(X3?su70i`+59k;#(x`x5i)z4*}Q$iB}#!gJd diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png deleted file mode 100644 index 943f526e0a8549c4c126d79b67ff28c205812b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)C#|3X0#rzwUa~ z4X-W$E`Q0*jiza?Wm$d}MKR|J$n*RbhN0uSE)2tfrfE=B^%rQ{_8LXe-L`GKUN2Nt zg>fA56AMTX-7=NKyI9K6OJV% frjMXQB#H7Hjn-0pt{P_$00000NkvXXu0mjf(W{YA diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png deleted file mode 100644 index 70ba7a202a6f09831e641e800182bb1db80db61c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmV++0p9+JP)RPaZ!e#faz5VdzKQaI* z2!|=CU48pI$XIj*aQhq9-1?6WMio#~0U|C|-ozRg@Yu{-bmRJ)_n$Eoz|(_M|HBDe zPu~Ck`_CT~1&9b1?AkKg(K>g`8pib7A#<=^A&yKhg-n0fYk$=s7au%~LE nNepFQ5*SK9C6bUYaO5liBm5Y6OuZ-!00000NkvXXu0mjfEz^cj diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png deleted file mode 100644 index 632420094f6fe80c55c543e9cf1b265f05a517c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)|vzSKQ*0qAN+n-%dut|T7Hl^B@$7}#NneTmLxH~1{ z&ev*PO?S33-=3_X_j3W4$FjIElEV4nb(|Yoxx+ESrE91uvbiYp)+%GS-kMFr{duBq|i zfRR7O(&^5ZJ_!6|D>L-bbcc-HraRN=k&LyO18A=MgU#jBtD;U*!-R@r4-ks%FwJx$ zfZp%fw=2BU@|Hsd=>qFE1Dtu2)ByIU+X7C%PGE3W-6vq*6?6a{KnKtPbO8SkKzqS) zvCw9sZeu6pyBN+`%yZ2|@btQTSPj6lsKh*wJ~^H~-7s)E{fOT;1h7MN)|qnLB* z)e?H%t->{#2W6=dEwzl!?Whh|$gqd4L5r%mHBsjMAizma94DT~aO~M!T}?qVyeh?C zhK&%agnDxA(+0m5WhW9{+$n672 zse;%Y7g(=mS!xU@wEUn*{&>002ov JPDHLkV1n!OK;r-a diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png deleted file mode 100644 index ce8ef940f9f0704d99c748aa8b7f839330e920c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)Bb4|y}Tc1`PQXfo@uVJ)AnX76TE>dQ0H4Gh5rf)P1c$D;&hQ2&yqM{+W zOBpL01-(0zku#&9dz&(NViY7cDg7m*pktkqEE)yzHP(BMjfA0f)vqNAM!F6Ih%SF0 zv~5v3J@XHd%v-c2_wy0kpv3o#wAf~6_v-JjXS#bPU48)k{)fLF=;`TkxLmF% zr_)LNA$)3cw%vK>!r}Vwh_CvIb&vW8x6s?$>v;XK3!5q#c06O)SI2O$ksM{X2<^3K`<%BJK%C{BPJZ5*HLO zY<}GYZMQ8 zKh&JWS$Pbr9ta7?YD&#&uOx9s4#&!S0xRwdN*jBvlEkSOIhNfOSb9guGzisg)G-pL zWDCTU2`nx*5L2#`x}2%Cg2c!yfrYpK4T8t|3Cz4{cqsDj`WT7fCk#w4GBK@4r9o+THCIXEsG|lZ7Z{jiF}cvxc+E&0 zdDy_j>%vXs4a1!iBq~V^$uKeQs)2}WG9`AZ**L3{7<|aU=zJ4nubPyE>|^o`nyDnw zk!~XFvVpKGCc-6lQopR%BnG9L7@7BXM&(&zV2X**ToWO=Izw|oJtW67CvoTj6C-lq z;gXGKPOp@()IK<}fuM`PaK$CnP3l1w^pc9r`hmdHz_1H{;;@olduJ=07?J@5X8%T( zMYbh=X!?eLBw+AyU`Up4NbK(Jjwo;Z3jYH@z%d`_Ko+9|r7{2NQg3LS0>5vF+{cCtF)v(bCd_=H_NJ nH8uI(wbV7MA3~j^E=lnVlUd&P3U#yN00000NkvXXu0mjf@r9Do diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png deleted file mode 100644 index 4ca54c232e3d5985b7493dcaec6508dc78227dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmV;J0cZY+P)gp zTyiWJ*aNxGITkpQpz%}5u%Lej?uh-`z>r9%+cDTB?hvkWfPkyL#!GyM?POVHbB;0NnNRW&^D8Xt&gxV zQY)K6sF;HFnfz<2#^j7y75|W_<%>G0-R&xb-Oj0000YD_d@1C6a!InvTvu+eH;u~%!fS|u8jQn5-kwQ4HhSCgtO^a>OTy#j?m zEm!&iXe%@nXpArMJ)(Ru{b2kciP6OR(q7BKktRDcyN@%oJIfyITuJ1^FV8don|W?- zb`Jh$05H<=`(N>SKaP$S44qHB)HRaa85^FgZu@RBs?aX{<&Vpu!SjiiW5dY^pNQ6P zlYz`wc=6Ju>puN?d^3MBs#~ND@GZt{`Cp4u0%o(g<(mmKf0giP`f_aQz|wu@+RqXw z?@OS#D~YE%uj28eriTm=r>%R(or7a|f=?_wZeq(R6WjYuln$79YlukXa~6*(C_pam zG*Q%TqHK_$e27X_l#2jyNrIlU*!G5)SWHmLC%-wsRWV3CZ-^Tf^zLQ732Z!OV#ff* zjrn(*_jqfT9m5hhb9>b$pKt_nTa= z4S1-9;JI$bp#d-tZNQplf@ixJo;gXSDzC=MYXep{5fq+alBWg7X$pmIO&hSP(ZrL- z7>Dxj1am#}{6-gTz=H?H9}I@aI+;|38Y|TX+#faZXpCWf2jgl;_w^g!{Ye zEm>2l4anWgu&B<$qWw1RMBqQy^$n9) z7_o5cUd-S&pVxLLC9wpudB80Zq*CePdgF)Dv2aj>5jl4mITZ{G_gJ`zPt;-jb|Ib> z)Z!fadK_gvapdsBTu>PhQsD-qYqCTeSK4(EIlK6!+Rab@JsUUkup79)em8Jq1=6>9 z;xHS(xPo2%|KNr8IM&vVBe%jt=pBaacO9OTG(`_5hPn02cw z&O~*m3bDJnYqsa4-Jg>m9Mc*7Gk(YSzg`KS{VB1ndnEaG$F!e3{{b+;xLfp7JlX&N N002ovPDHLkV1k|M5TXD8 diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png deleted file mode 100644 index e93b2eb1d954b8c2ff91a8724746c70d6bf7f2d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDP>O=$B>F!$q5Mw0qUIp)dhR9 qB(55)YFsDPaA2y-nFEeoYz+NkllXdNyiNj@GkCiCxvXF!Z_hjO9&q4cb`;j_ zzQom6)BJGBgAXee{=AC1_5H-AwJEpms?XeY`{X|9i;O@`aPWt7g_io|GZr(?S>|uz X7H9Zz=<0R54v@5`tDnm{r-UW|bJHzj diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png deleted file mode 100644 index c6aba3e96cd23322ced9d99bb16a06e8c4c88ec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^96&71!3HE9eb4O!QbwLGjv*Ddk`q?^lW!IeUbi6i zar6Hl28ZjJ5<(8HVA9gom|gzJ-tNqSfM1$|`pYch85q=`KY6}sRveJUz~JfX=d#Wz Gp$Py+nIk0t diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png deleted file mode 100644 index 02fa73a787ddb6e3dcfa3fca5fa9ef89d9684821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoS!3HFo&+TvoQbnFFjv*Dd-d^9x<-j1)`tWn! zyi?2uGnP)dn-Y8`$SAr;tT{qu;-iX=%^u&cZU6UqXT-I`feM-WS_040*EyiYwEUc;o8 z-!Q4gCroPg4wIU`!lWk8Fsbn)Olouwld5iEQiDsFRR0_%)jOq0b&qLMokN;bxlfa7 x@6x1N+cc@>CQYibPLnEDX;SrhnABg5`~mBE!k+?=Xr}-G002ovPDHLkV1h4RP96XN diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png deleted file mode 100644 index dcab112b120b9bf0efcb7d8b557efbfb0f723661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmV;G0c!qAEM4E$%1B#Me*%Ub-NjVTAQi_O7LS%aj$Ugf9O_F`~o9u36u3?&)d$7K5 zt;bq&3(vvt{r4WdXD>)X3F&mYE|p5Psi6Djhf0|LcBq8eFNbsA0V649J{<<8Ma9&I z!>LargUNTp$#+Kv<8KZpgfRAI7#MwZB*n;!;mE7+#gP=l&xR5INJLZ&J{k@^8LEnb z2SX+F-Wm1&-*;KIXQ?Vmc0HE*R7KIY z%ia z{})k_u|Q_}i>g4xA4>6foJvS0lWmDaqF?0~v7x0lESy9l00000NkvXXu0mjfXV9{y diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png deleted file mode 100644 index ce4ee9b76e4608a6b03af376178dd679ed8a1bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^96&71!3HE9eb4O!Qqw(M978H@Exo*P6(fU0+r#ow zMz-dINgHP9h;=)PH9u8x4O({~Wy+E%Q>;o~d3bqF$~OM@Km5+Y?Gp3e#>PkNVZZj> z@wr6N3|nWu%kC!U&|0P&Gt`LPXnTs%5zopr032shjQ{`u diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png deleted file mode 100644 index 258ab92c4ddbc9a547884971d0916b165d41bed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)^7{>8yBUwx=Oj$@MQe>edWuX+2vX~MzO%x$MfkNI!Ud9-vNg^+KpP8hwWx;2$ zWx>XC&huPO@d@sGH;do>Kb^%{p3Xt$?K`1?^y?Qjis690mrrV-=j4YPm@9bHz^ogy z1w&~u^XPHfkrq>rh8mcB@Th@_yhja;=MBel9;HPrXBf+RlorvfVf5Y+7Nd8DBe#aq zV)({T1CcAk$h9LZhAu5NFnD38f&MeYfpbe~(RXUu>qzS^6iW?sA6sgm>&Q|Aorjhh z=*akN&sa)}wzSW-14mf2?)%h0ODbS<%BQqwO8V45L&CCg*Qd0o-w9afNQ>I-fHhkI zrA75-Kn+xF1k^w{9x%M_2#d-!QUevMqz1}YNDYLR$k4JQEXv$MPE=| uDJ^Q}Ej18-dZz}G&mYt%hS$3G%kv8c`eeYIO792&00001rPgg&ebxsLQ0PBoR Ad;kCd diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png deleted file mode 100644 index 9cac08480859615ac0a141d7c2c28693fc53727c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHmwP)I7u`iylm#d_bKoFoKv9gZh&oWgw~h@uI_>?bB~4H}uNMvu{*UY7 z49?{MaDNe3Rn?JH*Y&aMy2B!g5)8^U6B1jVi0rR{G&K4+*Rd5_fmIy_+3eu>m3d(sCJfF`y zxPv?RAHnq+!T!OotZ^$8JBQhZP<$PfSk002ovPDHLkV1nr(k+A>( diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png deleted file mode 100644 index fcbeba38d7b86741c4562787d2efd4678a38b02f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)NklVG%^B|U(Qef9Rk|INp4|Bsk@Z8JmFpIDR>RWkSFkBpgTuiJIsnaEK7 zJsu-XGL(KwWGMTRfTq(PU$WOh&le~;ivbM)0Mr^JZ3(BMY5)KL07*qoM6N<$f<*j^ A^Z)<= diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png deleted file mode 100644 index c96dc1e514916dd2e3adc18d36f08492f7cdbbd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)k$Lc_rT6OuX?`P3Yv{qw%wA5A<+gho@vS_Ka6ltLkAV8rd zownb?l0InTz_dl0msy|T1;H-kt zu#7-L7FTo9pB1WAsrOjU^D*=aDs3*KbBzX*0hA% zpIBQE?)30FNM}YiaMqo~h4Bn}-{)~-N^A`r8?pl|ilV2oOZoC@kF&U9lC=A5cL5k0U_Q z3rjb2>eZ^zCsqLcJ3@gSa0JleLn=$i5Kxb0Q3wxfDWJo=m0u^ z{{c`LEPDWCOPcX9O{T`t*1}{83mUF?3x;!P9IgrqMQK0hG+4(Ynh|{QZMI>&56>&j z$9qOkeLAk}x`*_wuv$QQM?0Ceu_lf{PJX_KWiyH^F!F64tq zlLCnMoeJ6$-LC<_~4-XG)4AxeUlxe9;Y^K<;n9Ku|Qxi#M>)F00000 LNkvXXu0mjfULiI6 diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png deleted file mode 100644 index ef1759ba03dc5beb38de8a625218ca5bf2bd913e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmV-Q0k!^#P)DN(7U{~`So z{rDdeIp62-=@T8kUtSl_`{DUvvgZ=e8x_bgf3x@`a32IS*Mjj=d7(y=e-wnKt^}Ey z?3np`K`3`C7_0gpCU?h$GIAn;nY|Hc=_7%e<^|eNnQ`(`pbeB5CoTk9|2|{pjL%Sd zJ;u?RK=F9_LMEO#2RC&#B-Fk6~@j33oX9PzbE%B zLW!b9^OFB*+C7U<%eo-C@V#qVxf|cMh^-2m@;|SU>~qvOt^|(jzdLhZUVXX}GyfBz c2C56gFYO`}>G$-*@&Et;07*qoM6N<$g82oMga7~l diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png deleted file mode 100644 index 45bdb1021717d28a2ad0785203a0bf7b22d04d42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)BH^`+%%>PNIfLWa4CXRD}#W zXX$8@jHAs8tTYk*_HrQ}d9AR$C^#ZWXc|xCBOxAorGPm2l4JHJ5v4+OvWL!>Dx5DA z4yz9s$=OmO#C;74_7ja}s=O9`c!|QrJ@pC<8dRS3X7aI3cf^cwbt?P!D2S_7LG?J; z_=aLJX%*> z;`)ag3`#vx5Oi6HYwl}U^I&QMvxOMSM3YrE%swDXUDUZ5;OYV04(w+GCM_x^YVasO!CRo zjilZukN1x2KtQ_8uM|fvFgJ&hJBCA~_az|u`X7Etd9!bMGto#pY;4vU;7W~)UwgCI z;AD7Z0n?L#FCD*Z;x!NHA}}KbsA})Q;NW1eA$l>1n0bY9fz6TuOiKjH-~2#-e}A-f zhf4|UlQBQ}FCwysaIUNeA3lFaUtiw=`+G;~=;%OaXD7P4y3pO-jo#kg?16!SXwR3E jMAH-WkPg<|lPCWGiC*6oa(64f00000NkvXXu0mjfVjYsV diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png deleted file mode 100644 index db9b7e2cd6f2d850c23138997769a321670f0777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk;P)CJ+QzH;Q~@s=niS@ z2;W)YhtR#AV8-)^EC|BPEfP1HL#lhDY5j1VJ1c_8D ze@s+mWxtzHMc;r$Yz$2(!Xu21iY6ED2V(VFu5Y~ zLs4J|xMsC}FN%Mff4KgLt<{$O(5qay%%@B8uB zTNw*BNTA{4YqNznZr;4-zZ#f$nJmb_%S37Vd;Ef$nZ>;#kQdCXe+na*dSR! z?kNUA-YMOQLUT5pkgOo5lOd;5xAE2+>Ldo6+8MUA>v8b0%^g!glVHd(H? zx`8>Y4M+?!P8f*6kSTP%?utivyN@B3$xPeEA6^R_P zBL7*IUt;h;tpP6{bm`ST$sVLt8%V1m?0A0-EbZiEa8$B_)Bq4ibs`2nA-$UMSusP6`N8z^nE(m!AjWL2oxT04tZ zIzl)y`X?GcyPd2{i?w+*m#;%`?4v(WcjYfMd>S%mPS)aGxfYH!ntT@iuz;Vp*E_q5 z<67N?^vQ|E|8Kj0*B>12Po6Gn+xn*>?_c^My#L#uZs$(_7JB&KK6(BIxDU8vfDPQG P00000NkvXXu0mjfyCfIf diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png deleted file mode 100644 index e85a8e49a1d51df8544eed8541cfc7ea3f43cbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)(OSj$$O?C&4-)%RA7xpgTagt zJ|Q-lOhN-|tr<*1dTY+-^U%Q37BC;ER4N&>*(@}$6bW!pu@Pp)C-4dUPr%*vdaW~= z47c0u-KMOw*)03MAH?D%#s%{Z1-~wrOC68L*|zQ7rmU06B(GMhAQmriDwXno1S6yQ z{Yq~(8@;V+YqCbdFFlYL3G_Y~V^_fU0*;MFqtJRRbJ=kmgDREEH53{c)rzjD-|wI0 zayh$DD6q_Bj6Ef-IaY(gfQ!W#z38Sz5D@{DoNq0J=bWSBFBFOi< z?x{Pd6G#ePse*q4Ua!}Y#bWV3pU+**X0zxc>y$$#**^yJ* z;Z$X}+j)z{hS42WallroR5YDVy#-^#=neyq?}K)`t$MxgEf^a{oz90xqfx9-DCqd= z9TwAhIWKxMl;_5;Fh$4e5GRek(1=Ho+?rxaK@PmHo_xozK pS_;F^4Mm<&WRXcW1}wKj#!qL|fdS~M*46+3002ovPDHLkV1lW*<@Epn diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png deleted file mode 100644 index d99be4d5ab003b6b536e8e0588c9461adc369d39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTv!3HGzcB<3?sWwj+$B>F!$q5b&athO!lT2qc z+&DMadh@;g_4O~_-`^ka$h0SVd*0c9pP!#^{~y306jJy7-Q9)%Js4D0Fkkt^8XNH5 zUP>aU=|;_xpU=+DUi_kIk#^V`jlX|?e|JxDR8t6x-BVF`wOd@@kE!{Cwa$ddh6t$+ r-^Lr9nq~*AZZynjW=vtRVq@SxDi}C(`QL{?7cqFc`njxgN@xNA-cL(b)|QDJa~0 zcK;3C#QqE+g; z#!}7O(Mpfd3@K9(1XwGkZQI@2mNT5do=!H7<2tOWYOg2?w(1>9lJta6_ zbCzZ3`~D}SL*;q?>ia$@h9C&wc^(|cfo0jR^P4aYRmvPi5nR`WZQGzB%X}a9_snz$ i=qHLqy$F~3*YFJ>%)12zpCg9=0000F!Z!a41G8phMJ2vaB zeQ-jGNAZ!~(g%L|FP}@Vc~@p+X#-RV0}b^Kp_Vh#j-A}HTYcs|{*8|gux5Kzoc=m_ QqBBT|r>mdKI;Vst0O5}&HUIzs diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png deleted file mode 100644 index dbfe3db00c08c0a87c5bfc41717101a3e9ac3420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTv!3HGzcB<3?smY!$jv*Ddk`odV0+^F56`mzF zH14neUswD8-`|6Ct;^Gxb|xhp{2%b)`T6<$x3}ee$$<_~Y5x*^3<U7L^L!`G4O19uOGL^Vq?a| zMP3UUv;>SBo33zn_%=pJbwnmKo@YFgV<5U=!tnzPZNCHqdQ{KH0-eX;>FVdQ&MBb@ E0Ak@$u>b%7 diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png deleted file mode 100644 index 0b720a9e23848fab809ceb7279bf539ef3bda6bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHmwP)lNNw<>)C^&QAKs2BzK4VY^8t|=SMMr;gE*LCrOhy@$9Jo60 z^Z2XW!|A#X!!Tf37JT1Fk|bVPmLCAP^`Zl-d7jZU4WcN5>$*tObl>;=?iXBFUDvET z;Z3+;>b%6b38_w}6U%%TE)lw}+ik*Wn%Eb)-0;2$sWeSPRaN()q9`x;g8v_WJsFPU z$adjnyKcjxC}5iA{Q=-O4vxnoHb+X9WjGuTbl%^Dgj7{!bEj?Fw;ymA2At1lmPwXn z*tSg>ualSKc^-lwKomttlEfYth9UAi|D>0=LK>Ey=OG9J#Bt0r(ePX&2B|$Qx=88Zrw^{00};P_)zECwQGlg^xvmXpZ;KY^yrcJjT<-KfByXW zKNS3704i^K{rdHPB=Cs=sA~DQZ{JV_uV25u;QROQ7=rV$sT|URSiQLjL*?bmm;0YT ze~u~$3~kF(r%wF`#sEU_!-o$HckbM&I&$R5|8wWg{l9YM%72DeuU>)U>B*BPK^HGx dTm{s%3;=Ubk3beB=PdvL002ovPDHLkV1lPpXQu!F diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png deleted file mode 100644 index 943f526e0a8549c4c126d79b67ff28c205812b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)C#|3X0#rzwUa~ z4X-W$E`Q0*jiza?Wm$d}MKR|J$n*RbhN0uSE)2tfrfE=B^%rQ{_8LXe-L`GKUN2Nt zg>fA56AMTX-7=NKyI9K6OJV% frjMXQB#H7Hjn-0pt{P_$00000NkvXXu0mjf(W{YA diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png deleted file mode 100644 index d9f7824c07ba908eed3d6b1799be310b8aeb0d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmV+*0pI?KP)%Cqi9HD3te>Cfd?V) zV-lD*g20ukstcku(Uxe>n=7INE7sibCI!f0$zEEPg?!&ngCMArs+z9mTlRaHUP zbs&r%8cfqPQ5?t6wk=F0jK3WK$8plKEP<^a*iC@zx^>@{2k85r=K)`T;FkcMg>Bn4 zJIUEJ5kgr}6f=P4!7z+#6h+W9%?m&ir6|ggK=&{VAO~@)AXx$c0000n0Z0~ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png deleted file mode 100644 index 539c29ddf8b9e19ee8ac723e8d213bcf5570f046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)+;*E-wS8XtUXTQ55B?qO6FH8bom!91Tb7m*+0DTMRU*Ce*5pgS?G` z7~(k|7`g+EItA5A-BqsU*>qN5n2x8(7jTN%0XSx^lxt9WsvPuGEQ6(HFEjqJkbi(o zItR%_8sf1eQ7oGH3*cDJb;pPMBBWDU$mi~%T&hB=NgIv*4J^w8+vE2DL3H08&A2Nb zcQ_cqYPA7XRbjW=fw>4^XuN0ptHNXB&S;)Z=fvo?2%!7Yb?lBc=duN|vzM6w@M^YO zw4-+O=kp7+;KL|K(=^a^-3malJDXEc^>cc5OQP6wc5S-ubiA=K{=;MurrnA#eRPkwONKXVW!Ev4Yn h_=3S;E{b9h^#|;9{FD^jXvzQp002ovPDHLkV1myWE71S| diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png deleted file mode 100644 index 4716ced7977ac6ee831c46d4a2ea3d6627cb8685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmV-30nGl1P)XyJ94K!ltyU=q@?587_|Cy}rjj2- z97wMUxn9V@cp}rn2{?EWr)1kc2cu`HH7%FA@H7yc-L3{ZVh_T@a5Rx*(scU(H@A1^ ztned_XEav~QZN`nCx44aA6=t_fX4s;002ovPDHLk FV1gcFgF65K diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png deleted file mode 100644 index e88963eee3d3dbd96c28a8ad3fadeaec25037d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&2tD_b`ia4=!T1p^2i1B64n_2hN280tLj;7$1L|DQ% zeDCD{rybDD#gq3tJgucjs}Pa$KPY6HE1At^Yt!j;{q^;A{pIClV@Y^;_|?C;`9Xuh zIW-zCIZhi$VLqR)-QE49dc8xfR-at=jQag^Iz7DrQe=tG(CG}Mz$uV_j!)m|ocfka z;`Q}+YBswV^m<=_SK=O@uGbq-yWN-4Dipp2w%uG@{D8XMvv*PWK9$RLh##Tw%`BB1 zH2h)S17fjQL&Mi8(pyV0pSR^w&}#L3HN;%5g68C;>q}8H5G|{`xQ{Ld-t^WGO|yii z(dft&hyx%RMiIk$y)6Z1I|@IOeV8bE;}CrF&@{bSgca1R6}~<83QpEQ_Z&HKs-81$faeKd@}#Ta6$}+gt)&Sp=>q>cqmfT48&mY2u&tq$@C({y}d97nr6x+*P`cy z7ziB5g%?#dWQ|8kFc_h9TE{~0Z;ywRs_GPrrLlYuJoa3-PX`B4N~N-L!L=8NqtS?V zc0v@1Bq^E9_yo~Ie0zKQbanNOc6Senzjt2#AuDV741a!p-nhK{O55A}#9u%plAw58 zr9?slzW2)0)6?hM+uOyju1V2oa&b_IHa7#bwY5u2FCjkjm jwDPUR*UV31K1lEzk@M}qRiR<#00000NkvXXu0mjf*qKiU diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png deleted file mode 100644 index c2cb6108472141fb429000d62e1ca969d2b6b545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)NklgN9 z!0eZqW&cQ<%|;SYN)Nar?u4sJ<-=e0xMS{2R1WTQr@Mn-YBgVAq;H3U?p@O zRJHxy(hVRMtDqA_EK9z+RzFp(3wJ#mOhVz;nKVsPR+`#dLvF6>4Q2i3skUwVoDg!s hL{g%&qrUv%`DGA{;Uz3aPE( z_H?`VQnA8^PGUEfminN%-9Iiiz}6;EySGKlq(IW$g&z!&~>SS5jCOA9wY<{DNdp^D6tm^3NaGYrYJRt zMv_o0Ryic5wusW8P^j=Cj54GK5j_F^TL?iUlCTSj$!prt;pl_gmkDn{XAcw#2wjgm+K6^??EY~zm^&^did0BXC&hxr zM-dLk>|)F((Z*Nf8Mgz*aInVb!O!+XC}cQ9Vq3epxq0FCiQnDXhZ=i*<7$w}Jux9S z)Q2owjVgP6FU$wQ=flzHd|m>92n2)C2LstL4<~bLa|e3eK4jRV8)kxq`4G%~^uzpI zfJe`RCYs<#K5uNn`q~Dp4%cC@vdUTM4dZa@>ECKO9p=*MDAK oUS7?do}RtMZ9h61IsWqe1!-}%wf)|4=>Px#07*qoM6N<$f+6aVQ2+n{ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png deleted file mode 100644 index 5e6e01824d8439a4f2f23381b61f1ba452836bd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZsX$K`$B>F!$vX-kyNL;iGZxx0 z@&rvj`r*mR$?*<<=6n3#O=8gTp5$ ntA{gxEK|7W#L#?Y4I4v2`A-e6wd+)YhBJ7&`njxgN@xNA&Au_^ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png deleted file mode 100644 index c06144ad474a37c57670a1a942e78a21f1cae299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^5F!Z_hjO9&q4cb`;j_ zzQom6)BJGBgAXee{=AC1_5H-AwJEpms?XeY`{X|9i;O@`aPWt7g_io|GZr(?S>|uz X7H9Zz=<0R54v@5`tDnm{r-UW|bJHzj diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png deleted file mode 100644 index b310695df72bc58d31c6ec539a4705d9d5a82730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^96&71!3HE9eb4O!QpTPxjv*Ddl4n>Jr!m`|aoE|U z8@=t%@pj37!VHVK+(ZK+55Bp%`Tyg?Ji*I+G7q+Eo)>2jPWW|x^DF6-KpF diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png deleted file mode 100644 index ee5e439d2dea50f69af6c307fef18bca80f8b779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZscKIb$B>F!Q!kztY;s^=xo9_Q zYup(J7Xg-^9XW~{rp>zN!F4%QziHX)W|<>DCO4PkNh#W3 gFY`1Z`}q&%pT&3Xf6Onf1UiGk)78&qol`;+0Efg(D*ylh diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png deleted file mode 100644 index 82925d5a9b2010e42ccba60c849acf532329aec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmV+*0pI?KP)d#YBFGOxwvFzmbCbItb+xD$x%M+>}9Cu({`e#K#?Ea7mpWC_OPS55F z(h3nsUe+WarZwZa3+rW(l?Q&Si{5Ex7cKeg!TL6LK~whS;KpKE(U=@>*3!EHj-_QG o30mH)?T6fUxgD0wIFYbjBs>WsQ0+;Y^p}W&Y|bc>rIRpP2%e&u=QOA@Fwo zpaN-9QGsbXQK1LM@r4RKa5x;P&;!HpLUw7m+eKBiRG=&$s6bIPR3Oi{R3OW0Dv+jsZ&v}5q@)5-lrxSC+O7#G5QZ6p zAf@f%|DnKU6Vvw-+O7$BUPRl4>xSmAT{uoag&tU~He9cL+O7#Guv~gnV6kw`VY?=v zzE46|kB1K*{=IhX+F>BA0~Y-M|NkE#{{Q*&=l?fu z+<5=!(Iat?;HUpk@cQ-Z|3KrKPz1ky`vy|I97XW^_wWC&U%$QpLnTmf{_qjR=gmbZ zg3q5n|9|=N<$kyzFvS0#I(6zlF!U`Mu3WkD|J=EA|BoCw^8e1AJ5?V(d|+Sz$}YQj m@#3l{Po4yU;^)ja0000I7u`iylm#d_bKoFoKv9gZh&oWgw~h@uI_>?bB~4H}uNMvu{*UY7 z49?{MaDNe3Rn?JH*Y&aMy2B!g5)8^U6B1jVi0rR{G&K4+*Rd5_fmIy_+3eu>m3d(sCJfF`y zxPv?RAHnq+!T!OotZ^$8JBQhZP<$PfSk002ovPDHLkV1nr(k+A>( diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png deleted file mode 100644 index dbd1b76e440708f299ba71a8022739011457791f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmV+-0p0$IP)LFYN7^6v-`eoG(<1W34nn9#xruqGkUDv)u9!tAcb&d!&-X7}5j zN#+ePO;e#>Q?IBO06ENLGr)!eP)U*i+s7aH34pT*!;qbY z!U1jDg75pckJB860g9pk$8kCX9xo%s&I%Ak1Sn54p#JsY1SV5`+l_BM=TnsiKiM zB;qN^q#ppmP7rHN7``n6&x@pBzoA}ZA)hNkI&}~6SP~xYv$l=|UH}sSf5&>ghUIbz z^SK6HsYkbiZV+PULRK~|On`MDXfzyC2s+u_4jyrr+!IH@7J^Pv$qcQ@u8Y=l3tRy> z77NYX%5E(hbr$gIy8@QW6)h~D5Q40LYNZbN|F{B-wLwoPco*IS;J>4)vvXGf4uS7L z;AhYlFr7{h14Kb`0jM6p19$)r-~s+00CsHmzHk7buXK{!8n&GYTie0T^#1-qTYDrN zvuUoJdvnFcI_M7}7EM4hk=|?Xm?a(C`-)hX-(;Fj(Ee^p!GIx2-Om8SFhJLJ_#n22 zgAtu{7YNa8fVs&EU`YTa3v41zuiFO{rjeIcn|^?MzWouP_U+Od-?oG-|JN({=D()8 zzPf?$H@DO_?mPP{w^uw2Sg)^deiMKpYAdvh5fAO-%6pTE^+A8|@+oNID){kMc;35v zcA9*A*mjug3MiMVz&4uDCIuUh$Nr-p9F+ciz#>j1@EDd7E?8C>=KhSNz*3HViuC7Db*W@mvFgA;Q0?2n1LS* zkAZm<#d#xq34P(1+NtYzRMj3?ULlOK58;Hi+c$L5w8T0{demNZ%5n$KkAJA#?7*$O zsG*{$!MV!-l#2(Pv+zM#wgG3^D^QXY;LN!TisKxdZaAPYOu=a{7HA#3f}74vkmpC> z#uFX1Tm|6NXAQJ)eQ?9k6y!J_xF=-{vg{?ehex%cxhUH)M8|ts`6a`2&>5*yNWFnf zx?y9c&7lk@ZSZ+@eRE1;X(UPhzP;-Y&Mz*{=zorcL*bwc{s3^7A6?y}>@WZT002ov JPDHLkV1gs`h|>T7 diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png deleted file mode 100644 index 0c7b3d1d51b6c8df19b257a5f12f6a987568225f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)Z|5Z1=WIx#Qz|kpPzSMUS4)yUtf3L-`_t`u_(L{?RKBQ$;p65 zqYJvd{Y8(Df2@DR;qW^F%etV!;4Afd7IiwOba(fgmdmB{2?ByDgR`^I>Jy~AA$oCo zI<#BjHf-_y{F{R+o92LSZhqQN6{^IbSJ3ZUc8=W;T=W9H8iq;OI)P*xwOX67&jL-O zphgvlI23_CP(b9dN~O|Vi=fv#ciyWJy>ZX6Lws|C6n0&QZbrO;TY2Aa_K=I3a){ zk2weFv?j$yqeI(Br3zB4*W0v>L?S1}TCGLfh{v;1tX7-$!6SMRi)Ex(E;m-9@gb2& zN{XdYofs?vYAqa2N>SHqP7z~4FRCWghDYXYFfoEa8$>Lj#wy^Nd=QC z!C+)9=JO>_Fc%1frI^d<#9&g5;Naj$irH+D7)-cxPtgm%KP1IWMkA0;7l_B4r&9S< zj}dvLpzsl~SbDXnC@(3j;?-^r52LGV#*)__7n8{xsbie+{(g`qlZg~jbQ2CI>@RV3 z^@HBt-ac=L@p#7m0bqlDz5rcbUejW+*mdsky*)nxpD#$!Xma)MGif{?(|kVvqP};; z{rx>XJUq~JI;GicMo&*qM|hI^Nklk2PWwOH=9(=r3JwJlNzvZl!x%8r5;Rb!2UxRZ)4=m1 z!0HW)20b?btX4N^(CPYsRjMr-Na+FgWHe~d7Cpf9a*ciqM;%Ota|w@n^&173jN1}2 z)mjS-qrN8dU~vJ@rUOQ$3HJ}iC%0{lOjNO?Z%bNvqn9gd%d)gTGpRQ3IOn&Hi_%~leCS2gEXI zxmMdi6oysh1yZF-m3K(RJETfQmuE;tmkRK{Tejs@#yhq#HW0#2*ph+(P6MQhbD-f7 zZsr$fl(8}+zW(d z!Tx8G!Gr|i#kb4Z(a+JVsRa)F!{PTg4-XH|{#9ThlT0O$Nwl5qJp#Ks`xg6qhfk8& zf~-*@PA+SbS*lX2*`bdcTds4$Csylr2L#&fRTkK#YNbi}T-g%#R{F|2!s^(9PNz>? zggPjjb#_OO5}5!?jD4c<02yVoX5ESGaj;LY*=zwGfg?&VFU>||UnC!q{kZFS2SRmRU7EP%ICH4Yw!UF-?u7V;vC>#uS zwm~$as|AI^5>3KYkk6NC5|MCHEy(3ennXC1Pz$o`y$1~Av6SH|FpMH)G6h1ZA{30P z1?hC2L?8oVUoa4J7o<`-dob#pCkZf6*Rx}RypI#`N7VuhNG1&uOJ|>}Ad$$B69kF) zeUZt6cswlyzxljjwICKtkqCms5_ml!wICYRNdy7T_EZ8Vkx0^A5Dq7-K|rkYc8G0b zpEn}?G94eCe6R#=U!4XD4mX0bNdppErS`n0)iU0Idl4X=i8 z?L-q-;n^zBSY^*F29Kq>Q{~By;QyQMKlu;G_+OrrIc(4K^NV-a*Echx(XW@2{_^|= X<$|`&IHXwW00000NkvXXu0mjfm+y{v diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java index 4d44846101cf..e264f0a29840 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java @@ -15,24 +15,38 @@ */ package com.intellij.ide.ui.laf.intellij; +import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; +import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI; import com.intellij.util.ui.JBUI; +import javax.swing.*; import javax.swing.border.Border; import javax.swing.plaf.UIResource; import java.awt.*; +import static com.intellij.ide.ui.laf.intellij.MacIntelliJButtonUI.ARC_SIZE; + /** * @author Konstantin Bulenkov */ public class MacIntelliJButtonBorder implements Border, UIResource { @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { + if (!c.hasFocus() || + c instanceof JComponent && DarculaButtonUI.isHelpButton((JComponent)c)) return; + Graphics2D g2 = (Graphics2D)g.create(); + try { + g2.translate(x, y); + DarculaUIUtil.paintFocusBorder(g2, width, height, ARC_SIZE, true); + } finally { + g2.dispose(); + } } @Override public Insets getBorderInsets(Component c) { - return JBUI.insets(2,7).asUIResource(); + return JBUI.insets(3, 3).asUIResource(); } @Override diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java index a213d4fde03a..b49c7564e2fe 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java @@ -16,8 +16,12 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.UISettings; +import com.intellij.ide.ui.laf.IntelliJLaf; import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI; import com.intellij.ui.Gray; +import com.intellij.util.ui.JBUI; +import com.intellij.util.ui.MacUIUtil; +import com.intellij.util.ui.UIUtil; import sun.swing.SwingUtilities2; import javax.swing.*; @@ -25,8 +29,8 @@ import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; import java.awt.*; -import java.awt.geom.Area; -import java.awt.geom.Rectangle2D; +import java.awt.geom.Path2D; +import java.awt.geom.RoundRectangle2D; /** * @author Konstantin Bulenkov @@ -36,11 +40,14 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { private static Rectangle textRect = new Rectangle(); private static Rectangle iconRect = new Rectangle(); + static final int ARC_SIZE = JBUI.scale(6); + @SuppressWarnings({"MethodOverridesStaticMethodOfSuperclass", "UnusedDeclaration"}) public static ComponentUI createUI(JComponent c) { return new MacIntelliJButtonUI(); } + @SuppressWarnings("UseJBColor") @Override public void paint(Graphics g, JComponent c) { if (!(c.getBorder() instanceof MacIntelliJButtonBorder) && !isComboButton(c)) { @@ -56,86 +63,87 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { icon.paintIcon(c, g, x, y); } else { AbstractButton b = (AbstractButton) c; - String text = layout(b, SwingUtilities2.getFontMetrics(b, g), - b.getWidth(), b.getHeight()); + FontMetrics fm = SwingUtilities2.getFontMetrics(b, g); + String text = isSquare(c) ? layout(b, "...", null, fm, b.getWidth(), b.getHeight()) : + layout(b, b.getText(), b.getIcon(), fm, b.getWidth(), b.getHeight()); - boolean isFocused = c.hasFocus(); - if (isSquare(c)) { - Icon icon = MacIntelliJIconCache.getIcon("browseButton"); - int x = (c.getWidth() - icon.getIconWidth()) / 2; - int y = (c.getHeight() - icon.getIconHeight()) / 2; - icon.paintIcon(c, g, x, y); - return; - } else { - int x = isFocused ? 0 : 2; - int y = isFocused ? 0 : (h - viewRect.height) / 2; - Icon icon; - icon = getLeftIcon(b); - icon.paintIcon(b, g, x, y); - x += icon.getIconWidth(); - int stop = w - (isFocused ? 0 : 2) - (getRightIcon(b).getIconWidth()); + Graphics2D g2 = (Graphics2D)g.create(); + try { + g2.translate(0, 0); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, MacUIUtil.USE_QUARTZ ? RenderingHints.VALUE_STROKE_PURE : RenderingHints.VALUE_STROKE_NORMALIZE); - Graphics gg = g.create(0, 0, w, h); - Area area = new Area(new Rectangle2D.Double(x, y, stop - x, h)); - area.intersect(new Area(gg.getClip())); - gg.setClip(area); + double lw = UIUtil.isRetina(g2) ? 0.5 : 1.0; + Insets i = c.getBorder().getBorderInsets(c); // ComboButton adds arrow width to the insets, so take the bare border. - icon = getMiddleIcon(b); - while (x < stop) { - icon.paintIcon(b, gg, x, y); - x += icon.getIconWidth(); - } - gg.dispose(); - icon = getRightIcon(b); - icon.paintIcon(b, g, stop, y); - - clearTextShiftOffset(); - } - - // Paint the Icon - if(b.getIcon() != null) { - paintIcon(g,c,iconRect); - } - - if (text != null && !text.isEmpty()){ - View v = (View) c.getClientProperty(BasicHTML.propertyKey); - if (v != null) { - v.paint(g, textRect); + // Draw background + Shape outerRect = new RoundRectangle2D.Double(i.left, i.top, w - (i.left + i.right), h - (i.top + i.bottom), + ARC_SIZE, ARC_SIZE); + Paint p; + if (isDefaultButton(c)) { + p = IntelliJLaf.isGraphite() ? + new GradientPaint(w/2, i.top, new Color(0xb2b2b7), w/2, h - (i.top + i.bottom), new Color(0x929297)) : + new GradientPaint(w/2, i.top, new Color(0x84b0f7), w/2, h - (i.top + i.bottom), new Color(0x4b80fb)); + } else if (b.isEnabled()) { + p = Gray.xFF; } else { - UISettings.setupAntialiasing(g); - paintText(g, b, textRect, text); + p = Gray.xF1; + } + + g2.setPaint(p); + g2.fill(outerRect); + + // Draw outline + Path2D outline = new Path2D.Double(Path2D.WIND_EVEN_ODD); + outline.append(outerRect, false); + outline.append(new RoundRectangle2D.Double(i.left + lw, i.top + lw, + w - lw*2 - (i.left + i.right), + h - lw*2 - (i.top + i.bottom), + ARC_SIZE - lw, ARC_SIZE - lw), false); + + if (isDefaultButton(c)) { + p = IntelliJLaf.isGraphite() ? + new GradientPaint(w/2, i.top, new Color(0xa5a5ab), w/2, h - (i.top + i.bottom), new Color(0x7d7d83)) : + new GradientPaint(w/2, i.top, new Color(0x6d9ff6), w/2, h - (i.top + i.bottom), new Color(0x3861fa)); + } else if (b.isEnabled()) { + p = new GradientPaint(w/2, i.top, Gray.xC9, w/2, h - (i.top + i.bottom), Gray.xAC); + } else { + p = new GradientPaint(w/2, i.top, Gray.xD2, w/2, h - (i.top + i.bottom), Gray.xC3); + } + + g2.setPaint(p); + g2.fill(outline); + } finally { + g2.dispose(); + } + + if (isSquare(c)) { + UISettings.setupAntialiasing(g); + paintText(g, b, textRect, text); + } else { + // Paint the Icon + if(b.getIcon() != null) { + paintIcon(g,c,iconRect); + } + + if (text != null && !text.isEmpty()){ + View v = (View) c.getClientProperty(BasicHTML.propertyKey); + if (v != null) { + v.paint(g, textRect); + } else { + UISettings.setupAntialiasing(g); + paintText(g, b, textRect, text); + } } } } } - protected static boolean isComboButton(JComponent c) { + private static boolean isComboButton(JComponent c) { return c instanceof AbstractButton && c.getClientProperty("styleCombo") == Boolean.TRUE; } - private static Icon getLeftIcon(AbstractButton button) { - return getIcon("Left", button); - } - - private static Icon getMiddleIcon(AbstractButton button) { - return getIcon("Middle", button); - } - - private static Icon getRightIcon(AbstractButton button) { - return getIcon("Right", button); - } - - private static Icon getIcon(String suffix, AbstractButton button) { - boolean isDefault = isDefaultButton(button); - boolean isFocused = button.hasFocus(); - boolean combo = isComboButton(button); - String comboPrefix = combo ? "Combo" : ""; - String iconName = "button" + comboPrefix + suffix; - return MacIntelliJIconCache.getIcon(iconName, isDefault, isFocused && !combo); - } - - private String layout(AbstractButton b, FontMetrics fm, - int width, int height) { + private String layout(AbstractButton b, String text, Icon icon, FontMetrics fm, int width, int height) { Insets i = b.getInsets(); viewRect.x = i.left; viewRect.y = i.top; @@ -151,18 +159,20 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { // layout the text and icon return SwingUtilities.layoutCompoundLabel( - b, fm, b.getText(), b.getIcon(), + b, fm, text, icon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), - viewRect, iconRect, textRect, - b.getText() == null ? 0 : b.getIconTextGap()); + viewRect, iconRect, textRect, text == null ? 0 : b.getIconTextGap()); } @Override public Dimension getPreferredSize(JComponent c) { Dimension size = super.getPreferredSize(c); - if (c.getBorder() instanceof MacIntelliJButtonBorder || isComboButton(c)) { - return new Dimension(size.width + (isComboButton(c) ? 8 : 16), 27); + if (isHelpButton(c)) { + Icon icon = MacIntelliJIconCache.getIcon("helpButton", false, false); + return new Dimension(icon.getIconWidth(), icon.getIconHeight()); + } else if (c.getBorder() instanceof MacIntelliJButtonBorder || isComboButton(c)) { + return new Dimension(size.width + (isComboButton(c) ? 10 : 18), 27); } return size; } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java index 040e489f92c0..7649a6fb64d0 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java @@ -16,14 +16,16 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; -import com.intellij.ide.ui.laf.darcula.ui.DarculaTextBorder; import com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI; +import com.intellij.openapi.ui.ErrorBorderCapable; import com.intellij.openapi.util.registry.Registry; import com.intellij.ui.Gray; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.plaf.UIResource; import java.awt.*; import java.awt.geom.Area; import java.awt.geom.Path2D; @@ -32,7 +34,7 @@ import java.awt.geom.Rectangle2D; /** * @author Konstantin Bulenkov */ -public class MacIntelliJTextBorder extends DarculaTextBorder { +public class MacIntelliJTextBorder implements Border, UIResource, ErrorBorderCapable { @Override public Insets getBorderInsets(Component c) { return JBUI.insets(3, 6).asUIResource(); @@ -84,7 +86,7 @@ public class MacIntelliJTextBorder extends DarculaTextBorder { } boolean isFocused(Component c) { - return c.hasFocus(); + return c instanceof JScrollPane ? ((JScrollPane)c).getViewport().getView().hasFocus() :c.hasFocus(); } void clipForBorder(Component c, Graphics2D g2, int width, int height) { diff --git a/platform/util/src/com/intellij/util/ui/MacUIUtil.java b/platform/util/src/com/intellij/util/ui/MacUIUtil.java index 6b5d7782a612..3329d0531ba8 100644 --- a/platform/util/src/com/intellij/util/ui/MacUIUtil.java +++ b/platform/util/src/com/intellij/util/ui/MacUIUtil.java @@ -25,7 +25,6 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.Border; -import javax.swing.plaf.TreeUI; import javax.swing.tree.DefaultTreeCellRenderer; import java.awt.*; import java.awt.geom.GeneralPath; @@ -141,6 +140,7 @@ public class MacUIUtil { ((Graphics2D)g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); } + //noinspection UseJBColor g.setColor(new Color(100, 100, 100, 200)); g.drawRect(x1, y1, width1 - 1, height1 - 1); @@ -168,7 +168,7 @@ public class MacUIUtil { @Override public Insets getBorderInsets(Component c) { - return new Insets(6, 7, 6, 7); + return new JBInsets(6, 7, 6, 7); } @Override @@ -183,6 +183,7 @@ public class MacUIUtil { return (Color)o; } + //noinspection UseJBColor return new Color(64, 113, 167); }