72 |
fen.txt = ff.impl.SimpleNodeContent(fen, myalph); |
fen.txt = ff.impl.SimpleNodeContent(fen, myalph); |
73 |
fen.txtfunc = fen.txt.getNodeFunction() |
fen.txtfunc = fen.txt.getNodeFunction() |
74 |
fen.enfiladeOverlap = fen.txt.getTransclusionIndex() |
fen.enfiladeOverlap = fen.txt.getTransclusionIndex() |
|
|
|
75 |
ppAct = ff.modules.pp.PPActionsImpl(fen) |
ppAct = ff.modules.pp.PPActionsImpl(fen) |
|
#ppAct.dbg = 1 |
|
|
#ff.view.CanvasView2D.dbg = 1 |
|
76 |
|
|
77 |
# Now, before reading the xu stuff, render something |
# Now, before reading the xu stuff, render something |
78 |
# to try to prevent NV driver |
# to try to prevent NV driver |
113 |
|
|
114 |
|
|
115 |
|
|
|
ctrl = ff.util.ControlBinding() |
|
|
ctrl.add(MovePanFast(), -1, ctrl.WHEEL, 7,0, ctrl.VERTICAL) |
|
|
ctrl.add(MovePanFast(), 1, ctrl.DRAG, 1, 0, ctrl.ALL) |
|
|
ctrl.add(MovePanSlow(), 1, ctrl.CLICK) |
|
|
ctrl.add(ZoomPan(), 3, ctrl.DRAG, 1, 0, ctrl.VERTICAL) |
|
|
ctrl.add(PanSize(), 3, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL) |
|
|
ctrl.add(UnSelectNodeOnPlane(), 3, ctrl.CLICK) |
|
|
|
|
|
node_ctrl = ff.util.ControlBinding() |
|
|
node_ctrl.add(SelectNodeOnPlane(), 3, node_ctrl.CLICK) |
|
|
node_ctrl.add(MoveNodeOnPlane(), 1, node_ctrl.DRAG) |
|
|
|
|
|
# pa(ev) |
|
|
|
|
|
# if hasattr(mngr.geometer, 'mouse') and \ |
|
|
# mngr.geometer.mouse(ev, mngr.vs): |
|
|
# return |
|
|
# x, y = ev.getX(), ev.getY() |
|
|
# cs = mngr.vs.getCSAt(0, x, y, None) |
|
|
|
|
|
# if ev.getID() == ev.MOUSE_RELEASED: |
|
|
# w.setCursor('default') |
|
|
# for ctrl in self.controls: |
|
|
# ctrl.removePressState() |
|
|
# return |
|
|
# if ev.getID() == ev.MOUSE_DRAGGED: |
|
|
# for ctrl in self.controls: |
|
|
# if ctrl.hasPressState(): |
|
|
# ctrl.handleEvent(None, ev, mngr.vs) |
|
|
# if ctrl.replaceVS: |
|
|
# mngr.replaceScene = mngr.vs |
|
|
# vob.AbstractUpdateManager.setNoAnimation() |
|
|
# vob.AbstractUpdateManager.chg() |
|
|
# return |
|
|
|
|
|
# ### If there exist a buoy jump over there |
|
|
# for single in mngr.singles: |
|
|
# link = single.cs.get(cs, None) |
|
|
# if link != None: |
|
|
# # pa("IN CS: ",cs, link) |
|
|
# if hasattr(mngr.geometer, 'buoyMouse') and \ |
|
|
# mngr.geometer.buoyMouse(mngr, ev, single, link): |
|
|
# return |
|
|
|
|
|
# if ev.getID() != ev.MOUSE_CLICKED: |
|
|
# return |
|
|
# single.followLink(link) |
|
|
# vob.AbstractUpdateManager.chg() |
|
|
# return |
|
|
|
|
|
# ### Fall through if no link - need main node |
|
|
# for i in range(0, len(mngr.singles)): |
|
|
# if mngr.singles[i].mainNode.isHitInsidePlane(x,y,mngr.vs): |
|
|
# self.context.setMainNodeIndex(i) |
|
|
# self.lastIndex = i |
|
|
|
|
|
# ### See if there's somtehing on a plane. |
|
|
# obj = mngr.singles[i].mainNode.getNodeOnPlane(mngr.vs, x,y) |
|
|
# if obj != None and \ |
|
|
# self.controlNodesOnMain.hasBinding(ev): |
|
|
# if self.controlNodesOnMain.handleEvent( \ |
|
|
# Pair(mngr.singles[i].mainNode, obj), ev, mngr.vs): |
|
|
# # can't replace vobscene!! |
|
|
# # mngr.replaceScene = mngr.vs |
|
|
# vob.AbstractUpdateManager.setNoAnimation() |
|
|
# vob.AbstractUpdateManager.chg() |
|
|
# return |
|
|
|
|
|
# if self.controlMains.handleEvent(mngr.singles[i].mainNode, ev, mngr.vs): |
|
|
# mngr.replaceScene = mngr.vs |
|
|
# vob.AbstractUpdateManager.setNoAnimation() |
|
|
# vob.AbstractUpdateManager.chg() |
|
|
# return |
|
|
|
|
|
# # ...then see context |
|
|
# if ev.getID() != ev.MOUSE_CLICKED: |
|
|
# return |
|
|
# self.context.setMainNodeIndex(self.lastIndex) |
|
|
# planes = [] |
|
|
# for single in mngr.singles: |
|
|
# planes.append(single.getMainNode()) |
|
|
# newPlanes = self.context.doMouse(ev, mngr.vs, planes) |
|
|
# if newPlanes != None and planes != newPlanes: |
|
|
# for i in range(0, len(newPlanes)): |
|
|
# mngr.singles[i] = vob.buoy.buoymanager.SingleFocusManager( |
|
|
# newPlanes[i], |
|
|
# mngr.connectors) |
|
|
# vob.AbstractUpdateManager.chg() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
|
117 |
textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24) |
textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24) |
118 |
textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1) |
textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1) |
130 |
ff.view.buoy.NodeType2D.effigy = 0 |
ff.view.buoy.NodeType2D.effigy = 0 |
131 |
ff.view.buoy.NodeType2DFull.effigy = 0 |
ff.view.buoy.NodeType2DFull.effigy = 0 |
132 |
|
|
133 |
|
main_ctrl = ff.util.ControlBinding() |
134 |
|
node_ctrl = ff.util.ControlBinding() |
135 |
|
ctrl = PlaneDispatcher(main_ctrl, node_ctrl, fen.graph, ppAct) |
136 |
|
|
137 |
|
global context |
138 |
context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview, ctrl) |
context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview, ctrl) |
139 |
context.initMainNodes(2) |
context.initMainNodes(2) |
140 |
nodeview.setContext(context) |
nodeview.setContext(context) |
148 |
ff.view.buoy.AbstractMainNode2D.context = context |
ff.view.buoy.AbstractMainNode2D.context = context |
149 |
|
|
150 |
|
|
151 |
|
# Default controls |
152 |
|
|
153 |
|
ctrl.setContext(context) |
154 |
|
main_ctrl.add(MovePanFast(), -1, ctrl.WHEEL, 7,0, ctrl.VERTICAL) |
155 |
|
main_ctrl.add(MovePanFast(), 1, ctrl.DRAG, 1, 0, ctrl.ALL) |
156 |
|
main_ctrl.add(MovePanSlow(), 1, ctrl.CLICK) |
157 |
|
main_ctrl.add(ZoomPan(), 3, ctrl.DRAG, 1, 0, ctrl.VERTICAL) |
158 |
|
main_ctrl.add(PanSize(), 3, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL) |
159 |
|
main_ctrl.add(UnSelectNodeOnPlane(context), 3, ctrl.CLICK) |
160 |
|
|
161 |
|
node_ctrl.add(SelectNodeOnPlane(context), 3, node_ctrl.CLICK) |
162 |
|
node_ctrl.add(MoveNodeOnPlane(context), 1, node_ctrl.DRAG) |
163 |
|
|
164 |
|
|
165 |
|
|
166 |
|
|
167 |
|
|
168 |
|
|
169 |
|
|
197 |
|
|
198 |
|
|
199 |
class DoubleGeometer: |
class DoubleGeometer: |
200 |
def __init__(self, mgr): |
def __init__(self, mgr, context): |
201 |
self.split = .5 |
self.split = .5 |
202 |
self.height = 100 |
self.height = 100 |
203 |
self.width = 100 |
self.width = 100 |
204 |
self.mgr = mgr |
self.mgr = mgr |
205 |
|
self.context = context |
206 |
def _doset(self, vs): |
def _doset(self, vs): |
207 |
|
|
208 |
w,h = vs.size.width, vs.size.height |
w,h = vs.size.width, vs.size.height |
288 |
|
|
289 |
def mouse(self, ev, oldvs): |
def mouse(self, ev, oldvs): |
290 |
if dbg: pa(ev) |
if dbg: pa(ev) |
|
if 0 and ev.getID() == ev.MOUSE_WHEEL: |
|
|
pa("WHEEL") |
|
|
r = ev.getWheelRotation() |
|
|
self.split -= .03 * r |
|
|
self._doset(oldvs) |
|
|
vob.AbstractUpdateManager.setNoAnimation() |
|
|
vob.AbstractUpdateManager.chg() |
|
|
return 1 |
|
291 |
|
|
292 |
return 0 |
if ev.getID() == ev.MOUSE_RELEASED: |
293 |
|
ctrl.removePressState() |
294 |
|
w.setCursor('default') |
295 |
|
return 1 |
296 |
|
#return 0 |
297 |
|
|
298 |
|
# ...then see context |
299 |
|
if ev.getID() != ev.MOUSE_CLICKED: |
300 |
|
return 0 |
301 |
|
self.context.setMainNodeIndex(self.mgr.lastIndex) |
302 |
|
planes = [] |
303 |
|
for single in self.mgr.singles: |
304 |
|
planes.append(single.getMainNode()) |
305 |
|
newPlanes = self.context.doMouse(ev, oldvs, planes) |
306 |
|
if newPlanes != None and planes != newPlanes: |
307 |
|
for i in range(0, len(newPlanes)): |
308 |
|
self.mgr.singles[i] = vob.buoy.buoymanager.SingleFocusManager( |
309 |
|
newPlanes[i], |
310 |
|
self.mgr.connectors) |
311 |
|
vob.AbstractUpdateManager.chg() |
312 |
|
return 1 |
313 |
|
return 0 |
314 |
|
|
315 |
|
|
316 |
|
|
317 |
|
|
318 |
def buoyMouse(self, mgr, ev, single, link): |
def buoyMouse(self, mgr, ev, single, link): |
319 |
if ev.getID() != ev.MOUSE_CLICKED: |
if ev.getID() != ev.MOUSE_CLICKED: |
341 |
elif key == "-": |
elif key == "-": |
342 |
self.split -= .03 |
self.split -= .03 |
343 |
elif key == "Home": |
elif key == "Home": |
344 |
self.mgr.singles[1].mainNode = ff.view.buoy.MainNode2D(planeHome, irregu) |
self.mgr.singles[1].mainNode = ff.view.buoy.MainNode2D(planeHome, irregu, ctrl) |
345 |
elif key == "Ctrl-Q": |
elif key == "Ctrl-Q": |
346 |
from java.lang import System |
from java.lang import System |
347 |
System.exit(43) |
System.exit(43) |
361 |
def __init__(self): |
def __init__(self): |
362 |
vob.buoy.buoymanager.MultiBuoyManager.__init__(self, |
vob.buoy.buoymanager.MultiBuoyManager.__init__(self, |
363 |
[mainNode, mainNode2], [ppconnector, tconnector], |
[mainNode, mainNode2], [ppconnector, tconnector], |
364 |
DoubleGeometer(self), |
DoubleGeometer(self, context), |
365 |
context=context) |
context=context) |
366 |
w.setCursor('default') |
w.setCursor('default') |
367 |
|
|
|
|
|
368 |
currentScene = Scene() |
currentScene = Scene() |
369 |
|
|
370 |
|
|