[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire Fen.java demo/buoyoing.py v...
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] fenfire/org/fenfire Fen.java demo/buoyoing.py v... |
Date: |
Sun, 08 Jun 2003 07:21:00 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Benja Fallenstein <address@hidden> 03/06/08 07:21:00
Modified files:
org/fenfire : Fen.java
org/fenfire/demo: buoyoing.py
org/fenfire/view: TextNodeView.java
org/fenfire/view/lava: FenPDFContext.java
Log message:
linebreaking in FenPDF
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/Fen.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.61&tr2=1.62&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/TextNodeView.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/FenPDFContext.java.diff?tr1=1.28&tr2=1.29&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/Fen.java
diff -u fenfire/org/fenfire/Fen.java:1.8 fenfire/org/fenfire/Fen.java:1.9
--- fenfire/org/fenfire/Fen.java:1.8 Thu Apr 24 09:29:12 2003
+++ fenfire/org/fenfire/Fen.java Sun Jun 8 07:21:00 2003
@@ -28,12 +28,12 @@
/** The span maker for user-typed spans.
*/
public org.nongnu.alph.SpanMaker userSpanMaker =
- new org.nongnu.alph.impl.FakeSpanMaker(); // XXX
+ new org.nongnu.alph.impl.URN5SpanMaker();
/** The span maker for computer-generated spans.
*/
public org.nongnu.alph.SpanMaker fakeSpanMaker =
- new org.nongnu.alph.impl.FakeSpanMaker();
+ new org.nongnu.alph.impl.URN5SpanMaker();
/** The enfilade maker.
*/
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.61
fenfire/org/fenfire/demo/buoyoing.py:1.62
--- fenfire/org/fenfire/demo/buoyoing.py:1.61 Sat Jun 7 15:55:27 2003
+++ fenfire/org/fenfire/demo/buoyoing.py Sun Jun 8 07:21:00 2003
@@ -104,7 +104,8 @@
textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)
-textnodeview = ff.view.lava.RSTText(fen.txtfunc, textstyle, 1)
+#textnodeview = ff.view.lava.RSTText(fen.txtfunc, textstyle, 1)
+textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)
pagenodeview = ff.view.PageNodeView(fen.txtfunc)
dispnodeview = ff.view.DispatchingNodeView(fen.txtfunc,
textnodeview,
@@ -122,7 +123,7 @@
context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview)
context.initMainNodes(2)
nodeview.setContext(context)
-textnodeview.setContext(context)
+#textnodeview.setContext(context)
context.setAccursed(noteA1)
context.setCursorOffset(3)
context.ppView = irregu
@@ -275,9 +276,9 @@
System.exit(43)
elif key == "Ctrl-R":
vob.putil.demo.loadScenes()
- elif key == "?":
- vob.putil.demo.showHelp = 1-showHelp
- vob.AbstractUpdateManager.setNoAnimation()
+ #elif key == "?":
+ # vob.putil.demo.showHelp = 1-showHelp
+ # vob.AbstractUpdateManager.setNoAnimation()
else:
return globalkey(key)
@@ -341,13 +342,13 @@
frame += 1
def globalkey(k):
- if k == "P":
+ if k == "Ctrl-P":
s = Scene()
vs = s.getVs()
w.renderStill(vs, 0);
saveanim.saveframe("/tmp/buoyframeWithHand.png", w)
- if k == "S":
+ if k == "Ctrl-S":
screenshots()
if k == "Ctrl-PrinT":
screenshots()
Index: fenfire/org/fenfire/view/TextNodeView.java
diff -u fenfire/org/fenfire/view/TextNodeView.java:1.4
fenfire/org/fenfire/view/TextNodeView.java:1.5
--- fenfire/org/fenfire/view/TextNodeView.java:1.4 Mon May 12 00:33:11 2003
+++ fenfire/org/fenfire/view/TextNodeView.java Sun Jun 8 07:21:00 2003
@@ -29,6 +29,7 @@
import org.fenfire.swamp.*;
import org.nongnu.alph.*;
import org.nongnu.libvob.*;
+import org.nongnu.libvob.linebreaking.*;
import org.nongnu.libvob.vobs.*;
/** A node function returning a vob that shows
@@ -37,14 +38,18 @@
* currently, places text as a single very long line.
*/
public class TextNodeView implements NodeFunction {
-public static final String rcsid = "$Id: TextNodeView.java,v 1.4 2003/05/12
04:33:11 tjl Exp $";
+public static final String rcsid = "$Id: TextNodeView.java,v 1.5 2003/06/08
11:21:00 benja Exp $";
public static boolean dbg = false;
private static void pa(String s) { System.out.println("TextNodeView::"+s);
}
+ final SimpleLinebreaker breaker = new SimpleLinebreaker();
+
final NodeFunction nodeContent;
final TextStyle style;
final float scale;
+ final float width = 300;
+
public TextNodeView(NodeFunction nodeContent,
TextStyle style,
float scale) {
@@ -58,23 +63,64 @@
final Object objNode = node;
String s = enf.makeString();
- final TextVob vob = new TextVob(style, s, false);
- final float width = style.getWidth(s, scale);
- final float height = style.getHeight(scale);
+
+ HChain ch = getChain(s);
+ final HBroken br = breaker.breakLines(ch, width, scale);
+ final float height = br.getHeight();
+
+ //final TextVob vob = new TextVob(style, s, false);
+ //final float width = style.getWidth(s, scale);
+ //final float height = style.getHeight(scale);
if(dbg) {
- pa("Textnodeview: '"+s+"' "+width+" "+height);
+ pa("Textnodeview: '"+s+"' "+width+" "+height+" "+scale+" "+br);
}
return new org.nongnu.libvob.lava.placeable.Placeable() {
public void place(VobScene vs, int into) {
- int scaled = vs.orthoCS(into, objNode, 0,
- 0, 0, height, height);
- vs.put(vob, scaled);
+ br.put(vs, into);
}
public float getWidth() { return width; }
public float getHeight() { return height; }
};
+ }
+
+
+ protected HChain getChain(String s) {
+ HChain ch = new LinebreakableChain();
+
+ int pos = 0;
+ int last;
+ while(pos < s.length()) {
+ last = pos;
+ int sp = s.indexOf(' ', pos);
+ int br = s.indexOf('\n', pos);
+
+ if(sp >= 0 && br >= 0)
+ pos = sp<br ? sp+1 : br;
+ else if(sp >= 0) pos = sp+1;
+ else if(br >= 0) pos = br;
+ else
+ pos = s.length();
+
+ addVobs(s, ch, last, pos);
+ if(pos == br) {
+ ch.addBox(new HBox.Null(1));
+ ch.addBreak();
+ pos++;
+ }
+ }
+
+ return ch;
+ }
+
+ protected void addVobs(String s, HChain ch, int start, int end) {
+ Object key = new Integer(start+1472);
+ s = s.substring(start, end);
+
+ if(dbg) pa("addVobs: "+start+" "+end+" '"+s+"'");
+ TextVob vob = new TextVob(style, s, false, key);
+ ch.addBox(vob);
}
}
Index: fenfire/org/fenfire/view/lava/FenPDFContext.java
diff -u fenfire/org/fenfire/view/lava/FenPDFContext.java:1.28
fenfire/org/fenfire/view/lava/FenPDFContext.java:1.29
--- fenfire/org/fenfire/view/lava/FenPDFContext.java:1.28 Sat Jun 7
15:55:27 2003
+++ fenfire/org/fenfire/view/lava/FenPDFContext.java Sun Jun 8 07:21:00 2003
@@ -327,11 +327,12 @@
public void handleKeyStroke(String stroke, AbstractMainNode2D main)
{ try {
// synchronized(fen) XXX
- p("s: "+stroke+", v: "+main);
+ if(dbg) p("s: "+stroke+", v: "+main);
if (stroke.equals("Return")) {
+ if(dbg) p("Insert \\n");
if (accursed[CURR]==null) return;
-
+
String acc = Nodes.toString(accursed[CURR]);
ppAct.insertText(acc, cursorOffset[CURR], "\n");
cursorOffset[CURR]++;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire Fen.java demo/buoyoing.py v...,
Benja Fallenstein <=