fenfire-commits
[Top][All Lists]
Advanced

[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;




reply via email to

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