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.windows;
27
28 import java.awt.*;
29 import sun.awt.GlobalCursorManager;
30
31 public final class WGlobalCursorManager extends GlobalCursorManager {
32 private static WGlobalCursorManager manager;
33
34 public static GlobalCursorManager getCursorManager() {
35 if (manager == null) {
36 manager = new WGlobalCursorManager();
37 }
38 return manager;
39 }
40
41 /**
42 * Should be called in response to a native mouse enter or native mouse
43 * button released message. Should not be called during a mouse drag.
44 */
45 public static void nativeUpdateCursor(Component heavy) {
46 WGlobalCursorManager.getCursorManager().updateCursorLater(heavy);
47 }
48
49 protected native void setCursor(Component comp, Cursor cursor, boolean u);
50 protected native void getCursorPos(Point p);
51 protected native Component findComponentAt(Container con, int x, int y);
52 /*
53 * two native methods to call corresponding methods in Container and
54 * Component
55 */
56 protected native Component findHeavyweightUnderCursor(boolean useCache);
57 protected native Point getLocationOnScreen(Component com);
58 }
|
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.windows;
27
28 import java.awt.*;
29 import sun.awt.GlobalCursorManager;
30 import sun.awt.LightweightFrame;
31 import sun.swing.JLightweightFrame;
32
33 public final class WGlobalCursorManager extends GlobalCursorManager {
34 private static WGlobalCursorManager manager;
35
36 public static GlobalCursorManager getCursorManager() {
37 if (manager == null) {
38 manager = new WGlobalCursorManager();
39 }
40 return manager;
41 }
42
43 /**
44 * Should be called in response to a native mouse enter or native mouse
45 * button released message. Should not be called during a mouse drag.
46 */
47 public static void nativeUpdateCursor(Component heavy) {
48 WGlobalCursorManager.getCursorManager().updateCursorLater(heavy);
49 }
50
51 protected void setCursor(final Component comp, final Cursor cursor, final boolean u) {
52 JLightweightFrame lwFrameUnderCursor = (JLightweightFrame)WLightweightFramePeer.getFrameUnderCursor();
53 if (lwFrameUnderCursor != null) {
54 lwFrameUnderCursor.invokeOnContentsThread(() -> setCursorDirect(comp, cursor, u));
55 } else {
56 setCursorImpl(comp, cursor, u);
57 }
58 }
59
60 protected native void setCursorImpl(Component comp, Cursor cursor, boolean u);
61 protected native void setCursorDirect(Component component, Cursor cursor, boolean u);
62 protected native void getCursorPos(Point p);
63 protected native Component findComponentAt(Container con, int x, int y);
64 /*
65 * two native methods to call corresponding methods in Container and
66 * Component
67 */
68 protected native Component findHeavyweightUnderCursor(boolean useCache);
69 protected native Point getLocationOnScreen(Component com);
70 }
|