117 */
118 public void updateCursorLater(Component heavy) {
119 nativeUpdater.postIfNotPending(heavy, new InvocationEvent
120 (Toolkit.getDefaultToolkit(), nativeUpdater));
121 }
122
123 protected GlobalCursorManager() { }
124
125 /**
126 * Set the global cursor to the specified cursor. The component over
127 * which the Cursor current resides is provided as a convenience. Not
128 * all platforms may require the Component.
129 */
130 protected abstract void setCursor(Component comp, Cursor cursor,
131 boolean useCache);
132 /**
133 * Returns the global cursor position, in screen coordinates.
134 */
135 protected abstract void getCursorPos(Point p);
136
137 protected abstract Component findComponentAt(Container con, int x, int y);
138 protected abstract Point getLocationOnScreen(Component com);
139
140 /**
141 * Returns the most specific, visible, heavyweight Component
142 * under the cursor. This method should return null iff the cursor is
143 * not over any Java Window.
144 *
145 * @param useCache If true, the implementation is free to use caching
146 * mechanisms because the Z-order, visibility, and enabled state of the
147 * Components has not changed. If false, the implementation should not
148 * make these assumptions.
149 */
150 protected abstract Component findHeavyweightUnderCursor(boolean useCache);
151
152 /**
153 * Updates the global cursor. We apply a three-step scheme to cursor
154 * updates:<p>
155 *
156 * (1) InputEvent updates which are outdated are discarded by
157 * <code>updateCursorImmediately(InputEvent)</code>.<p>
|
117 */
118 public void updateCursorLater(Component heavy) {
119 nativeUpdater.postIfNotPending(heavy, new InvocationEvent
120 (Toolkit.getDefaultToolkit(), nativeUpdater));
121 }
122
123 protected GlobalCursorManager() { }
124
125 /**
126 * Set the global cursor to the specified cursor. The component over
127 * which the Cursor current resides is provided as a convenience. Not
128 * all platforms may require the Component.
129 */
130 protected abstract void setCursor(Component comp, Cursor cursor,
131 boolean useCache);
132 /**
133 * Returns the global cursor position, in screen coordinates.
134 */
135 protected abstract void getCursorPos(Point p);
136
137 protected Component findComponentAt(Container con, int x, int y){
138 return AWTAccessor.getContainerAccessor().
139 findComponentAt(con, x, y, false);
140 }
141
142 protected abstract Point getLocationOnScreen(Component com);
143
144 /**
145 * Returns the most specific, visible, heavyweight Component
146 * under the cursor. This method should return null iff the cursor is
147 * not over any Java Window.
148 *
149 * @param useCache If true, the implementation is free to use caching
150 * mechanisms because the Z-order, visibility, and enabled state of the
151 * Components has not changed. If false, the implementation should not
152 * make these assumptions.
153 */
154 protected abstract Component findHeavyweightUnderCursor(boolean useCache);
155
156 /**
157 * Updates the global cursor. We apply a three-step scheme to cursor
158 * updates:<p>
159 *
160 * (1) InputEvent updates which are outdated are discarded by
161 * <code>updateCursorImmediately(InputEvent)</code>.<p>
|