[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: |
Fri, 22 Aug 2003 01:21:08 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Tuomas J. Lukka <address@hidden> 03/08/22 01:21:08
Modified files:
org/fenfire/bin: fenpdf10.py
org/fenfire/fenpdf: fenpdf.py
org/fenfire/fenpdf/actions: keyboard.py
org/fenfire/fenpdf/appearance: views.py
org/fenfire/fenpdf/events: key.py
Log message:
patch-27
Start getting rid of uses of PPActionsImpl. Simultaneously cleans up a
lot since the Nodes.get and toString don't need to be called as often.
patch-28
More getting rid of ppactionsimpl
patch-29
Move EventHandler to its own file, to start chipping on it
patch-30
Move key stuff finally all to one place
patch-31
Reload doesn't need to be handled - vob.putil.demo does it already
before calling us
patch-32
Move actions to where they belong
patch-33
Fix zooming to single view
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/bin/fenpdf10.py.diff?tr1=1.65&tr2=1.66&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/fenpdf.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/actions/keyboard.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/appearance/views.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/events/key.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/bin/fenpdf10.py
diff -u fenfire/org/fenfire/bin/fenpdf10.py:1.65
fenfire/org/fenfire/bin/fenpdf10.py:1.66
--- fenfire/org/fenfire/bin/fenpdf10.py:1.65 Thu Aug 21 15:23:59 2003
+++ fenfire/org/fenfire/bin/fenpdf10.py Fri Aug 22 01:21:07 2003
@@ -195,104 +195,12 @@
-
-class EventHandler:
- def __init__(self, context = None):
- self.context = context
-
-
- def mouse(self, ev, oldvs):
- """ Callback from buoymanager, should not do context things..
- Mostly because of click workaround.
- @see vob.buoy.buoymanager.MultibuoyManager.mouse(..)
- """
- if dbg: p(ev)
-
- if ev.getType() == ev.MOUSE_RELEASED:
- p('mainMouse released? - there\'s a bug in here!')
-
- # release event must go to mainMouse MouseMultiplexer to work
correctly!
- # mainMouse.deliverEvent(ev)
- # flush implemented...
- mainMouse.flush()
- buoyMouse.flush()
-
- w.setCursor('default')
-
- # workaround..
- if self.context.states.lastEvent.getType() == ev.MOUSE_PRESSED:
- p('workaround for a bug')
- return 1
-
- # There is a bug in AbstractUpdateManager code(?) and that's why
now is must to return.
- self.context.states.lastEvent = ev
- return 0
-
- def contextMouse(self, ev, oldvs):
- if ev.getType() != ev.MOUSE_CLICKED:
- return 0
-
- if self.context.doMouse(ev, oldvs):
- p('context seen, now cleaning it')
- self.context.clean()
- mainMouse.flush()
- vob.AbstractUpdateManager.chg()
- return 1
- self.context.clean()
- return 0
-
- def buoyMouse(self, mgr, ev, single, link):
- if buoyMouse.deliverEvent(ev):
- vob.AbstractUpdateManager.chg()
- return 1
-
- if ev.getType() != ev.MOUSE_CLICKED:
- return 0
-
- if not (ev.getButton() in [1, 3]):
- return 0
-
- if isinstance(link[0].getView2D(), ff.view.PageScrollView2D):
- mgr.singles[0].followLinkFromManager(link, single)
- elif ev.getButton() == 1:
- single.followLink(link)
- else:
- if mgr.singles[0] == single:
- mgr.singles[1].followLinkFromManager(link, single)
- else:
- mgr.singles[0].followLinkFromManager(link, single)
-
- vob.AbstractUpdateManager.chg()
- return 1
-
-
- def key(self, key):
- self.context.key(key)
-
- if key == "Home":
- self.context.states.buoymanager.singles[1].mainNode =
ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
- elif key == "Ctrl-Q":
- p("going to save");
- self.context.save()
-
-
- java.lang.System.exit(43)
- elif key == "Ctrl-R":
- vob.putil.demo.loadScenes()
- #elif key == "?":
- # vob.putil.demo.showHelp = 1-showHelp
- # vob.AbstractUpdateManager.setNoAnimation()
- else:
- return globalkey(key)
-
- vob.AbstractUpdateManager.chg()
- return 1
-
fenPDF = ff.fenpdf.fenpdf.FenPDF(fen, treetime)
+fenPDF.window = w
papers = ff.fenpdf.appearance.papers.Papers()
-eventHandler = EventHandler()
+eventHandler = ff.fenpdf.events.eventhandler.EventHandler(fenPDF)
context = Context(w, fen, ppActions, FILE)
Index: fenfire/org/fenfire/fenpdf/actions/keyboard.py
diff -u fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.3
fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.4
--- fenfire/org/fenfire/fenpdf/actions/keyboard.py:1.3 Thu Aug 21 14:31:02 2003
+++ fenfire/org/fenfire/fenpdf/actions/keyboard.py Fri Aug 22 01:21:07 2003
@@ -6,6 +6,8 @@
# Therefore, we'll just use a single class.
+import vob
+
from org.fenfire.swamp import Nodes
from org import fenfire as ff
from org.fenfire.util import RDFUtil
@@ -24,15 +26,13 @@
If no node is accursed, will do nothing.
"""
cur = self.context.states.cursor
- pp = self.context.states.ppActions
- acc = Nodes.toString(cur.getAccursed())
+ acc = cur.getAccursed()
if dbg: p( "Typing: ", cur, cur.getAccursed())
offs = cur.getCursorOffset()
-
- pp.insertText(acc, offs, char)
+ self.fenPDF.structure.alphContent.insertText(acc, offs, char, 1)
cur.setCursorOffset(offs + 1)
@@ -42,13 +42,18 @@
If no node is accursed, create a new node at cursor.
"""
cur = self.context.states.cursor
- pp = self.context.states.ppActions
if cur.getAccursed() == None:
- paper = Nodes.toString(main.getPlane())
- note = pp.newNote(paper, int(main.getFocus().getPanX()),
- int(main.getFocus().getPanY()), "")
- cur.setAccursed(Nodes.get(note))
+ 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)
+
+ cur.setAccursed(node)
self.insertChar(main, char)
@@ -62,12 +67,9 @@
acc = cur.getAccursed()
if acc == None: return
- # XXX !!!
- alphContent = ff.util.AlphContent(self.context.states.fen)
-
offs = cur.getCursorOffset() + n
if offs < 0: offs = 0
- l = len(alphContent.getText(acc))
+ l = len(self.fenPDF.structure.alphContent.getText(acc))
if offs > l: offs = l
@@ -75,32 +77,28 @@
def backspace(self, main):
cur = self.context.states.cursor
- pp = self.context.states.ppActions
- acc = cur.getAccursed()
- if acc == None: return
+ node = cur.getAccursed()
+ if node == None: return
offs = cur.getCursorOffset()
- note = Nodes.toString(acc)
-
- # XXX !!!
- alphContent = ff.util.AlphContent(self.fenPDF.fen)
+ alphContent = self.fenPDF.structure.alphContent
if offs >= 1:
p('delete:', offs)
- pp.deleteText(note, offs - 1, offs)
+ alphContent.deleteText(node, offs - 1, offs)
offs = cur.setCursorOffset(offs - 1)
- text = alphContent.getText(self.fenPDF.fen.constgraph, acc)
+ text = alphContent.getText(self.fenPDF.fen.constgraph, node)
if offs == 0 and len(text) == 0:
# If text went to nothingness
- if self.fenPDF.structure.structLink.isLinked(
- self.fenPDF.fen.graph, acc):
+ if self.fenPDF.structure.structLink.isLinked(node):
# Kludge workaround: insert # if it is linked
- pp.insertText(note, 0, "#")
+ self.fenPDF.structure.alphContent.insertText(node, 0, "#")
else:
# Delete the note
- pp.deleteNote(note)
+ self.fenPDF.structure.structLink.detach(node)
+ self.fenPDF.structure.canvas2d.removeNode(node)
cur.setAccursed(None)
@@ -112,3 +110,27 @@
def changeBgPaperMaker(self):
p("Not implemented")
pass
+
+
+
+ def goToHome(self, main):
+ # Graa - this certainly doesn't work XXX
+ # **AND** breaks encapsulation. Was moved
+ # here from fenpdf10.py, and needs fixing XXX
+ self.context.states.buoymanager.singles[1].mainNode =
ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
+
+ def save(self):
+ self.context.save()
+
+ def exit(self):
+ # Harsh
+ java.lang.System.exit(43)
+
+ def toggleZoomToSingle(self, main):
+ """Zoom to the currently focused view.
+
+ XXX Doesn't do that yet - always goes to upper view.
+ """
+ self.fenPDF.views.getDoubleGeometer().setSingle(
+ not self.fenPDF.views.getDoubleGeometer().getSingle())
+ vob.AbstractUpdateManager.chg()
Index: fenfire/org/fenfire/fenpdf/appearance/views.py
diff -u fenfire/org/fenfire/fenpdf/appearance/views.py:1.4
fenfire/org/fenfire/fenpdf/appearance/views.py:1.5
--- fenfire/org/fenfire/fenpdf/appearance/views.py:1.4 Wed Aug 20 14:30:13 2003
+++ fenfire/org/fenfire/fenpdf/appearance/views.py Fri Aug 22 01:21:08 2003
@@ -104,6 +104,9 @@
def getBuoyManager(self):
return self.buoyManager
+ def getDoubleGeometer(self):
+ return self.doubleGeometer
+
def setFocus(self, index, plane):
self.buoyManager.replaceManager(index,
self.createMainNode(plane))
Index: fenfire/org/fenfire/fenpdf/events/key.py
diff -u fenfire/org/fenfire/fenpdf/events/key.py:1.2
fenfire/org/fenfire/fenpdf/events/key.py:1.3
--- fenfire/org/fenfire/fenpdf/events/key.py:1.2 Thu Aug 21 08:45:08 2003
+++ fenfire/org/fenfire/fenpdf/events/key.py Fri Aug 22 01:21:08 2003
@@ -21,36 +21,40 @@
class KeyHandler:
def __init__(self, states):
self.states = states
- def key(self, stroke, main):
- if dbg: p('KEY', stroke,', v:',main)
+ def key(self, key, main):
+ if dbg: p('KEY', key,', v:',main)
### normal alphabets etc.
- if len(stroke) == 1:
- self.fenPDF.actions.key.insertCharOrCreate(main, stroke)
+ if len(key) == 1:
+ self.fenPDF.actions.key.insertCharOrCreate(main, key)
# XXX Need to get rid of these --
# needed for bolding and italics
- elif stroke == 'Ctrl-B':
+ elif key == 'Ctrl-B':
self.fenPDF.actions.key.toggleBgTextureUse()
- elif stroke == 'Ctrl-I':
+ elif key == 'Ctrl-I':
self.fenPDF.actions.key.changeBgPaperMaker()
# XXX Need to change this -- needed for saving!
- elif stroke == 'Ctrl-S':
- XXX
- currentScene.doubleGeometer.setSingle(
- not currentScene.doubleGeometer.getSingle())
- print "Set single: ",currentScene.doubleGeometer.getSingle()
- vob.AbstractUpdateManager.chg()
+ elif key == 'Ctrl-S':
+ self.fenPDF.actions.key.toggleZoomToSingle(main)
- elif stroke == 'Return':
+ elif key == "Home":
+ self.fenPDF.actions.key.goToHome(main)
+
+ elif key == "Ctrl-Q":
+ p("going to save");
+ self.fenPDF.actions.key.save()
+ self.fenPDF.actions.key.exit()
+
+ elif key == 'Return':
if dbg: p('Insert \\n')
self.fenPDF.actions.key.insertChar(main, "\n")
- elif stroke == 'Backspace':
+ elif key == 'Backspace':
self.fenPDF.actions.key.backspace(main)
- elif stroke == 'Left':
+ elif key == 'Left':
self.fenPDF.actions.key.moveInsertionCursor(main, -1)
- elif stroke == 'Right':
+ elif key == 'Right':
self.fenPDF.actions.key.moveInsertionCursor(main, 1)
Index: fenfire/org/fenfire/fenpdf/fenpdf.py
diff -u fenfire/org/fenfire/fenpdf/fenpdf.py:1.4
fenfire/org/fenfire/fenpdf/fenpdf.py:1.5
--- fenfire/org/fenfire/fenpdf/fenpdf.py:1.4 Thu Aug 21 15:23:59 2003
+++ fenfire/org/fenfire/fenpdf/fenpdf.py Fri Aug 22 01:21:07 2003
@@ -29,6 +29,8 @@
structLink -- a StructLink object
+ window -- the GraphicsAPI.window object
+
The internal members are prefixed by underscore.
"""
- [ff-cvs] fenfire/org/fenfire bin/fenpdf10.py fenpdf/fenp..., Tuomas J. Lukka, 2003/08/20
- [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 <=
- [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, 2003/08/24
- [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