]> Pileus Git - ~andy/gtk/blob - examples/label/label.c
- Complete documentation of Label widget API - New sections for the
[~andy/gtk] / examples / label / label.c
1 /* example-start label label.c */
2
3 #include <gtk/gtk.h>
4
5 int main( int   argc,
6           char *argv[] )
7 {
8   static GtkWidget *window = NULL;
9   GtkWidget *hbox;
10   GtkWidget *vbox;
11   GtkWidget *frame;
12   GtkWidget *label;
13
14   /* Initialise GTK */
15   gtk_init(&argc, &argv);
16
17   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
18   gtk_signal_connect (GTK_OBJECT (window), "destroy",
19                       GTK_SIGNAL_FUNC(gtk_main_quit),
20                       NULL);
21
22   gtk_window_set_title (GTK_WINDOW (window), "Label");
23   vbox = gtk_vbox_new (FALSE, 5);
24   hbox = gtk_hbox_new (FALSE, 5);
25   gtk_container_add (GTK_CONTAINER (window), hbox);
26   gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
27   gtk_container_set_border_width (GTK_CONTAINER (window), 5);
28   
29   frame = gtk_frame_new ("Normal Label");
30   label = gtk_label_new ("This is a Normal label");
31   gtk_container_add (GTK_CONTAINER (frame), label);
32   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
33   
34   frame = gtk_frame_new ("Multi-line Label");
35   label = gtk_label_new ("This is a Multi-line label.\nSecond line\n" \
36                          "Third line");
37   gtk_container_add (GTK_CONTAINER (frame), label);
38   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
39   
40   frame = gtk_frame_new ("Left Justified Label");
41   label = gtk_label_new ("This is a Left-Justified\n" \
42                          "Multi-line label.\nThird      line");
43   gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
44   gtk_container_add (GTK_CONTAINER (frame), label);
45   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
46   
47   frame = gtk_frame_new ("Right Justified Label");
48   label = gtk_label_new ("This is a Right-Justified\nMulti-line label.\n" \
49                          "Fourth line, (j/k)");
50   gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_RIGHT);
51   gtk_container_add (GTK_CONTAINER (frame), label);
52   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
53
54   vbox = gtk_vbox_new (FALSE, 5);
55   gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
56   frame = gtk_frame_new ("Line wrapped label");
57   label = gtk_label_new ("This is an example of a line-wrapped label.  It " \
58                          "should not be taking up the entire             " /* big space to test spacing */\
59                          "width allocated to it, but automatically " \
60                          "wraps the words to fit.  " \
61                          "The time has come, for all good men, to come to " \
62                          "the aid of their party.  " \
63                          "The sixth sheik's six sheep's sick.\n" \
64                          "     It supports multiple paragraphs correctly, " \
65                          "and  correctly   adds "\
66                          "many          extra  spaces. ");
67   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
68   gtk_container_add (GTK_CONTAINER (frame), label);
69   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
70   
71   frame = gtk_frame_new ("Filled, wrapped label");
72   label = gtk_label_new ("This is an example of a line-wrapped, filled label.  " \
73                          "It should be taking "\
74                          "up the entire              width allocated to it.  " \
75                          "Here is a seneance to prove "\
76                          "my point.  Here is another sentence. "\
77                          "Here comes the sun, do de do de do.\n"\
78                          "    This is a new paragraph.\n"\
79                          "    This is another newer, longer, better " \
80                          "paragraph.  It is coming to an end, "\
81                          "unfortunately.");
82   gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_FILL);
83   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
84   gtk_container_add (GTK_CONTAINER (frame), label);
85   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
86   
87   frame = gtk_frame_new ("Underlined label");
88   label = gtk_label_new ("This label is underlined!\n"
89                          "This one is underlined in quite a funky fashion");
90   gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
91   gtk_label_set_pattern (GTK_LABEL (label),
92                          "_________________________ _ _________ _ ______     __ _______ ___");
93   gtk_container_add (GTK_CONTAINER (frame), label);
94   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
95   
96   gtk_widget_show_all (window);
97
98   gtk_main ();
99   
100   return(0);
101 }
102 /* example-end */