From 4963611978625d087561f5a669a0ba93a04bd1ba Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 30 Jan 2004 07:39:35 +0000 Subject: [PATCH] 2003/10/17 07:20:14 darcs-hash:20040130073935-2ba56-8be1984aef7af3ec90815b0585f9686f2d0bf19b.gz --- Makefile | 4 +++- Makefile.upstream | 1 + src/org/xwt/Box.java.pp | 51 ++++++++++++++++++++++++++++------------------- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 422e050..26ec8c3 100644 --- a/Makefile +++ b/Makefile @@ -140,7 +140,9 @@ $(target_bin): build/$(platform)/org/xwt/plat/$(platform).cc.o upstream/jpeg-6b/ # builtin_src := $(shell find src/org/xwt/builtin -name '*.*') -build/res/builtin.jar: $(builtin_src:src/%=build/res/%) build/res/freetype.mips build/res/libmspack.mips +build/res/fonts/vera: .download_vera-1.10 + cd build/res/fonts; ln -s ../../../upstream/vera-1.10/ttf-bitstream-vera-1.10 vera +build/res/builtin.jar: $(builtin_src:src/%=build/res/%) build/res/freetype.mips build/res/libmspack.mips build/res/fonts/vera @echo -e "\n\033[1mzipping res/* -> .jar: builtin.jar\033[0m" cd build/res; $(jar) cf builtin.jar $(^:build/res/%=%) diff --git a/Makefile.upstream b/Makefile.upstream index ca7edf6..111ee51 100644 --- a/Makefile.upstream +++ b/Makefile.upstream @@ -16,6 +16,7 @@ url_gcc-3.3 := http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc url_jpeg-6b := http://www.ijg.org/files/jpegsrc.v6b.tar.gz url_jikes-1.18 := http://www.megacz.com/tmp/jikes-1.18.tgz #ftp://www-126.ibm.com/pub/jikes/1.18/jikes-1.18.tar.gz url_libmspack-20030726 := http://www.kyz.uklinux.net/downloads/libmspack-20030726.tar.gz +url_vera-1.10 := http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.gz .install_binutils-2.13.2.1_powerpc-apple-darwin: .vendor rm -rf upstream/darwin-linker/src diff --git a/src/org/xwt/Box.java.pp b/src/org/xwt/Box.java.pp index 283fe45..04a0ee2 100644 --- a/src/org/xwt/Box.java.pp +++ b/src/org/xwt/Box.java.pp @@ -247,7 +247,7 @@ public final class Box extends JS.Scope { // --- Phase 1 ---------------------------------------------------------------------- // assign children to their row/column positions (assuming constrained columns) if ((rows == 0 && cols == 0) || (rows != 0 && cols != 0)) throw new Error("rows == " + rows + " cols == " + cols); - //#repeat x/y y/x width/height col/row row/col cols/rows rows/cols colspan/rowspan rowspan/colspan colWidth/rowHeight numRowsInCol/numColsInRow INNER/INNER2 maxwidth/maxheight minwidth/minheight contentwidth/contentheight colMaxWidth/rowMaxHeight OUTER/OUTER2 INNER/INNER2 + //#repeat x/y y/x width/height col/row row/col cols/rows rows/cols colspan/rowspan rowspan/colspan colWidth/rowHeight numRowsInCol/numColsInRow INNER/INNER2 maxwidth/maxheight minwidth/minheight colMaxWidth/rowMaxHeight OUTER/OUTER2 INNER/INNER2 if (rows == 0 && numChildren() != 0) { int[] numRowsInCol = new int[cols]; // the number of cells occupied in each column Box child = getChild(0); @@ -274,7 +274,7 @@ public final class Box extends JS.Scope { // --- Phase 2 ---------------------------------------------------------------------- // compute the min/max sizes of the columns and rows and set our contentwidth - //#repeat x/y y/x width/height col/row cols/rows colspan/rowspan colWidth/rowHeight maxwidth/maxheight minwidth/minheight contentwidth/contentheight colMaxWidth/rowMaxHeight numCols/numRows + //#repeat x/y y/x width/height col/row cols/rows colspan/rowspan colWidth/rowHeight maxwidth/maxheight minwidth/minheight contentwidth/contentheight colMaxWidth/rowMaxHeight numCols/numRows textwidth/textheight if (numChildren() != 0) { int numCols = cols; if (numCols == 0) @@ -512,14 +512,15 @@ public final class Box extends JS.Scope { // FIXME: clipping char c = text.charAt(i); Glyph g = Glyph.getGlyph(font, fontsize, c); - buf.drawPictureAlphaOnly(g.p, - x, - y + g.max_ascent - g.baseline, - x + g.p.getWidth(), - y + g.max_ascent - g.baseline + g.p.getHeight(), - 0, 0, - g.p.getWidth(), g.p.getHeight(), - textcolor); + if (g.p != null) + buf.drawPictureAlphaOnly(g.p, + x, + y + g.max_ascent - g.baseline - g.max_descent, + x + g.p.getWidth(), + y + g.max_ascent - g.baseline + g.p.getHeight() - g.max_descent, + 0, 0, + g.p.getWidth(), g.p.getHeight(), + textcolor); x += g.advance; } } @@ -842,6 +843,22 @@ public final class Box extends JS.Scope { return parent.getRoot(); } + public void recompute_font() { + try { + MARK_FOR_REFLOW_this; + textwidth = 0; + textheight = 0; + if (text == null) return; + for(int i=0; i