/** * Returns the baseline. * * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @see javax.swing.JComponent#getBaseline(int, int) * @since 1.6 */ public int getBaseline(JComponent c, int width, int height) { super.getBaseline(c, width, height); Border border = c.getBorder(); if (border instanceof AbstractBorder) { return ((AbstractBorder) border).getBaseline(c, width, height); } return -1; }
/** * Returns an enum indicating how the baseline of the component changes as the size changes. * * @throws NullPointerException {@inheritDoc} * @see javax.swing.JComponent#getBaseline(int, int) * @since 1.6 */ public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c) { super.getBaselineResizeBehavior(c); Border border = c.getBorder(); if (border instanceof AbstractBorder) { return ((AbstractBorder) border).getBaselineResizeBehavior(c); } return Component.BaselineResizeBehavior.OTHER; }
@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); } return size; }
/** * Removes the previous content border from the specified component, and sets an empty border if * there has been no border or an UIResource instance before. */ private void stripContentBorder(Object c) { if (c instanceof JComponent) { JComponent contentComp = (JComponent) c; Border contentBorder = contentComp.getBorder(); if (contentBorder == null || contentBorder instanceof UIResource) { contentComp.setBorder(handyEmptyBorder); } } }
private Insets getVisualMargin(JComponent component) { String uid = component.getUIClassID(); String style = null; if (uid == "ButtonUI" || uid == "ToggleButtonUI") { style = (String) component.getClientProperty("JButton.buttonType"); } else if (uid == "ProgressBarUI") { style = (((JProgressBar) component).getOrientation() == JProgressBar.HORIZONTAL) ? "horizontal" : "vertical"; } else if (uid == "SliderUI") { style = (((JSlider) component).getOrientation() == JProgressBar.HORIZONTAL) ? "horizontal" : "vertical"; } else if (uid == "TabbedPaneUI") { switch (((JTabbedPane) component).getTabPlacement()) { case JTabbedPane.TOP: style = "top"; break; case JTabbedPane.LEFT: style = "left"; break; case JTabbedPane.BOTTOM: style = "bottom"; break; case JTabbedPane.RIGHT: style = "right"; break; } } Insets gap = getInsets(VISUAL_MARGINS, uid, style, 0); // Take into account different positions of the button icon if (uid == "RadioButtonUI" || uid == "CheckBoxUI") { switch (((AbstractButton) component).getHorizontalTextPosition()) { case SwingConstants.RIGHT: gap = new Insets(gap.top, gap.right, gap.bottom, gap.left); break; case SwingConstants.CENTER: gap = new Insets(gap.top, gap.right, gap.bottom, gap.right); break; /* case SwingConstants.LEFT : break; */ default: gap = new Insets(gap.top, gap.left, gap.bottom, gap.right); } if (component.getBorder() instanceof EmptyBorder) { gap.left -= 2; gap.right -= 2; gap.top -= 2; gap.bottom -= 2; } } return gap; }
private boolean isFixedHeight(JComponent c) { Border b = c.getBorder(); if (b != null && b instanceof BackgroundBorder) { b = ((BackgroundBorder) b).getBackgroundBorder(); if (b != null && b instanceof QuaquaButtonBorder) { return ((QuaquaButtonBorder) b).isFixedHeight(c); } } return false; }
/** Uninstalls the UI delegate for the specified component */ public void uninstallUI(JComponent c) { frame = (JInternalFrame) c; Container cont = ((JInternalFrame) (c)).getContentPane(); if (cont instanceof JComponent) { JComponent content = (JComponent) cont; if (content.getBorder() == handyEmptyBorder) { content.setBorder(null); } } super.uninstallUI(c); }
@Override public int getIconWidth(SynthContext context) { if (context == null) { return width; } JComponent c = context.getComponent(); if (c instanceof JToolBar && ((JToolBar) c).getOrientation() == JToolBar.VERTICAL) { // we only do the -1 hack for UIResource borders, assuming // that the border is probably going to be our border if (c.getBorder() instanceof UIResource) { return c.getWidth() - 1; } else { return c.getWidth(); } } else { return scale(context, width); } }
@Override public void paint(Graphics g, JComponent c) { String style = (String) c.getClientProperty("Quaqua.Button.style"); if (style != null && style.equals("help")) { Insets insets = c.getInsets(); UIManager.getIcon("Button.helpIcon").paintIcon(c, g, insets.left, insets.top); return; } Object oldHints = QuaquaUtilities.beginGraphics((Graphics2D) g); if (((AbstractButton) c).isBorderPainted()) { Border b = c.getBorder(); if (b != null && b instanceof BackgroundBorder) { ((BackgroundBorder) b) .getBackgroundBorder() .paintBorder(c, g, 0, 0, c.getWidth(), c.getHeight()); } } super.paint(g, c); QuaquaUtilities.endGraphics((Graphics2D) g, oldHints); Debug.paint(g, c, this); }
@Override public void paint(Graphics g, JComponent c) { final Border border = c.getBorder(); final GraphicsConfig config = GraphicsUtil.setupAAPainting(g); final boolean square = isSquare(c); if (c.isEnabled() && border != null) { final Insets ins = border.getBorderInsets(c); final int yOff = (ins.top + ins.bottom) / 4; if (!square) { if (((JButton) c).isDefaultButton()) { ((Graphics2D) g) .setPaint( UIUtil.getGradientPaint( 0, 0, getSelectedButtonColor1(), 0, c.getHeight(), getSelectedButtonColor2())); } else { ((Graphics2D) g) .setPaint( UIUtil.getGradientPaint( 0, 0, getButtonColor1(), 0, c.getHeight(), getButtonColor2())); } } g.fillRoundRect( square ? 2 : 4, yOff, c.getWidth() - 2 * 4, c.getHeight() - 2 * yOff, square ? 3 : 5, square ? 3 : 5); } config.restore(); super.paint(g, c); }
@Override public void paint(Graphics g, JComponent c) { if (!(c.getBorder() instanceof MacIntelliJButtonBorder) && !isComboButton(c)) { super.paint(g, c); return; } int w = c.getWidth(); int h = c.getHeight(); if (isHelpButton(c)) { Icon icon = MacIntelliJIconCache.getIcon("helpButton", false, c.hasFocus()); int x = (w - icon.getIconWidth()) / 2; int y = (h - icon.getIconHeight()) / 2; icon.paintIcon(c, g, x, y); } else { AbstractButton b = (AbstractButton) c; String text = layout(b, SwingUtilities2.getFontMetrics(b, g), 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()); Graphics gg = g.create(0, 0, w, h); gg.setClip(x, y, stop - x, h); 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); } else { UISettings.setupAntialiasing(g); paintText(g, b, textRect, text); } } } }
protected void paintBackground( Graphics g, int x, int y, int w, int h, boolean horizontal, JComponent component) { Graphics2D g2d = (Graphics2D) g.create(); CEclipseBorder ec = null; Insets ins = getOutsideInsets(); x = ins.left; y = ins.top; if (getOrientation().isHorizontal()) { w -= ins.left + ins.right; h -= ins.top + ins.bottom; } else { w -= ins.top + ins.bottom; h -= ins.left + ins.right; } if (component.getBorder() instanceof CompoundBorder) { CompoundBorder cb = (CompoundBorder) component.getBorder(); CompoundBorder bb = (CompoundBorder) cb.getInsideBorder(); ec = (CEclipseBorder) bb.getOutsideBorder(); } if (w > 0 && h > 0) { if (glassStrip != null) { BufferedImage im = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D gg = im.createGraphics(); gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); gg.setColor(component.getBackground()); if (ec != null) { gg.fill(ec.createShape(0, 0, w, h, ec.getCornerRadius())); } else { gg.fillRect(0, 0, w, h); } if (!isSelected()) { gg.setComposite(AlphaComposite.SrcIn); } else { gg.setComposite(AlphaComposite.SrcAtop); } try { glass.Render2Graphics(new Dimension(w, h), gg, glassStrip, true); } catch (Exception e) { glass.Render2Graphics(new Dimension(w, h), gg, CGlassFactory.VALUE_STEEL, true); } gg.dispose(); if (!getOrientation().isHorizontal()) { AffineTransform atTrans = AffineTransform.getTranslateInstance(x /* + h */, y + w); atTrans.concatenate(COutlineHelper.tRot90CCW); g2d.drawImage(im, atTrans, null); } else { g2d.drawImage(im, x, y, null); } } g2d.dispose(); } }