1 #include <clutter/clutter.h>
2 #include <stdlib.h>
3
4 static void
opacity_label(void)5 opacity_label (void)
6 {
7 ClutterActor *stage;
8 ClutterActor *label;
9 ClutterColor label_color = { 255, 0, 0, 128 };
10 ClutterColor color_check = { 0, };
11
12 stage = clutter_test_get_stage ();
13
14 label = clutter_text_new_with_text ("Sans 18px", "Label, 50% opacity");
15 clutter_text_set_color (CLUTTER_TEXT (label), &label_color);
16
17 if (g_test_verbose ())
18 g_print ("label 50%%.get_color()/1\n");
19 clutter_text_get_color (CLUTTER_TEXT (label), &color_check);
20 g_assert (color_check.alpha == label_color.alpha);
21
22 clutter_actor_add_child (stage, label);
23 clutter_actor_set_position (label, 10, 10);
24
25 if (g_test_verbose ())
26 g_print ("label 50%%.get_color()/2\n");
27 clutter_text_get_color (CLUTTER_TEXT (label), &color_check);
28 g_assert (color_check.alpha == label_color.alpha);
29
30 if (g_test_verbose ())
31 g_print ("label 50%%.get_paint_opacity()/1\n");
32 g_assert (clutter_actor_get_paint_opacity (label) == 255);
33
34 if (g_test_verbose ())
35 g_print ("label 50%%.get_paint_opacity()/2\n");
36 clutter_actor_set_opacity (label, 128);
37 g_assert (clutter_actor_get_paint_opacity (label) == 128);
38 }
39
40 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
41 static void
opacity_rectangle(void)42 opacity_rectangle (void)
43 {
44 ClutterActor *stage;
45 ClutterActor *rect;
46 ClutterColor rect_color = { 0, 0, 255, 255 };
47 ClutterColor color_check = { 0, };
48
49 stage = clutter_test_get_stage ();
50
51 rect = clutter_rectangle_new_with_color (&rect_color);
52 clutter_actor_set_size (rect, 128, 128);
53 clutter_actor_set_position (rect, 150, 90);
54
55 if (g_test_verbose ())
56 g_print ("rect 100%%.get_color()/1\n");
57 clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
58 g_assert (color_check.alpha == rect_color.alpha);
59
60 clutter_actor_add_child (stage, rect);
61
62 if (g_test_verbose ())
63 g_print ("rect 100%%.get_color()/2\n");
64 clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
65 g_assert (color_check.alpha == rect_color.alpha);
66
67 if (g_test_verbose ())
68 g_print ("rect 100%%.get_paint_opacity()\n");
69 g_assert (clutter_actor_get_paint_opacity (rect) == 255);
70 }
71 G_GNUC_END_IGNORE_DEPRECATIONS
72
73 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
74 static void
opacity_paint(void)75 opacity_paint (void)
76 {
77 ClutterActor *stage, *group1, *group2;
78 ClutterActor *label, *rect;
79 ClutterColor label_color = { 255, 0, 0, 128 };
80 ClutterColor rect_color = { 0, 0, 255, 255 };
81 ClutterColor color_check = { 0, };
82
83 stage = clutter_test_get_stage ();
84
85 group1 = clutter_group_new ();
86 clutter_actor_set_opacity (group1, 128);
87 clutter_container_add (CLUTTER_CONTAINER (stage), group1, NULL);
88 clutter_actor_set_position (group1, 10, 30);
89 clutter_actor_show (group1);
90
91 label = clutter_text_new_with_text ("Sans 18px", "Label+Group, 25% opacity");
92 clutter_text_set_color (CLUTTER_TEXT (label), &label_color);
93
94 if (g_test_verbose ())
95 g_print ("label 50%% + group 50%%.get_color()/1\n");
96 clutter_text_get_color (CLUTTER_TEXT (label), &color_check);
97 g_assert (color_check.alpha == label_color.alpha);
98
99 clutter_container_add (CLUTTER_CONTAINER (group1), label, NULL);
100
101 if (g_test_verbose ())
102 g_print ("label 50%% + group 50%%.get_color()/2\n");
103 clutter_text_get_color (CLUTTER_TEXT (label), &color_check);
104 g_assert (color_check.alpha == label_color.alpha);
105
106 if (g_test_verbose ())
107 g_print ("label 50%% + group 50%%.get_paint_opacity() = 128\n");
108 g_assert (clutter_actor_get_paint_opacity (label) == 128);
109
110 clutter_actor_destroy (label);
111
112 group2 = clutter_group_new ();
113 clutter_container_add (CLUTTER_CONTAINER (group1), group2, NULL);
114 clutter_actor_set_position (group2, 10, 60);
115
116 rect = clutter_rectangle_new_with_color (&rect_color);
117 clutter_actor_set_size (rect, 128, 128);
118
119 if (g_test_verbose ())
120 g_print ("rect 100%% + group 100%% + group 50%%.get_color()/1\n");
121 clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
122 g_assert (color_check.alpha == rect_color.alpha);
123
124 clutter_container_add (CLUTTER_CONTAINER (group2), rect, NULL);
125
126 if (g_test_verbose ())
127 g_print ("rect 100%% + group 100%% + group 50%%.get_color()/2\n");
128 clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
129 g_assert (color_check.alpha == rect_color.alpha);
130
131 if (g_test_verbose ())
132 g_print ("rect 100%%.get_paint_opacity()\n");
133 g_assert (clutter_actor_get_paint_opacity (rect) == 128);
134 }
135 G_GNUC_END_IGNORE_DEPRECATIONS
136
137 CLUTTER_TEST_SUITE (
138 CLUTTER_TEST_UNIT ("/actor/opacity/text", opacity_label)
139 CLUTTER_TEST_UNIT ("/actor/opacity/rectangle", opacity_rectangle)
140 CLUTTER_TEST_UNIT ("/actor/opacity/paint", opacity_paint)
141 )
142