[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp...
From: |
Tuomas J. Lukka |
Subject: |
[ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp... |
Date: |
Sun, 24 Aug 2003 08:06:01 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Tuomas J. Lukka <address@hidden> 03/08/24 08:06:01
Modified files:
org/fenfire/bin: fenpdf10.py
org/fenfire/fenpdf: fenpdf.py fenpdfcontext.py
org/fenfire/fenpdf/actions: keyboard.py menu.py
org/fenfire/fenpdf/events: mousemenu.py
org/fenfire/view/buoy: TTConnector.java
Added files:
org/fenfire/fenpdf/actions: abstract.py
Log message:
Lots more reorg -- it's starting to become clean
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/bin/fenpdf10.py.diff?tr1=1.71&tr2=1.72&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/fenpdf.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/fenpdfcontext.py.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/actions/abstract.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/actions/keyboard.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/actions/menu.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/events/mousemenu.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/TTConnector.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/bin/fenpdf10.py
diff -u fenfire/org/fenfire/bin/fenpdf10.py:1.71
fenfire/org/fenfire/bin/fenpdf10.py:1.72
--- fenfire/org/fenfire/bin/fenpdf10.py:1.71 Sat Aug 23 13:13:33 2003
+++ fenfire/org/fenfire/bin/fenpdf10.py Sun Aug 24 08:06:01 2003
@@ -207,6 +207,9 @@
context = Context(w, fen, ppActions, FILE)
+context.states.selection = \
+ fenPDF.uistate.selection = ff.fenpdf.fenpdfcontext.Selection()
+
context.mousemenu = ff.fenpdf.events.mousemenu.MouseMenu(fenPDF,
context.states)
fenPDF.events.mousemenu = context.mousemenu
@@ -234,6 +237,7 @@
fenPDF.actions.mouse = ff.fenpdf.actions.mouse.MouseActions(fenPDF,context)
fenPDF.actions.key = ff.fenpdf.actions.keyboard.KeyActions(context)
fenPDF.actions.menu = ff.fenpdf.actions.menu.MenuActions(fenPDF)
+fenPDF.actions.abstract = ff.fenpdf.actions.abstract.AbstractActions(fenPDF)
fenPDF.events.mouse.fenPDF = fenPDF
Index: fenfire/org/fenfire/fenpdf/actions/keyboard.py
diff -u fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.7
fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.8
--- fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.7 Sat Aug 23 13:13:33 2003
+++ fenfire/org/fenfire/fenpdf/actions/keyboard.py Sun Aug 24 08:06:01 2003
@@ -39,7 +39,7 @@
self.fenPDF.structure.alphContent.insertText(acc, offs, char, 1)
cur.setCursorOffset(offs + 1)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def insertCharOrCreate(self, main, char):
@@ -50,20 +50,16 @@
cur = self.context.states.cursor
if cur.getAccursed() == None:
- canvas = main.getPlane()
- node = Nodes.N()
- self.fenPDF.structure.canvas2d.placeOnCanvas(
- canvas, node,
- main.getFocus().getPanX(),
- main.getFocus().getPanY())
- self.fenPDF.structure.alphContent.setText(
- node, "", 1)
-
+ node = self.fenPDF.actions.abstract.createNewNode(
+ main.getPlane(),
+ main.getFocus().getPanX(),
+ main.getFocus().getPanY(),
+ )
cur.setAccursed(node)
self.insertChar(main, char)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def moveInsertionCursor(self, main, n):
"""Move the text insertion cursor by n.
@@ -83,7 +79,7 @@
cur.setCursorOffset(offs)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def backspace(self, main):
cur = self.context.states.cursor
@@ -111,7 +107,7 @@
self.fenPDF.structure.canvas2d.removeNode(node)
cur.setAccursed(None)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
# XXX Not implemented
@@ -131,11 +127,11 @@
# here from fenpdf10.py, and needs fixing XXX
self.context.states.buoymanager.singles[1].mainNode =
ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def save(self):
self.context.save()
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def exit(self):
# Harsh
@@ -149,7 +145,7 @@
self.fenPDF.views.getDoubleGeometer().setSingle(
not self.fenPDF.views.getDoubleGeometer().getSingle())
vob.AbstractUpdateManager.chg()
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def importPDF(self):
@@ -161,14 +157,14 @@
p('sc: ',scrollBlock,'id: ', scrollBlock.getID())
if scrollBlock != None:
self.moveTo(None, scrollBlock)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def newCanvas(self):
canvas = Nodes.N()
self.fenPDF.structure.canvas2d.makeIntoCanvas(canvas)
self.fenPDF.structure.treeTime.addLatest(self.fenPDF.fen.graph, canvas)
self.moveTo(None, canvas)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
def moveTo(self, main, newFocus):
"""Move the focus to a new place.
@@ -179,7 +175,7 @@
index = 0
self.fenPDF.views.setFocus(index, newFocus)
- fenPDF.animation.regenerateVS()
+ self.fenPDF.animation.regenerateVS()
Index: fenfire/org/fenfire/fenpdf/actions/menu.py
diff -u fenfire/org/fenfire/fenpdf/actions/menu.py:1.1
fenfire/org/fenfire/fenpdf/actions/menu.py:1.2
--- fenfire/org/fenfire/fenpdf/actions/menu.py:1.1 Sun Aug 24 08:00:38 2003
+++ fenfire/org/fenfire/fenpdf/actions/menu.py Sun Aug 24 08:06:01 2003
@@ -64,5 +64,54 @@
if node == None: return
self.fenPDF.structure.structLink.detach(node)
self.fenPDF.structure.canvas2d.removeNode(node)
-
+
+ def killPlane(self):
+ """Delete a main node.
+
+ XXX HOW TO DELETE FROM TREETIME
+ XXX Disabled until treetime made to support this.
+ """
+ p("Deleting planes disabled until the treetime code fixed.")
+ return
+
+ mainNode = self.fenPDF.uistate.menu.originatingMainNode
+ ### WRONG BASIS FOR DECISION - SHOULD LOOK AT THE TYPE
+ ### OF THE PLANE INSIDE.
+ if isinstance(main, ff.view.buoy.MainNode2D):
+ p('KILLING THE PLANE!')
+ self.states.ppActions.deletePaper(main.getPlane())
+ # put a new paper int there
+
self.states.buoymanager.replaceManager(self.states.buoymanager.lastIndex,
+
ff.view.buoy.MainNode2D(ff.swamp.Nodes.get(self.states.ppActions.newPaper()),
+
self.states.view2d.irregu, ff.view.buoy.AbstractMainNode2D.SimpleFocus(0,0),1,
+
self.states.mainMouse))
+ elif isinstance(main, ff.view.buoy.FisheyeMainNode2D):
+ p('foo fish eye')
+ else:
+ p('plaah, unknow main view2d')
+
+
+ def transclude(self):
+ pdfMainNode = self.fenPDF.uistate.selection.getMainNode()
+ # XXX Check assertion it's pdf
+
+ area = self.fenPDF.uistate.selection.getXYWH()
+ obj = pdfMainNode.getView2D().getSelectedObject(
+ pdfMainNode.getPlane(), *area)
+ print "Transclude selected: ",pdfMainNode.getPlane(), area, obj
+ if obj == None:
+ p("Null??")
+ return
+ canvasMainNode = self.fenPDF.uistate.menu.originatingMainNode
+ # Check that it really is a canvas
+ if not
self.fenPDF.structure.canvas2d.isCanvas(canvasMainNode.getPlane()):
+ p("NOT A CANVAS!")
+ return
+ # XXX Use oldvs to get location where mouse was clicked
+ focus = canvasMainNode.getFocus()
+ node = self.fenPDF.actions.abstract.createNewNode(
+ canvasMainNode.getPlane(),
+ focus.getPanX(), focus.getPanY())
+ self.fenPDF.fen.txt.set(node, obj)
+
Index: fenfire/org/fenfire/fenpdf/events/mousemenu.py
diff -u fenfire/org/fenfire/fenpdf/events/mousemenu.py:1.3
fenfire/org/fenfire/fenpdf/events/mousemenu.py:1.4
--- fenfire/org/fenfire/fenpdf/events/mousemenu.py:1.3 Sat Aug 23 13:13:33 2003
+++ fenfire/org/fenfire/fenpdf/events/mousemenu.py Sun Aug 24 08:06:01 2003
@@ -11,56 +11,6 @@
print 'ff.fenpdf.events.mousemenu::', s
class MouseMenu:
- class Action:
- def __init__(self, fenPDF, states):
- self.states = states
- self.fenPDF = fenPDF
- def __call__(self):
- pass
- class KillPlane(Action):
- def __call__(self):
- main = self.states.buoymanager.getLastMain()
- if isinstance(main, ff.view.buoy.MainNode2D):
- self.states.ppActions.deletePaper(main.getPlane())
- p('YOU ARE KILLING THE P(L)ANE!')
- # put a new paper int there
-
self.states.buoymanager.replaceManager(self.states.buoymanager.lastIndex,
-
ff.view.buoy.MainNode2D(ff.swamp.Nodes.get(self.states.ppActions.newPaper()),
-
self.states.view2d.irregu, ff.view.buoy.AbstractMainNode2D.SimpleFocus(0,0),1,
-
self.states.mainMouse))
- elif isinstance(main, ff.view.buoy.FisheyeMainNode2D):
- p('foo fish eye')
- else:
- p('plaah, unknow main view2d')
-
- class GoHome(Action):
- def __call__(self):
- pass
- #self.s.buoymanager.singles[1].mainNode =
ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
-
-
- class Transclude(Action):
- def __call__(self):
- pdfMainNode = self.states.selection.getMainNode()
- area = self.states.selection.getXYWH()
- obj = pdfMainNode.getView2D().getSelectedObject(
- pdfMainNode.getPlane(), *area)
- print "Transclude selected: ",pdfMainNode.getPlane(), area, obj
- if obj == None:
- p("Null??")
- return
- canvasMainNode = self.states.buoymanager.getLastMain()
- plane = Nodes.toString(canvasMainNode.getPlane())
- # Check (this method is only in PPActionsImpl XXX)
- if not self.states.ppActions.isPaper(plane):
- p("NOT A CANVAS!")
- # XXX Use oldvs to get location where mouse was clicked
- focus = canvasMainNode.getFocus()
- node = Nodes.get(self.states.ppActions.newNote(plane,
- focus.getPanX(), focus.getPanY(), ""))
- self.states.fen.txt.set(node, obj)
-
-
def __init__(self, fenPDF, states):
self.fenPDF = fenPDF
@@ -75,14 +25,14 @@
self.selectListVob = vob.vobs.SelectListVob(self.style)
if self.states.selection.hasSelection():
self.selectListVob.add('Transclude selection (PDF to canvas only)',
- self.Transclude(self.fenPDF, self.states))
+ lambda: self.fenPDF.actions.menu.transclude())
if self.link:
self.selectListVob.add('Link node to left',
lambda: self.fenPDF.actions.menu.structLinkNodes(-1))
self.selectListVob.add('Link node to right',
lambda: self.fenPDF.actions.menu.structLinkNodes(1))
- self.selectListVob.add('Go to home', 'home')
- self.selectListVob.add('Destroy this canvas',
self.KillPlane(self.fenPDF, self.states))
+ self.selectListVob.add('Destroy this canvas',
+ lambda: self.fenPDF.actions.menu.killPlane())
if self.link:
self.selectListVob.add('Delete this node',
lambda: self.fenPDF.actions.menu.deleteNode())
Index: fenfire/org/fenfire/fenpdf/fenpdf.py
diff -u fenfire/org/fenfire/fenpdf/fenpdf.py:1.9
fenfire/org/fenfire/fenpdf/fenpdf.py:1.10
--- fenfire/org/fenfire/fenpdf/fenpdf.py:1.9 Sat Aug 23 13:13:33 2003
+++ fenfire/org/fenfire/fenpdf/fenpdf.py Sun Aug 24 08:06:01 2003
@@ -104,6 +104,7 @@
mouse -- an object like org.fenfire.fenpdf.actions.mouse.MouseActions
key --
menu --
+ abstract --
structure -- an object with no methods, just fields:
@@ -123,6 +124,8 @@
inside views.
Any selections, cursors, &c are here.
+
+ selection -- a Selection object
cursor -- the accursed node or plane
Index: fenfire/org/fenfire/fenpdf/fenpdfcontext.py
diff -u fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.25
fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.26
--- fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.25 Sat Aug 23 06:48:41 2003
+++ fenfire/org/fenfire/fenpdf/fenpdfcontext.py Sun Aug 24 08:06:01 2003
@@ -41,6 +41,40 @@
set.add(node)
self.multiplexer.setMultiplexerNodes(set)
+class Selection:
+ """A selected area
+
+ self.area = x0,y0,x1,y1
+ """
+ def __init__(self):
+ self.area = [0,0,0,0]
+ self.mainNode = None
+ def getArea(self): return self.area
+ def getMainNode(self): return self.mainNode
+ def setArea(self, area, mainNode):
+ self.area = area
+ self.mainNode = mainNode
+ def hasSelection(self):
+ a = self.area
+ return (a[0]-a[2]) != 0 and (a[1]-a[3]) != 0
+ def getXYWH(self):
+ """Return a x, y, width, height tuple.
+ """
+ a = self.area
+ if a[2] > a[0]:
+ x = a[0]
+ w = a[2]-a[0]
+ else:
+ x = a[2]
+ w = a[0]-a[2]
+ if a[3] > a[1]:
+ y = a[1]
+ h = a[3]-a[1]
+ else:
+ y = a[3]
+ h = a[1]-a[3]
+ return (x, y, w, h)
+
class ContextStates:
def __init__(self, fen, ppAction):
self.clean()
@@ -53,41 +87,6 @@
# main view mouse multiplexer
self.mainMouse = None
-
- class Selection:
- """A selected area
-
- self.area = x0,y0,x1,y1
- """
- def __init__(self):
- self.area = [0,0,0,0]
- self.mainNode = None
- def getArea(self): return self.area
- def getMainNode(self): return self.mainNode
- def setArea(self, area, mainNode):
- self.area = area
- self.mainNode = mainNode
- def hasSelection(self):
- a = self.area
- return (a[0]-a[2]) != 0 and (a[1]-a[3]) != 0
- def getXYWH(self):
- """Return a x, y, width, height tuple.
- """
- a = self.area
- if a[2] > a[0]:
- x = a[0]
- w = a[2]-a[0]
- else:
- x = a[2]
- w = a[0]-a[2]
- if a[3] > a[1]:
- y = a[1]
- h = a[3]-a[1]
- else:
- y = a[3]
- h = a[1]-a[3]
- return (x, y, w, h)
- self.selection = Selection()
# kludge to keep flag how BuoyViewMainNode.mouse() should return.
# see AbstractMainNode2D.mouse()
Index: fenfire/org/fenfire/view/buoy/TTConnector.java
diff -u fenfire/org/fenfire/view/buoy/TTConnector.java:1.5
fenfire/org/fenfire/view/buoy/TTConnector.java:1.6
--- fenfire/org/fenfire/view/buoy/TTConnector.java:1.5 Sun Aug 17 15:55:02 2003
+++ fenfire/org/fenfire/view/buoy/TTConnector.java Sun Aug 24 08:06:01 2003
@@ -41,6 +41,11 @@
/** A Buoy connector for TreeTime.
* XXX Generalize to general page / block relation!
* Note that this connector gives a null anchor.
+ * <p>
+ * If a node's type is unrecognized, the next level will
+ * be used. This avoids problems with deletion of planes -
+ * no node will be deleted from treetime.
+ * XXX NOT IMPLEMENTED
*/
public class TTConnector implements BuoyViewConnector {
public static boolean dbg = false;
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., (continued)
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/21
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Matti Katila, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/22
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/23
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/24
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp...,
Tuomas J. Lukka <=
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/24
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/25
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/26