gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gzz/view PageSpanCellView.java buoy/BuoyVie...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz/gzz/view PageSpanCellView.java buoy/BuoyVie...
Date: Thu, 06 Feb 2003 02:38:45 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        03/02/06 02:38:42

Modified files:
        gzz/view       : PageSpanCellView.java 
        gzz/view/buoy  : BuoyViewNodeType.java CellBuoyViewNodeType.java 
                         pagespanNodes.py 

Log message:
        Adjust PageSpanCellView to do scrollblocks; doc interfaces better

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/PageSpanCellView.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/buoy/BuoyViewNodeType.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/buoy/CellBuoyViewNodeType.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/buoy/pagespanNodes.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text

Patches:
Index: gzz/gzz/view/PageSpanCellView.java
diff -u gzz/gzz/view/PageSpanCellView.java:1.11 
gzz/gzz/view/PageSpanCellView.java:1.12
--- gzz/gzz/view/PageSpanCellView.java:1.11     Wed Feb  5 09:09:03 2003
+++ gzz/gzz/view/PageSpanCellView.java  Thu Feb  6 02:38:42 2003
@@ -28,6 +28,10 @@
        return new Layout(enf);
     }
 
+    public Layout getLayout(ScrollBlock sb) {
+       return new Layout((PageSpan)sb.getCurrent()); // XXX Cache
+    }
+
     public void getSize(Enfilade1D enf, float[] out) {
        Layout l = getLayout(enf);
        out[0] = l.w;
@@ -45,46 +49,63 @@
        float w;
        float h;
 
-
-       public Layout(Enfilade1D enf) {
-           npages = enf.length();
-
+       /** Allocate the structure to hold a given number of pages.
+        */
+       private void alloc(int size) {
+           npages = size;
            pages = new PageSpan[npages];
            psps = new PageSpanPaper[npages];
            xywh = new float[npages * 4]; // x, y, w, h in PAPER coordinates
            w = 0;
            h = 0;
+       }
+
+       /** (To be called with increasing p): add a page.
+        */
+       private void page(int p, PageSpan sp) {
+           pages[p] = sp; 
+           GLSpanner.SpanRect rect = GLSpanner.getSpanRect(pages[p]);
+           psps[p] = new PageSpanPaper(null, rect.page);
+
+           Point l_p = pages[p].getLocation();
+           Dimension d_p = pages[p].getSize();
+
+           xywh[4*p + 0] = psps[p].getX(l_p.x);
+           xywh[4*p + 1] = psps[p].getY(l_p.y);
+           xywh[4*p + 2] = psps[p].getX(d_p.width);
+           xywh[4*p + 3] = psps[p].getY(d_p.height);
+
+           if(dbg) pa("Page "+p+" "+
+                       xywh[4*p+0]+" "+
+                       xywh[4*p+1]+" "+
+                       xywh[4*p+2]+" "+
+                       xywh[4*p+3]+" "+
+                       pages[p]);
+
+           w += scale * xywh[4*p + 2];
+           if(h < scale * xywh[4*p + 3])
+               h = scale * xywh[4*p + 3];
+       }
 
-           boolean foundCenter = false;
+       public Layout(Enfilade1D enf) {
+           alloc(enf.length());
 
            for(int p = 0; p < npages; p++) {
-               pages[p] = (PageSpan)enf.sub(p, p+1).getList().get(0); // XXX 
INEFFICIENT!
-               GLSpanner.SpanRect rect = GLSpanner.getSpanRect(pages[p]);
-               psps[p] = new PageSpanPaper(null, rect.page);
-
-               Point l_p = pages[p].getLocation();
-               Dimension d_p = pages[p].getSize();
-
-               xywh[4*p + 0] = psps[p].getX(l_p.x);
-               xywh[4*p + 1] = psps[p].getY(l_p.y);
-               xywh[4*p + 2] = psps[p].getX(d_p.width);
-               xywh[4*p + 3] = psps[p].getY(d_p.height);
-
-               if(dbg) pa("Page "+p+" "+
-                           xywh[4*p+0]+" "+
-                           xywh[4*p+1]+" "+
-                           xywh[4*p+2]+" "+
-                           xywh[4*p+3]+" "+
-                           pages[p]);
-
-               w += scale * xywh[4*p + 2];
-               if(h < scale * xywh[4*p + 3])
-                   h = scale * xywh[4*p + 3];
+               // XXX INEFFICIENT!
+               page(p, (PageSpan)enf.sub(p, p+1).getList().get(0)); 
            }
 
+       }
 
+       public Layout(PageSpan sp) {
+           alloc(sp.length());
+
+           for(int p = 0; p < npages; p++) {
+               page(p, (PageSpan)sp.subSpan(p, p+1));
+           }
 
        }
+
 
        /** Get the extents (in the output coordinates)
         * of a given page span.
Index: gzz/gzz/view/buoy/BuoyViewNodeType.java
diff -u gzz/gzz/view/buoy/BuoyViewNodeType.java:1.5 
gzz/gzz/view/buoy/BuoyViewNodeType.java:1.6
--- gzz/gzz/view/buoy/BuoyViewNodeType.java:1.5 Wed Feb  5 15:21:05 2003
+++ gzz/gzz/view/buoy/BuoyViewNodeType.java     Thu Feb  6 02:38:42 2003
@@ -14,7 +14,11 @@
     Object getSize(Object linkId, Object anchor, float[] wh);
 
     /** Render portion of the view relevant to linkId and anchor
-     * into the given box. This should not have any side effects.
+     * into the given box. This should not have any side effects,
+     * beyond e.g. beginning to load images.
+     * The box should be filled <b>completely</b> because it will
+     * be used for sensing mouse clicks to this buoy
+     * (XXX kludge! Will change later)
      */
     void renderBuoy(VobScene vs, int into, Object linkId, Object anchor,
                        Object cachedSize);
Index: gzz/gzz/view/buoy/CellBuoyViewNodeType.java
diff -u gzz/gzz/view/buoy/CellBuoyViewNodeType.java:1.2 
gzz/gzz/view/buoy/CellBuoyViewNodeType.java:1.3
--- gzz/gzz/view/buoy/CellBuoyViewNodeType.java:1.2     Wed Feb  5 15:21:05 2003
+++ gzz/gzz/view/buoy/CellBuoyViewNodeType.java Thu Feb  6 02:38:42 2003
@@ -21,6 +21,9 @@
     Object getSize(Cell c, Object content, float[] wh);
 
     /** Render this view centered on a given cell.
+     * Since this is delegated from BuoyViewNodeType.renderBuoy,
+     * the same rules apply.
+     * @see BuoyViewNodeType#renderBuoy
      * @param content If not null, an object describing the part of content
      *                         that the view should be centered on. Can be 
ignored.
      */
Index: gzz/gzz/view/buoy/pagespanNodes.py
diff -u gzz/gzz/view/buoy/pagespanNodes.py:1.12 
gzz/gzz/view/buoy/pagespanNodes.py:1.13
--- gzz/gzz/view/buoy/pagespanNodes.py:1.12     Wed Feb  5 13:31:02 2003
+++ gzz/gzz/view/buoy/pagespanNodes.py  Thu Feb  6 02:38:42 2003
@@ -25,12 +25,10 @@
     def createMainNode(self, linkId, anchorSpan, listener):
        return PageSpanMainNode(self, anchorSpan, listener)
 
+size = jarray.zeros(2, 'f')
+
 class WholePageSpanNodeType(AbstractPageSpanNodeType):
     def renderBuoy(self, vs, into, linkId, anchorSpan):
-       # XXX!!!!
-       # Irregu!
-       # find edges of span
-       # should place only that region surrounded by irregu
        sb = anchorSpan.getScrollBlock();
 
        pscv.place(makeEnf(sb.getCurrent()), vs, into, 




reply via email to

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