diff options
Diffstat (limited to 'render/textplain.h')
-rw-r--r-- | render/textplain.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/render/textplain.h b/render/textplain.h index 27da768ee..0775381fc 100644 --- a/render/textplain.h +++ b/render/textplain.h @@ -3,6 +3,7 @@ * Licensed under the GNU General Public License, * http://www.opensource.org/licenses/gpl-license * Copyright 2006 James Bursa <bursa@users.sourceforge.net> + * Copyright 2006 Adrian Lees <adrianl@users.sourceforge.net> */ /** \file @@ -12,10 +13,16 @@ #ifndef _NETSURF_RENDER_TEXTPLAIN_H_ #define _NETSURF_RENDER_TEXTPLAIN_H_ +#include <stddef.h> #include <iconv.h> struct content; +struct textplain_line { + size_t start; + size_t length; +}; + struct content_textplain_data { const char *encoding; iconv_t iconv_cd; @@ -24,7 +31,8 @@ struct content_textplain_data { size_t utf8_data_size; size_t utf8_data_allocated; unsigned long physical_line_count; - size_t *physical_line_start; + struct textplain_line *physical_line; + int formatted_width; }; bool textplain_create(struct content *c, const char *params[]); @@ -37,4 +45,17 @@ bool textplain_redraw(struct content *c, int x, int y, int clip_x0, int clip_y0, int clip_x1, int clip_y1, float scale, unsigned long background_colour); +/* access to lines for text selection and searching */ +#define textplain_line_count(c) ((c)->data.textplain.physical_line_count) +#define textplain_size(c) ((c)->data.textplain.utf8_data_size) + +size_t textplain_offset_from_coords(struct content *c, int x, int y, int dir); +void textplain_coords_from_range(struct content *c, + unsigned start, unsigned end, struct rect *r); +char *textplain_get_line(struct content *c, unsigned lineno, + size_t *poffset, size_t *plen); +int textplain_find_line(struct content *c, unsigned offset); +char *textplain_get_raw_data(struct content *c, + unsigned start, unsigned end, size_t *plen); + #endif |