On 3/2/08, Ke Jin <[EMAIL PROTECTED]> wrote:
> Dear All,
> I am working on a project whose code was written in Xlib and now I
> need to develop a GUI for it. I want to use GTK so I wonder if I could
> embed the former xlib window into a GTK top-level window. I wrote a
> small test program as below but it doesn't work. Does anyone have any
> idea about how this is gonna work?
>
> #include <string.h>
> #include <X11/Xlib.h>
> #include <X11/keysym.h>
> #include <gtk/gtk.h>
> #include <gdk/gdkx.h>
> #include <stdlib.h>
> #include <stdio.h>
> #include <sys/types.h>
>
> void destroy (GtkWidget *widget, gpointer *data)
> {
> gtk_main_quit ();
> }
>
>
>
> int main(int argc, char* argv[])
> {
> Display* display = XOpenDisplay(NULL);
> int screen = DefaultScreen(display);
> int width = DisplayWidth(display, screen)/6;
> int height = DisplayHeight(display, screen)/6;
> GtkWidget *gtkWin;
> XEvent e;
> pid_t pid;
> Bool child = FALSE;
> int timer = 0;
>
> gtk_init (&argc, &argv);
>
> gtkWin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>
> gtk_signal_connect(GTK_OBJECT(gtkWin),
> "destroy",GTK_SIGNAL_FUNC(destroy),NULL);
>
> gtk_widget_realize(gtkWin);
>
> Window win = XCreateSimpleWindow(display, RootWindow(display,
> screen),
> 0, 0, width, height, 3, BlackPixel(display, screen),
> WhitePixel(display, screen));
> XStoreName(display, win, "hello");
> GC gc = XCreateGC(display, win, 0, NULL);

I don't think this way can work. To embed a X window in Gtk window, I
think you must handle the redraw event of the X window and manually
copy the drawables to the Gtk+ window.


Bin
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to