212 // Send a mouseExited to the previously hilited item, if it wasn't 0.
213 if (target != fLastMouseEventTarget) {
214 if (fLastMouseEventTarget != null) {
215 LWToolkit.postEvent(new MouseEvent(fLastMouseEventTarget, MouseEvent.MOUSE_EXITED, when, modifiers, x - fLastTargetRect.x, y - fLastTargetRect.y, 0, false));
216 }
217 // Send a mouseEntered to the current hilited item, if it wasn't 0.
218 if (target != null) {
219 LWToolkit.postEvent(new MouseEvent(target, MouseEvent.MOUSE_ENTERED, when, modifiers, x - targetRect.x, y - targetRect.y, 0, false));
220 }
221 fLastMouseEventTarget = target;
222 fLastTargetRect = targetRect;
223 }
224 // Post a mouse event to the current item.
225 if (target == null) return;
226 LWToolkit.postEvent(new MouseEvent(target, kind, when, modifiers, x - targetRect.x, y - targetRect.y, 0, false));
227 }
228 });
229 }
230
231 @Override
232 public void addNotify() {
233 synchronized (getTreeLock()) {
234 super.addNotify();
235 if (fModelPtr == 0) {
236 fInvoker.addContainerListener(this);
237 fInvoker.addComponentListener(this);
238 fPropertyListener = new ScreenMenuPropertyListener(this);
239 fInvoker.addPropertyChangeListener(fPropertyListener);
240
241 final Icon icon = fInvoker.getIcon();
242 if (icon != null) {
243 setIcon(icon);
244 }
245
246 final String tooltipText = fInvoker.getToolTipText();
247 if (tooltipText != null) {
248 setToolTipText(tooltipText);
249 }
250 final MenuComponentPeer peer = getPeer();
251 if (peer instanceof CMenu) {
337 final ScreenMenu sm = (ScreenMenu)parent;
338 sm.setChildVisible(fInvoker, b);
339 }
340 }
341 }
342
343 @Override
344 public void setChildVisible(final JMenuItem child, final boolean b) {
345 fItems.remove(child);
346 updateItems();
347 }
348
349 @Override
350 public void setAccelerator(final KeyStroke ks) {}
351
352 // only check and radio items can be indeterminate
353 @Override
354 public void setIndeterminate(boolean indeterminate) { }
355
356 @Override
357 public void setToolTipText(final String text) {
358 final MenuComponentPeer peer = getPeer();
359 if (!(peer instanceof CMenuItem)) return;
360
361 final CMenuItem cmi = (CMenuItem)peer;
362 cmi.setToolTipText(text);
363 }
364
365 @Override
366 public void setIcon(final Icon i) {
367 final MenuComponentPeer peer = getPeer();
368 if (!(peer instanceof CMenuItem)) return;
369
370 final CMenuItem cmi = (CMenuItem)peer;
371 Image img = null;
372
373 if (i != null) {
374 if (i.getIconWidth() > 0 && i.getIconHeight() > 0) {
375 img = AquaIcon.getImageForIcon(i);
376 }
377 }
378 cmi.setImage(img);
379 }
380
381
382 /**
383 * Gets a hashCode for a JMenu or JMenuItem or subclass so that we can compare for
384 * changes in the Menu.
385 */
|
212 // Send a mouseExited to the previously hilited item, if it wasn't 0.
213 if (target != fLastMouseEventTarget) {
214 if (fLastMouseEventTarget != null) {
215 LWToolkit.postEvent(new MouseEvent(fLastMouseEventTarget, MouseEvent.MOUSE_EXITED, when, modifiers, x - fLastTargetRect.x, y - fLastTargetRect.y, 0, false));
216 }
217 // Send a mouseEntered to the current hilited item, if it wasn't 0.
218 if (target != null) {
219 LWToolkit.postEvent(new MouseEvent(target, MouseEvent.MOUSE_ENTERED, when, modifiers, x - targetRect.x, y - targetRect.y, 0, false));
220 }
221 fLastMouseEventTarget = target;
222 fLastTargetRect = targetRect;
223 }
224 // Post a mouse event to the current item.
225 if (target == null) return;
226 LWToolkit.postEvent(new MouseEvent(target, kind, when, modifiers, x - targetRect.x, y - targetRect.y, 0, false));
227 }
228 });
229 }
230
231 @Override
232 @SuppressWarnings("deprecation")
233 public void addNotify() {
234 synchronized (getTreeLock()) {
235 super.addNotify();
236 if (fModelPtr == 0) {
237 fInvoker.addContainerListener(this);
238 fInvoker.addComponentListener(this);
239 fPropertyListener = new ScreenMenuPropertyListener(this);
240 fInvoker.addPropertyChangeListener(fPropertyListener);
241
242 final Icon icon = fInvoker.getIcon();
243 if (icon != null) {
244 setIcon(icon);
245 }
246
247 final String tooltipText = fInvoker.getToolTipText();
248 if (tooltipText != null) {
249 setToolTipText(tooltipText);
250 }
251 final MenuComponentPeer peer = getPeer();
252 if (peer instanceof CMenu) {
338 final ScreenMenu sm = (ScreenMenu)parent;
339 sm.setChildVisible(fInvoker, b);
340 }
341 }
342 }
343
344 @Override
345 public void setChildVisible(final JMenuItem child, final boolean b) {
346 fItems.remove(child);
347 updateItems();
348 }
349
350 @Override
351 public void setAccelerator(final KeyStroke ks) {}
352
353 // only check and radio items can be indeterminate
354 @Override
355 public void setIndeterminate(boolean indeterminate) { }
356
357 @Override
358 @SuppressWarnings("deprecation")
359 public void setToolTipText(final String text) {
360 final MenuComponentPeer peer = getPeer();
361 if (!(peer instanceof CMenuItem)) return;
362
363 final CMenuItem cmi = (CMenuItem)peer;
364 cmi.setToolTipText(text);
365 }
366
367 @Override
368 @SuppressWarnings("deprecation")
369 public void setIcon(final Icon i) {
370 final MenuComponentPeer peer = getPeer();
371 if (!(peer instanceof CMenuItem)) return;
372
373 final CMenuItem cmi = (CMenuItem)peer;
374 Image img = null;
375
376 if (i != null) {
377 if (i.getIconWidth() > 0 && i.getIconHeight() > 0) {
378 img = AquaIcon.getImageForIcon(i);
379 }
380 }
381 cmi.setImage(img);
382 }
383
384
385 /**
386 * Gets a hashCode for a JMenu or JMenuItem or subclass so that we can compare for
387 * changes in the Menu.
388 */
|