From: Christian S. <ch...@us...> - 2008-02-05 19:10:21
|
Update of /cvsroot/nmedit/nmedit/libs/jtheme/src/net/sf/nmedit/jtheme/component In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv3122/jtheme/src/net/sf/nmedit/jtheme/component Modified Files: JTLabel.java JTDisplay.java JTLight.java Log Message: +retarget mouse events and send them to the parent module Index: JTLight.java =================================================================== RCS file: /cvsroot/nmedit/nmedit/libs/jtheme/src/net/sf/nmedit/jtheme/component/JTLight.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JTLight.java 2 Jun 2007 23:39:21 -0000 1.1 --- JTLight.java 5 Feb 2008 19:10:23 -0000 1.2 *************** *** 19,23 **** --- 19,28 ---- package net.sf.nmedit.jtheme.component; + import java.awt.AWTEvent; + import java.awt.Component; import java.awt.Graphics; + import java.awt.event.MouseEvent; + + import javax.swing.SwingUtilities; import net.sf.nmedit.jpatch.PLight; *************** *** 48,53 **** super(context); setOpaque(false); } ! protected void renderBorder(Graphics g) { --- 53,74 ---- super(context); setOpaque(false); + enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); } ! ! protected void processEvent(AWTEvent e) ! { ! Component parent = getParent(); ! if (parent != null && e instanceof MouseEvent) ! { ! // retarget mouse events ! MouseEvent me = SwingUtilities.convertMouseEvent(this, (MouseEvent) e, parent); ! parent.dispatchEvent(me); ! } ! else ! { ! super.processEvent(e); ! } ! } ! protected void renderBorder(Graphics g) { Index: JTDisplay.java =================================================================== RCS file: /cvsroot/nmedit/nmedit/libs/jtheme/src/net/sf/nmedit/jtheme/component/JTDisplay.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JTDisplay.java 2 Jul 2007 20:32:23 -0000 1.2 --- JTDisplay.java 5 Feb 2008 19:10:23 -0000 1.3 *************** *** 23,26 **** --- 23,32 ---- package net.sf.nmedit.jtheme.component; + import java.awt.AWTEvent; + import java.awt.Component; + import java.awt.event.MouseEvent; + + import javax.swing.SwingUtilities; + import net.sf.nmedit.jtheme.JTContext; *************** *** 38,41 **** --- 44,63 ---- super(context); setOpaque(true); + enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); + } + + protected void processEvent(AWTEvent e) + { + Component parent = getParent(); + if (parent != null && e instanceof MouseEvent) + { + // retarget mouse events + MouseEvent me = SwingUtilities.convertMouseEvent(this, (MouseEvent) e, parent); + parent.dispatchEvent(me); + } + else + { + super.processEvent(e); + } } Index: JTLabel.java =================================================================== RCS file: /cvsroot/nmedit/nmedit/libs/jtheme/src/net/sf/nmedit/jtheme/component/JTLabel.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JTLabel.java 2 Jul 2007 20:32:23 -0000 1.2 --- JTLabel.java 5 Feb 2008 19:10:22 -0000 1.3 *************** *** 23,26 **** --- 23,31 ---- package net.sf.nmedit.jtheme.component; + import java.awt.AWTEvent; + import java.awt.Component; + import java.awt.event.MouseEvent; + import javax.swing.SwingUtilities; + import net.sf.nmedit.jtheme.JTContext; *************** *** 39,42 **** --- 44,70 ---- super( context ); setOpaque(false); + // capture mouse events for retargeting + enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); + } + + protected boolean retargetMouseEvent(MouseEvent e) + { + // retarget mouse events + MouseEvent me = SwingUtilities.convertMouseEvent(this, (MouseEvent) e, getParent()); + getParent().dispatchEvent(me); + return true; + } + + protected void processEvent(AWTEvent e) + { + Component parent = getParent(); + if (parent != null && e instanceof MouseEvent && retargetMouseEvent((MouseEvent)e)) + { + // done + } + else + { + super.processEvent(e); + } } |