gzz-commits
[Top][All Lists]
Advanced

[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.
      */




reply via email to

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