Search in sources :

Example 46 with SunToolkit

use of sun.awt.SunToolkit in project jdk8u_jdk by JetBrains.

the class RepaintManager method getVolatileOffscreenBuffer.

/**
   * Return a volatile offscreen buffer that should be used as a
   * double buffer with the specified component <code>c</code>.
   * The image returned will be an instance of VolatileImage, or null
   * if a VolatileImage object could not be instantiated.
   * This buffer might be smaller than <code>(proposedWidth,proposedHeight)</code>.
   * This happens when the maximum double buffer size has been set for this
   * repaint manager.
   *
   * @see java.awt.image.VolatileImage
   * @since 1.4
   */
public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight) {
    RepaintManager delegate = getDelegate(c);
    if (delegate != null) {
        return delegate.getVolatileOffscreenBuffer(c, proposedWidth, proposedHeight);
    }
    // If the window is non-opaque, it's double-buffered at peer's level
    Window w = (c instanceof Window) ? (Window) c : SwingUtilities.getWindowAncestor(c);
    if (!w.isOpaque()) {
        Toolkit tk = Toolkit.getDefaultToolkit();
        if ((tk instanceof SunToolkit) && (((SunToolkit) tk).needUpdateWindow())) {
            return null;
        }
    }
    GraphicsConfiguration config = c.getGraphicsConfiguration();
    if (config == null) {
        config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
    }
    Dimension maxSize = getDoubleBufferMaximumSize();
    int width = proposedWidth < 1 ? 1 : (proposedWidth > maxSize.width ? maxSize.width : proposedWidth);
    int height = proposedHeight < 1 ? 1 : (proposedHeight > maxSize.height ? maxSize.height : proposedHeight);
    VolatileImage image = volatileMap.get(config);
    if (image == null || image.getWidth() < width || image.getHeight() < height) {
        if (image != null) {
            image.flush();
        }
        image = config.createCompatibleVolatileImage(width, height, volatileBufferType);
        volatileMap.put(config, image);
    }
    return image;
}
Also used : VolatileImage(java.awt.image.VolatileImage) SunToolkit(sun.awt.SunToolkit) SunToolkit(sun.awt.SunToolkit)

Example 47 with SunToolkit

use of sun.awt.SunToolkit in project jdk8u_jdk by JetBrains.

the class CPlatformResponder method handleMouseEvent.

/**
     * Handles mouse events.
     */
void handleMouseEvent(PlatformWindow platformWindow, int eventType, int modifierFlags, int buttonNumber, int clickCount, int x, int y, int absoluteX, int absoluteY) {
    final SunToolkit tk = (SunToolkit) Toolkit.getDefaultToolkit();
    if ((buttonNumber > 2 && !tk.areExtraMouseButtonsEnabled()) || buttonNumber > tk.getNumberOfButtons() - 1) {
        return;
    }
    int jeventType = isNpapiCallback ? NSEvent.npToJavaEventType(eventType) : NSEvent.nsToJavaEventType(eventType);
    boolean dragged = jeventType == MouseEvent.MOUSE_DRAGGED;
    if (// ignore dragged event that does not change any location
    dragged && lastDraggedAbsoluteX == absoluteX && lastDraggedRelativeX == x && lastDraggedAbsoluteY == absoluteY && lastDraggedRelativeY == y)
        return;
    if (dragged || jeventType == MouseEvent.MOUSE_PRESSED) {
        lastDraggedAbsoluteX = absoluteX;
        lastDraggedAbsoluteY = absoluteY;
        lastDraggedRelativeX = x;
        lastDraggedRelativeY = y;
    }
    int jbuttonNumber = MouseEvent.NOBUTTON;
    int jclickCount = 0;
    if (jeventType != MouseEvent.MOUSE_MOVED && jeventType != MouseEvent.MOUSE_ENTERED && jeventType != MouseEvent.MOUSE_EXITED) {
        jbuttonNumber = NSEvent.nsToJavaButton(buttonNumber);
        jclickCount = clickCount;
    }
    int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber, modifierFlags);
    boolean jpopupTrigger = NSEvent.isPopupTrigger(jmodifiers);
    eventNotifier.notifyMouseEvent(platformWindow, jeventType, System.currentTimeMillis(), jbuttonNumber, x, y, absoluteX, absoluteY, jmodifiers, jclickCount, jpopupTrigger, null);
}
Also used : SunToolkit(sun.awt.SunToolkit)

Example 48 with SunToolkit

use of sun.awt.SunToolkit in project jdk8u_jdk by JetBrains.

the class AWTUtilities method isWindowTranslucencySupported.

private static boolean isWindowTranslucencySupported() {
    /*
         * Per-pixel alpha is supported if all the conditions are TRUE:
         *    1. The toolkit is a sort of SunToolkit
         *    2. The toolkit supports translucency in general
         *        (isWindowTranslucencySupported())
         *    3. There's at least one translucency-capable
         *        GraphicsConfiguration
         */
    Toolkit curToolkit = Toolkit.getDefaultToolkit();
    if (!(curToolkit instanceof SunToolkit)) {
        return false;
    }
    if (!((SunToolkit) curToolkit).isWindowTranslucencySupported()) {
        return false;
    }
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    // see CR 6661196 for more details.
    if (isTranslucencyCapable(env.getDefaultScreenDevice().getDefaultConfiguration())) {
        return true;
    }
    // ... otherwise iterate through all the GCs.
    GraphicsDevice[] devices = env.getScreenDevices();
    for (int i = 0; i < devices.length; i++) {
        GraphicsConfiguration[] configs = devices[i].getConfigurations();
        for (int j = 0; j < configs.length; j++) {
            if (isTranslucencyCapable(configs[j])) {
                return true;
            }
        }
    }
    return false;
}
Also used : SunToolkit(sun.awt.SunToolkit) SunToolkit(sun.awt.SunToolkit)

Example 49 with SunToolkit

use of sun.awt.SunToolkit in project jdk8u_jdk by JetBrains.

the class UIManager method getSystemLookAndFeelClassName.

/**
     * Returns the name of the <code>LookAndFeel</code> class that implements
     * the native system look and feel if there is one, otherwise
     * the name of the default cross platform <code>LookAndFeel</code>
     * class. This value can be overriden by setting the
     * <code>swing.systemlaf</code> system property.
     *
     * @return the <code>String</code> of the <code>LookAndFeel</code>
     *          class
     *
     * @see #setLookAndFeel
     * @see #getCrossPlatformLookAndFeelClassName
     */
public static String getSystemLookAndFeelClassName() {
    String systemLAF = AccessController.doPrivileged(new GetPropertyAction("swing.systemlaf"));
    if (systemLAF != null) {
        return systemLAF;
    }
    OSInfo.OSType osType = AccessController.doPrivileged(OSInfo.getOSTypeAction());
    if (osType == OSInfo.OSType.WINDOWS) {
        return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
    } else {
        String desktop = AccessController.doPrivileged(new GetPropertyAction("sun.desktop"));
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        if ("gnome".equals(desktop) && toolkit instanceof SunToolkit && ((SunToolkit) toolkit).isNativeGTKAvailable()) {
            // May be set on Linux and Solaris boxs.
            return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
        }
        if (osType == OSInfo.OSType.MACOSX) {
            if (toolkit.getClass().getName().equals("sun.lwawt.macosx.LWCToolkit")) {
                return "com.apple.laf.AquaLookAndFeel";
            }
        }
        if (osType == OSInfo.OSType.SOLARIS) {
            return "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
        }
    }
    return getCrossPlatformLookAndFeelClassName();
}
Also used : OSInfo(sun.awt.OSInfo) GetPropertyAction(sun.security.action.GetPropertyAction) SunToolkit(sun.awt.SunToolkit) SunToolkit(sun.awt.SunToolkit) Toolkit(java.awt.Toolkit)

Example 50 with SunToolkit

use of sun.awt.SunToolkit in project jdk8u_jdk by JetBrains.

the class CTrayIcon method handleMouseEvent.

//invocation from the AWTTrayIcon.m
private void handleMouseEvent(NSEvent nsEvent) {
    int buttonNumber = nsEvent.getButtonNumber();
    final SunToolkit tk = (SunToolkit) Toolkit.getDefaultToolkit();
    if ((buttonNumber > 2 && !tk.areExtraMouseButtonsEnabled()) || buttonNumber > tk.getNumberOfButtons() - 1) {
        return;
    }
    int jeventType = NSEvent.nsToJavaEventType(nsEvent.getType());
    int jbuttonNumber = MouseEvent.NOBUTTON;
    int jclickCount = 0;
    if (jeventType != MouseEvent.MOUSE_MOVED) {
        jbuttonNumber = NSEvent.nsToJavaButton(buttonNumber);
        jclickCount = nsEvent.getClickCount();
    }
    int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber, nsEvent.getModifierFlags());
    boolean isPopupTrigger = NSEvent.isPopupTrigger(jmodifiers);
    int eventButtonMask = (jbuttonNumber > 0) ? MouseEvent.getMaskForButton(jbuttonNumber) : 0;
    long when = System.currentTimeMillis();
    if (jeventType == MouseEvent.MOUSE_PRESSED) {
        mouseClickButtons |= eventButtonMask;
    } else if (jeventType == MouseEvent.MOUSE_DRAGGED) {
        mouseClickButtons = 0;
    }
    // The MouseEvent's coordinates are relative to screen
    int absX = nsEvent.getAbsX();
    int absY = nsEvent.getAbsY();
    MouseEvent mouseEvent = new MouseEvent(dummyFrame, jeventType, when, jmodifiers, absX, absY, absX, absY, jclickCount, isPopupTrigger, jbuttonNumber);
    mouseEvent.setSource(target);
    postEvent(mouseEvent);
    // fire ACTION event
    if (jeventType == MouseEvent.MOUSE_PRESSED && isPopupTrigger) {
        final String cmd = target.getActionCommand();
        final ActionEvent event = new ActionEvent(target, ActionEvent.ACTION_PERFORMED, cmd);
        postEvent(event);
    }
    // synthesize CLICKED event
    if (jeventType == MouseEvent.MOUSE_RELEASED) {
        if ((mouseClickButtons & eventButtonMask) != 0) {
            MouseEvent clickEvent = new MouseEvent(dummyFrame, MouseEvent.MOUSE_CLICKED, when, jmodifiers, absX, absY, absX, absY, jclickCount, isPopupTrigger, jbuttonNumber);
            clickEvent.setSource(target);
            postEvent(clickEvent);
        }
        mouseClickButtons &= ~eventButtonMask;
    }
}
Also used : SunToolkit(sun.awt.SunToolkit)

Aggregations

SunToolkit (sun.awt.SunToolkit)120 Robot (java.awt.Robot)26 Point (java.awt.Point)9 Frame (java.awt.Frame)7 JFrame (javax.swing.JFrame)7 BufferedImage (java.awt.image.BufferedImage)5 Rectangle (java.awt.Rectangle)4 FlowLayout (java.awt.FlowLayout)3 TextField (java.awt.TextField)3 Toolkit (java.awt.Toolkit)3 MouseEvent (java.awt.event.MouseEvent)3 JTableHeader (javax.swing.table.JTableHeader)3 Component (java.awt.Component)2 KeyEvent (java.awt.event.KeyEvent)2 VolatileImage (java.awt.image.VolatileImage)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2 File (java.io.File)2 IOException (java.io.IOException)2 Field (java.lang.reflect.Field)2 URL (java.net.URL)2