#include #include "gtkembedmoz/gtkmozembed.h" typedef struct _AgViewer { GtkWidget *topLevelWindow; GtkWidget *mozEmbed; } AgViewer; static AgViewer *new_gtk_browser (); static void load_started_cb (GtkMozEmbed *embed, AgViewer *browser); static void location_changed_cb (GtkMozEmbed *embed, AgViewer *browser); int main(int argc, char **argv) { gtk_init (&argc, &argv); AgViewer *browser = new_gtk_browser (); // gtk_widget_set_usize (browser->mozEmbed, 400, 400); gtk_widget_show_all (browser->mozEmbed); gtk_widget_show_all (browser->topLevelWindow); gtk_moz_embed_load_url (GTK_MOZ_EMBED(browser->mozEmbed), "test.htm"); gtk_main(); } static AgViewer * new_gtk_browser () { AgViewer *browser = 0; browser = g_new0 (AgViewer, 1); browser->topLevelWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); browser->mozEmbed = gtk_moz_embed_new(); gtk_container_add(GTK_CONTAINER (browser->topLevelWindow), browser->mozEmbed); gtk_signal_connect(GTK_OBJECT(browser->mozEmbed), "net_start", GTK_SIGNAL_FUNC(load_started_cb), browser); gtk_signal_connect(GTK_OBJECT(browser->mozEmbed), "location", GTK_SIGNAL_FUNC(location_changed_cb), browser); return browser; } void location_changed_cb (GtkMozEmbed *embed, AgViewer *browser) { char *newLocation; newLocation = gtk_moz_embed_get_location(embed); g_print("location_changed_cb %s\n", newLocation); } void load_started_cb (GtkMozEmbed *embed, AgViewer *browser) { g_print("load_started_cb\n"); }