[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.
|