gtkplug/socket



Hi,
  I was trying to write a sample appl for
GtkPlug/GtkSocket. I observe that the plug is embedded
in the socket (the signal callbacks are invoked) but
the content of the plug (frame1) is not visible in the
socket. The sample code is attached with this mail.

  What am I missing?

  I run the samplegtkplug first and then gtksoc. I am
not very sure how the GdkNativeWindow should be passed
between the processes.
  I don't see sample programs on the net, any
particular reason for this?

thanks and regards,
Venkat.



__________________________________
Do you Yahoo!?
Yahoo! Search - Find what you?re looking for faster
http://search.yahoo.com
#include<gtk/gtk.h>
void plug_has_been_added();
int main(int argc, char **argv)
{
        GtkWidget       *window;
        GtkWidget       *view;
        GtkTextBuffer   *buffer;
        GtkTextTagTable *tagtable;
        GtkTextIter     *iter;
        gchar           *markup_text = "A purple and bold label";

        GtkWidget       *soc;
        GtkWidget       *plug;

        gtk_init(&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL);
        
        /*gtk_widget_show_all(window);
        gtk_widget_show(window);*/

        tagtable = gtk_text_tag_table_new();
        buffer = gtk_text_buffer_new(tagtable);
        gtk_text_buffer_set_text(buffer, markup_text, -1);
        /*view = gtk_text_view_new_with_buffer(buffer);*/
        view = gtk_text_view_new();
        gtk_text_view_set_editable(GTK_TEXT_VIEW(view), TRUE);
        /*gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE);*/
        gtk_text_view_set_buffer(GTK_TEXT_VIEW(view), buffer);

        soc = gtk_socket_new();
        g_signal_connect(G_OBJECT(soc), "plug_added", plug_has_been_added, NULL);
        gtk_container_add(GTK_CONTAINER(window), soc);
        gtk_socket_add_id(GTK_SOCKET(soc),(GdkNativeWindow)33554434);

        gtk_widget_realize(soc);
        printf("socket_id %d\n", gtk_socket_get_id(GTK_SOCKET(soc)));
        
        gtk_widget_show_all(window);

        gtk_main();

        return 0;
        
}

void plug_has_been_added()
{
        printf("plug has been added\n");

}
#include<gtk/gtk.h>
void plug_has_been_embedded();
int main(int argc, char **argv)
{
        GtkWidget       *window;
        GtkWidget       *view1;
        GtkWidget       *view2;
        GtkTextBuffer   *buffer1;
        GtkTextBuffer   *buffer2;
        GtkTextTagTable *tagtable;
        GtkTextIter     *iter;
        gchar           *markup_text1 = "A blue and bold label";
        gchar           *markup_text2 = "A red and bold label";

        GtkWidget *hpaned;
        GtkWidget *frame1;
        GtkWidget *frame2;
        GtkWidget *plug;
        
        gtk_init(&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL);
        
        hpaned = gtk_hpaned_new();
        frame1 = gtk_frame_new("frame1");
        frame2 = gtk_frame_new("frame2");

        gtk_frame_set_shadow_type(GTK_FRAME(frame1), GTK_SHADOW_IN);
        gtk_frame_set_shadow_type(GTK_FRAME(frame2), GTK_SHADOW_IN);

        gtk_widget_set_size_request(hpaned, 200, -1);

        gtk_paned_add1(GTK_PANED(hpaned), frame1);
        /*gtk_paned_pack1(GTK_PANED(hpaned), frame1, TRUE, FALSE);*/
        gtk_widget_set_size_request(frame1, 50, -1);

        gtk_paned_add2(GTK_PANED(hpaned), frame2);
        /*gtk_paned_pack2(GTK_PANED(hpaned), frame2, FALSE, FALSE);*/
        gtk_widget_set_size_request(frame2, 50, -1);

        tagtable = gtk_text_tag_table_new();

        buffer1 = gtk_text_buffer_new(tagtable);
        gtk_text_buffer_set_text(buffer1, markup_text1, -1);
        view1 = gtk_text_view_new();
        gtk_text_view_set_buffer(GTK_TEXT_VIEW(view1), buffer1);
        
        buffer2 = gtk_text_buffer_new(tagtable);
        gtk_text_buffer_set_text(buffer2, markup_text2, -1);
        view2 = gtk_text_view_new();
        gtk_text_view_set_buffer(GTK_TEXT_VIEW(view2), buffer2);

        gtk_container_add(GTK_CONTAINER(frame1), view1);
        gtk_container_add(GTK_CONTAINER(frame2), view2);
        
        gtk_container_add(GTK_CONTAINER(window), hpaned);

        plug = gtk_plug_new_for_display(gtk_widget_get_display(GTK_WIDGET(frame1)), 
(GdkNativeWindow)35651837);
        printf("plug_id is %d\n", gtk_plug_get_id(GTK_PLUG(plug)));

        g_signal_connect(G_OBJECT(plug), "embedded", plug_has_been_embedded, NULL);

        gtk_widget_show_all(window);

        gtk_main();

        return 0;
        
}
void plug_has_been_embedded()
{
        printf("plug has been embedded\n");

}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]