void WebBrowserObject::BrowserData(const char *data) { if (data) { gtk_moz_embed_open_stream(GTK_MOZ_EMBED(mozilla), "file://", "text/html"); gtk_moz_embed_append_data(GTK_MOZ_EMBED(mozilla), data, strlen(data)); gtk_moz_embed_close_stream(GTK_MOZ_EMBED(mozilla)); } }
static gboolean impl_open_stream (GaleonEmbed *embed, const char *base_uri, const char *mime_type) { gtk_moz_embed_open_stream (GTK_MOZ_EMBED(embed), base_uri, mime_type); return TRUE; }
void stream_clicked_cb (GtkButton *button, TestGtkBrowser *browser) { const char *data; const char *data2; data = "<html>Hi"; data2 = " there</html>\n"; g_print("stream_clicked_cb\n"); gtk_moz_embed_open_stream(GTK_MOZ_EMBED(browser->mozEmbed), "file://", "text/html"); gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed), data, strlen(data)); gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed), data2, strlen(data2)); gtk_moz_embed_close_stream(GTK_MOZ_EMBED(browser->mozEmbed)); }
void menu_stream_cb (GtkMenuItem *menuitem, TestGtkBrowser *browser) { g_print("menu_stream_cb\n"); const char *data; const char *data2; data = "<html>Hi"; data2 = " <a href='foo.html'>there</a></html>\n"; g_print("stream_clicked_cb\n"); gtk_moz_embed_open_stream(GTK_MOZ_EMBED(browser->mozEmbed), "file://", "text/html"); gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed), data, strlen(data)); gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed), data2, strlen(data2)); gtk_moz_embed_close_stream(GTK_MOZ_EMBED(browser->mozEmbed)); }
/// Renders HTML held in a buffer. bool MozillaRenderer::renderData(const char *data, unsigned int length, const string &baseUrl) { if ((m_htmlWidget == NULL) || (data == NULL) || (length == 0)) { return false; } #ifdef DEBUG cout << "MozillaRenderer::renderData: data length " << strlen(data) << "/" << length << " at " << baseUrl << endl; #endif gtk_moz_embed_open_stream(GTK_MOZ_EMBED(m_htmlWidget), baseUrl.c_str(), "text/html"); // Append data to stream in medium-sized chunks const char *where = data; unsigned int total = length, chunk = 0; while (total > 0) { if (total > 15000) { chunk = 15000; } else { chunk = total; } #ifdef DEBUG cout << "MozillaRenderer::renderData: appending " << chunk << " to stream" << endl; #endif gtk_moz_embed_append_data(GTK_MOZ_EMBED(m_htmlWidget), where, chunk); where += chunk; total = total - chunk; } gtk_moz_embed_close_stream(GTK_MOZ_EMBED(m_htmlWidget)); m_rendering = true; return true; }