コード例 #1
0
ファイル: TestGtkEmbed.cpp プロジェクト: rn10950/RetroZilla
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();
}
コード例 #2
0
ファイル: webbrowser.cpp プロジェクト: vseryakov/lmbox
WebBrowserObject::WebBrowserObject(const char *name): GUI_Widget(name, 0, 0, 0, 0)
{
    type = TYPE_WEBBROWSER;
    status = 0;
    mozilla = 0;
    toplevel = 0;
    location = 0;
    loadPercent = 0;
    bytesLoaded = 0;
    maxBytesLoaded = 0;
    toolbar_flag = 1;

    char *mhome = getenv("HOME");
    char *muser = (char*)systemObject->configGetValue("user_name","lmbox");
    char *mpath = g_strdup_printf("%s/%s", mhome ? mhome : "/tmp", ".mozilla");
    gtk_moz_embed_set_profile_path(mpath, muser);

    MemberFunctionProperty < WebBrowserObject > *mp;
    mp = new MemberFunctionProperty < WebBrowserObject > ("location", this, &WebBrowserObject::pget_Location, &WebBrowserObject::pset_Location, false);
    AddProperty(mp);
    mp = new MemberFunctionProperty < WebBrowserObject > ("status", this, &WebBrowserObject::pget_Status, NULL, false);
    AddProperty(mp);
    mp = new MemberFunctionProperty < WebBrowserObject > ("version", this, &WebBrowserObject::pget_Version, NULL, false);
    AddProperty(mp);

    MemberMethodHandler < WebBrowserObject > *mh;
    mh = new MemberMethodHandler < WebBrowserObject > ("data", this, 1, &WebBrowserObject::m_Data);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("back", this, 0, &WebBrowserObject::m_Back);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("open", this, 0, &WebBrowserObject::m_Open);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("stop", this, 0, &WebBrowserObject::m_Stop);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("forward", this, 0, &WebBrowserObject::m_Forward);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("reload", this, 0, &WebBrowserObject::m_Reload);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("refresh", this, 0, &WebBrowserObject::m_Refresh);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("close", this, 0, &WebBrowserObject::m_Close);
    AddMethod(mh);
    mh = new MemberMethodHandler < WebBrowserObject > ("event", this, 2, &WebBrowserObject::m_Event);
    AddMethod(mh);
}
コード例 #3
0
ファイル: GeckoEmbed.cpp プロジェクト: seanhodges/Medes
/**
 * Initialise the engine (must be called AFTER gtk_init())
 *
 * @param config - the config container in use
 */
void GeckoEmbed::init(ConfigContainer config) {
	// Set the environment
	Environment env;
	string configProfilePath = env.getUserGeckoProfilePath();
	string configProfileName = "medes-gecko";
	gtk_moz_embed_set_profile_path(configProfilePath.c_str(),configProfileName.c_str());
	GtkMozEmbed *mozEmbed = GTK_MOZ_EMBED(gtk_moz_embed_new());
	gtk_moz_embed_set_chrome_mask(mozEmbed, GTK_MOZ_EMBED_FLAG_ALLCHROME);
	// Attach to functors
	gtk_signal_connect(GTK_OBJECT(mozEmbed), "open_uri", GTK_SIGNAL_FUNC(&GeckoEmbed::open_uri_cb), this);
	gtk_signal_connect(GTK_OBJECT(mozEmbed), "progress", GTK_SIGNAL_FUNC(&GeckoEmbed::progress_change_cb), this);
	gtk_signal_connect(GTK_OBJECT(mozEmbed), "net_start", GTK_SIGNAL_FUNC(&GeckoEmbed::load_started_cb), this);
	gtk_signal_connect(GTK_OBJECT(mozEmbed), "net_stop", GTK_SIGNAL_FUNC(&GeckoEmbed::load_finished_cb), this);
	// Initial object configuration
	setMozEmbed(mozEmbed);
	setConfig(config);
	setUrl(config.getAppUrl());
	dataSize = 0;
	status = NULL;
}
コード例 #4
0
ファイル: gecko_utils.cpp プロジェクト: WangGL1985/chmsee
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();
}
コード例 #5
0
ファイル: gecko-utils.cpp プロジェクト: GNOME/evolution-rss
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;
}