[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi...
From: |
Matti Katila |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi... |
Date: |
Fri, 27 Jun 2003 10:00:34 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Matti Katila <address@hidden> 03/06/27 10:00:34
Modified files:
org/fenfire/demo: actions.py buoyoing.py fenpdfcontext.py
org/fenfire/view: AreaSelectingView2D.java
org/fenfire/view/buoy: AbstractMainNode2D.java
FisheyeMainNode2D.java MainNode2D.java
Log message:
selection modifications
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.85&tr2=1.86&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/fenpdfcontext.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/AreaSelectingView2D.java.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.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/MainNode2D.java.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/actions.py
diff -u fenfire/org/fenfire/demo/actions.py:1.5
fenfire/org/fenfire/demo/actions.py:1.6
--- fenfire/org/fenfire/demo/actions.py:1.5 Thu Jun 26 09:00:45 2003
+++ fenfire/org/fenfire/demo/actions.py Fri Jun 27 10:00:33 2003
@@ -43,16 +43,17 @@
def change(self, x, y):
if dbg: p('move pan fast')
f = self.obj.getFocus()
- if dbg: p('zoom:',f.zoom)
fX, fY = f.getPanX(), f.getPanY()
f.setPan( fX-x/f.zoom, fY-y/f.zoom)
self.obj.chgFast(self.oldVS)
- self.context.states.p()
+ if dbg: self.context.states.p()
if self.context.states.hasCtrl():
- xy0 = self.context.states.getPressPans()
- self.select.setArea(xy[0], xy[1], f.getPanX(), f.getPanY())
- else: self.select.setArea(0,0,0,0)
+ xy = self.context.states.getPressPans()
+ self.obj.setSelection(xy[0], xy[1], f.getPanX(), f.getPanY())
+ else: self.obj.setSelection(0,0,0,0)
+
+
class MovePanSlow(ff.util.ControlBinding.AbstractController):
def isChangeable(self): return 0
@@ -84,7 +85,7 @@
class SelectNodeOnPlane(AbstractContextController):
def isChangeable(self): return 0
def controlPoint(self, x, y, scale):
- self.context.setAccursed(self.obj.second)
+ self.context.setAccursed(self.obj[1])
class MoveNodeOnPlane(AbstractContextController):
def isChangeable(self): return 1
@@ -112,29 +113,35 @@
self.last = main
self.graph = graph
self.pp = pp
+
def handleEvent(self, main, ev, vs):
if ev.getID() == ev.MOUSE_DRAGGED:
if dbg: p('drag')
- return self.last.handleEvent(main, ev, vs)
+ return self.last.handleEvent(self.args, ev, vs)
elif ev.getID() == ev.MOUSE_PRESSED:
- f = main.getFocus()
- self.context.states.setPressPans(f.getPanX(),f.getPanY())
+ xy = main.getXYHitOnPlane(vs, ev.getX(), ev.getY())
+ self.context.states.setPressPans(xy[0], xy[1])
if dbg: p('event', ev)
obj = main.getNodeOnPlane(vs, ev.getX(), ev.getY())
if dbg: p(obj)
if ev.getID() == ev.MOUSE_CLICKED:
if obj != None and self.p.hasBinding(ev):
+ p('object on plane click')
self.last = self.p
- return self.p.handleEvent(ff.util.Pair(main, obj), ev, vs)
-
+ self.args = [main, obj, self.graph, self.pp]
+ return self.p.handleEvent(self.args, ev, vs)
+
+ # Drag if something under mouse pointer is accursed!
if obj != None and self.p.hasBinding(ev) and
self.context.isAccursed(obj):
self.last = self.p
- return self.p.handleEvent([main, obj, self.graph, self.pp], ev, vs)
+ self.args = [main, obj, self.graph, self.pp]
else:
+ p('something else')
self.last = self.m
- return self.m.handleEvent(main, ev, vs)
+ self.args = main
+ return self.last.handleEvent(self.args, ev, vs)
def removePressState(self):
for c in self.all:
c.removePressState()
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.85
fenfire/org/fenfire/demo/buoyoing.py:1.86
--- fenfire/org/fenfire/demo/buoyoing.py:1.85 Thu Jun 26 09:10:02 2003
+++ fenfire/org/fenfire/demo/buoyoing.py Fri Jun 27 10:00:34 2003
@@ -121,8 +121,7 @@
view = ff.view.CanvasView2D(fen, nodeview)
view.cull = 1
paperview = ff.view.PaperView2D(vob.putil.demowindow.w, view)
-selectview = ff.view.AreaSelectingView2D(paperview)
-irregu = ff.view.IrregularViewportView2D(selectview)
+irregu = ff.view.IrregularViewportView2D(paperview)
ff.view.buoy.NodeType2D.effigy = 0
ff.view.buoy.NodeType2DFull.effigy = 0
@@ -148,6 +147,8 @@
# Default controls
+selectview = None
+
ctrl.setContext(context)
main_ctrl.add(MovePanFast(context, selectview), -1, ctrl.WHEEL, 7,0,
ctrl.VERTICAL)
main_ctrl.add(MovePanFast(context, selectview), 1, ctrl.DRAG, 1, 0, ctrl.ALL)
@@ -188,7 +189,6 @@
# ff.view.PaperView2D(vob.putil.demowindow.w,
# ff.view.PageScrollView2D()))
pagescroll2d = ff.view.PageScrollView2D()
-
tconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu,
ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl))
tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2DFull(pagescroll2d,
ff.view.buoy.FisheyeMainNode2D.FisheyeMainNode2DFactory(ctrl))
Index: fenfire/org/fenfire/demo/fenpdfcontext.py
diff -u fenfire/org/fenfire/demo/fenpdfcontext.py:1.3
fenfire/org/fenfire/demo/fenpdfcontext.py:1.4
--- fenfire/org/fenfire/demo/fenpdfcontext.py:1.3 Thu Jun 26 08:29:30 2003
+++ fenfire/org/fenfire/demo/fenpdfcontext.py Fri Jun 27 10:00:34 2003
@@ -5,7 +5,7 @@
dbg = 0
def p(*s):
- print 'actions.py::', s
+ print 'fenpdfcontext.py::', s
Index: fenfire/org/fenfire/view/AreaSelectingView2D.java
diff -u fenfire/org/fenfire/view/AreaSelectingView2D.java:1.4
fenfire/org/fenfire/view/AreaSelectingView2D.java:1.5
--- fenfire/org/fenfire/view/AreaSelectingView2D.java:1.4 Thu Jun 26
10:06:56 2003
+++ fenfire/org/fenfire/view/AreaSelectingView2D.java Fri Jun 27 10:00:34 2003
@@ -21,23 +21,32 @@
}
private Paper paper;
private GLRen.FixedPaperQuad pq;
+
public AreaSelectingView2D(View2D child) {
+ this(child, null);
+ }
+ public AreaSelectingView2D(View2D child, java.awt.Color color) {
this.child = child;
setArea(0,0,0,0);
- paper = SpecialPapers.solidPaper(java.awt.Color.red);
+ paper = SpecialPapers.selectionPaper(color);
pq = GLRen.createFixedPaperQuad(paper, 0, 0, 1, 1, 0, 10, 10, 10);
}
public void render(VobScene vs, Object plane,
int matchingParent,
int box2screen, int box2paper) {
- int cs = vs.orthoCS(box2paper, "foo", 0, x0,y0,x1,y1);
- vs.put(pq, cs);
if(child != null)
child.render(vs, plane, matchingParent,
box2screen, box2paper);
+
+ int paper2box = vs.invertCS(box2paper, "areaselectview_INv");
+ int paper2screen = vs.concatCS(box2screen, "areaselectview_conc",
+ paper2box);
+ int cs = vs.orthoCS(paper2screen, "selection", 0, x0,y0,x1,y1);
+ vs.put(pq, cs);
+
}
Index: fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.27
fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.28
--- fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.27 Wed Jun 25
20:29:25 2003
+++ fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java Fri Jun 27
10:00:34 2003
@@ -122,6 +122,11 @@
context.handleKeyStroke(s, this);
}
+ protected AreaSelectingView2D selection = new AreaSelectingView2D(null);
+ public void setSelection(float x, float y, float x1, float y1) {
+ selection.setArea(x,y,x1,y1);
+ }
+
public void renderMain(VobScene vs, int into) {
context.mainNodeToBeRender(vs, into, this);
// extending classes will render after this.
@@ -159,6 +164,19 @@
if(chg) focus.setPan(panX, panY);
}
}
+
+ public float[] getXYHitOnPlane(VobScene oldVobScene, float x, float y) {
+ float[] pt = new float[] { x, y, 0 };
+ float[] sq = new float[2];
+ oldVobScene.coords.inverseTransformPoints3(
+ box2screen, pt, pt);
+ if (this instanceof MainNode2D) {
+ return pt;
+ } else if (this instanceof FisheyeMainNode2D) {
+ oldVobScene.coords.transformPoints3(box2paper, pt, pt);
+ return pt;
+ } else throw new Error("No known main node view2d");
+ }
public boolean isHitInsidePlane(int x, int y, VobScene oldVobScene) {
float[] pt = new float[] { x, y, 0 };
Index: fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.11
fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.12
--- fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.11 Wed Jun 25
20:29:25 2003
+++ fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java Fri Jun 27
10:00:34 2003
@@ -98,6 +98,8 @@
box2paper = translate;
view2d.render(vs, plane, into, box2screen, box2paper);
+
+ selection.render(vs, plane, into, box2screen, box2paper);
super.renderMain(vs, into);
}
Index: fenfire/org/fenfire/view/buoy/MainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/MainNode2D.java:1.29
fenfire/org/fenfire/view/buoy/MainNode2D.java:1.30
--- fenfire/org/fenfire/view/buoy/MainNode2D.java:1.29 Wed Jun 25 20:29:25 2003
+++ fenfire/org/fenfire/view/buoy/MainNode2D.java Fri Jun 27 10:00:34 2003
@@ -90,6 +90,9 @@
vs.matcher.add(box2screen, box2paper, "BOX2PAPER");
setZoomPan(vs, box2paper);
view2d.render(vs, plane, into, into, box2paper);
+
+ selection.render(vs, plane, into, into, box2paper);
+
super.renderMain(vs, into);
}