1#include <gtk/gtk.h>
2
3
4
5int
6main (int argc, char *argv[])
7{
8 GtkWidget *window;
9 GtkWidget *grid;
10 GtkWidget *label1;
11 GtkWidget *label2;
12 GtkWidget *label3;
13 GtkWidget *label4;
14
15 g_setenv (variable: "GTK_DEBUG", value: "baselines,layout", TRUE);
16 gtk_init ();
17
18 window = gtk_window_new ();
19 grid = gtk_grid_new ();
20 gtk_grid_set_row_spacing (GTK_GRID (grid), spacing: 30);
21 gtk_grid_set_column_spacing (GTK_GRID (grid), spacing: 30);
22 gtk_window_set_child (GTK_WINDOW (window), child: grid);
23
24 label1 = gtk_label_new (str: "Some Text");
25 label2 = gtk_label_new (str: "QQQQQQQQQ");
26 label3 = gtk_label_new (str: "Some Text");
27 label4 = gtk_label_new (str: "Some Text");
28
29 g_message ("label1: %p", label1);
30 g_message ("label2: %p", label2);
31 g_message ("label3: %p", label3);
32 g_message ("label4: %p", label4);
33
34 gtk_widget_set_valign (widget: label1, align: GTK_ALIGN_BASELINE);
35 gtk_widget_set_valign (widget: label2, align: GTK_ALIGN_BASELINE);
36 gtk_widget_set_valign (widget: label3, align: GTK_ALIGN_START);
37 gtk_widget_set_valign (widget: label4, align: GTK_ALIGN_START);
38
39 gtk_widget_set_margin_top (widget: label1, margin: 12);
40 gtk_widget_set_margin_bottom (widget: label2, margin: 18);
41 gtk_widget_set_margin_top (widget: label3, margin: 30);
42
43
44 /*
45 * Since none of the widgets in the second row request baseline alignment,
46 * GtkGrid should not compute or apply a baseline for those widgets.
47 */
48
49
50 gtk_grid_attach (GTK_GRID (grid), child: label1, column: 0, row: 0, width: 1, height: 1);
51 gtk_grid_attach (GTK_GRID (grid), child: label2, column: 1, row: 0, width: 1, height: 1);
52 gtk_grid_attach (GTK_GRID (grid), child: label3, column: 0, row: 1, width: 1, height: 1);
53 gtk_grid_attach (GTK_GRID (grid), child: label4, column: 1, row: 1, width: 1, height: 1);
54
55 gtk_widget_show (widget: window);
56 while (TRUE)
57 g_main_context_iteration (NULL, TRUE);
58 return 0;
59}
60

source code of gtk/tests/testgridbaseline.c