]> Pileus Git - ~andy/gtk/blob - demos/gtk-demo/entry_buffer.c
Use gtk_box_new() instead gtk_[v|h]box_new()
[~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 *content_area;
15   GtkWidget *vbox;
16   GtkWidget *label;
17   GtkWidget *entry;
18   GtkEntryBuffer *buffer;
19
20   if (!window)
21   {
22     window = gtk_dialog_new_with_buttons ("GtkEntryBuffer",
23                                           GTK_WINDOW (do_widget),
24                                           0,
25                                           GTK_STOCK_CLOSE,
26                                           GTK_RESPONSE_NONE,
27                                           NULL);
28     gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
29
30     g_signal_connect (window, "response",
31                       G_CALLBACK (gtk_widget_destroy), NULL);
32     g_signal_connect (window, "destroy",
33                       G_CALLBACK (gtk_widget_destroyed), &window);
34
35     content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
36
37     vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 5);
38     gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
39     gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
40
41     label = gtk_label_new (NULL);
42     gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other.");
43     gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
44
45     /* Create a buffer */
46     buffer = gtk_entry_buffer_new (NULL, 0);
47
48     /* Create our first entry */
49     entry = gtk_entry_new_with_buffer (buffer);
50     gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
51
52     /* Create the second entry */
53     entry = gtk_entry_new_with_buffer (buffer);
54     gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
55     gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
56
57     g_object_unref (buffer);
58   }
59
60   if (!gtk_widget_get_visible (window))
61     gtk_widget_show_all (window);
62   else
63     gtk_widget_destroy (window);
64
65   return window;
66 }
67
68