[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/actions.py view/PageSp...
From: |
Matti Katila |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/actions.py view/PageSp... |
Date: |
Mon, 07 Jul 2003 03:07:55 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Matti Katila <address@hidden> 03/07/07 03:07:55
Modified files:
org/fenfire/demo: actions.py
org/fenfire/view: PageSpanLayout.java
Log message:
test would be good for this..
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageSpanLayout.java.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/actions.py
diff -u fenfire/org/fenfire/demo/actions.py:1.8
fenfire/org/fenfire/demo/actions.py:1.9
--- fenfire/org/fenfire/demo/actions.py:1.8 Mon Jul 7 02:00:51 2003
+++ fenfire/org/fenfire/demo/actions.py Mon Jul 7 03:07:55 2003
@@ -91,7 +91,8 @@
oy = ff.util.RDFUtil.getInt(g, node, CANVAS2D.y)
self.obj[3].moveNote(node, int(ox+x/f.zoom), int(oy+y/f.zoom) )
-####### Actions to control selection
+
+####### Actions to control selection (Ctrl pressed)
class SelectArea(AbstractContextController):
def isChangeable(self): return 0
@@ -102,6 +103,7 @@
oldXY = self.context.states.getPressPans()
self.context.selection.setArea(oldXY[0], oldXY[1], xy[0], xy[1])
self.obj.chgFast(self.oldVS)
+
####### Dispatcher for plane events etc.
Index: fenfire/org/fenfire/view/PageSpanLayout.java
diff -u fenfire/org/fenfire/view/PageSpanLayout.java:1.15
fenfire/org/fenfire/view/PageSpanLayout.java:1.16
--- fenfire/org/fenfire/view/PageSpanLayout.java:1.15 Mon Jul 7 02:00:52 2003
+++ fenfire/org/fenfire/view/PageSpanLayout.java Mon Jul 7 03:07:55 2003
@@ -34,6 +34,7 @@
import org.nongnu.libvob.*;
import org.nongnu.libvob.gl.*;
import org.nongnu.alph.*;
+import org.nongnu.alph.impl.*;
import org.fenfire.spanimages.*;
/** A single pagespan enfilade laid out on the plane.
@@ -219,9 +220,36 @@
place(vs, scaled);
}
- Enfilade1D getSelection(float x0, float y0, float x1, float y1) {
+ /** Get selected area of pagespanlayout in enfilade
+ */
+ Enfilade1D getSelection(int x, int y, int width, int height) {
+ if (x<0 || y<0) throw new Error ("X or Y smaller than zero, x:"+x+",
y:"+y);
- return null;
+ int w=0, wLeft = width, p=0;
+ Enfilade1D enf = new Enfilade1DImpl(null);
+ Enfilade1D.Maker m = enf.getMaker();
+
+ // Go into page where selection starts
+ for (; p<pages.length; p++)
+ if (x < xywh[4*p + 2] + w) break;
+
+ for (; p<pages.length; p++) {
+ // check y
+ if (y > xywh[4*p + 3]) throw new Error("Selection out of
page,"+p+", y:"+y);
+ // check height
+ if (height > xywh[4*p + 3]) throw new Error("Selection out of
page,"+p+", h:"+height);
+
+ // everything ok, so get a clip from page for returning enfilade.
+ if (enf.length() == 0) {
+ w = (int)Math.min(wLeft, xywh[4*p + 2] - x);
+ enf.plus(m.makeEnfilade(pages[p].subArea(x,y, w, height)));
+ } else {
+ w = (int)Math.min(wLeft, xywh[4*p + 2]);
+ enf.plus(m.makeEnfilade(pages[p].subArea(0,y, w, height)));
+ }
+ wLeft -= w;
+ }
+ return enf;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire demo/actions.py view/PageSp...,
Matti Katila <=