[Top][All Lists]
[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,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ff-cvs] fenfire/org/fenfire fenpdf/actions/mouse.py fen...,
Tuomas J. Lukka <=