gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/gzz/modules/pp PPMouseEvents.java


From: Matti Katila
Subject: [Gzz-commits] gzz/gzz/modules/pp PPMouseEvents.java
Date: Mon, 23 Dec 2002 09:35:26 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Matti Katila <address@hidden>   02/12/23 09:35:26

Modified files:
        gzz/modules/pp : PPMouseEvents.java 

Log message:
        "set cursor to object" event passing.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/pp/PPMouseEvents.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text

Patches:
Index: gzz/gzz/modules/pp/PPMouseEvents.java
diff -u gzz/gzz/modules/pp/PPMouseEvents.java:1.8 
gzz/gzz/modules/pp/PPMouseEvents.java:1.9
--- gzz/gzz/modules/pp/PPMouseEvents.java:1.8   Mon Dec 23 09:00:11 2002
+++ gzz/gzz/modules/pp/PPMouseEvents.java       Mon Dec 23 09:35:25 2002
@@ -65,6 +65,7 @@
 
        // Main paper object events
        EventHandling.i().assign("DragObjectOfMainVP", new DragObjectOfMainVP() 
);
+       EventHandling.i().assign("SetCursorToObject", new SetCursorToObject());
     }
 
     /* Save press state
@@ -75,6 +76,7 @@
 
     private Cell accursed_obj = null;
     private int[] orig_obj_pt = null;
+    private float[] hit = null;
 
     private float last_zoom, last_panx, last_pany;
     public class SavePressState implements EventHandling.EventMouseObj {
@@ -85,14 +87,15 @@
            m_ev.last_pany = ppv.pany;
 
            m_ev.accursed_obj = null;
+           m_ev.hit = null;
 
 
            // KLUDGE!!!
            // there are no good way in gzz to handle events :/
            if (p_state.getCS() == kingCS) {
                if(notEmptyFrame(kingCS, p_state)) {
-                   float hit[] = new float[2];
-                   int objCS = getTouchedCS(kingCS, p_state, hit);
+                   m_ev.hit = new float[3];
+                   int objCS = getTouchedCS(kingCS, p_state, m_ev.hit);
 
                    Object k = vs.matcher.getKey(objCS);
                    if (k == null) {
@@ -100,7 +103,7 @@
                        return;
                    }
 
-                   pa("Hit: "+objCS+" "+k+" "+hit[0]+" "+hit[1]);
+                   pa("Hit: "+objCS+" "+k+" "+m_ev.hit[0]+" "+m_ev.hit[1]);
                    if(!(k instanceof Cell)) {
                        pa("Not a cell?!");
                        return ;
@@ -224,7 +227,8 @@
            int frameCS = ((Integer)obs[1]).intValue();
 
            if (m_ev.accursed_obj != null) {
-               pa("send event forwarded...");
+               EventHandling.i().passEvent("SetCursorToObject", ev, null);
+               return;
            }
 
            float[] hit = new float[2];
@@ -244,22 +248,24 @@
                vs.coords.inverseTransformPoints3(c2f, pt, pt);
                ppv.panx = pt[0]; ppv.pany = pt[1];
                AbstractUpdateManager.chg();
-               return ;
-           }
-           Object k = vs.matcher.getKey(vobcs);
-           pa("Hit: "+vobcs+" "+k+" "+hit[0]+" "+hit[1]);
-           if(!(k instanceof Cell)) {
-               pa("Not a cell?!");
-               return ;
-           }
-           context.setAccursed((Cell)k);
-           context.setCursorOffset(ppv.style.getOffsetInText(((Cell)k).t(), 1, 
hit[0]));
+           } else throw new Error("Unknown error");
+       }
+    }
+
+    
+    public class SetCursorToObject implements EventHandling.EventMouseObj {
+       public void event(MouseEvent ev, EventHandling.MousePressState p_state,
+                         Object[] obs) {
+           context.setAccursed(m_ev.accursed_obj);
+           
context.setCursorOffset(ppv.style.getOffsetInText((m_ev.accursed_obj).t(),
+                                                             1, m_ev.hit[0]));
            AbstractUpdateManager.chg();
        }
     }
 
 
 
+
     /* DRAGGING!
      * =========
      */
@@ -337,7 +343,6 @@
 
     
     private int getTouchedCS(int frameCS, EventHandling.MousePressState 
p_state, float[] hit) {
-       hit = new float[2];
        return vs.coords.getCSAt( frameCS, p_state.getX(), p_state.getY(), hit);
     }
 



reply via email to

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