]> Pileus Git - ~andy/gtk/blob - demos/gtk-demo/entry_buffer.c
Deprecate widget flag: GTK_WIDGET_VISIBLE
[~andy/gtk] / demos / gtk-demo / entry_buffer.c
1 /* Entry/Entry Buffer
2  *
3  * GtkEntryBuffer provides the text content in a GtkEntry.
4  *
5  */
6
7 #include <gtk/gtk.h>
8
9 static GtkWidget *window = NULL;
10
11 GtkWidget *
12 do_entry_buffer (GtkWidget *do_widget)
13 {
14   GtkWidget *vbox;
15   GtkWidget *label;
16   GtkWidget *entry;
17   GtkEntryBuffer *buffer;
18
19   if (!window)
20   {
21     window = gtk_dialog_new_with_buttons ("GtkEntryBuffer",
22                                           GTK_WINDOW (do_widget),
23                                           0,
24                                           GTK_STOCK_CLOSE,
25                                           GTK_RESPONSE_NONE,
26                                           NULL);
27     gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
28
29     g_signal_connect (window, "response",
30                       G_CALLBACK (gtk_widget_destroy), NULL);
31     g_signal_connect (window, "destroy",
32                       G_CALLBACK (gtk_widget_destroyed), &window);
33
34     vbox = gtk_vbox_new (FALSE, 5);
35     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
36     gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
37
38     label = gtk_label_new (NULL);
39     gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other.");
40     gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
41
42     /* Create a buffer */
43     buffer = gtk_entry_buffer_new (NULL, 0);
44
45     /* Create our first entry */
46     entry = gtk_entry_new_with_buffer (buffer);
47     gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
48
49     /* Create the second entry */
50     entry = gtk_entry_new_with_buffer (buffer);
51     gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
52     gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
53
54     g_object_unref (buffer);
55   }
56
57   if (!gtk_widget_get_visible (window))
58     gtk_widget_show_all (window);
59   else
60     gtk_widget_destroy (window);
61
62   return window;
63 }
64
65