]> Pileus Git - ~andy/gtk/blob - tests/testsocket_child.c
Now it's a GObject instead of a GtkObject. The
[~andy/gtk] / tests / testsocket_child.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #include <gtk/gtk.h>
5
6 void
7 remove_buttons (GtkWidget *widget, GtkWidget *other_button)
8 {
9   gtk_widget_destroy (other_button);
10   gtk_widget_destroy (widget);
11 }
12
13 void
14 add_buttons (GtkWidget *widget, GtkWidget *box)
15 {
16   GtkWidget *add_button;
17   GtkWidget *remove_button;
18
19   add_button = gtk_button_new_with_mnemonic ("_Add");
20   gtk_box_pack_start (GTK_BOX (box), add_button, TRUE, TRUE, 0);
21   gtk_widget_show (add_button);
22
23   gtk_signal_connect (GTK_OBJECT (add_button), "clicked",
24                       GTK_SIGNAL_FUNC (add_buttons),
25                       box);
26
27   remove_button = gtk_button_new_with_mnemonic ("_Remove");
28   gtk_box_pack_start (GTK_BOX (box), remove_button, TRUE, TRUE, 0);
29   gtk_widget_show (remove_button);
30
31   gtk_signal_connect (GTK_OBJECT (remove_button), "clicked",
32                       GTK_SIGNAL_FUNC (remove_buttons),
33                       add_button);
34 }
35
36 int
37 main (int argc, char *argv[])
38 {
39   guint32 xid;
40
41   GtkWidget *window;
42   GtkWidget *hbox;
43   GtkWidget *entry;
44   GtkWidget *button;
45   gtk_init (&argc, &argv);
46
47   if (argc < 2)
48     {
49       fprintf (stderr, "Usage: testsocket_child WINDOW_ID\n");
50       exit (1);
51     }
52
53   xid = strtol (argv[1], NULL, 0);
54   if (xid == 0)
55     {
56       fprintf (stderr, "Invalid window id '%s'\n", argv[1]);
57       exit (1);
58     }
59
60   window = gtk_plug_new (xid);
61   gtk_signal_connect (GTK_OBJECT (window), "destroy",
62                       (GtkSignalFunc) gtk_exit, NULL);
63   gtk_container_set_border_width (GTK_CONTAINER (window), 0);
64
65   hbox = gtk_hbox_new (FALSE, 0);
66   gtk_container_add (GTK_CONTAINER (window), hbox);
67   gtk_widget_show (hbox);
68
69   entry = gtk_entry_new ();
70   gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
71   gtk_widget_show (entry);
72
73   button = gtk_button_new_with_mnemonic ("_Close");
74   gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
75   gtk_widget_show (button);
76
77   gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
78                              GTK_SIGNAL_FUNC (gtk_widget_destroy),
79                              GTK_OBJECT (window));
80
81   add_buttons (NULL, hbox);
82   
83   gtk_widget_show (window);
84
85   gtk_main ();
86
87   return 0;
88 }
89
90