diff options
author | James Bursa <james@netsurf-browser.org> | 2005-02-20 13:18:21 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2005-02-20 13:18:21 +0000 |
commit | 1a52a32e5d5ccf78639c268cc660d8d8b0d98092 (patch) | |
tree | b2c2a416420eb006f8078afadde1d00380ea693c /render/font.h | |
parent | 51c5143a80d073866a74d133e26beb8b9d69bd11 (diff) | |
download | netsurf-1a52a32e5d5ccf78639c268cc660d8d8b0d98092.tar.gz netsurf-1a52a32e5d5ccf78639c268cc660d8d8b0d98092.tar.bz2 |
[project @ 2005-02-20 13:18:21 by bursa]
Font rewrite, part 2.
svn path=/import/netsurf/; revision=1518
Diffstat (limited to 'render/font.h')
-rw-r--r-- | render/font.h | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/render/font.h b/render/font.h index 4a983098a..68563e069 100644 --- a/render/font.h +++ b/render/font.h @@ -3,52 +3,50 @@ * Licensed under the GNU General Public License, * http://www.opensource.org/licenses/gpl-license * Copyright 2003 Phil Mellor <monkeyson@users.sourceforge.net> - * Copyright 2003 James Bursa <bursa@users.sourceforge.net> + * Copyright 2005 James Bursa <bursa@users.sourceforge.net> * Copyright 2004 John Tytgat <John.Tytgat@aaug.net> */ +/** \file + * Font handling (interface). + * + * These functions provide font related services. They all work on UTF-8 strings + * with lengths given. + * + * Note that an interface to painting is not defined here. Painting is + * redirected through platform-dependent plotters anyway, so there is no gain in + * abstracting it here. + */ + #ifndef _NETSURF_RENDER_FONT_H_ #define _NETSURF_RENDER_FONT_H_ +#include <stdbool.h> #include <stddef.h> -#include "netsurf/css/css.h" - -typedef enum { - FONTTYPE_UFONT, - FONTTYPE_STANDARD_UTF8ENC, - FONTTYPE_STANDARD_LATIN1 -} fonttype_e; - -struct font_data { - int id; - int handle; - fonttype_e ftype; - unsigned int size; - unsigned int space_width; - struct font_data *next; -}; - -struct font_set *nsfont_new_set(void); -struct font_data *nsfont_open(struct font_set *set, struct css_style *style); -void nsfont_free_set(struct font_set *set); -unsigned long nsfont_width(struct font_data *font, const char *text, - size_t length); -bool nsfont_position_in_string(struct font_data *font, const char *text, - size_t length, unsigned long x, int *char_offset, - int *pixel_offset); -char *nsfont_split(struct font_data *font, const char *text, - size_t length, - unsigned int width, unsigned int *used_width); -bool nsfont_paint(struct font_data *font, const char *str, - size_t length, int xpos, int ypos, void *trfm); -void nsfont_txtenum(struct font_data *font, const char *text, + + +struct css_style; + + +bool nsfont_width(const struct css_style *style, + const char *string, size_t length, + int *width); +bool nsfont_position_in_string(const struct css_style *style, + const char *string, size_t length, + int x, size_t *char_offset, int *actual_x); +bool nsfont_split(const struct css_style *style, + const char *string, size_t length, + int x, size_t *char_offset, int *actual_x); + + + + +void nsfont_txtenum(void *font, const char *text, size_t length, unsigned int *width, const char **rofontname, const char **rotext, size_t *rolength, size_t *consumed); -void nsfont_fill_nametable(bool force_rescan); -void nsfont_reopen_set(struct font_set *fonts); #endif |