]> Pileus Git - ~andy/gtk/blob - examples/statusbar/statusbar.c
threads example from Erik Mouw. New question on GtkLabel background
[~andy/gtk] / examples / statusbar / statusbar.c
1 /* example-start statusbar statusbar.c */
2
3 #include <gtk/gtk.h>
4 #include <glib.h>
5
6 GtkWidget *status_bar;
7
8 void push_item( GtkWidget *widget,
9                 gpointer   data )
10 {
11   static int count = 1;
12   char buff[20];
13
14   g_snprintf(buff, 20, "Item %d", count++);
15   gtk_statusbar_push( GTK_STATUSBAR(status_bar), GPOINTER_TO_INT(data), buff);
16
17   return;
18 }
19
20 void pop_item( GtkWidget *widget,
21                gpointer   data )
22 {
23   gtk_statusbar_pop( GTK_STATUSBAR(status_bar), GPOINTER_TO_INT(data) );
24   return;
25 }
26
27 int main( int   argc,
28           char *argv[] )
29 {
30
31     GtkWidget *window;
32     GtkWidget *vbox;
33     GtkWidget *button;
34
35     gint context_id;
36
37     gtk_init (&argc, &argv);
38
39     /* create a new window */
40     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
41     gtk_widget_set_usize( GTK_WIDGET (window), 200, 100);
42     gtk_window_set_title(GTK_WINDOW (window), "GTK Statusbar Example");
43     gtk_signal_connect(GTK_OBJECT (window), "delete_event",
44                        (GtkSignalFunc) gtk_exit, NULL);
45  
46     vbox = gtk_vbox_new(FALSE, 1);
47     gtk_container_add(GTK_CONTAINER(window), vbox);
48     gtk_widget_show(vbox);
49           
50     status_bar = gtk_statusbar_new();      
51     gtk_box_pack_start (GTK_BOX (vbox), status_bar, TRUE, TRUE, 0);
52     gtk_widget_show (status_bar);
53
54     context_id = gtk_statusbar_get_context_id(
55                           GTK_STATUSBAR(status_bar), "Statusbar example");
56
57     button = gtk_button_new_with_label("push item");
58     gtk_signal_connect(GTK_OBJECT(button), "clicked",
59         GTK_SIGNAL_FUNC (push_item), GINT_TO_POINTER(context_id) );
60     gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 2);
61     gtk_widget_show(button);              
62
63     button = gtk_button_new_with_label("pop last item");
64     gtk_signal_connect(GTK_OBJECT(button), "clicked",
65         GTK_SIGNAL_FUNC (pop_item), GINT_TO_POINTER(context_id) );
66     gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 2);
67     gtk_widget_show(button);              
68
69     /* always display the window as the last step so it all splashes on
70      * the screen at once. */
71     gtk_widget_show(window);
72
73     gtk_main ();
74
75     return 0;
76 }
77 /* example-end */