gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire modules/pp/PPCanvasCursor.j...


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire modules/pp/PPCanvasCursor.j...
Date: Sat, 05 Apr 2003 15:26:35 -0500

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Matti Katila <address@hidden>   03/04/05 15:26:35

Modified files:
        org/fenfire/modules/pp: PPCanvasCursor.java Pp.java 
                                UniquePaperVob.java 
        org/fenfire/view: SpatialPlane.java 

Log message:
        workarounds for awt bugs and others. zooming works now. buoyoncircle
        needs work.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/PPCanvasCursor.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/Pp.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/UniquePaperVob.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/SpatialPlane.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/modules/pp/PPCanvasCursor.java
diff -u fenfire/org/fenfire/modules/pp/PPCanvasCursor.java:1.3 
fenfire/org/fenfire/modules/pp/PPCanvasCursor.java:1.4
--- fenfire/org/fenfire/modules/pp/PPCanvasCursor.java:1.3      Fri Apr  4 
18:25:06 2003
+++ fenfire/org/fenfire/modules/pp/PPCanvasCursor.java  Sat Apr  5 15:26:34 2003
@@ -23,7 +23,7 @@
 /** XXX
  */
 public class PPCanvasCursor implements BuoyViewMainNode {
-private static final String rcsid = "$Id: PPCanvasCursor.java,v 1.3 2003/04/04 
23:25:06 mudyc Exp $";  
+private static final String rcsid = "$Id: PPCanvasCursor.java,v 1.4 2003/04/05 
20:26:34 mudyc Exp $";  
     public static boolean dbg = false;
     private static void pa(String s) { 
System.out.println("PPCanvasCursor::"+s); }
 
@@ -158,14 +158,10 @@
            setZoomPan(vs, into);
            // XXX SinglePaper.i(space, d, window, current).render(vs, into, 
c2fCS, c2fCSInv, hook);
        } else {
-
-           // kludge
-           int focusCtr = vs.matcher.getCS("FocusCtr");
-
            int zo = (int)(zoom * 100000);
            int geometry = vs.orthoCS(0, "FocusGeometry",0, zo,0, panx, pany);  
            
-           //vs.map.put(new 
UniquePaperVob(URN5Namespace.instance.generateId()), into, geometry);
+           vs.map.put(new UniquePaperVob(URN5Namespace.instance.generateId()), 
into, geometry);
            (new SpatialPlane(PP.noteType, PP.contains)).renderAWT(vs, into, 
geometry, node, space, hook);
        }
     }
@@ -179,8 +175,6 @@
     private int [] m_state = null;
     private float m_state_zoom = -1;
     public boolean mouse(MouseEvent e, VobScene oldVobScene) {
-       pa("mouse e"+e+" pans: "+panx+", "+pany);
-
        if (e.getID() == MouseEvent.MOUSE_PRESSED) {
            m_state = new int[]{ e.getX(), e.getY(), e.getModifiers()};
            m_state_zoom = zoom;
@@ -188,27 +182,44 @@
        }
        if (m_state == null) throw new Error("Mouse state not found!");
 
-       if (m_state[2] == e.BUTTON1_MASK){
 
-           float[] pt = new float[] { e.getX(), e.getY(), 0 };
-           
-           // We must transform into Frame, and then the C2F coordinate system
-           int mainctrCS = ((DefaultVobMatcher)oldVobScene.matcher).getCS(0, 
"Center");
-           pa("mainctr"+ mainctrCS);
-
-           int frame = 
((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP");
-           int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, 
"C2F");
-           if (c2f < 0) c2f = c2fCS;
-           if(frame < 0 || c2f < 0)
-               throw new Error("No cs point!"+frame+" "+c2f);
-               
-           // XXX vp, not frame!
-           oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt);
-           oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt);
-           panx = pt[0]; pany = pt[1];
+       if (m_state[2] == e.BUTTON3_MASK) {
            
-           // XXX current = current.h(d.contains);   
-           AbstractUpdateManager.chg();
+           // let's zoom!!
+           zoom = m_state_zoom * (float) 
+               Math.exp((m_state[1] - e.getY())/150.0);
+           return true;
+       }
+
+
+
+       if (m_state[2] == e.BUTTON1_MASK){
+
+           if (GraphicsAPI.getInstance() instanceof GLAPI) {
+               float[] pt = new float[] { e.getX(), e.getY(), 0 };
+               
+               // We must transform into Frame, and then the C2F coordinate 
system
+               int mainctrCS = 
((DefaultVobMatcher)oldVobScene.matcher).getCS(0, "Center");
+               pa("mainctr"+ mainctrCS);
+               
+               int frame = 
((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP");
+               int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, 
"C2F");
+               if (c2f < 0) c2f = c2fCS;
+               if(frame < 0 || c2f < 0)
+                   throw new Error("No cs point!"+frame+" "+c2f);
+               
+               // XXX vp, not frame!
+               oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt);
+               oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt);
+               panx = pt[0]; pany = pt[1];
+               
+               // XXX current = current.h(d.contains);   
+               AbstractUpdateManager.chg();
+           } else {
+               
+               
+
+           }
            return false;
        }
 
Index: fenfire/org/fenfire/modules/pp/Pp.java
diff -u fenfire/org/fenfire/modules/pp/Pp.java:1.2 
fenfire/org/fenfire/modules/pp/Pp.java:1.3
--- fenfire/org/fenfire/modules/pp/Pp.java:1.2  Fri Apr  4 18:25:06 2003
+++ fenfire/org/fenfire/modules/pp/Pp.java      Sat Apr  5 15:26:35 2003
@@ -29,7 +29,7 @@
 
 
 public class Pp implements BuoyLinkListener {
-public static final String rcsid = "$Id: Pp.java,v 1.2 2003/04/04 23:25:06 
mudyc Exp $";
+public static final String rcsid = "$Id: Pp.java,v 1.3 2003/04/05 20:26:35 
mudyc Exp $";
     public static final boolean dbg = true;
     protected static void p(String s) { if(dbg) pa(s); }
     protected static void pa(String s) { System.out.println("Pp::"+s); }
@@ -62,13 +62,13 @@
        String note2 = ppAct.newNote(paper2, 0,0, "A test note");
        ppAct.assocNotes(note, 1, note2);
 
-       note = ppAct.newNote(paper, 10,10, "10 10");
+       note = ppAct.newNote(paper, 50,50, "10 10");
        ppAct.assocNotes(note, 1, note2);
-       note = ppAct.newNote(paper, -10,10, "-10 10");
+       note = ppAct.newNote(paper, -100,100, "-10 10");
        ppAct.assocNotes(note, 1, note2);
-       note = ppAct.newNote(paper, -10,-10, "-10 -10");
+       note = ppAct.newNote(paper, -100,-100, "-10 -10");
        ppAct.assocNotes(note, 1, note2);
-       note = ppAct.newNote(paper, 10,-10, "10 -10");
+       note = ppAct.newNote(paper, 100,-100, "10 -10");
        ppAct.assocNotes(note, 1, note2);
 
 
@@ -121,17 +121,15 @@
                AbstractUpdateManager.chg();
            }
            public void mouse(MouseEvent m) {
-               pa("Mouse: " + m);
-
                VobScene vs = screen.getVobSceneForEvents();
-               vs.map.dump();
-
                int cs = vs.coords.getCSAt(0, m.getX(), m.getY(), null);
-               pa("CS: "+cs+" at x: "+m.getX()+", y: "+m.getY() );
                if (cs < 0) return;
 
-               AbstractUpdateManager.setNoAnimation();
-               AbstractUpdateManager.chg();
+               // check if cs is some buoy if not call mainfocusviewnode...
+               if (focus.mouse(m, vs)) {
+                   AbstractUpdateManager.setNoAnimation();
+                   AbstractUpdateManager.chg();
+               }
            }
            public void setScreen(Screen s) { this.screen = s; }
            public void timeout(Object id) {}
@@ -152,25 +150,16 @@
        curVs = vs;
        vs.map.put(new SolidBackdropVob(Color.lightGray));
 
-       int tmp = vs.orthoBoxCS(0, "Nothing", 100,0,0, 1,1,vs.size.width, 
vs.size.height);
-       vs.activate(tmp);
-       
        float width = (float)vs.size.getWidth() * 3.f/5;
        float height = (float)vs.size.getHeight() * 3.f/5;
 
        ctrX = ((float)vs.size.width)/2;
        ctrY = ((float)vs.size.height)/2;
-       focusCtr = vs.translateCS(0, "FocusCtr", ctrX,ctrY);
-       //vs.activate(focusCtr);
-
-       float x = -width/2;
-       int frameCS = vs.orthoBoxCS(focusCtr, "FocusFrame", 0, 
-                                   x, -height/2, 1, 1, 
+       int frameCS = vs.orthoBoxCS(0, "FocusFrame", 200, 
+                                   ctrX - width/2, ctrY - height/2, 1, 1, 
                                    width, height);
        vs.activate(frameCS);
 
-       pa("frame: "+frameCS+", focus: "+focusCtr+", tmp: "+tmp);
-
        if (focus == null)
            focus = adaptor.createMainNode(null, accursed, this);
        focus.renderMain(vs, frameCS);
@@ -202,13 +191,14 @@
        }
        float[] fl = new float[3];
        c.getSqSize(buoyCS, fl);
-       pa("size: "+fl[0]+", "+fl[1]);
+       //pa("size: "+fl[0]+", "+fl[1]);
        fl = c.transformPoints3(buoyCS, new float[3], null);
-       pa("transform: "+ fl[0] + ", "+fl[1]+", "+fl[2]);
+       //pa("transform: "+ fl[0] + ", "+fl[1]+", "+fl[2]);
 
+       //buoyCS = curVs.orthoBoxCS(0, null,0, 100,100, 1,1, 50,50); 
        curVs.put(new RectBgVob(), buoyCS);
 
-       pa("link!!!");
+       //pa("link!!!");
 
     }
 
Index: fenfire/org/fenfire/modules/pp/UniquePaperVob.java
diff -u fenfire/org/fenfire/modules/pp/UniquePaperVob.java:1.2 
fenfire/org/fenfire/modules/pp/UniquePaperVob.java:1.3
--- fenfire/org/fenfire/modules/pp/UniquePaperVob.java:1.2      Fri Apr  4 
18:25:06 2003
+++ fenfire/org/fenfire/modules/pp/UniquePaperVob.java  Sat Apr  5 15:26:35 2003
@@ -13,7 +13,7 @@
  * surrounded by a rectangle of the current foreground color.
  */
 public class UniquePaperVob extends Vob {
-public static final String rcsid = "$Id: UniquePaperVob.java,v 1.2 2003/04/04 
23:25:06 mudyc Exp $";
+public static final String rcsid = "$Id: UniquePaperVob.java,v 1.3 2003/04/05 
20:26:35 mudyc Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { 
System.out.println("UniquePaperVob::"+s); }
 
@@ -43,22 +43,21 @@
        info2.getExtRect(geom);
        int panx = geom.width, pany = geom.height;
 
-       pa("mx: "+mx+", gx: "+geom.x+", panx: "+panx+", pany: "+pany);
+       //pa("mx: "+mx+", gx: "+geom.x+", panx: "+panx+", pany: "+pany);
        float zoom = ((float)(geom.x))/100000;
        int gx = geom.x;
 
-       pa("Zoom: "+zoom);
+       //pa("Zoom: "+zoom);
 
        g.setColor(Color.orange);
        g.fillRect(mx, my, mw, mh);
 
+       int x = mx + mw/2 - (int)((mw*zoom)/4) + (int)(panx * zoom), 
+           y = my + mh/2 - (int)((mh*zoom)/4) + (int)(pany * zoom),
+           w = (int) ((float)mw*zoom)/2,
+           h = (int) ((float)mh*zoom)/2;
 
-       int x = panx + mx + mw/4, 
-           y = pany + my + mh/4,
-           w = (int)((float)mw)/2,
-           h = (int)((float)mh)/2;
-
-       pa("x"+x+"y"+y+"w"+w+"h"+h);
+       //pa("x"+x+"y"+y+"w"+w+"h"+h);
        
 
        g.setColor(Color.gray);
Index: fenfire/org/fenfire/view/SpatialPlane.java
diff -u fenfire/org/fenfire/view/SpatialPlane.java:1.3 
fenfire/org/fenfire/view/SpatialPlane.java:1.4
--- fenfire/org/fenfire/view/SpatialPlane.java:1.3      Fri Apr  4 18:25:06 2003
+++ fenfire/org/fenfire/view/SpatialPlane.java  Sat Apr  5 15:26:35 2003
@@ -26,7 +26,7 @@
  */
 
 public class SpatialPlane {
-public static final String rcsid = "$Id: SpatialPlane.java,v 1.3 2003/04/04 
23:25:06 mudyc Exp $";
+public static final String rcsid = "$Id: SpatialPlane.java,v 1.4 2003/04/05 
20:26:35 mudyc Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println("SpatialPlane::"+s); 
}
 
@@ -61,17 +61,28 @@
            container = ShortRDF.getSubj(mod, current, cont);
        }
 
+
+       // get zoom geometry etc.
+       float[] size = new float[2];
+       vs.coords.getSqSize(into, size);
+       float[] pt = vs.coords.transformPoints3(into, new float[3], null);
+       pt[0] += size[0]/2;
+       pt[1] += size[1]/2;
+       
+
+       float[] pan = new float[2];
+       vs.coords.getSqSize(geom, pan);
+       float zoom = (vs.coords.transformPoints3(geom, new float[3], 
null))[0]/100000;
+
        float[] bs = new float[2];
        cursorBox = -1;
+        
        
        Selector slctr = new SelectorImpl((Resource)container, cont, (RDFNode) 
null);
        StmtIterator iter = mod.listStatements(slctr);
        Statement stmt = null;
        while (iter.hasNext()) {
            RDFNode n = (RDFNode)((Statement)iter.next()).getObject();
-           boolean drawFrame = false;
-
-           pa("Node: "+n);
 
            Enfilade1D enf = space.getEnfilade(n);
            if (enf == null) continue;
@@ -88,27 +99,34 @@
            // get size XXX
 
            Pair matchKey = new Pair(container, n);
+
+           // XXX
+           bs[0] = 30; bs[1] = 30;
            
+           //pa("x: "+         (pt[0] + (pan[0] + coords[0]) * zoom) +
+           //   ", y: "+  (pt[1] + (pan[1] + coords[1]) * zoom));
+
            int box;
-           box = vs.orthoBoxCS(into, matchKey, 0, 
-                               coords[0], coords[1],
+           box = vs.orthoBoxCS(0, matchKey, 100, 
+                               pt[0] + (pan[0] + coords[0]) * zoom,
+                               pt[1] + (pan[1] + coords[1]) * zoom,
                                1, 1, bs[0], bs[1]);
 
 
+           vs.put(new org.nongnu.libvob.vobs.RectBgVob(java.awt.Color.red), 
box);
+
            if (span instanceof TextSpan) {
                String s = enf.toString();
                
 
                // nothing
-               pa("Text!, ooh..");
+               //pa("Text!, ooh..");
            }  // PageSpan!!! 
            else {
                pa("pagespan!, ooh..");
-               drawFrame = true;
            }
 
            hook.placed(n, vs, box);
-           pa("node placed!");
 
            //if (drawFrame)
            //  vs.map.put(frame, box);




reply via email to

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