diff options
author | James Bursa <james@netsurf-browser.org> | 2002-07-27 21:10:45 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2002-07-27 21:10:45 +0000 |
commit | 57feb5e2441093fb9b4f4be6e8d152cde9f0607c (patch) | |
tree | ce7cc60b2483d783d93d3a0a109818faf5e039ca /riscos/font.c | |
parent | e78ea408f3fee74beae600d1edeaa22c863953b9 (diff) | |
download | netsurf-57feb5e2441093fb9b4f4be6e8d152cde9f0607c.tar.gz netsurf-57feb5e2441093fb9b4f4be6e8d152cde9f0607c.tar.bz2 |
[project @ 2002-07-27 21:10:45 by bursa]
Simple RISC OS interface.
svn path=/import/netsurf/; revision=26
Diffstat (limited to 'riscos/font.c')
-rw-r--r-- | riscos/font.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/riscos/font.c b/riscos/font.c new file mode 100644 index 000000000..a12ff2241 --- /dev/null +++ b/riscos/font.c @@ -0,0 +1,40 @@ +/** + * $Id: font.c,v 1.1 2002/07/27 21:10:45 bursa Exp $ + */ + +#include <stdio.h> +#include "netsurf/render/css.h" +#include "netsurf/render/font.h" +#include "netsurf/render/utils.h" +#include "oslib/font.h" + +/** + * functions + */ + +extern font_f font; + +unsigned long font_width(struct css_style * style, const char * text, unsigned int length) +{ + font_scan_block block; + os_error * error; + + if (length == 0) return 0; + + block.space.x = block.space.y = 0; + block.letter.x = block.letter.y = 0; + block.split_char = -1; + + error = xfont_scan_string(font, text, + font_GIVEN_BLOCK | font_GIVEN_LENGTH | font_GIVEN_FONT | font_KERN | font_RETURN_BBOX, + 0x7fffffff, 0x7fffffff, + &block, + 0, length, + 0, 0, 0, 0); + if (error != 0) { + fprintf(stderr, "%s\n", error->errmess); + die("font_scan_string failed"); + } + return block.bbox.x1 / 800; +} + |