[piccolo2d-dev] [piccolo2d] r1163 committed - Issue 236 ; adding zoom event handler that responds to mouse wheel eve...

2012-02-23 Thread piccolo2d

Revision: 1163
Author:   heuermh
Date: Thu Feb 23 14:00:48 2012
Log:  Issue 236 ; adding zoom event handler that responds to mouse  
wheel events

http://code.google.com/p/piccolo2d/source/detail?r=1163

Added:
  
/piccolo2d.java/trunk/core/src/main/java/org/piccolo2d/event/PMouseWheelZoomEventHandler.java
  
/piccolo2d.java/trunk/core/src/test/java/org/piccolo2d/event/PMouseWheelZoomEventHandlerTest.java
  
/piccolo2d.java/trunk/examples/src/main/java/org/piccolo2d/examples/MouseWheelZoomExample.java

Modified:
  
/piccolo2d.java/trunk/examples/src/main/java/org/piccolo2d/examples/ExampleRunner.java


===
--- /dev/null
+++  
/piccolo2d.java/trunk/core/src/main/java/org/piccolo2d/event/PMouseWheelZoomEventHandler.java	 
Thu Feb 23 14:00:48 2012

@@ -0,0 +1,169 @@
+/*
+ * Copyright (c) 2008-2012, Piccolo2D project, http://piccolo2d.org
+ * Copyright (c) 1998-2008, University of Maryland
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without  
modification, are permitted provided

+ * that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,  
this list of conditions

+ * and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright  
notice, this list of conditions
+ * and the following disclaimer in the documentation and/or other  
materials provided with the

+ * distribution.
+ *
+ * None of the name of the University of Maryland, the name of the  
Piccolo2D project, or the names of its
+ * contributors may be used to endorse or promote products derived from  
this software without specific

+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS  
IS AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF  
MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  
OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  
DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  
DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  
CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE  
USE OF THIS SOFTWARE, EVEN IF

+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.piccolo2d.event;
+
+import java.awt.Rectangle;
+import java.awt.geom.Point2D;
+
+import org.piccolo2d.PCamera;
+import org.piccolo2d.PCanvas;
+
+/**
+ * Zoom event handler that scales the camera view transform in response to  
mouse wheel events.

+ *
+ * @since 2.0
+ */
+public final class PMouseWheelZoomEventHandler extends  
PBasicInputEventHandler {

+/** Default scale factor, code0.1d/code. */
+static final double DEFAULT_SCALE_FACTOR = 0.1d;
+
+/** Scale factor. */
+private double scaleFactor = DEFAULT_SCALE_FACTOR;
+
+/** Zoom mode. */
+private ZoomMode zoomMode = ZoomMode.ZOOM_ABOUT_CANVAS_CENTER;
+
+
+/**
+ * Create a new mouse wheel zoom event handler.
+ */
+public PMouseWheelZoomEventHandler() {
+super();
+PInputEventFilter eventFilter = new PInputEventFilter();
+eventFilter.rejectAllEventTypes();
+eventFilter.setAcceptsMouseWheelRotated(true);
+setEventFilter(eventFilter);
+}
+
+
+/**
+ * Return the scale factor for this mouse wheel zoom event handler.   
Defaults to codeDEFAULT_SCALE_FACTOR/code.

+ *
+ * @see #DEFAULT_SCALE_FACTOR
+ * @return the scale factor for this mouse wheel zoom event handler
+ */
+public double getScaleFactor() {
+return scaleFactor;
+}
+
+/**
+ * Set the scale factor for this mouse wheel zoom event handler to  
codescaleFactor/code.

+ *
+ * @param scaleFactor scale factor for this mouse wheel zoom event  
handler

+ */
+public void setScaleFactor(final double scaleFactor) {
+this.scaleFactor = scaleFactor;
+}
+
+/**
+ * Switch to zoom about mouse mode.
+ *
+ * @see ZoomMode#ZOOM_ABOUT_MOUSE
+ */
+public void zoomAboutMouse() {
+zoomMode = ZoomMode.ZOOM_ABOUT_MOUSE;
+}
+
+/**
+ * Switch to zoom about canvas center mode.
+ *
+ * @see ZoomMode#ZOOM_ABOUT_CANVAS_CENTER
+ */
+public void zoomAboutCanvasCenter() {
+zoomMode = ZoomMode.ZOOM_ABOUT_CANVAS_CENTER;
+}
+
+/**
+ * Switch to zoom about view center mode.
+ *
+ * @see ZoomMode#ZOOM_ABOUT_VIEW_CENTER
+ */
+public void zoomAboutViewCenter() {
+zoomMode = ZoomMode.ZOOM_ABOUT_VIEW_CENTER;
+}
+
+/**
+ * Return the zoom mode for this mouse wheel zoom event handler.   
Defaults to

+ * codeZoomMode.ZOOM_ABOUT_CANVAS_CENTER/code.
+ 

[piccolo2d-dev] [piccolo2d] r1164 committed - removing empty directories from source trees

2012-02-23 Thread piccolo2d

Revision: 1164
Author:   heuermh
Date: Thu Feb 23 14:03:25 2012
Log:  removing empty directories from source trees
http://code.google.com/p/piccolo2d/source/detail?r=1164

Deleted:
 /piccolo2d.java/trunk/core/src/main/java/edu
 /piccolo2d.java/trunk/core/src/test/java/edu
 /piccolo2d.java/trunk/examples/src/main/java/edu
 /piccolo2d.java/trunk/extras/src/main/java/edu
 /piccolo2d.java/trunk/extras/src/test/java/edu
 /piccolo2d.java/trunk/swt/src/main/java/edu
 /piccolo2d.java/trunk/swt/src/test/java/edu
 /piccolo2d.java/trunk/swt-examples/src/main/java/edu

--
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en


[piccolo2d-dev] Re: Issue 236 in piccolo2d: Add zoom event handler that responds to mouse wheel events

2012-02-23 Thread piccolo2d

Updates:
Status: Fixed

Comment #7 on issue 236 by heue...@gmail.com: Add zoom event handler that  
responds to mouse wheel events

http://code.google.com/p/piccolo2d/issues/detail?id=236

Turns out another zoom mode was what I was actually after, zoom about  
canvas center.  I added that and made it the default.


There is also a new MouseWheelZoomExample that demonstrates the different  
modes.


$ svn commit -m Issue 236 ; adding zoom event handler that responds to  
mouse wheel events core/ examples/
Adding  
core/src/main/java/org/piccolo2d/event/PMouseWheelZoomEventHandler.java
Adding  
core/src/test/java/org/piccolo2d/event/PMouseWheelZoomEventHandlerTest.java
Sending 
examples/src/main/java/org/piccolo2d/examples/ExampleRunner.java
Adding  
examples/src/main/java/org/piccolo2d/examples/MouseWheelZoomExample.java

Transmitting file data 
Committed revision 1163.

--
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en