2008-02-20 05:59:47 -05:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include <glib.h>
|
2008-11-07 14:32:28 -05:00
|
|
|
#include <gmodule.h>
|
2008-02-20 05:59:47 -05:00
|
|
|
|
|
|
|
#include <clutter/clutter.h>
|
|
|
|
|
2008-11-07 14:32:28 -05:00
|
|
|
G_MODULE_EXPORT int
|
|
|
|
test_opacity_main (int argc, char *argv[])
|
2008-02-20 05:59:47 -05:00
|
|
|
{
|
|
|
|
ClutterActor *stage, *group1, *group2, *label, *rect;
|
|
|
|
ClutterColor label_color = { 255, 0, 0, 128 };
|
|
|
|
ClutterColor rect_color = { 0, 0, 255, 255 };
|
|
|
|
ClutterColor color_check = { 0, };
|
|
|
|
|
|
|
|
clutter_init (&argc, &argv);
|
|
|
|
|
|
|
|
stage = clutter_stage_get_default ();
|
|
|
|
|
|
|
|
label = clutter_label_new_with_text ("Sans 18px", "Label, 50% opacity");
|
|
|
|
clutter_label_set_color (CLUTTER_LABEL (label), &label_color);
|
|
|
|
|
|
|
|
g_print ("label 50%%.get_color()/1\n");
|
|
|
|
clutter_label_get_color (CLUTTER_LABEL (label), &color_check);
|
|
|
|
g_assert (color_check.alpha == label_color.alpha);
|
|
|
|
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (stage), label, NULL);
|
|
|
|
clutter_actor_set_position (label, 10, 10);
|
|
|
|
|
|
|
|
g_print ("label 50%%.get_color()/2\n");
|
|
|
|
clutter_label_get_color (CLUTTER_LABEL (label), &color_check);
|
|
|
|
g_assert (color_check.alpha == label_color.alpha);
|
|
|
|
|
2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
Bug #815 - Split up request, allocation, and paint box
* clutter/clutter-actor.[ch]: Rework the size allocation,
request and paint area. Now ::request_coords() is called
::allocate(), and ::query_coords() has been split into
::get_preferred_width() and ::get_preferred_height(). See
the documentation and the layout test on how to implement
a container and layout manager with the new API. (#915,
based on a patch by Havoc Pennington, Lucas Rocha and Johan
Bilien)
* clutter/clutter-clone-texture.c: Port CloneTexture to
the new size negotiation API; it just means forwarding
the requests to the parent texture.
* clutter/clutter-deprecated.h: Add deprecated and replaced
API.
* clutter/clutter-entry.c: Port Entry to the new size
negotiation API.
* clutter/clutter-group.c: Port Group to the new size
negotiation API; the semantics of the Group actor do not
change.
* clutter/clutter-label.c: Port Label to the new size
negotiation API, and vastly simplify the code.
* clutter/clutter-main.[ch]: Add API for executing a
relayout when needed.
* clutter/clutter-private.h: Add new Stage private API.
* clutter/clutter-rectangle.c: Update the get_abs_opacity()
call to get_paint_opacity().
* clutter/clutter-stage.c:
(clutter_stage_get_preferred_width),
(clutter_stage_get_preferred_height),
(clutter_stage_allocate),
(clutter_stage_class_init): Port Stage to the new size
negotiation API.
* clutter/clutter-texture.c: Port Texture to the new size
negotiation API.
* clutter/clutter-types.h: Add ClutterRequestMode enumeration.
* clutter/x11/clutter-stage-x11.c: Port the X11 stage
implementation to the new size negotiation API.
* tests/Makefile.am: Add the layout manager test case.
* tests/test-opacity.c: Update.
* tests/test-project.c: Update.
* tests/test-layout.c: Test case for a layout manager implemented
using the new size negotiation API; the layout manager handles
both transformed and untransformed children.
2008-06-10 13:07:52 -04:00
|
|
|
g_print ("label 50%%.get_paint_opacity() = %d\n",
|
|
|
|
clutter_actor_get_paint_opacity (label));
|
|
|
|
g_assert (clutter_actor_get_paint_opacity (label) == 128);
|
2008-02-20 05:59:47 -05:00
|
|
|
|
|
|
|
clutter_actor_show (label);
|
|
|
|
|
|
|
|
group1 = clutter_group_new ();
|
|
|
|
clutter_actor_set_opacity (group1, 128);
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (stage), group1, NULL);
|
|
|
|
clutter_actor_set_position (group1, 10, 30);
|
|
|
|
clutter_actor_show (group1);
|
|
|
|
|
|
|
|
label = clutter_label_new_with_text ("Sans 18px", "Label+Group, 25% opacity");
|
|
|
|
|
|
|
|
clutter_label_set_color (CLUTTER_LABEL (label), &label_color);
|
|
|
|
|
|
|
|
g_print ("label 50%% + group 50%%.get_color()/1\n");
|
|
|
|
clutter_label_get_color (CLUTTER_LABEL (label), &color_check);
|
|
|
|
g_assert (color_check.alpha == label_color.alpha);
|
|
|
|
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (group1), label, NULL);
|
|
|
|
|
|
|
|
g_print ("label 50%% + group 50%%.get_color()/2\n");
|
|
|
|
clutter_label_get_color (CLUTTER_LABEL (label), &color_check);
|
|
|
|
g_assert (color_check.alpha == label_color.alpha);
|
|
|
|
|
2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
Bug #815 - Split up request, allocation, and paint box
* clutter/clutter-actor.[ch]: Rework the size allocation,
request and paint area. Now ::request_coords() is called
::allocate(), and ::query_coords() has been split into
::get_preferred_width() and ::get_preferred_height(). See
the documentation and the layout test on how to implement
a container and layout manager with the new API. (#915,
based on a patch by Havoc Pennington, Lucas Rocha and Johan
Bilien)
* clutter/clutter-clone-texture.c: Port CloneTexture to
the new size negotiation API; it just means forwarding
the requests to the parent texture.
* clutter/clutter-deprecated.h: Add deprecated and replaced
API.
* clutter/clutter-entry.c: Port Entry to the new size
negotiation API.
* clutter/clutter-group.c: Port Group to the new size
negotiation API; the semantics of the Group actor do not
change.
* clutter/clutter-label.c: Port Label to the new size
negotiation API, and vastly simplify the code.
* clutter/clutter-main.[ch]: Add API for executing a
relayout when needed.
* clutter/clutter-private.h: Add new Stage private API.
* clutter/clutter-rectangle.c: Update the get_abs_opacity()
call to get_paint_opacity().
* clutter/clutter-stage.c:
(clutter_stage_get_preferred_width),
(clutter_stage_get_preferred_height),
(clutter_stage_allocate),
(clutter_stage_class_init): Port Stage to the new size
negotiation API.
* clutter/clutter-texture.c: Port Texture to the new size
negotiation API.
* clutter/clutter-types.h: Add ClutterRequestMode enumeration.
* clutter/x11/clutter-stage-x11.c: Port the X11 stage
implementation to the new size negotiation API.
* tests/Makefile.am: Add the layout manager test case.
* tests/test-opacity.c: Update.
* tests/test-project.c: Update.
* tests/test-layout.c: Test case for a layout manager implemented
using the new size negotiation API; the layout manager handles
both transformed and untransformed children.
2008-06-10 13:07:52 -04:00
|
|
|
g_print ("label 50%% + group 50%%.get_paint_opacity() = %d\n",
|
|
|
|
clutter_actor_get_paint_opacity (label));
|
|
|
|
g_assert (clutter_actor_get_paint_opacity (label) == 64);
|
2008-02-20 05:59:47 -05:00
|
|
|
|
|
|
|
clutter_actor_show (label);
|
|
|
|
|
|
|
|
group2 = clutter_group_new ();
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (group1), group2, NULL);
|
|
|
|
clutter_actor_set_position (group2, 10, 60);
|
|
|
|
clutter_actor_show (group2);
|
|
|
|
|
|
|
|
rect = clutter_rectangle_new_with_color (&rect_color);
|
|
|
|
clutter_actor_set_size (rect, 128, 128);
|
|
|
|
|
|
|
|
g_print ("rect 100%% + group 100%% + group 50%%.get_color()/1\n");
|
|
|
|
clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
|
|
|
|
g_assert (color_check.alpha == rect_color.alpha);
|
|
|
|
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (group2), rect, NULL);
|
|
|
|
|
|
|
|
g_print ("rect 100%% + group 100%% + group 50%%.get_color()/2\n");
|
|
|
|
clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
|
|
|
|
g_assert (color_check.alpha == rect_color.alpha);
|
|
|
|
|
2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
Bug #815 - Split up request, allocation, and paint box
* clutter/clutter-actor.[ch]: Rework the size allocation,
request and paint area. Now ::request_coords() is called
::allocate(), and ::query_coords() has been split into
::get_preferred_width() and ::get_preferred_height(). See
the documentation and the layout test on how to implement
a container and layout manager with the new API. (#915,
based on a patch by Havoc Pennington, Lucas Rocha and Johan
Bilien)
* clutter/clutter-clone-texture.c: Port CloneTexture to
the new size negotiation API; it just means forwarding
the requests to the parent texture.
* clutter/clutter-deprecated.h: Add deprecated and replaced
API.
* clutter/clutter-entry.c: Port Entry to the new size
negotiation API.
* clutter/clutter-group.c: Port Group to the new size
negotiation API; the semantics of the Group actor do not
change.
* clutter/clutter-label.c: Port Label to the new size
negotiation API, and vastly simplify the code.
* clutter/clutter-main.[ch]: Add API for executing a
relayout when needed.
* clutter/clutter-private.h: Add new Stage private API.
* clutter/clutter-rectangle.c: Update the get_abs_opacity()
call to get_paint_opacity().
* clutter/clutter-stage.c:
(clutter_stage_get_preferred_width),
(clutter_stage_get_preferred_height),
(clutter_stage_allocate),
(clutter_stage_class_init): Port Stage to the new size
negotiation API.
* clutter/clutter-texture.c: Port Texture to the new size
negotiation API.
* clutter/clutter-types.h: Add ClutterRequestMode enumeration.
* clutter/x11/clutter-stage-x11.c: Port the X11 stage
implementation to the new size negotiation API.
* tests/Makefile.am: Add the layout manager test case.
* tests/test-opacity.c: Update.
* tests/test-project.c: Update.
* tests/test-layout.c: Test case for a layout manager implemented
using the new size negotiation API; the layout manager handles
both transformed and untransformed children.
2008-06-10 13:07:52 -04:00
|
|
|
g_print ("rect 100%%.get_paint_opacity() = %d\n",
|
|
|
|
clutter_actor_get_paint_opacity (rect));
|
|
|
|
g_assert (clutter_actor_get_paint_opacity (rect) == 128);
|
2008-02-20 05:59:47 -05:00
|
|
|
|
|
|
|
clutter_actor_show (rect);
|
|
|
|
|
|
|
|
rect = clutter_rectangle_new_with_color (&rect_color);
|
|
|
|
clutter_actor_set_size (rect, 128, 128);
|
|
|
|
clutter_actor_set_position (rect, 150, 90);
|
|
|
|
|
|
|
|
g_print ("rect 100%%.get_color()/1\n");
|
|
|
|
clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
|
|
|
|
g_assert (color_check.alpha == rect_color.alpha);
|
|
|
|
|
|
|
|
clutter_container_add (CLUTTER_CONTAINER (stage), rect, NULL);
|
|
|
|
|
|
|
|
g_print ("rect 100%%.get_color()/2\n");
|
|
|
|
clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check);
|
|
|
|
g_assert (color_check.alpha == rect_color.alpha);
|
|
|
|
|
2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
Bug #815 - Split up request, allocation, and paint box
* clutter/clutter-actor.[ch]: Rework the size allocation,
request and paint area. Now ::request_coords() is called
::allocate(), and ::query_coords() has been split into
::get_preferred_width() and ::get_preferred_height(). See
the documentation and the layout test on how to implement
a container and layout manager with the new API. (#915,
based on a patch by Havoc Pennington, Lucas Rocha and Johan
Bilien)
* clutter/clutter-clone-texture.c: Port CloneTexture to
the new size negotiation API; it just means forwarding
the requests to the parent texture.
* clutter/clutter-deprecated.h: Add deprecated and replaced
API.
* clutter/clutter-entry.c: Port Entry to the new size
negotiation API.
* clutter/clutter-group.c: Port Group to the new size
negotiation API; the semantics of the Group actor do not
change.
* clutter/clutter-label.c: Port Label to the new size
negotiation API, and vastly simplify the code.
* clutter/clutter-main.[ch]: Add API for executing a
relayout when needed.
* clutter/clutter-private.h: Add new Stage private API.
* clutter/clutter-rectangle.c: Update the get_abs_opacity()
call to get_paint_opacity().
* clutter/clutter-stage.c:
(clutter_stage_get_preferred_width),
(clutter_stage_get_preferred_height),
(clutter_stage_allocate),
(clutter_stage_class_init): Port Stage to the new size
negotiation API.
* clutter/clutter-texture.c: Port Texture to the new size
negotiation API.
* clutter/clutter-types.h: Add ClutterRequestMode enumeration.
* clutter/x11/clutter-stage-x11.c: Port the X11 stage
implementation to the new size negotiation API.
* tests/Makefile.am: Add the layout manager test case.
* tests/test-opacity.c: Update.
* tests/test-project.c: Update.
* tests/test-layout.c: Test case for a layout manager implemented
using the new size negotiation API; the layout manager handles
both transformed and untransformed children.
2008-06-10 13:07:52 -04:00
|
|
|
g_print ("rect 100%%.get_paint_opacity() = %d\n",
|
|
|
|
clutter_actor_get_paint_opacity (rect));
|
|
|
|
g_assert (clutter_actor_get_paint_opacity (rect) == 255);
|
2008-02-20 05:59:47 -05:00
|
|
|
|
|
|
|
clutter_actor_show (rect);
|
|
|
|
|
|
|
|
clutter_actor_show_all (stage);
|
|
|
|
|
|
|
|
clutter_main ();
|
|
|
|
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|