aboutsummaryrefslogtreecommitdiffstats
path: root/mail/html-stream.c
diff options
context:
space:
mode:
authorArturo Espinosa <unammx@src.gnome.org>2000-01-20 04:08:55 +0800
committerArturo Espinosa <unammx@src.gnome.org>2000-01-20 04:08:55 +0800
commitfe5e063a3b226ef05d2920d534ffcdd027fa9753 (patch)
treefd5f187d851d6cc931a54292c8bbca58d7f3a96d /mail/html-stream.c
parent3b8762e813e637cafb6b3dc5696c35cc310df41f (diff)
downloadgsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar.gz
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar.bz2
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar.lz
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar.xz
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.tar.zst
gsoc2013-evolution-fe5e063a3b226ef05d2920d534ffcdd027fa9753.zip
More work
More work svn path=/trunk/; revision=1595
Diffstat (limited to 'mail/html-stream.c')
-rw-r--r--mail/html-stream.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/mail/html-stream.c b/mail/html-stream.c
new file mode 100644
index 0000000000..250e98500a
--- /dev/null
+++ b/mail/html-stream.c
@@ -0,0 +1,107 @@
+/*
+ * html-stream.c: A CamelStream class that feeds data into a GtkHTML widget
+ *
+ * Author:
+ * Miguel de Icaza (miguel@helixcode.com)
+ *
+ * (C) 2000 Helix Code, Inc.
+ */
+#include <config.h>
+#include "html-stream.h"
+#include "e-util/e-util.h"
+
+#define PARENT_TYPE camel_stream_get_type ()
+
+/*
+ * CamelStream::read method
+ *
+ * Return 0 bytes read, as this is a write-only stream
+ */
+static gint
+html_stream_read (CamelStream *stream, gchar *buffer, gint n)
+{
+ return 0;
+}
+
+/*
+ * CamelStream::write method
+ *
+ * Writes @buffer into the HTML widget
+ */
+static gint
+html_stream_write (CamelStream *stream, const gchar *buffer, gint n)
+{
+ HTMLStream *html_stream = HTML_STREAM (stream);
+
+ gtk_html_write (html_stream->gtk_html, html_stream->gtk_html_stream, buffer, n);
+}
+
+/*
+ * CamelStream::available method
+ *
+ * Return 0, as this is only a write-stream
+ */
+static gint
+html_stream_available (CamelStream *stream)
+{
+ return 0;
+}
+
+/*
+ * CamelStream::eos method.
+ *
+ * We just return TRUE, as this is not a read-stream
+ */
+static
+html_stream_eos (CamelStream *stream)
+{
+ return TRUE;
+}
+
+static void
+html_stream_close (CamelStream *stream)
+{
+ HTMLStream *html_stream = HTML_STREAM (stream);
+
+ gtk_html_end (html_stream->gtk_html);
+}
+
+static void
+html_stream_class_init (GtkObjectClass *object_class)
+{
+ HTMLStreamClass *stream_class = (HTMLStreamClass *) object_class;
+
+ html_stream_parent_class = gtk_type_class (PARENT_TYPE);
+
+ object_class->destory = html_stream_destroy;
+
+ stream_class->read = html_stream_read;
+ stream_class->write = html_stream_write;
+ stream_class->available = html_stream_available;
+ stream_class->eos = html_stream_eos;
+ stream_class->close = html_stream_close;
+}
+
+CamelStream *
+html_stream_new (GtkHTML *html)
+{
+ HTMLStream *html_stream;
+
+ g_return_val_if_fail (html != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_HTML (html), NULL);
+
+ html_stream = gtk_type_new (html_stream_get_type ());
+
+ gtk_object_ref (GTK_OBJECT (html));
+
+ html_stream->gtk_html_stream = gtk_html_begin (html, NULL);
+ gtk_html_parse (html);
+
+ html_stream->gtk_html = html;
+
+ return CAMEL_STREAM (html_stream);
+}
+
+E_MAKE_TYPE (html_stream, "HTMLStream", HTMLStream, html_stream_class_init, NULL, PARENT_TYPE);
+
+