[Top][All Lists]
[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):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire demo/buoyoing.py demo/fenpd...,
Matti Katila <=