Ejemplo n.º 1
0
void WebBrowserObject::BrowserButtons(void)
{
    gboolean can_go_back = gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(mozilla));
    gboolean can_go_forward = gtk_moz_embed_can_go_forward(GTK_MOZ_EMBED(mozilla));
    gtk_widget_set_sensitive(backButton, can_go_back);
    gtk_widget_set_sensitive(forwardButton, can_go_forward);
}
Ejemplo n.º 2
0
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));
    }
}
Ejemplo n.º 3
0
static void
mozilla_embed_new_window (GtkMozEmbed *embed, 
			  GtkMozEmbed **newEmbed,
                          guint chromemask)
{
	MozillaEmbed *membed = MOZILLA_EMBED (embed);
	int i;
	EmbedChromeMask mask = EMBED_CHROME_OPENASPOPUP;
	GaleonEmbed *new_embed = NULL;

	struct
	{
		guint chromemask;
		EmbedChromeMask embed_mask;
	}
	conversion_map [] =
	{
		{ GTK_MOZ_EMBED_FLAG_DEFAULTCHROME, EMBED_CHROME_DEFAULT },
		{ GTK_MOZ_EMBED_FLAG_MENUBARON, EMBED_CHROME_MENUBARON },
		{ GTK_MOZ_EMBED_FLAG_TOOLBARON, EMBED_CHROME_TOOLBARON },
		/* Map the bookmarks bar to the default, as otherwise _blank
		 * pages don't honour the gconf settings, and always have the
		 * bookmarks bar, which just confuses people (bug 122410) */
		{ GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON, EMBED_CHROME_DEFAULT },
		{ GTK_MOZ_EMBED_FLAG_STATUSBARON, EMBED_CHROME_STATUSBARON },
		{ GTK_MOZ_EMBED_FLAG_WINDOWRAISED, EMBED_CHROME_WINDOWRAISED },
		{ GTK_MOZ_EMBED_FLAG_WINDOWLOWERED, EMBED_CHROME_WINDOWLOWERED },
		{ GTK_MOZ_EMBED_FLAG_CENTERSCREEN, EMBED_CHROME_CENTERSCREEN },
		{ GTK_MOZ_EMBED_FLAG_OPENASDIALOG, EMBED_CHROME_OPENASDIALOG },
		{ GTK_MOZ_EMBED_FLAG_OPENASCHROME, EMBED_CHROME_OPENASCHROME },
		{ 0, EMBED_CHROME_NONE }
	};

	for (i = 0; conversion_map[i].chromemask != 0; i++)
	{
		if (chromemask & conversion_map[i].chromemask)
		{
			mask = (EmbedChromeMask) (mask | conversion_map[i].embed_mask);	
		}
	}
	
	g_signal_emit_by_name (membed, "ge_new_window", mask, &new_embed);

	g_assert (new_embed != NULL);
	
	gtk_moz_embed_set_chrome_mask (GTK_MOZ_EMBED(new_embed), chromemask);

	*newEmbed = GTK_MOZ_EMBED(new_embed);
}
Ejemplo n.º 4
0
void
update_nav_buttons      (TestGtkBrowser *browser)
{
    gboolean can_go_back;
    gboolean can_go_forward;
    can_go_back = gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(browser->mozEmbed));
    can_go_forward = gtk_moz_embed_can_go_forward(GTK_MOZ_EMBED(browser->mozEmbed));
    if (can_go_back)
        gtk_widget_set_sensitive(browser->backButton, TRUE);
    else
        gtk_widget_set_sensitive(browser->backButton, FALSE);
    if (can_go_forward)
        gtk_widget_set_sensitive(browser->forwardButton, TRUE);
    else
        gtk_widget_set_sensitive(browser->forwardButton, FALSE);
}
Ejemplo n.º 5
0
void on_save_ok_cb(GtkWidget *button, OpenDialogParams *dialogParams) {
  
  MinimoBrowser *browser = NULL;
  G_CONST_RETURN gchar *filename;
  
  filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialogParams->main_combo));
  
  if (!filename || !strcmp(filename,"")) {
	
    return ;
	
  } else {
    browser = (MinimoBrowser *) g_object_get_data(G_OBJECT(dialogParams->main_combo), "minimo");
    
    if (!mozilla_save( GTK_MOZ_EMBED (browser->mozEmbed), (gchar *) filename, TRUE )) {
      //create_dialog("Error","Save failed, did you enter a name?",0,0);
    }
    
    gtk_widget_destroy(dialogParams->main_combo);
    gtk_widget_destroy(dialogParams->dialog_combo);
    
    g_free(dialogParams);
  }
  return ;
}
Ejemplo n.º 6
0
void save_image_from_popup(GtkWidget *menuitem, MinimoBrowser *browser)
{
  
  gchar *href, *name, *FullPath;
  
  FullPath= PR_GetEnv("HOME");
  
  href = (gchar *) g_object_get_data(G_OBJECT(menuitem), "link");
  if (!href) {
    g_print("Could not find href to save image\n");
    return;
  }
  name = (gchar *) g_object_get_data(G_OBJECT(menuitem), "name");
  
  FullPath= g_strconcat(FullPath,"/downloaded_files/",NULL);
  mkdir(FullPath,0755);
  
  FullPath= g_strconcat(FullPath,name,NULL);
  mozilla_save_image(GTK_MOZ_EMBED(browser->mozEmbed),href,FullPath);
  
  g_free(FullPath);
  g_free(name);
  g_free(href);
  return;
}
Ejemplo n.º 7
0
static void
impl_load_url (GaleonEmbed *embed, 
               const char *url)
{
	char *clean_url;

        clean_url = gul_string_remove_outside_whitespace (url);

        gtk_moz_embed_load_url (GTK_MOZ_EMBED(embed),
                                clean_url);

	/* LOAD HACK: If we haven't loaded a url yet, remember this one, 
	 * and flag that we are trying to load this url */
	MozillaEmbed *membed = MOZILLA_EMBED (embed);
	if (!membed->priv->loaded_url)
	{
		g_free (membed->priv->loading_url);
		membed->priv->loading_url = clean_url;

		/* Fake a "location" signal, so that the layer above picks up
		 * this url, and doesn't think there is no current url */
		g_signal_emit_by_name (membed, "ge_location");
		return;
	}

	g_free (clean_url);

	return;
}
Ejemplo n.º 8
0
extern "C" char *
mozilla_get_content_type (EphyEmbed *embed)
{
	nsCOMPtr<nsIWebBrowser> browser;
	gtk_moz_embed_get_nsIWebBrowser (GTK_MOZ_EMBED (embed),
					 getter_AddRefs (browser));
	NS_ENSURE_TRUE (browser, NULL);

	nsCOMPtr<nsIDOMWindow> dom_window;
	browser->GetContentDOMWindow (getter_AddRefs (dom_window));
	NS_ENSURE_TRUE (dom_window, NULL);

	nsCOMPtr<nsIDOMDocument> doc;
	dom_window->GetDocument (getter_AddRefs (doc));
	NS_ENSURE_TRUE (doc, NULL);

	nsCOMPtr<nsIDOMNSDocument> ns_doc = do_QueryInterface (doc);
	NS_ENSURE_TRUE (ns_doc, NULL);

	nsresult rv;
	nsString contentType;
	rv = ns_doc->GetContentType (contentType);

	nsCString cType;
	NS_UTF16ToCString (contentType, NS_CSTRING_ENCODING_UTF8, cType);

	return g_strdup (cType.get());
}
Ejemplo n.º 9
0
extern "C" char *
mozilla_get_doctype (EphyEmbed *embed)
{
	nsCOMPtr<nsIWebBrowser> browser;
	gtk_moz_embed_get_nsIWebBrowser (GTK_MOZ_EMBED (embed),
					 getter_AddRefs (browser));
	NS_ENSURE_TRUE (browser, NULL);

	nsCOMPtr<nsIDOMWindow> dom_window;
	browser->GetContentDOMWindow (getter_AddRefs (dom_window));
	NS_ENSURE_TRUE (dom_window, NULL);

	nsCOMPtr<nsIDOMDocument> doc;
	dom_window->GetDocument (getter_AddRefs (doc));
	NS_ENSURE_TRUE (doc, NULL);

	nsCOMPtr<nsIDOMDocumentType> doctype;
	doc->GetDoctype (getter_AddRefs (doctype));
	NS_ENSURE_TRUE (doctype, NULL);

	nsresult rv;
	nsString name;
	rv = doctype->GetPublicId (name);
	NS_ENSURE_SUCCESS (rv, NULL);

	nsCString cName;
	NS_UTF16ToCString (name, NS_CSTRING_ENCODING_UTF8, cName);

	return g_strdup (cName.get());
}
Ejemplo n.º 10
0
static void reload_clicked_cb (GtkButton *button, WebBrowserObject *browser)
{
    gint x, y;
    GdkModifierType state = (GdkModifierType)0;
    gdk_window_get_pointer(NULL, &x, &y, &state);
    gtk_moz_embed_reload(GTK_MOZ_EMBED(browser->mozilla), (state & GDK_SHIFT_MASK) ? GTK_MOZ_EMBED_FLAG_RELOADBYPASSCACHE : GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
}
Ejemplo n.º 11
0
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));
}
Ejemplo n.º 12
0
static void
impl_append_data (GaleonEmbed *embed,
                  const char *data, 
                  guint32 len)
{
	gtk_moz_embed_append_data (GTK_MOZ_EMBED(embed),
				   data, len);
}
Ejemplo n.º 13
0
void
url_activate_cb    (GtkEditable *widget, TestGtkBrowser *browser)
{
    gchar *text = gtk_editable_get_chars(widget, 0, -1);
    g_print("loading url %s\n", text);
    gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), text);
    g_free(text);
}
Ejemplo n.º 14
0
void WebBrowserObject::Refresh(void)
{
    Lock();
    if (toplevel) {
        gtk_moz_embed_reload(GTK_MOZ_EMBED(mozilla), GTK_MOZ_EMBED_FLAG_RELOADBYPASSCACHE);
    }
    Unlock();
}
Ejemplo n.º 15
0
void WebBrowserObject::Forward(void)
{
    Lock();
    if (toplevel) {
        gtk_moz_embed_go_forward(GTK_MOZ_EMBED(mozilla));
    }
    Unlock();
}
Ejemplo n.º 16
0
void WebBrowserObject::Reload(void)
{
    Lock();
    if (toplevel) {
        gtk_moz_embed_reload(GTK_MOZ_EMBED(mozilla), GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
    }
    Unlock();
}
Ejemplo n.º 17
0
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));
}
Ejemplo n.º 18
0
void WebBrowserObject::Stop(void)
{
    Lock();
    if (toplevel) {
        gtk_moz_embed_stop_load(GTK_MOZ_EMBED(mozilla));
    }
    Unlock();
}
Ejemplo n.º 19
0
void minimo_load_url(gchar *url, MinimoBrowser *browser)
{
  g_return_if_fail(browser->mozEmbed != NULL);
  g_return_if_fail(url != NULL);
  
  gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), url);
  
  return;
}
Ejemplo n.º 20
0
bool MozillaRenderer::canGoBack(void)
{
	if ((m_htmlWidget == NULL) ||
		(m_rendering == false))
	{
		return false;
	}

	return gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(m_htmlWidget));
}
Ejemplo n.º 21
0
// check if there is a selection file associated with this HTML page
bool selection_file_available(GtkMozEmbed * b)
{
    char    filename[MAX_FILE_NAME];

    if (selection_file_get_name(GTK_MOZ_EMBED(b), filename, MAX_FILE_NAME) == 0)
    {
        return g_file_test(filename, G_FILE_TEST_EXISTS);
    }
    return FALSE;
}
Ejemplo n.º 22
0
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;
}
Ejemplo n.º 23
0
void new_window_orphan_cb (GtkMozEmbedSingle *embed,
                           GtkMozEmbed **retval, guint chromemask,
                           gpointer data)
{
    g_print("new_window_orphan_cb\n");
    g_print("chromemask is %d\n", chromemask);
    TestGtkBrowser *newBrowser = new_gtk_browser(chromemask);
    *retval = GTK_MOZ_EMBED(newBrowser->mozEmbed);
    g_print("new browser is %p\n", (void *)*retval);
}
Ejemplo n.º 24
0
void
new_window_cb (GtkMozEmbed *embed, GtkMozEmbed **newEmbed, guint chromemask, TestGtkBrowser *browser)
{
    g_print("new_window_cb\n");
    g_print("embed is %p chromemask is %d\n", (void *)embed, chromemask);
    TestGtkBrowser *newBrowser = new_gtk_browser(chromemask);
    gtk_widget_set_usize(newBrowser->mozEmbed, 400, 400);
    *newEmbed = GTK_MOZ_EMBED(newBrowser->mozEmbed);
    g_print("new browser is %p\n", (void *)*newEmbed);
}
Ejemplo n.º 25
0
/// Goes back.
bool MozillaRenderer::goBack(void)
{
	if (canGoForward() == true)
	{
		gtk_moz_embed_go_back(GTK_MOZ_EMBED(m_htmlWidget));

		return true;
	}

	return false;
}
Ejemplo n.º 26
0
static AtkObject*
gtk_moz_embed_get_accessible (GtkWidget *widget)
{
  g_return_val_if_fail(widget != NULL, NULL);
  g_return_val_if_fail(GTK_IS_MOZ_EMBED(widget), NULL);

  GtkMozEmbed  *embed = GTK_MOZ_EMBED(widget);;
  EmbedPrivate *embedPrivate = (EmbedPrivate *)embed->data;
  return static_cast<AtkObject *>(
                        embedPrivate->GetAtkObjectForCurrentDocument());
}
Ejemplo n.º 27
0
/// Stops loading.
bool MozillaRenderer::stop(void)
{
	if ((m_htmlWidget == NULL) ||
		(m_rendering == false))
	{
		return false;
	}

	gtk_moz_embed_stop_load(GTK_MOZ_EMBED(m_htmlWidget));

	return true;	
}
Ejemplo n.º 28
0
/// Reloads the current page.
bool MozillaRenderer::reload(void)
{
	if ((m_htmlWidget == NULL) ||
		(m_rendering == false))
	{
		return false;
	}

	gtk_moz_embed_reload(GTK_MOZ_EMBED(m_htmlWidget), GTK_MOZ_EMBED_FLAG_RELOADNORMAL);

	return true;	
}
Ejemplo n.º 29
0
int
main(int argc, char **argv)
{
#ifdef NS_TRACE_MALLOC
    argc = NS_TraceMallocStartupArgs(argc, argv);
#endif

    gtk_set_locale();
    gtk_init(&argc, &argv);

#ifdef MOZ_JPROF
    setupProfilingStuff();
#endif

    char *home_path;
    char *full_path;
    home_path = PR_GetEnv("HOME");
    if (!home_path) {
        fprintf(stderr, "Failed to get HOME\n");
        exit(1);
    }

    full_path = g_strdup_printf("%s/%s", home_path, ".TestGtkEmbed");

    gtk_moz_embed_set_profile_path(full_path, "TestGtkEmbed");

    TestGtkBrowser *browser = new_gtk_browser(GTK_MOZ_EMBED_FLAG_DEFAULTCHROME);

    // set our minimum size
    gtk_widget_set_usize(browser->mozEmbed, 400, 400);

    set_browser_visibility(browser, TRUE);

    if (argc > 1)
        gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), argv[1]);

    // get the singleton object and hook up to its new window callback
    // so we can create orphaned windows.

    GtkMozEmbedSingle *single;

    single = gtk_moz_embed_single_get();
    if (!single) {
        fprintf(stderr, "Failed to get singleton embed object!\n");
        exit(1);
    }

    gtk_signal_connect(GTK_OBJECT(single), "new_window_orphan",
                       GTK_SIGNAL_FUNC(new_window_orphan_cb), NULL);

    gtk_main();
}
Ejemplo n.º 30
0
static void new_window_cb (GtkMozEmbed *embed, GtkMozEmbed **newEmbed, guint chromemask, WebBrowserObject *browser)
{
    char bname[256];
    static int browserID = 0;
    snprintf(bname, sizeof(bname), "%s%d", browser->GetName(), ++browserID);
    SDL_Rect r = browser->GetArea();
    WebBrowserObject *browser2 = new WebBrowserObject(bname);
    browser2->BrowserSetChrome(chromemask);
    browser2->BrowserOpen();
    browser2->SetParent(browser);
    browser->AddObject(browser2);
    *newEmbed = GTK_MOZ_EMBED(browser2->BrowserGetEmbed());
}