< prev index next >

src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java

Print this page




  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt.windows;
  27 
  28 import java.awt.peer.TaskbarPeer;
  29 import java.awt.*;
  30 import java.awt.im.InputMethodHighlight;
  31 import java.awt.im.spi.InputMethodDescriptor;
  32 import java.awt.image.*;
  33 import java.awt.peer.*;

  34 import java.awt.event.KeyEvent;

  35 import java.awt.datatransfer.Clipboard;

  36 import java.awt.TrayIcon;
  37 import java.beans.PropertyChangeListener;
  38 import java.security.AccessController;
  39 import java.security.PrivilegedAction;

  40 
  41 import sun.awt.AWTAccessor;
  42 import sun.awt.AppContext;
  43 import sun.awt.AWTAutoShutdown;
  44 import sun.awt.AWTPermissions;
  45 import sun.awt.AppContext;
  46 import sun.awt.LightweightFrame;
  47 import sun.awt.SunToolkit;
  48 import sun.awt.util.ThreadGroupUtils;
  49 import sun.awt.Win32GraphicsDevice;
  50 import sun.awt.Win32GraphicsEnvironment;
  51 import sun.awt.datatransfer.DataTransferer;
  52 import sun.java2d.d3d.D3DRenderQueue;
  53 import sun.java2d.opengl.OGLRenderQueue;
  54 
  55 import sun.print.PrintJob2D;
  56 
  57 import java.awt.dnd.DragSource;
  58 import java.awt.dnd.DragGestureListener;
  59 import java.awt.dnd.DragGestureEvent;


1067     public boolean useBufferPerWindow() {
1068         return !Win32GraphicsEnvironment.isDWMCompositionEnabled();
1069     }
1070 
1071     @Override
1072     public void grab(Window w) {
1073         final Object peer = AWTAccessor.getComponentAccessor().getPeer(w);
1074         if (peer != null) {
1075             ((WWindowPeer) peer).grab();
1076         }
1077     }
1078 
1079     @Override
1080     public void ungrab(Window w) {
1081         final Object peer = AWTAccessor.getComponentAccessor().getPeer(w);
1082         if (peer != null) {
1083             ((WWindowPeer) peer).ungrab();
1084         }
1085     }
1086 























































1087     @Override
1088     public native boolean syncNativeQueue(final long timeout);
1089 
1090     @Override
1091     public boolean isDesktopSupported() {
1092         return true;
1093     }
1094 
1095     @Override
1096     public DesktopPeer createDesktopPeer(Desktop target) {
1097         return new WDesktopPeer();
1098     }
1099 
1100     @Override
1101     public boolean isTaskbarSupported() {
1102         return WTaskbarPeer.isTaskbarSupported();
1103     }
1104 
1105     @Override
1106     public TaskbarPeer createTaskbarPeer(Taskbar target) {




  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt.windows;
  27 
  28 import java.awt.peer.TaskbarPeer;
  29 import java.awt.*;
  30 import java.awt.im.InputMethodHighlight;
  31 import java.awt.im.spi.InputMethodDescriptor;
  32 import java.awt.image.*;
  33 import java.awt.peer.*;
  34 import java.awt.event.FocusEvent;
  35 import java.awt.event.KeyEvent;
  36 import java.awt.event.MouseEvent;
  37 import java.awt.datatransfer.Clipboard;
  38 import java.awt.TextComponent;
  39 import java.awt.TrayIcon;
  40 import java.beans.PropertyChangeListener;
  41 import java.security.AccessController;
  42 import java.security.PrivilegedAction;
  43 import javax.swing.text.JTextComponent;
  44 
  45 import sun.awt.AWTAccessor;
  46 import sun.awt.AppContext;
  47 import sun.awt.AWTAutoShutdown;
  48 import sun.awt.AWTPermissions;
  49 import sun.awt.AppContext;
  50 import sun.awt.LightweightFrame;
  51 import sun.awt.SunToolkit;
  52 import sun.awt.util.ThreadGroupUtils;
  53 import sun.awt.Win32GraphicsDevice;
  54 import sun.awt.Win32GraphicsEnvironment;
  55 import sun.awt.datatransfer.DataTransferer;
  56 import sun.java2d.d3d.D3DRenderQueue;
  57 import sun.java2d.opengl.OGLRenderQueue;
  58 
  59 import sun.print.PrintJob2D;
  60 
  61 import java.awt.dnd.DragSource;
  62 import java.awt.dnd.DragGestureListener;
  63 import java.awt.dnd.DragGestureEvent;


1071     public boolean useBufferPerWindow() {
1072         return !Win32GraphicsEnvironment.isDWMCompositionEnabled();
1073     }
1074 
1075     @Override
1076     public void grab(Window w) {
1077         final Object peer = AWTAccessor.getComponentAccessor().getPeer(w);
1078         if (peer != null) {
1079             ((WWindowPeer) peer).grab();
1080         }
1081     }
1082 
1083     @Override
1084     public void ungrab(Window w) {
1085         final Object peer = AWTAccessor.getComponentAccessor().getPeer(w);
1086         if (peer != null) {
1087             ((WWindowPeer) peer).ungrab();
1088         }
1089     }
1090 
1091     ///////////////////////////////////////////////////////////////////////////
1092     // The following code is used for support of automatic showing of the touch
1093     // keyboard for text components and is accessed only from EDT.
1094     ///////////////////////////////////////////////////////////////////////////
1095     private Component compOnTouchDownEvent;
1096     private Component compOnMousePressedEvent;
1097 
1098     @Override
1099     public void showOrHideTouchKeyboard(Component comp, AWTEvent e) {
1100         if ((comp == null) || (e == null) ||
1101             (!(comp instanceof TextComponent) &&
1102                 !(comp instanceof JTextComponent))) {
1103             return;
1104         }
1105 
1106         if ((e instanceof MouseEvent) && comp.isEnabled() &&
1107             (((comp instanceof TextComponent) &&
1108                     ((TextComponent)comp).isEditable()) ||
1109                 ((comp instanceof JTextComponent) &&
1110                     ((JTextComponent)comp).isEditable()))) {
1111             MouseEvent me = (MouseEvent)e;
1112             if (me.getID() == MouseEvent.MOUSE_PRESSED) {
1113                 if (AWTAccessor.getMouseEventAccessor()
1114                         .isCausedByTouchEvent(me)) {
1115                     compOnTouchDownEvent = comp;
1116                 } else {
1117                     compOnMousePressedEvent = comp;
1118                 }
1119             } else if (me.getID() == MouseEvent.MOUSE_RELEASED) {
1120                 if (AWTAccessor.getMouseEventAccessor()
1121                         .isCausedByTouchEvent(me)) {
1122                     if (compOnTouchDownEvent == comp) {
1123                         showTouchKeyboard(true);
1124                     }
1125                     compOnTouchDownEvent = null;
1126                 } else {
1127                     if (compOnMousePressedEvent == comp) {
1128                         showTouchKeyboard(false);
1129                     }
1130                     compOnMousePressedEvent = null;
1131                 }
1132             }
1133         } else if (e instanceof FocusEvent) {
1134             if (e.getID() == FocusEvent.FOCUS_LOST) {
1135                 hideTouchKeyboard();
1136             }
1137         }
1138     }
1139 
1140     private native void showTouchKeyboard(boolean causedByTouchEvent);
1141     private native void hideTouchKeyboard();
1142     ///////////////////////////////////////////////////////////////////////////
1143     // End of the touch keyboard related code.
1144     ///////////////////////////////////////////////////////////////////////////
1145 
1146     @Override
1147     public native boolean syncNativeQueue(final long timeout);
1148 
1149     @Override
1150     public boolean isDesktopSupported() {
1151         return true;
1152     }
1153 
1154     @Override
1155     public DesktopPeer createDesktopPeer(Desktop target) {
1156         return new WDesktopPeer();
1157     }
1158 
1159     @Override
1160     public boolean isTaskbarSupported() {
1161         return WTaskbarPeer.isTaskbarSupported();
1162     }
1163 
1164     @Override
1165     public TaskbarPeer createTaskbarPeer(Taskbar target) {


< prev index next >