1 /*
2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
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.X11;
27
28 import java.awt.AWTException;
29 import java.awt.Component;
30 import java.awt.Container;
31 import java.awt.Rectangle;
32 import java.awt.im.spi.InputMethodContext;
33 import java.awt.peer.ComponentPeer;
34 import sun.awt.X11InputMethod;
35
36 import sun.util.logging.PlatformLogger;
37
38 /**
39 * Input Method Adapter for XIM (without Motif)
40 *
41 * @author JavaSoft International
42 */
43 public class XInputMethod extends X11InputMethod {
44 private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XInputMethod");
45
46 public XInputMethod() throws AWTException {
47 super();
48 }
49
50 public void setInputMethodContext(InputMethodContext context) {
51 context.enableClientWindowNotification(this, true);
52 }
53
120 return null;
121 }
122
123 /*
124 * Subclasses should override disposeImpl() instead of dispose(). Client
125 * code should always invoke dispose(), never disposeImpl().
126 */
127 protected synchronized void disposeImpl() {
128 super.disposeImpl();
129 clientComponentWindow = null;
130 }
131
132 protected void awtLock() {
133 XToolkit.awtLock();
134 }
135
136 protected void awtUnlock() {
137 XToolkit.awtUnlock();
138 }
139
140 @SuppressWarnings("deprecation")
141 long getCurrentParentWindow() {
142 return ((XWindow)clientComponentWindow.getPeer()).getContentWindow();
143 }
144
145 /*
146 * Native methods
147 */
148 private native boolean openXIMNative(long display);
149 private native boolean createXICNative(long window);
150 private native void setXICFocusNative(long window,
151 boolean value, boolean active);
152 private native void adjustStatusWindow(long window);
153 }
|
1 /*
2 * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
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.X11;
27
28 import java.awt.AWTException;
29 import java.awt.Component;
30 import java.awt.Container;
31 import java.awt.Rectangle;
32 import java.awt.im.spi.InputMethodContext;
33 import java.awt.peer.ComponentPeer;
34
35 import sun.awt.AWTAccessor;
36 import sun.awt.X11InputMethod;
37
38 import sun.util.logging.PlatformLogger;
39
40 /**
41 * Input Method Adapter for XIM (without Motif)
42 *
43 * @author JavaSoft International
44 */
45 public class XInputMethod extends X11InputMethod {
46 private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XInputMethod");
47
48 public XInputMethod() throws AWTException {
49 super();
50 }
51
52 public void setInputMethodContext(InputMethodContext context) {
53 context.enableClientWindowNotification(this, true);
54 }
55
122 return null;
123 }
124
125 /*
126 * Subclasses should override disposeImpl() instead of dispose(). Client
127 * code should always invoke dispose(), never disposeImpl().
128 */
129 protected synchronized void disposeImpl() {
130 super.disposeImpl();
131 clientComponentWindow = null;
132 }
133
134 protected void awtLock() {
135 XToolkit.awtLock();
136 }
137
138 protected void awtUnlock() {
139 XToolkit.awtUnlock();
140 }
141
142 long getCurrentParentWindow() {
143 XWindow peer = AWTAccessor.getComponentAccessor()
144 .getPeer(clientComponentWindow);
145 return peer.getContentWindow();
146 }
147
148 /*
149 * Native methods
150 */
151 private native boolean openXIMNative(long display);
152 private native boolean createXICNative(long window);
153 private native void setXICFocusNative(long window,
154 boolean value, boolean active);
155 private native void adjustStatusWindow(long window);
156 }
|