int main (int argc, char **argv) { gtk_init (&argc, &argv); runtime_init (RUNTIME_INIT_BROWSER); window = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL)); char xpcom_lib_path [PATH_MAX]; char* xpcom_dir_path; GRE_GetGREPathWithProperties (&gre_version, 1, nsnull, 0, xpcom_lib_path, sizeof (xpcom_lib_path)); xpcom_dir_path = g_path_get_dirname (xpcom_lib_path); gtk_moz_embed_set_path (xpcom_dir_path); g_free (xpcom_dir_path); GtkWidget *moz_embed = gtk_moz_embed_new(); gtk_container_add (GTK_CONTAINER (window), moz_embed); gtk_widget_set_usize (moz_embed, 416, 416); char *current_directory = g_get_current_dir (); char *html_path = g_strdup_printf ("file://%s/test.html", current_directory); gtk_moz_embed_load_url (GTK_MOZ_EMBED (moz_embed), html_path); g_free (current_directory); g_free (html_path); gtk_widget_show_all (moz_embed); gtk_widget_show_all (GTK_WIDGET (window)); g_timeout_add (500, setup, NULL); runtime_flags_set_manual_timesource (TRUE); runtime_flags_set_use_shapecache (FALSE); runtime_flags_set_show_fps (FALSE); gtk_main (); return 0; }
int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *label; GtkWidget *mozembed; GtkWidget *container; char *url; gtk_init(&argc, &argv); static const GREVersionRange greVersion = { "1.9a", PR_TRUE, "2", PR_TRUE }; char xpcomPath[PATH_MAX]; nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomPath, sizeof(xpcomPath)); if (NS_FAILED(rv)) { fprintf(stderr, "Couldn't find a compatible GRE.\n"); return 1; } rv = XPCOMGlueStartup(xpcomPath); if (NS_FAILED(rv)) { fprintf(stderr, "Couldn't start XPCOM."); return 1; } rv = GTKEmbedGlueStartup(); if (NS_FAILED(rv)) { fprintf(stderr, "Couldn't find GTKMozEmbed symbols."); return 1; } char *lastSlash = strrchr(xpcomPath, '/'); if (lastSlash) *lastSlash = '\0'; gtk_moz_embed_set_path(xpcomPath); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); container = gtk_notebook_new(); mozembed = gtk_moz_embed_new(); label = gtk_label_new("Can you see this message?\n" "Once you switch to mozembed page " "you never see this message."); g_signal_connect(GTK_OBJECT(mozembed), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_container_add(GTK_CONTAINER(window), container); gtk_notebook_append_page(GTK_NOTEBOOK(container), label, gtk_label_new("gtk label")); gtk_notebook_append_page(GTK_NOTEBOOK(container), mozembed, gtk_label_new("mozembed")); gtk_widget_set_size_request(window, 400, 300); gtk_widget_show(mozembed); gtk_widget_show(label); gtk_widget_show_all(window); url = (argc > 1) ? argv[1] : (char *)"localhost"; gtk_moz_embed_load_url(GTK_MOZ_EMBED(mozembed), url); gtk_main(); return 0; }
extern "C" void gecko_utils_init(void) { if (!g_thread_supported()) g_thread_init(NULL); nsresult rv; #ifdef XPCOM_GLUE NS_LogInit(); static const GREVersionRange greVersion = { "1.9a", PR_TRUE, "1.9.*", PR_TRUE }; char xpcomLocation[4096]; rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return; } // Startup the XPCOM Glue that links us up with XPCOM. rv = XPCOMGlueStartup(xpcomLocation); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return; } rv = GTKEmbedGlueStartup(); if (NS_FAILED (rv)) { g_warning ("Could not startup embed glue!\n"); return; } rv = GTKEmbedGlueStartupInternal(); if (NS_FAILED (rv)) { g_warning ("Could not startup embed glue (internal)!\n"); return; } char *lastSlash = strrchr(xpcomLocation, '/'); if (lastSlash) *lastSlash = '\0'; gtk_moz_embed_set_path(xpcomLocation); #else gtk_moz_embed_set_comp_path(GECKO_LIB_ROOT); #endif gchar *profile_dir = g_build_filename(g_get_home_dir(), ".chmsee", NULL); gtk_moz_embed_set_profile_path(profile_dir, "mozilla"); g_free(profile_dir); gtk_moz_embed_push_startup(); gecko_utils_init_prefs(); }
extern "C" gboolean gecko_init (void) { d("gecko_init()\n"); nsresult rv; #ifdef HAVE_GECKO_1_9 NS_LogInit (); #endif #ifdef XPCOM_GLUE static const GREVersionRange greVersion = { "1.9a", PR_TRUE, "2.0", PR_TRUE, }; char xpcomLocation[4096]; d("init XPCOM_GLUE\n"); rv = GRE_GetGREPathWithProperties( &greVersion, 1, nsnull, 0, xpcomLocation, 4096); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return FALSE; } // Startup the XPCOM Glue that links us up with XPCOM. rv = XPCOMGlueStartup(xpcomLocation); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return FALSE; } rv = GTKEmbedGlueStartup(); if (NS_FAILED (rv)) { g_warning ("Could not startup glue!\n"); return FALSE; } rv = GTKEmbedGlueStartupInternal(); if (NS_FAILED (rv)) { g_warning ("Could not startup internal glue!\n"); return FALSE; } char *lastSlash = strrchr(xpcomLocation, '/'); if (lastSlash) *lastSlash = '\0'; gtk_moz_embed_set_path(xpcomLocation); #else d(g_print("doing old gecko init\n")); #ifdef HAVE_GECKO_1_9 gtk_moz_embed_set_path (GECKO_HOME); #else gtk_moz_embed_set_comp_path (GECKO_HOME); #endif d("end gecko init()\n"); #endif /* XPCOM_GLUE */ d("load gecko prefs\n"); gchar *profile_dir = g_build_filename ( g_get_home_dir (), ".evolution", "mail", "rss", NULL); gtk_moz_embed_set_profile_path (profile_dir, "mozembed-rss"); g_free (profile_dir); d("embed push startup()\n"); gtk_moz_embed_push_startup (); nsCOMPtr<nsIPrefService> prefService ( do_GetService (NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS (rv, FALSE); rv = CallQueryInterface (prefService, &gPrefBranch); NS_ENSURE_SUCCESS (rv, FALSE); d("finished all gecko init\n"); return TRUE; }