[Patchanim-commit] SF.net SVN: patchanim: [175] trunk/patchanim/src/com/mebigfatguy/patchanim/ gui
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-02-12 19:22:11
|
Revision: 175 http://patchanim.svn.sourceforge.net/patchanim/?rev=175&view=rev Author: dbrosius Date: 2008-02-12 11:22:13 -0800 (Tue, 12 Feb 2008) Log Message: ----------- fix handle redrawing when window focus is lost/gained Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-02-12 05:03:39 UTC (rev 174) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-02-12 19:22:13 UTC (rev 175) @@ -56,6 +56,7 @@ private ValueDocumentListener docListener = new ValueDocumentListener(); private int selectedXPt; private int selectedYPt; + private boolean drawHandles = false; public JColorControlPatchPanel(PatchColor c) { color = c; @@ -133,11 +134,15 @@ } }); } - + public void drawDecoration(Graphics2D g, Rectangle bounds) { if (coords == null) return; + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + if (!mediator.isFocused()) + return; + g.setColor(Color.yellow); for (int u = 0; u < 4; u++) { for (int v = 0; v < 4; v++) { Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-02-12 05:03:39 UTC (rev 174) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-02-12 19:22:13 UTC (rev 175) @@ -22,8 +22,10 @@ import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.FocusEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.awt.event.WindowFocusListener; import java.io.File; import java.io.IOException; import java.util.ResourceBundle; @@ -151,6 +153,19 @@ } }); + addWindowFocusListener(new WindowFocusListener() { + + public void windowGainedFocus(WindowEvent e) { + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.setFocused(true); + } + + public void windowLostFocus(WindowEvent e) { + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.setFocused(false); + } + }); + newItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { try { Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-02-12 05:03:39 UTC (rev 174) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-02-12 19:22:13 UTC (rev 175) @@ -23,6 +23,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -327,9 +328,16 @@ @Override public void paintComponent(Graphics g) { - Rectangle bounds = getBounds(); - g.drawImage(image, 0, 0, (int)bounds.getWidth(), (int)bounds.getHeight(), 0, 0, SAMPLE_SIZE, SAMPLE_SIZE, null); - if (decorator != null) - decorator.drawDecoration(((Graphics2D) g), g.getClipBounds()); + Shape clip = g.getClip(); + try { + Rectangle bounds = getBounds(); + g.setClip(0, 0, (int)bounds.getWidth(), (int)bounds.getHeight()); + + g.drawImage(image, 0, 0, (int)bounds.getWidth(), (int)bounds.getHeight(), 0, 0, SAMPLE_SIZE, SAMPLE_SIZE, null); + if (decorator != null) + decorator.drawDecoration(((Graphics2D) g), g.getClipBounds()); + } finally { + g.setClip(clip); + } } } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-02-12 05:03:39 UTC (rev 174) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-02-12 19:22:13 UTC (rev 175) @@ -38,6 +38,7 @@ private Set<DocumentChangedListener> dclisteners = new HashSet<DocumentChangedListener>(); private Set<ActivePatchChangedListener> apclisteners = new HashSet<ActivePatchChangedListener>(); private Set<SettingsChangedListener> sclisteners = new HashSet<SettingsChangedListener>(); + private boolean windowFocused = true; private PatchPanelMediator() { } @@ -96,6 +97,20 @@ } } + public void setFocused(boolean focused) { + windowFocused = focused; + synchronized(apclisteners) { + ActivePatchChangedEvent apce = new ActivePatchChangedEvent(this, activePatch); + for (ActivePatchChangedListener apcl : apclisteners) { + apcl.activePatchChanged(apce); + } + } + } + public boolean isFocused() { + return windowFocused; + } + + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |