You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/11/03 12:48:20 UTC
svn commit: r832399 - in
/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin:
ColorChooserButtonSkin.java terra/TerraColorChooserSkin.java
Author: tvolkert
Date: Tue Nov 3 11:48:17 2009
New Revision: 832399
URL: http://svn.apache.org/viewvc?rev=832399&view=rev
Log:
Made color chooser button respond to double clicks over the color chooser
Modified:
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserSkin.java
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java?rev=832399&r1=832398&r2=832399&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java Tue Nov 3 11:48:17 2009
@@ -20,6 +20,7 @@
import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.ComponentKeyListener;
+import org.apache.pivot.wtk.ComponentMouseButtonListener;
import org.apache.pivot.wtk.Container;
import org.apache.pivot.wtk.ContainerMouseListener;
import org.apache.pivot.wtk.Direction;
@@ -38,12 +39,18 @@
*/
public abstract class ColorChooserButtonSkin extends ButtonSkin
implements ColorChooserButtonListener, ColorChooserButtonSelectionListener {
+ /**
+ * A focusable window class used by color chooser button skins.
+ */
public final class ColorChooserPopup extends Window {
private ColorChooserPopup() {
setSkin(new ColorChooserPopupSkin());
}
}
+ /**
+ * The color chooser popup skin.
+ */
public final class ColorChooserPopupSkin extends WindowSkin {
private ColorChooserPopupSkin() {
}
@@ -115,6 +122,25 @@
}
};
+ private ComponentMouseButtonListener colorChooserMouseButtonListener =
+ new ComponentMouseButtonListener.Adapter() {
+ @Override
+ public boolean mouseClick(Component component, Mouse.Button button, int x, int y,
+ int count) {
+ ColorChooserButton colorChooserButton = (ColorChooserButton)getComponent();
+
+ if (button == Mouse.Button.LEFT
+ && count == 2) {
+ colorChooserPopup.close();
+
+ Color color = colorChooser.getSelectedColor();
+ colorChooserButton.setSelectedColor(color);
+ }
+
+ return false;
+ }
+ };
+
private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
@Override
public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
@@ -147,6 +173,7 @@
public ColorChooserButtonSkin() {
colorChooser = new ColorChooser();
+ colorChooser.getComponentMouseButtonListeners().add(colorChooserMouseButtonListener);
colorChooserPopup = new ColorChooserPopup();
colorChooserPopup.getComponentKeyListeners().add(colorChooserPopupKeyListener);
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserSkin.java?rev=832399&r1=832398&r2=832399&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserSkin.java Tue Nov 3 11:48:17 2009
@@ -48,6 +48,8 @@
}
private class HueChooserSkin extends ComponentSkin {
+ private boolean capture = false;
+
@Override
public int getPreferredWidth(int height) {
return 18;
@@ -77,7 +79,7 @@
// Mark the selected hue
float hue = hueChooser.getHue();
- graphics.setXORMode(Color.getHSBColor(hue, 1f, 1f));
+ graphics.setXORMode(Color.getHSBColor(1 - hue, 1f, 1f));
graphics.fillRect(0, Math.min((int)(height * (1f - hue)), height - 1), width, 1);
graphics.setPaintMode();
}
@@ -91,6 +93,11 @@
public boolean mouseMove(Component component, int x, int y) {
boolean consumed = super.mouseMove(component, x, y);
+ if (capture
+ && Mouse.getCapturer() != component) {
+ Mouse.capture(component);
+ }
+
if (Mouse.getCapturer() == component) {
setSelectedColor(y);
}
@@ -104,7 +111,7 @@
if (button == Mouse.Button.LEFT) {
setSelectedColor(y);
- Mouse.capture(component);
+ capture = true;
consumed = true;
}
@@ -115,9 +122,12 @@
public boolean mouseUp(Component component, Mouse.Button button, int x, int y) {
boolean consumed = super.mouseUp(component, button, x, y);
- if (button == Mouse.Button.LEFT
- && Mouse.getCapturer() == component) {
- Mouse.release();
+ if (button == Mouse.Button.LEFT) {
+ capture = false;
+
+ if (Mouse.getCapturer() == component) {
+ Mouse.release();
+ }
}
return consumed;
@@ -169,6 +179,8 @@
}
private class SaturationValueChooserSkin extends ComponentSkin {
+ private boolean capture = false;
+
@Override
public int getPreferredWidth(int height) {
return 140;
@@ -218,6 +230,11 @@
public boolean mouseMove(Component component, int x, int y) {
boolean consumed = super.mouseMove(component, x, y);
+ if (capture
+ && Mouse.getCapturer() != component) {
+ Mouse.capture(component);
+ }
+
if (Mouse.getCapturer() == component) {
setSelectedColor(x, y);
}
@@ -231,7 +248,7 @@
if (button == Mouse.Button.LEFT) {
setSelectedColor(x, y);
- Mouse.capture(component);
+ capture = true;
consumed = true;
}
@@ -242,9 +259,12 @@
public boolean mouseUp(Component component, Mouse.Button button, int x, int y) {
boolean consumed = super.mouseUp(component, button, x, y);
- if (button == Mouse.Button.LEFT
- && Mouse.getCapturer() == component) {
- Mouse.release();
+ if (button == Mouse.Button.LEFT) {
+ capture = false;
+
+ if (Mouse.getCapturer() == component) {
+ Mouse.release();
+ }
}
return consumed;