win10 laf: decoration for help button in dialog wrapper

This commit is contained in:
Konstantin Bulenkov
2016-07-05 15:14:37 +02:00
parent b3cd50ab52
commit e5bf796c72
@@ -47,6 +47,7 @@ import com.intellij.ui.components.JBScrollPane;
import com.intellij.ui.components.panels.NonOpaquePanel;
import com.intellij.util.Alarm;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IconUtil;
import com.intellij.util.TimeoutUtil;
import com.intellij.util.ui.DialogUtil;
import com.intellij.util.ui.JBUI;
@@ -543,11 +544,7 @@ public abstract class DialogWrapper {
}
if (hasHelpToMoveToLeftSide) {
JButton helpButton = new JButton(getHelpAction());
helpButton.putClientProperty("JButton.buttonType", "help");
helpButton.setText("");
helpButton.setMargin(insets);
helpButton.setToolTipText(ActionsBundle.actionDescription("HelpTopics"));
JButton helpButton = createHelpButton(insets);
panel.add(helpButton, BorderLayout.WEST);
}
@@ -580,6 +577,32 @@ public abstract class DialogWrapper {
return panel;
}
@NotNull
protected JButton createHelpButton(Insets insets) {
final JButton helpButton;
if ((SystemInfo.isWindows && UIUtil.isUnderIntelliJLaF() && Registry.is("ide.intellij.laf.win10.ui"))) {
helpButton = new JButton(getHelpAction()) {
@Override
public void paint(Graphics g) {
IconUtil.paintInCenterOf(this, g, AllIcons.Windows.WinHelp);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(AllIcons.Windows.WinHelp.getIconWidth(), AllIcons.Windows.WinHelp.getIconHeight());
}
};
helpButton.setOpaque(false);
} else {
helpButton = new JButton(getHelpAction());
}
helpButton.putClientProperty("JButton.buttonType", "help");
helpButton.setText("");
helpButton.setMargin(insets);
helpButton.setToolTipText(ActionsBundle.actionDescription("HelpTopics"));
return helpButton;
}
protected boolean shouldAddErrorNearButtons() {
return false;
}