1 #include <clutter/clutter.h>
2 
3 static const ClutterColor dark_grey = { 0x66, 0x66, 0x66, 0xff };
4 static const ClutterColor light_grey = { 0xcc, 0xcc, 0xcc, 0xff };
5 
6 int
main(int argc,char * argv[])7 main (int argc, char *argv[])
8 {
9   ClutterActor *stage;
10   ClutterLayoutManager *layout;
11   ClutterActor *box;
12   ClutterActor *rect1, *rect2;
13   guint align_x, align_y, diff_x, diff_y;
14   ClutterColor *color;
15   ClutterActor *rect;
16 
17   if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
18     return 1;
19 
20   stage = clutter_stage_new ();
21   clutter_actor_set_size (stage, 400, 400);
22   g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL);
23 
24   layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_START,
25                                    CLUTTER_BIN_ALIGNMENT_START);
26 
27   box = clutter_box_new (layout);
28 
29   rect1 = clutter_rectangle_new_with_color (&dark_grey);
30   clutter_actor_set_size (rect1, 400, 200);
31 
32   rect2 = clutter_rectangle_new_with_color (&light_grey);
33   clutter_actor_set_size (rect2, 200, 400);
34 
35   clutter_container_add (CLUTTER_CONTAINER (box),
36                          rect1,
37                          rect2,
38                          NULL);
39 
40   /*
41    * 2 = CLUTTER_BIN_ALIGNMENT_START
42    * 3 = CLUTTER_BIN_ALIGNMENT_END
43    * 4 = CLUTTER_BIN_ALIGNMENT_CENTER
44    */
45   for (align_x = 2; align_x < 5; align_x++)
46     {
47       for (align_y = 2; align_y < 5; align_y++)
48         {
49           diff_x = align_x - 1;
50           if (align_x == 3)
51             diff_x = 3;
52           else if (align_x == 4)
53             diff_x = 2;
54 
55           diff_y = align_y - 1;
56           if (align_y == 3)
57             diff_y = 3;
58           else if (align_y == 4)
59             diff_y = 2;
60 
61           color = clutter_color_new (255 - diff_x * 50,
62                                                    100 + diff_y * 50,
63                                                    0,
64                                                    255);
65           rect = clutter_rectangle_new_with_color (color);
66           clutter_actor_set_size (rect, 100, 100);
67           clutter_bin_layout_set_alignment (CLUTTER_BIN_LAYOUT (layout),
68                                             rect,
69                                             align_x,
70                                             align_y);
71           clutter_container_add_actor (CLUTTER_CONTAINER (box), rect);
72         }
73     }
74 
75   clutter_container_add_actor (CLUTTER_CONTAINER (stage), box);
76 
77   clutter_actor_show (stage);
78 
79   clutter_main ();
80 
81   return 0;
82 }
83