summaryrefslogtreecommitdiff
path: root/render/textplain.h
diff options
context:
space:
mode:
Diffstat (limited to 'render/textplain.h')
-rw-r--r--render/textplain.h23
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