On 9/29/06, Chris Vetter <[EMAIL PROTECTED]> wrote:
On 2006-09-29 07:41:26 +0200 Yen-Ju Chen <[EMAIL PROTECTED]> wrote:
> Here is a small application to embed GtkMozEmbed in GNUstep.
> Basically, it reparents a GTK window into NSWindow,
> and try to have NSRunLoop run with GMainLoop.
[...]
Has anyone actually managed to make it work? I get a core dump at line
119:
Here is an earlier version which you can play with.
It is mostly GTK and C++.
It is where I start.
Yen-Ju
gtk_moz_embed_load_url(GTK_MOZ_EMBED(mozembed),
"http://www.google.com");
gtk_container_add(GTK_CONTAINER(window), mozembed);
gtk_widget_show(mozembed);
gtk_widget_show(window); <-- BOOM
Window xwin = GDK_WINDOW_XWINDOW(GTK_WIDGET(window)->window);
--
Chris
_______________________________________________
Etoile-discuss mailing list
Etoile-discuss@gna.org
https://mail.gna.org/listinfo/etoile-discuss
#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <gtkmozembed.h>
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *mozembed;
gtk_init(&argc, &argv);
gtk_moz_embed_set_profile_path(".", "mozembed");
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
if (window == NULL)
printf("\twindow is null\n");
else
printf("\twindow is not null\n");
gtk_widget_set_usize(window, 600, 700);
vbox = gtk_vbox_new(FALSE, 0);
if (vbox == NULL)
printf("\tvbox is null\n");
else
printf("\tvbox is not null\n");
mozembed = gtk_moz_embed_new();
if (mozembed == NULL)
printf("\tmozembed is null\n");
else
printf("\tmozembed is not null\n");
#if 0
Window xwin = GDK_WINDOW_XWINDOW(GTK_WIDGET(mozembed)->window);
printf("xwin %d\n", xwin);
#endif
// gtk_moz_embed_load_url(GTK_MOZ_EMBED(mozembed), "file:/usr/share/doc/HTML/index.html");
gtk_moz_embed_load_url(GTK_MOZ_EMBED(mozembed), "http://www.gnustep.org");
printf("\tadding it to vbox\n");
gtk_box_pack_start(GTK_BOX(vbox), mozembed, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(mozembed);
gtk_widget_show(vbox);
gtk_widget_show(window);
Window xwin = GDK_WINDOW_XWINDOW(GTK_WIDGET(mozembed)->window);
printf("xwin %d\n", xwin);
#if 1
GMainLoop *loop = g_main_loop_new(NULL, TRUE);
GDK_THREADS_LEAVE();
#if 1
while (g_main_loop_is_running(loop))
{
g_main_context_iteration(g_main_loop_get_context(loop), TRUE);
}
#else
g_main_loop_run(loop);
#endif
GDK_THREADS_ENTER();
gdk_flush();
#else
gtk_main();
#endif
}
_______________________________________________
Etoile-discuss mailing list
Etoile-discuss@gna.org
https://mail.gna.org/listinfo/etoile-discuss