01: package fr.aliacom.form.swt.events;
02:
03: import org.eclipse.swt.SWT;
04: import org.eclipse.swt.events.MouseEvent;
05: import org.eclipse.swt.events.MouseTrackListener;
06: import org.eclipse.swt.graphics.Color;
07: import org.eclipse.swt.graphics.Cursor;
08: import org.eclipse.swt.graphics.Device;
09: import org.eclipse.swt.widgets.Control;
10: import org.eclipse.swt.widgets.Display;
11:
12: import fr.aliacom.form.common.ToolkitManager;
13:
14: /**
15: * @author tom
16: *
17: * (C) 2001, 2002 Thomas Cataldo
18: */
19: public class HilightMouseMoveListener implements MouseTrackListener {
20:
21: private boolean enabled;
22: private Control control;
23: private Color defaultColor;
24: private Color hilightedColor;
25: private Cursor handCursor;
26: private Cursor defaultCursor;
27:
28: public HilightMouseMoveListener(Control control) {
29: this .enabled = true;
30: this .control = control;
31: this .defaultColor = control.getBackground();
32: this .hilightedColor = getDarker();
33: this .handCursor = new Cursor((Display) ToolkitManager
34: .getToolkit().getDisplay(), SWT.CURSOR_HAND);
35: this .defaultCursor = new Cursor((Display) ToolkitManager
36: .getToolkit().getDisplay(), SWT.CURSOR_ARROW);
37: }
38:
39: /**
40: * Method getDarker.
41: * @param defaultColor
42: * @return Color
43: */
44: private Color getDarker() {
45: int r = Math.max((int) (defaultColor.getRed() * 0.7), 0);
46: int g = Math.max((int) (defaultColor.getRed() * 0.7), 0);
47: int b = Math.max((int) (defaultColor.getRed() * 0.7), 0);
48: return new Color((Device) ToolkitManager.getToolkit()
49: .getDisplay(), r, g, b);
50: }
51:
52: /**
53: * @see org.eclipse.swt.events.MouseTrackListener#mouseEnter(org.eclipse.swt.events.MouseEvent)
54: */
55: public void mouseEnter(MouseEvent arg0) {
56: if (enabled) {
57: control.setBackground(hilightedColor);
58: control.setCursor(handCursor);
59: }
60: }
61:
62: /**
63: * @see org.eclipse.swt.events.MouseTrackListener#mouseExit(org.eclipse.swt.events.MouseEvent)
64: */
65: public void mouseExit(MouseEvent arg0) {
66: control.setBackground(defaultColor);
67: control.setCursor(defaultCursor);
68: }
69:
70: /**
71: * @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
72: */
73: public void mouseHover(MouseEvent arg0) {
74: }
75:
76: /**
77: * @param b
78: */
79: public void setEnabled(boolean b) {
80: enabled = b;
81: }
82:
83: }
|