package xdman.ui.laf; import static xdman.util.XDMUtils.getScaledInt; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuUI; import xdman.ui.res.ColorResource; public class XDMMenuUI extends BasicMenuUI { Color colorSelect, colorBg; public XDMMenuUI() { this.colorBg = ColorResource.getDarkerBgColor(); this.colorSelect = ColorResource.getSelectionColor(); } public static ComponentUI createUI(JComponent c) { return new XDMMenuUI(); } @Override public void installUI(JComponent c) { super.installUI(c); if (c instanceof AbstractButton) { AbstractButton btn = (AbstractButton) c; // btn.setMargin(new Insets(10,10,10,10)); btn.setBorder(new EmptyBorder(getScaledInt(5), getScaledInt(10), getScaledInt(5), getScaledInt(10))); // btn.setIcon(new XDMBlankIcon(15, 10)); btn.setBorderPainted(false); // btn.setMargin(new Insets(10, 10, 10, 10)); // btn.setFont(new Font(Font.DIALOG, Font.PLAIN, 12)); } } protected void paintButtonPressed(Graphics g, AbstractButton b) { Color c = g.getColor(); Graphics2D g2 = (Graphics2D) g; g2.setPaint(colorSelect); g2.fillRect(0, 0, b.getWidth(), b.getHeight()); // if ("THEME".equals(b.getName()) || "CTX_SORT".equals(b.getName())) { // g2.setPaint(gradPressed); // int gapx = 0; // // g2.fillRect(gapx + 2, 0, b.getWidth() - (4 + gapx + 2), b // .getHeight() - 2); // g2.setColor(Color.LIGHT_GRAY); // g2.drawRect(gapx + 2, 0, b.getWidth() - (4 + gapx + 2), b // .getHeight() - 2); // if (menuItem.getIcon() != null) { // int gap = menuItem.getIcon().getIconWidth() + 2; // g.setColor(this.darkColor); // g.drawLine(gap, 1, gap, menuItem.getHeight() - 3); // g.setColor(this.lightColor2); // g.drawLine(gap + 1, 1, gap + 1, menuItem.getHeight() - 3); // } // } else { // g2.setPaint(gradPressed); // g2.fillRoundRect(0, 0, b.getWidth() - 1, b.getHeight() - 1, 4, 4); // g2.setColor(Color.LIGHT_GRAY); // g2.drawRoundRect(0, 0, b.getWidth() - 1, b.getHeight() - 1, 4, 4); // } g.setColor(c); } @Override protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor) { ButtonModel model = menuItem.getModel(); Color oldColor = g.getColor(); if (model.isArmed() || (menuItem instanceof JMenu && model.isSelected())) { paintButtonPressed(g, menuItem); } else { g.setColor(this.colorBg); // g.fillRect(0, 0, menuItem.getWidth(), menuItem.getHeight()); // g.fillRect(0, 0, menuItem.getWidth(), menuItem.getHeight());//(0, // 0, gap + 1, menuItem.getHeight()); // g.drawLine(gap + 1, 0, gap + 1, menuItem.getHeight()); // if (menuItem.getIcon() != null) { // int gap = menuItem.getIcon().getIconWidth() + 2; // g.setColor(this.darkColor); // g.drawLine(gap, 0, gap, menuItem.getHeight()); // g.setColor(this.lightColor); // g.drawLine(gap + 1, 0, gap + 1, menuItem.getHeight()); // } } g.setColor(oldColor); } // @Override // public void paint(Graphics g, JComponent c) { // Graphics2D g2d=(Graphics2D) g; // Toolkit tk = Toolkit.getDefaultToolkit(); // Map map = (Map)(tk.getDesktopProperty("awt.font.desktophints")); // if (map != null) { // g2d.addRenderingHints(map); // } // // super.paint(g2d, c); // } }