[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] libvob/org/nongnu/libvob/lava AbstractMonoVob.j...
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] libvob/org/nongnu/libvob/lava AbstractMonoVob.j... |
Date: |
Sat, 05 Apr 2003 13:51:19 -0500 |
CVSROOT: /cvsroot/libvob
Module name: libvob
Changes by: Benja Fallenstein <address@hidden> 03/04/05 13:51:19
Modified files:
org/nongnu/libvob/lava: AbstractMonoVob.java Demo.java
FilledRect.java Group.java LineVob.java
RectVob.java Vob.java
Added files:
org/nongnu/libvob/lava: Box.java Sequence.java
SimpleBreaker.java
Log message:
Line breaking experiments
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/Box.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/Sequence.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/SimpleBreaker.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/AbstractMonoVob.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/Demo.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/FilledRect.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/Group.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/LineVob.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/RectVob.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/lava/Vob.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: libvob/org/nongnu/libvob/lava/AbstractMonoVob.java
diff -u libvob/org/nongnu/libvob/lava/AbstractMonoVob.java:1.2
libvob/org/nongnu/libvob/lava/AbstractMonoVob.java:1.3
--- libvob/org/nongnu/libvob/lava/AbstractMonoVob.java:1.2 Fri Apr 4
20:20:06 2003
+++ libvob/org/nongnu/libvob/lava/AbstractMonoVob.java Sat Apr 5 13:51:19 2003
@@ -49,6 +49,10 @@
return content.getVob(index - 1);
}
+ public float getSize(Axis axis) {
+ return content.getSize(axis);
+ }
+
public RenderTraversal transform(RenderTraversal t, int index) {
if(index > 0)
content.transform(t, index - 1);
Index: libvob/org/nongnu/libvob/lava/Demo.java
diff -u libvob/org/nongnu/libvob/lava/Demo.java:1.2
libvob/org/nongnu/libvob/lava/Demo.java:1.3
--- libvob/org/nongnu/libvob/lava/Demo.java:1.2 Fri Apr 4 20:20:06 2003
+++ libvob/org/nongnu/libvob/lava/Demo.java Sat Apr 5 13:51:19 2003
@@ -40,8 +40,26 @@
RenderTraversal s = g.transform(new RenderTraversal(), v+1);
RenderTraversal t = g.transform(new RenderTraversal(), w+1);
g.add(new Colorize(new LineVob(s, t), Color.red));
- g.close();
- Vob vob = new Colorize(g, Color.blue);
+
+ Sequence seq = new SimpleBreaker(new Box(Vob.X),
+ new Box(Vob.Y),
+ 300, Vob.X);
+
+ Vob r1 = new Colorize(new RectVob(50, 20), Color.blue);
+ for(int i=0; i<25; i++) {
+ Vob r2 = new Colorize(new FilledRect(5*i, 30), Color.blue);
+ seq.add(r1); seq.add(r2);
+ }
+
+ g.add(new Translate(seq.close(), 300, 70));
+
+ Vob rect = new RectVob(300, (int)seq.getSize(Vob.Y));
+ g.add(new Translate(new Colorize(rect, Color.red),
+ 300, 70));
+
+
+
+ Vob vob = new Colorize(g.close(), Color.blue);
Frame f = new Frame();
f.add(new VobCanvas(vob, new Color(255, 128, 155)));
Index: libvob/org/nongnu/libvob/lava/FilledRect.java
diff -u libvob/org/nongnu/libvob/lava/FilledRect.java:1.1
libvob/org/nongnu/libvob/lava/FilledRect.java:1.2
--- libvob/org/nongnu/libvob/lava/FilledRect.java:1.1 Fri Apr 4 20:20:06 2003
+++ libvob/org/nongnu/libvob/lava/FilledRect.java Sat Apr 5 13:51:19 2003
@@ -38,6 +38,11 @@
this.width = width; this.height = height;
}
+ public float getSize(Axis axis) {
+ if(axis == X) return width;
+ else return height;
+ }
+
public void render(Graphics g, RenderTraversal t) {
g.fillRect(t.x, t.y, width, height);
}
Index: libvob/org/nongnu/libvob/lava/Group.java
diff -u libvob/org/nongnu/libvob/lava/Group.java:1.1
libvob/org/nongnu/libvob/lava/Group.java:1.2
--- libvob/org/nongnu/libvob/lava/Group.java:1.1 Fri Apr 4 07:15:17 2003
+++ libvob/org/nongnu/libvob/lava/Group.java Sat Apr 5 13:51:19 2003
@@ -30,12 +30,19 @@
import java.util.*;
/** A vob that contains a list of other vobs.
+ * The vobs are all rendered with the same
+ * RenderTraversal settings, i.e. transform,
+ * color etc.
*/
-public class Group implements Vob {
+public class Group implements Sequence {
protected final List content = new ArrayList();
protected int size = 1;
+ public Sequence cloneEmpty() {
+ return new Group();
+ }
+
public int add(Vob v) {
content.add(v);
int index = size;
@@ -43,7 +50,17 @@
return index;
}
- public void close() {
+ public float getSize(Axis axis) {
+ float size = 0;
+ for(Iterator i=content.iterator(); i.hasNext();) {
+ float s = ((Vob)i.next()).getSize(axis);
+ if(s > size) size = s;
+ }
+ return size;
+ }
+
+ public Sequence close() {
+ return this;
}
public int getCount() {
Index: libvob/org/nongnu/libvob/lava/LineVob.java
diff -u libvob/org/nongnu/libvob/lava/LineVob.java:1.1
libvob/org/nongnu/libvob/lava/LineVob.java:1.2
--- libvob/org/nongnu/libvob/lava/LineVob.java:1.1 Fri Apr 4 07:15:17 2003
+++ libvob/org/nongnu/libvob/lava/LineVob.java Sat Apr 5 13:51:19 2003
@@ -37,6 +37,11 @@
public LineVob(RenderTraversal p1, RenderTraversal p2) {
this.p1 = p1; this.p2 = p2;
}
+
+ public float getSize(Axis axis) {
+ // what should this do?
+ return 0;
+ }
public void render(Graphics g, RenderTraversal t) {
g.drawLine(t.x + p1.x, t.y + p1.y,
Index: libvob/org/nongnu/libvob/lava/RectVob.java
diff -u libvob/org/nongnu/libvob/lava/RectVob.java:1.1
libvob/org/nongnu/libvob/lava/RectVob.java:1.2
--- libvob/org/nongnu/libvob/lava/RectVob.java:1.1 Fri Apr 4 07:15:17 2003
+++ libvob/org/nongnu/libvob/lava/RectVob.java Sat Apr 5 13:51:19 2003
@@ -38,6 +38,11 @@
this.width = width; this.height = height;
}
+ public float getSize(Axis axis) {
+ if(axis == X) return width;
+ else return height;
+ }
+
public void render(Graphics g, RenderTraversal t) {
g.drawRect(t.x, t.y, width, height);
}
Index: libvob/org/nongnu/libvob/lava/Vob.java
diff -u libvob/org/nongnu/libvob/lava/Vob.java:1.1
libvob/org/nongnu/libvob/lava/Vob.java:1.2
--- libvob/org/nongnu/libvob/lava/Vob.java:1.1 Fri Apr 4 07:15:17 2003
+++ libvob/org/nongnu/libvob/lava/Vob.java Sat Apr 5 13:51:19 2003
@@ -29,8 +29,23 @@
import java.awt.Graphics;
public interface Vob {
+
+ final class Axis {
+ private Axis() {}
+ }
+
+ Axis X = new Axis();
+ Axis Y = new Axis();
void render(Graphics g, RenderTraversal t);
+
+ /** Get the allocated size of this graphic on the given axis.
+ * This is the size that the vob uses in layout, i.e.
+ * it will be allocated a box of this size in layout.
+ * It may actually draw outside this box; for example,
+ * a slanted character may draw outside its allocated box.
+ */
+ float getSize(Axis axis);
/** Get the count of paths into this vob.
*/