From dbfdafdf1820a95995c3b260e147c55125468874 Mon Sep 17 00:00:00 2001 From: Adrian Lees Date: Wed, 15 Feb 2006 23:09:55 +0000 Subject: [project @ 2006-02-15 23:09:53 by adrianl] Extend text selection, copying, saving and searching code to handle textplain contents; modified textplain code to accept other line terminators svn path=/import/netsurf/; revision=2081 --- render/textplain.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'render/textplain.h') 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 + * Copyright 2006 Adrian Lees */ /** \file @@ -12,10 +13,16 @@ #ifndef _NETSURF_RENDER_TEXTPLAIN_H_ #define _NETSURF_RENDER_TEXTPLAIN_H_ +#include #include 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 -- cgit v1.2.3