public void paint(Graphics g, JComponent c) { Dimension s = c.getSize(); if (WindowsMenuItemUI.isVistaPainting()) { int x = 1; Component parent = c.getParent(); if (parent instanceof JComponent) { Object gutterOffsetObject = ((JComponent) parent).getClientProperty(WindowsPopupMenuUI.GUTTER_OFFSET_KEY); if (gutterOffsetObject instanceof Integer) { /* * gutter offset is in parent's coordinates. * See comment in * WindowsPopupMenuUI.getTextOffset(JComponent) */ x = ((Integer) gutterOffsetObject).intValue() - c.getX(); x += WindowsPopupMenuUI.getGutterWidth(); } } Skin skin = XPStyle.getXP().getSkin(c, Part.MP_POPUPSEPARATOR); int skinHeight = skin.getHeight(); int y = (s.height - skinHeight) / 2; skin.paintSkin(g, x, y, s.width - x - 1, skinHeight, State.NORMAL); } else { int y = s.height / 2; g.setColor(c.getForeground()); g.drawLine(1, y - 1, s.width - 2, y - 1); g.setColor(c.getBackground()); g.drawLine(1, y, s.width - 2, y); } }
void paintSkin(Skin skin, Graphics _g, int dx, int dy, int dw, int dh, State state) { assert SwingUtilities.isEventDispatchThread(); updateProgress(); if (!isDone()) { Graphics2D g = (Graphics2D) _g.create(); skin.paintSkinRaw(g, dx, dy, dw, dh, startState); float alpha; if (isForward) { alpha = progress; } else { alpha = 1 - progress; } g.setComposite(AlphaComposite.SrcOver.derive(alpha)); skin.paintSkinRaw(g, dx, dy, dw, dh, state); g.dispose(); } else { skin.paintSkinRaw(_g, dx, dy, dw, dh, state); } }
static void paintSkin( JComponent component, Skin skin, Graphics g, int dx, int dy, int dw, int dh, State state) { if (VISTA_ANIMATION_DISABLED) { skin.paintSkinRaw(g, dx, dy, dw, dh, state); return; } triggerAnimation(component, skin.part, state); AnimationController controller = getAnimationController(); synchronized (controller) { AnimationState animationState = null; Map<Part, AnimationState> map = controller.animationStateMap.get(component); if (map != null) { animationState = map.get(skin.part); } if (animationState != null) { animationState.paintSkin(skin, g, dx, dy, dw, dh, state); } else { skin.paintSkinRaw(g, dx, dy, dw, dh, state); } } }