forked from enlightenment/efl
edje: Add test case for signal_recursive_process
This commit is contained in:
parent
63518c4c2c
commit
bca55bb52f
|
@ -282,6 +282,7 @@ tests/edje/data/test_box.edc \
|
|||
tests/edje/data/test_table.edc \
|
||||
tests/edje/data/test_combine_keywords.edc \
|
||||
tests/edje/data/test_messages.edc \
|
||||
tests/edje/data/test_signals.edc \
|
||||
tests/edje/data/filter.lua
|
||||
|
||||
|
||||
|
@ -323,6 +324,7 @@ EDJE_TEST_FILES = tests/edje/data/test_layout.edj \
|
|||
tests/edje/data/test_table.edj \
|
||||
tests/edje/data/test_combine_keywords.edj \
|
||||
tests/edje/data/test_messages.edj \
|
||||
tests/edje/data/test_signals.edj \
|
||||
$(NULL)
|
||||
|
||||
CLEANFILES += $(EDJE_TEST_FILES)
|
||||
|
|
|
@ -65,3 +65,5 @@ collections {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,124 @@
|
|||
// compile: edje_cc edje_signal_test.edc
|
||||
collections {
|
||||
group {
|
||||
name: "level1";
|
||||
|
||||
parts {
|
||||
part {
|
||||
name: "group";
|
||||
type: GROUP;
|
||||
source: "level2";
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group {
|
||||
name: "level2";
|
||||
|
||||
parts {
|
||||
part {
|
||||
name: "group";
|
||||
type: GROUP;
|
||||
source: "level3";
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group {
|
||||
name: "level3"; // must be the same as in edje_example.c
|
||||
|
||||
parts {
|
||||
part {
|
||||
name: "background";
|
||||
type: RECT; // plain boring rectangle
|
||||
mouse_events: 0; // we don't need any mouse event on the background
|
||||
|
||||
// just one state "default"
|
||||
description {
|
||||
state: "default" 0.0; // must always exist
|
||||
color: 255 255 255 255; // white
|
||||
|
||||
// define part coordinates:
|
||||
|
||||
rel1 { // top-left point at (0, 0) [WIDTH * 0 + 0, HEIGHT * 0 + 0]
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 { // bottom-right point at (WIDTH * 1.0 - 1, HEIGHT * 1.0 - 1)
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
part {
|
||||
name: "text";
|
||||
type: TEXT;
|
||||
mouse_events: 1; // we want to change the color on mouse-over
|
||||
|
||||
// 2 states, one "default" and another "over" to be used
|
||||
// on mouse over effect
|
||||
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 255 0 0 255; // red
|
||||
|
||||
// define part coordinates:
|
||||
|
||||
rel1 { // top-left at (WIDTH * 0.1 + 5, HEIGHT * 0.2 + 10)
|
||||
relative: 0.1 0.2;
|
||||
offset: 5 10;
|
||||
}
|
||||
rel2 { // bottom-right at (WIDTH * 0.9 - 6, HEIGHT * 0.8 - 11)
|
||||
relative: 0.9 0.8;
|
||||
offset: -6 -11;
|
||||
}
|
||||
|
||||
// define text specific state details
|
||||
text {
|
||||
font: "Sans"; // using fontconfig name!
|
||||
size: 10;
|
||||
text: "hello world";
|
||||
}
|
||||
}
|
||||
|
||||
description {
|
||||
state: "over" 0.0;
|
||||
inherit: "default" 0.0; // copy everything from "default" at this point
|
||||
|
||||
color: 0 255 0 255; // override color, now it is green
|
||||
}
|
||||
}
|
||||
|
||||
programs {
|
||||
program {
|
||||
signal: "mouse,in";
|
||||
source: "text";
|
||||
|
||||
action: STATE_SET "over" 0.0;
|
||||
target: "text";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -867,6 +867,39 @@ START_TEST(edje_test_message_send_eo)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(edje_test_signals)
|
||||
{
|
||||
Evas *evas;
|
||||
Evas_Object *obj;
|
||||
const char *state;
|
||||
|
||||
evas = EDJE_TEST_INIT_EVAS();
|
||||
|
||||
obj = efl_add(EDJE_OBJECT_CLASS, evas,
|
||||
efl_file_set(efl_added, test_layout_get("test_signals.edj"), "level1"),
|
||||
efl_gfx_size_set(efl_added, 320, 240),
|
||||
efl_gfx_visible_set(efl_added, 1));
|
||||
|
||||
edje_object_signal_emit(obj, "mouse,in", "text");
|
||||
|
||||
edje_object_message_signal_process(obj);
|
||||
state = edje_object_part_state_get(obj, "group:group:text", NULL);
|
||||
ck_assert_str_eq(state, "default");
|
||||
|
||||
edje_object_message_signal_process(obj);
|
||||
state = edje_object_part_state_get(obj, "group:group:text", NULL);
|
||||
ck_assert_str_eq(state, "default");
|
||||
|
||||
edje_object_message_signal_recursive_process(obj);
|
||||
state = edje_object_part_state_get(obj, "group:group:text", NULL);
|
||||
ck_assert_str_eq(state, "over");
|
||||
|
||||
efl_del(obj);
|
||||
|
||||
EDJE_TEST_FREE_EVAS();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
void edje_test_edje(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, edje_test_edje_init);
|
||||
|
@ -890,4 +923,5 @@ void edje_test_edje(TCase *tc)
|
|||
tcase_add_test(tc, edje_test_combine_keywords);
|
||||
tcase_add_test(tc, edje_test_message_send_legacy);
|
||||
tcase_add_test(tc, edje_test_message_send_eo);
|
||||
tcase_add_test(tc, edje_test_signals);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue