gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py demo/fenpd...


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire demo/buoyoing.py demo/fenpd...
Date: Wed, 06 Aug 2003 12:02:31 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/08/06 12:02:31

Modified files:
        org/fenfire/demo: buoyoing.py fenpdfcontext.py mind.py 
        org/fenfire/view/lava: mindMapView2D.py 
Removed files:
        org/fenfire/util: ControlBinding.java 
        org/fenfire/view/lava: FenPDFContext.java 

Log message:
        changed fenpdf to use new mouse api

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.104&tr2=1.105&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/fenpdfcontext.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mind.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.104 
fenfire/org/fenfire/demo/buoyoing.py:1.105
--- fenfire/org/fenfire/demo/buoyoing.py:1.104  Mon Aug  4 02:02:48 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Wed Aug  6 12:02:30 2003
@@ -24,7 +24,7 @@
 
 dbg = 0
 
-def pa(*s):
+def p(*s):
     print 'fenfire.demo.buoyoing::',s
 
 import sys
@@ -34,7 +34,7 @@
 print "LOADING BUOYOING"
 if dbg:
     for (k,v) in sys.modules.items():
-        pa( k,"\t",v)
+        p( k,"\t",v)
 
 from org import fenfire as ff
 from org.fenfire.swamp import Nodes
@@ -47,7 +47,13 @@
 
 from org.nongnu.alph.impl import PageImageScroll
 
-from org.fenfire.view.buoy.actions import *
+from org.fenfire.view.buoy.actions import \
+     AbstractAction, ZoomPan, ChangeSize, \
+     CanvasNodePressListener, \
+     NodeMover, PanMover, \
+     SelectArea, BrowseClick, IfSelectNodeOnPlane
+     
+
 from org.fenfire.demo.fenpdfcontext import Context
 
 
@@ -143,7 +149,7 @@
 
 spanImageFactory = ff.spanimages.gl.DefaultSpanImageFactory(
     ff.spanimages.gl.PageScrollBlockImager())
-spanImageFactory.paperMaker = ff.spanimages.gl.papermakers.fancyBlend(w)
+spanImageFactory.paperMaker = ff.spanimages.gl.papermakers.fancyBlend()
 textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)
 textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)
 #textnodeview = ff.view.lava.RSTText(fen.txtfunc, textstyle, 1)
@@ -155,23 +161,15 @@
 nodeview = ff.view.lava.ContextNodeView(dispnodeview, fen.constgraph, 150)
 view = ff.view.CanvasView2D(fen, nodeview)
 view.cull = 1
-paperview = ff.view.PaperView2D(vob.putil.demowindow.w, view)
+paperview = ff.view.PaperView2D(view)
 selection = ff.view.AreaSelectingView2D(paperview)
 irregu = ff.view.IrregularViewportView2D(selection)
 
 ff.view.buoy.NodeType2D.effigy = 0
 ff.view.buoy.NodeType2DFull.effigy = 0
 
-main_ctrl = ff.util.ControlBinding()
-node_ctrl = ff.util.ControlBinding()
-ctrlkey_ctrl = ff.util.ControlBinding()
-ctrl = ControlsDispatcher(main_ctrl, node_ctrl, ctrlkey_ctrl,
-                          fen.graph, ppAct)
-
-#context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview, ctrl)
-context = Context(w, fen, ppAct, nodeview, ctrl, spanImageFactory)
 
-context.initMainNodes(2)
+context = Context(w, fen, ppAct, nodeview, spanImageFactory)
 nodeview.setContext(context)
 textnodeview.setContext(context)
 context.states.cursor.setAccursed(noteA1)
@@ -184,21 +182,35 @@
 
 
 # Default controls
+mainMouse = vob.mouse.MouseMultiplexer()
+mainMouse.setListener(3, 0, mainMouse.VERTICAL, 1.0, \
+                      'Zooming the main view.', ZoomPan(context))
+mainMouse.setListener(3, 0, mainMouse.HORIZONTAL, 1.0, \
+                      'Changing the size of main view (currently only for 
pagescroll).', # text
+                      ChangeSize(context))
+mainMouse.setListener(1, 0,'Moving the pan around or the node if accursed.', \
+                      CanvasNodePressListener(context, \
+                      NodeMover(context), PanMover(context)))
+mainMouse.setWheelListener(0, 'Moving the pan', \
+                           PanMover(context))
+mainMouse.setListener(1, vob.VobMouseEvent.SHIFT_MASK,
+                      'Selecting area of main view.',
+                      SelectArea(context))
+mainMouse.setListener(1, 0, 'Browse to clicked point in the main view',
+                      BrowseClick(context))
 
-ctrl.setContext(context)
-main_ctrl.add(MovePanFast(context), -1, 0, ctrl.WHEEL, 13,1, ctrl.VERTICAL)
-main_ctrl.add(MovePanFast(context), 1, 0, ctrl.DRAG, 1, 0, ctrl.ALL)
-main_ctrl.add(MovePanSlow(), 1, ctrl.CLICK)
-main_ctrl.add(ZoomPan(), 3, 0, ctrl.DRAG, 1, 0, ctrl.VERTICAL)
-main_ctrl.add(PanSize(context), 3, 0, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL)
-main_ctrl.add(UnSelectNodeOnPlane(context), 3, ctrl.CLICK)
-main_ctrl.add(ShowMouseMenu(context), 2, ctrl.CLICK)
-
-node_ctrl.add(SelectNodeOnPlane(context), 3, ctrl.CLICK)
-node_ctrl.add(MoveNodeOnPlane(context), 1, ctrl.DRAG)
 
-ctrlkey_ctrl.add(SelectArea(context), 1, ctrl.DRAG)
 
+if 0:
+    ctrl.setContext(context)
+    main_ctrl.add(MovePanSlow(), 1, ctrl.CLICK)
+    main_ctrl.add(UnSelectNodeOnPlane(context), 3, ctrl.CLICK)
+    main_ctrl.add(ShowMouseMenu(context), 2, ctrl.CLICK)
+    
+    node_ctrl.add(SelectNodeOnPlane(context), 3, ctrl.CLICK)
+    node_ctrl.add(MoveNodeOnPlane(context), 1, ctrl.DRAG)
+    
+    ctrlkey_ctrl.add(SelectArea(context), 1, ctrl.DRAG)
 
 
 
@@ -210,25 +222,29 @@
 plane = Nodes.get(paperA)
 planeHome = Nodes.get(paperHome)
 
-mainNode = ff.view.buoy.MainNode2D(plane, irregu, ctrl)
-mainNode2 = ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
-#mainNode = ff.view.buoy.MainNode2D(plane, paperview, ctrl)
+mainNode = ff.view.buoy.MainNode2D(plane, irregu, mainMouse)
+mainNode2 = ff.view.buoy.MainNode2D(planeHome, irregu, mainMouse)
 
 
 ### MindMap
 mmview = ff.view.lava.mindMapView2D.MindMapView2D(fen, nodeview)
 mmview = ff.view.AreaSelectingView2D(mmview)
+
+
+### Connectors
+# MindMap
 mmconnector = ff.view.buoy.lava.MindMapConnector(fen)
 mmconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu, \
-    ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl))
+    ff.view.buoy.MainNode2D.MainNode2DFactory(1, mainMouse))
 mmconnector.mindMapNodeType =  ff.view.buoy.NodeType2DFull(mmview, \
-    ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl))
+    ff.view.buoy.MainNode2D.MainNode2DFactory(1, mainMouse))
 
 
+# PP(Canvas)
 ppconnector = ff.view.buoy.PPConnector(fen, irregu, 
-                       ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl),
+                       ff.view.buoy.MainNode2D.MainNode2DFactory(1, mainMouse),
                                        nodeview)
-
+# Transclusion
 tconnector = ff.view.buoy.TransclusionConnector(fen, nodeview)
 #pagescroll2d = ff.view.IrregularViewportView2D(
 #          ff.view.PaperView2D(vob.putil.demowindow.w, 
@@ -238,9 +254,9 @@
 pagescroll2d = ff.view.AreaSelectingView2D(pagescroll2d)
 
 tconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu,
-                       ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl))
+                       ff.view.buoy.MainNode2D.MainNode2DFactory(1, mainMouse))
 tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2DFull(pagescroll2d, 
\
-    ff.view.buoy.FisheyeMainNode2D.FisheyeMainNode2DFactory(ctrl))
+    ff.view.buoy.FisheyeMainNode2D.FisheyeMainNode2DFactory(mainMouse))
 
 
 class DoubleGeometer:
@@ -297,7 +313,7 @@
        buoywidth1 = w1 * .7
        buoyheight1 = h1 * 1
 
-        if (dbg): pa("SET DOUBLE ", h0, h1, w0, w1, s0, s1, buoywidth0, 
buoywidth1)
+        if (dbg): p("SET DOUBLE ", h0, h1, w0, w1, s0, s1, buoywidth0, 
buoywidth1)
 
        vs.coords.setOrthoBoxParams(self.into1, 1, 
                      ctrx - .5*w0*s0,
@@ -338,14 +354,17 @@
        return [(self.into1, self.buoyinto1), (self.into2, self.buoyinto2)]
 
     def mouse(self, ev, oldvs):
-        if dbg: pa(ev)
+        if dbg: p(ev)
 
         if ev.getType() == ev.MOUSE_RELEASED:
-            ctrl.removePressState()
+            p('mainMouse released?')
+            # mainMouse XXX
+            #ctrl.removePressState()
             self.context.states.clean()
             w.setCursor('default')
             # There is a bug in AbstractUpdateManager code(?) and that's why 
now is must to return.
-            return 1
+            # return 1
+            return 0
        #return 0
 
         # ...then see context
@@ -428,7 +447,7 @@
        buoywidth0 = w0 * 1.2
        buoyheight0 = h0 * 1.2
 
-        if (dbg): pa("SET SINGLE ", h0, w0, s0, buoywidth0)
+        if (dbg): p("SET SINGLE ", h0, w0, s0, buoywidth0)
 
        vs.coords.setOrthoBoxParams(self.into1, 1, 
                      ctrx - .5*w0*s0,
@@ -459,14 +478,12 @@
         if single:
             vob.buoy.buoymanager.MultiBuoyManager.__init__(self, 
                [mainNode], [ppconnector, mmconnector, tconnector],
-               SingleGeometer(self, context, nodeview),
-                context=context)
+               SingleGeometer(self, context, nodeview))
         else:
             vob.buoy.buoymanager.MultiBuoyManager.__init__(self, 
                [mainNode, mainNode2],
                 [ppconnector, mmconnector, tconnector],
-               DoubleGeometer(self, context, nodeview),
-                context=context)
+               DoubleGeometer(self, context, nodeview))
             
         w.setCursor('default')
 
Index: fenfire/org/fenfire/demo/fenpdfcontext.py
diff -u fenfire/org/fenfire/demo/fenpdfcontext.py:1.13 
fenfire/org/fenfire/demo/fenpdfcontext.py:1.14
--- fenfire/org/fenfire/demo/fenpdfcontext.py:1.13      Wed Jul 30 11:04:21 2003
+++ fenfire/org/fenfire/demo/fenpdfcontext.py   Wed Aug  6 12:02:31 2003
@@ -14,43 +14,14 @@
 global w
 
 
-# mixin interface for superclass proxy creation
-class SuperCaller:
-    def superproxy(self, superclass):
-        return SuperProxy(self, superclass)
-
-# this class lets you reference your superclass's methods, wrapping them in
-# SuperMethod objects
-class SuperProxy:
-    def __init__(self, instance, superclass):
-        self.instance = instance
-        self.superclass = superclass
-    def __getattr__(self, attrname):
-        return SuperMethod(getattr(self.superclass, attrname), self.instance)
-
-# This class is a Python-level mockup of a built-in instance method object: it
-# points to an instance and a method, and when called, calls the method with
-# the instance prepended to the argument list.  It would be nice if I could
-# just use the built-in instance method type and change its im_self to point to
-# a different Python object, but there doesn't appear to be any way to do that.
-class SuperMethod:
-    def __init__(self, method, instance):
-        self.method = method
-        self.instance = instance
-    def __call__(self, *args, **argdict):
-        nargs = list(args)
-        nargs.insert(0, self.instance)
-        return apply(self.method, nargs, argdict)
-
-
 class KeyHandler:
     def __init__(self, states):
         self.states = states
         self.makerTypes = [
-           papermakers.white(w),
-           papermakers.fancyBlend(w),
-           papermakers.fancyHalo(w),
-           papermakers.fancyBlur(w),
+           papermakers.white(),
+           papermakers.fancyBlend(),
+           papermakers.fancyHalo(),
+           papermakers.fancyBlur(),
             ]
     def key(self, stroke, main):
         p('KEY', stroke,', v:',main)
@@ -147,7 +118,9 @@
         self.spanImageFactory = spanImageFactory
         self.nodeview = nodeview
         self.pageview = None
-        self.lastMain = None
+
+        # buoymanager, set with setMgr()
+        self.mgr = None
 
         class Selection:
             def __init__(self):
@@ -202,13 +175,9 @@
 
 
 class Context(ff.view.lava.ContextNodeView.Context,
-              ff.view.buoy.AbstractMainNode2D.Render,
-              ff.view.lava.TextHandler.Context,
-              ff.view.lava.FenPDFContext,
-              SuperCaller):
-    def __init__(self, win, fen, pp, nv, ctrl, spanImageFactory):
-        self.super = self.superproxy(ff.view.lava.FenPDFContext)
-        ff.view.lava.FenPDFContext.__init__(self, fen, pp, nv, ctrl)
+              ff.view.buoy.AbstractMainNode2D.Context,
+              ff.view.lava.TextHandler.Context):
+    def __init__(self, win, fen, pp, nv, spanImageFactory):
         global w
         w = win
         self.states = ContextStates(fen, pp, spanImageFactory, nv)
@@ -217,10 +186,14 @@
         
         
     def setMngr(self, mngr):
-        self.mgr = mngr
+        self.states.mgr = mngr
         
     def key(self, key):
-        self.keys.key(key, self.mgr.getLastMain())
+        self.keys.key(key, self.states.mgr.getLastMain())
+
+    # call back from AbstractMainNode2D
+    def changeFastAfterMouseEvent(self):
+        return self.states.fastChg
 
     # call back from AbstractMainNode2D
     def mainNodeToBeRender(self, vs, into, main):
@@ -235,7 +208,7 @@
         #self.super.mainNodeToBeRender(vs, into, main)
 
         # draw cursor
-        if not self.states.cursor.hasAccursed() and main == 
self.states.lastMain:
+        if not self.states.cursor.hasAccursed() and main == 
self.states.mgr.getLastMain():
             tmp = jarray.zeros(2, 'f')
             vs.coords.getSqSize(into, tmp)
            cursorCS = vs.orthoBoxCS(into, "CURSOR", 0,
@@ -245,7 +218,7 @@
         
 
     def chgFast(self, oldVS):
-        s = self.mgr.getSingles()
+        s = self.states.mgr.getSingles()
         for i in s:
             i.getMainNode().chgFast(oldVS)
 
@@ -273,3 +246,8 @@
         b.add("[New paper]",     "NEW_PAPER");
        b.add("[Save]", "SAVE");
        b.add("[Load]", "LOAD");
+
+    def doMouse(self, ev, oldVS, mainNodes, contextNodeView):
+        pass
+
+    
Index: fenfire/org/fenfire/demo/mind.py
diff -u fenfire/org/fenfire/demo/mind.py:1.3 
fenfire/org/fenfire/demo/mind.py:1.4
--- fenfire/org/fenfire/demo/mind.py:1.3        Mon Aug  4 02:02:48 2003
+++ fenfire/org/fenfire/demo/mind.py    Wed Aug  6 12:02:31 2003
@@ -113,11 +113,9 @@
     def mouse(self, ev):
         vs = self.vs
 
-        p('event', ev, 'modif', ev.getModifiersEx())
-
         if ev.getType() == ev.MOUSE_CLICKED:
             print
-            if ev.getModifiers() == ev.BUTTON3_MASK:
+            if ev.getButton() == 3: #Modifiers() == ev.MOUSE_BUTTON3:
                 rotatelist(self.scumm)
                 c = self.scumm[0]
                 if c == 'go': w.setCursor('default')
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.1 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.2
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.1  Mon Aug  4 02:02:48 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Wed Aug  6 12:02:31 2003
@@ -15,6 +15,7 @@
 def p(*s):
     print 'mindMapView2D', s
 
+dbg = 0
 
 class MindMapMainNode2D(view.buoy.AbstractMainNode2D):
     def __init__(self, plane, view2d, focus, controller):
@@ -94,6 +95,7 @@
 
     def render(self, vs, node,
                matchingParent, box2screen, box2plane):
+        self.matchingParent = matchingParent
 
        if dbg:
            dbg1 = vs.unitSqCS(box2screen, "U")
@@ -123,21 +125,20 @@
         self.nodes.put(node, pl)
 
         self.doMindMapCS(vs, paper2screen, node, 0,0, 0, 1)
-        self.drawMindMap(vs, node)
+        self.drawMindMap(vs)
                          
-    def drawMindMap(self, vs, node):
-
+    def drawMindMap(self, vs):
         i = self.net.n.keySet().iterator()
         while i.hasNext():
-            n = i.next()
-            pl = self.nodes.get(n)
+            node = i.next()
+            pl = self.nodes.get(node)
             if pl == None: continue
             c = [ pl[0] ]
 
-            it = self.net.n.get(n).keySet().iterator()
+            it = self.net.n.get(node).keySet().iterator()
             while it.hasNext():
-                n2 = it.next()
-                pl2 = self.nodes.get(n2)
+                n = it.next()
+                pl2 = self.nodes.get(n)
                 if pl2 == None: continue
                 c.append(pl2[0])
                 if dbg: p('info:', pl2[0], pl2[1], pl2[2])
@@ -146,9 +147,13 @@
             def pc(conns, cs):
                 vs.put(conns, cs + c)
 
+            # draw fillets
             vob.fillet.light3d.drawFillets(self, vs, pc)
+
+            # draw text etc..
             cs = vs.coords.translate(pl[0], 0,0, -100)
-            self.putNodeContent(vs, n, cs)
+            vs.matcher.add(self.matchingParent, cs, node)
+            self.putNodeContent(vs, node, cs)
 
 
     def getLinks(self, fen, node):
@@ -206,7 +211,7 @@
 
         s = self.getNodeSize(deepnes)
         cs = vs.coords.orthoBox(into,0, x-s/2.0,y-s/2.0, 1,1, s,s)
-        p(cs, xy, angle, s)
+        if dbg: p(cs, xy, angle, s)
         return [cs, x, y, angle]
 
     def getXY(self, x0, y0, angle, deepnes):




reply via email to

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