fenfire-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ff-cvs] fenfire/org/fenfire fenpdf/actions/mouse.py fen...


From: Tuomas J. Lukka
Subject: [ff-cvs] fenfire/org/fenfire fenpdf/actions/mouse.py fen...
Date: Fri, 12 Sep 2003 15:05:53 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuomas J. Lukka <address@hidden>        03/09/12 15:05:53

Modified files:
        org/fenfire/fenpdf/actions: mouse.py 
        org/fenfire/fenpdf/events: mouse.py 
        org/fenfire/view/buoy: AbstractMainNode2D.java 
                               FisheyeMainNode2D.java MainNode2D.java 

Log message:
        Arch sync

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/actions/mouse.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/events/mouse.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java.diff?tr1=1.48&tr2=1.49&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/MainNode2D.java.diff?tr1=1.34&tr2=1.35&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/fenpdf/actions/mouse.py
diff -u fenfire/org/fenfire/fenpdf/actions/mouse.py:1.8 
fenfire/org/fenfire/fenpdf/actions/mouse.py:1.9
--- fenfire/org/fenfire/fenpdf/actions/mouse.py:1.8     Tue Aug 26 06:35:07 2003
+++ fenfire/org/fenfire/fenpdf/actions/mouse.py Fri Sep 12 15:05:53 2003
@@ -55,21 +55,53 @@
 
     ######## Actions to control pan of main nodes etc.
 
-    class PanMover(vob.mouse.RelativeAdapter,
-                  vob.input.RelativeAxisListener):
-       def changedRelative(self, x,y='foo'):
-           # grrr.. pythonism, overloading of own method is sicknes
-           if y=='foo': return self._changedRelative(x)
+    class ScrollWheelPan(vob.input.RelativeAxisListener):
+       """Scroll vertically using the scroll wheel.
+       """
+       def changedRelative(self, d):
            f = getMainNode().getFocus()
            fX, fY = f.getPanX(), f.getPanY()
-           f.setPan(fX-x/f.zoom,
-                    fY-y/f.zoom)
-           getMainNode().chgFast(getOldVS(), -1)
-       def _changedRelative(self, d):
-           f = getMainNode().getFocus()
-           fY = f.getPanY()
-           f.setPan(0, fY-d/f.zoom)
-           getMainNode().chgFast(getOldVS(), -1)
+           f.setPan(fX, fY-d/f.zoom)
+           getMainNode().setZoomPan(getOldVS())
+
+    class Pan_Fastest(vob.mouse.RelativeAdapter):
+       """Pan quickly with an ad hoc formula.
+       """
+        def changedRelative(self, x,y):
+           mainNode = getMainNode()
+            f = mainNode.getFocus()
+           if isinstance(mainNode, ff.view.buoy.FisheyeMainNode2D):
+               x *= 2
+               y *= 2
+            fX, fY = f.getPanX(), f.getPanY()
+            f.setPan(fX-x/f.zoom,
+                     fY-y/f.zoom)
+            mainNode.setZoomPan(getOldVS())
+
+    class Pan_BestQuality(vob.mouse.MouseDragListener):
+       """General panning.
+
+       This class uses the real coordsys which is a great
+       advantage for fisheye views, yielding a nicer-quality
+       motion.
+
+       This is slow because getXYHit is currently slow - it
+       creates the vobscene's internal coordsyses twice
+       and there's a lot of them currently.
+
+       When we move to 
+       """
+       def startDrag(self, x,y):
+           self.oldxy = getMainNode().getXYHit(getOldVS(), x, y)
+           p('old', self.oldxy)
+       def drag(self, x, y):
+           mainNode = getMainNode()
+           curxy = mainNode.getXYHit(getOldVS(), x, y)
+           f = mainNode.getFocus()
+           fX, fY = f.getPanX(), f.getPanY()
+           f.setPan(fX-(curxy[0] - self.oldxy[0]),
+                    fY-(curxy[1] - self.oldxy[1]))
+           mainNode.setZoomPan(getOldVS())
 
     class BrowseClick(vob.mouse.MouseClickListener):
        def clicked(self, x, y):
@@ -80,7 +112,7 @@
            fenPDF.animation.regenerateVS()
 
 
-    class ZoomPan(vob.input.RelativeAxisListener):
+    class Zoom(vob.input.RelativeAxisListener):
        def changedRelative(self, x):
            getMainNode().changeZoom(x)
            getMainNode().chgFast(getOldVS(), -1)
Index: fenfire/org/fenfire/fenpdf/events/mouse.py
diff -u fenfire/org/fenfire/fenpdf/events/mouse.py:1.4 
fenfire/org/fenfire/fenpdf/events/mouse.py:1.5
--- fenfire/org/fenfire/fenpdf/events/mouse.py:1.4      Fri Aug 22 05:06:58 2003
+++ fenfire/org/fenfire/fenpdf/events/mouse.py  Fri Sep 12 15:05:53 2003
@@ -33,7 +33,7 @@
                'Moving the pan around or the node if accursed.', 
                actions.mouse.CanvasNodePressListener(
                              actions.mouse.NodeMover(), 
-                             actions.mouse.PanMover()))
+                             actions.mouse.Pan_Fastest()))
        self.mainMouse.setListener(1, vob.VobMouseEvent.SHIFT_MASK,
                              'Selecting area of main view.',
                              actions.mouse.SelectArea())
@@ -46,7 +46,7 @@
        # With button 3
        self.mainMouse.setListener(3, 0, self.mainMouse.VERTICAL, 1.0, 
                              'Zooming the main view.', 
-                             actions.mouse.ZoomPan())
+                             actions.mouse.Zoom())
        self.mainMouse.setListener(3, 0, self.mainMouse.HORIZONTAL, 1.0, 
          'Changing the size of main view (currently only for pagescroll).', 
                              actions.mouse.ChangeSize())
@@ -58,8 +58,8 @@
                              actions.mouse.MouseMenu())
 
        # With wheel
-       self.mainMouse.setWheelListener(0, 'Moving the pan', \
-                                  actions.mouse.PanMover())
+       self.mainMouse.setWheelListener(0, 'Scrolling', \
+                                  actions.mouse.ScrollWheelPan())
 
        self.context.states.mainMouse = self.mainMouse
 
Index: fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.48 
fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.49
--- fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.48  Mon Aug 25 
05:59:11 2003
+++ fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java       Fri Sep 12 
15:05:53 2003
@@ -147,7 +147,7 @@
      * This changes the parameters of the coordinate systems 
      * created by render().
      */
-    protected abstract void setZoomPan(VobScene vs, int mainFrame);
+    public abstract void setZoomPan(VobScene vs);
 
     protected float[] v2dwh = new float[2];
 
@@ -225,6 +225,7 @@
        //AbstractUpdateManager.chg();
     }
 
+
     public void changeSize(float change) { ; }
     public void changeZoom(float change) {      
        float zoom = focus.getZoom() * (float) Math.exp(change/150.0);   
@@ -240,7 +241,7 @@
 
     public void chgFast(VobScene oldVobScene, int parent) {
         clipPan();
-        setZoomPan(oldVobScene, box2screen);
+        setZoomPan(oldVobScene);
 
        View2D view = getView2D();
        while (view != null) {
Index: fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.18 
fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.19
--- fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.18   Wed Aug 20 
12:34:33 2003
+++ fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java        Fri Sep 12 
15:05:53 2003
@@ -76,8 +76,8 @@
        fisheyeState.changeSize(change); 
     }
 
-    protected void setZoomPan(VobScene vs, int mainFrame) {
-       vs.coords.setTranslateParams(box2paper, 
+    public void setZoomPan(VobScene oldVs) {
+       oldVs.coords.setTranslateParams(box2paper, 
                                     focus.getPanX(), focus.getPanY());
        fisheyeState.setCoordsysParams();
     }
@@ -106,7 +106,7 @@
 
     public boolean mouse(VobMouseEvent e, VobScene oldVobScene) {
        if(fisheyeState.event(e)) {
-           setZoomPan(oldVobScene, box2screen);
+           setZoomPan(oldVobScene);
            return true;
        }
        return super.mouse(e, oldVobScene);
Index: fenfire/org/fenfire/view/buoy/MainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/MainNode2D.java:1.34 
fenfire/org/fenfire/view/buoy/MainNode2D.java:1.35
--- fenfire/org/fenfire/view/buoy/MainNode2D.java:1.34  Wed Aug 20 12:34:33 2003
+++ fenfire/org/fenfire/view/buoy/MainNode2D.java       Fri Sep 12 15:05:53 2003
@@ -85,13 +85,13 @@
        // this way, we only have the positioning code in one place
        box2paper = vs.coords.orthoBox(0,0,0,0,0,0,0,0);
        vs.matcher.add(box2screen, box2paper, "BOX2PAPER");
-       setZoomPan(vs, box2paper);
+       setZoomPan(vs);
        view2d.render(vs, plane, into, into, box2paper);
 
         super.renderMain(vs, into);
     }
 
-    protected void setZoomPan(VobScene vs, int mainFrame) {
+    public void setZoomPan(VobScene vs) {
        float zoom = focus.getZoom();
        vs.coords.setOrthoBoxParams(box2paper, 0, 
                        focus.getPanX()-boxw/zoom/2, 
focus.getPanY()-boxh/zoom/2, 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]