forked from enlightenment/efl
elm_test: add smart object mask test to existing masking test
Summary: this adds another masking functionality using a layout object to the test when the toggle mask button is clicked enough times Depends on D8849 Reviewers: cedric Reviewed By: cedric Subscribers: cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D8850
This commit is contained in:
parent
1b4ce987a7
commit
7387410019
|
@ -13,6 +13,18 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
group { "image";
|
||||||
|
parts {
|
||||||
|
image { "mask";
|
||||||
|
desc { "default";
|
||||||
|
image {
|
||||||
|
normal: "roundedrect.png";
|
||||||
|
border: 22 22 22 22;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
group { "masking";
|
group { "masking";
|
||||||
parts {
|
parts {
|
||||||
rect { "clip"; norender; }
|
rect { "clip"; norender; }
|
||||||
|
@ -25,10 +37,16 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
swallow { "mask2";
|
||||||
|
norender;
|
||||||
|
}
|
||||||
swallow { "content";
|
swallow { "content";
|
||||||
desc { "default";
|
desc { "default";
|
||||||
clip_to: "mask";
|
clip_to: "mask";
|
||||||
}
|
}
|
||||||
|
desc { "smartclip";
|
||||||
|
clip: "mask2";
|
||||||
|
}
|
||||||
desc { "unclipped";
|
desc { "unclipped";
|
||||||
clip_to: "clip";
|
clip_to: "clip";
|
||||||
}
|
}
|
||||||
|
@ -47,6 +65,12 @@ collections {
|
||||||
action: STATE_SET "default";
|
action: STATE_SET "default";
|
||||||
target: "content";
|
target: "content";
|
||||||
}
|
}
|
||||||
|
program {
|
||||||
|
signal: "smartclip";
|
||||||
|
source: "*";
|
||||||
|
action: STATE_SET "smartclip";
|
||||||
|
target: "content";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group { "text";
|
group { "text";
|
||||||
|
|
|
@ -61,20 +61,31 @@ _gl_del(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_toggle_mask(void *data, const Efl_Event *ev EINA_UNUSED)
|
_toggle_mask(void *data, const Efl_Event *ev)
|
||||||
{
|
{
|
||||||
Eo *ly = data;
|
Eo *ly = data;
|
||||||
|
const char *clip = efl_key_data_get(ly, "clip");
|
||||||
|
const char *text;
|
||||||
|
|
||||||
if (!efl_key_data_get(ly, "unclipped"))
|
if (eina_streq(clip, "image"))
|
||||||
{
|
{
|
||||||
elm_layout_signal_emit(ly, "unclip", "elm_test");
|
elm_layout_signal_emit(ly, "unclip", "elm_test");
|
||||||
efl_key_data_set(ly, "unclipped", "yup");
|
efl_key_data_set(ly, "clip", NULL);
|
||||||
|
text = "Toggle mask (none)";
|
||||||
|
}
|
||||||
|
else if (eina_streq(clip, "smart"))
|
||||||
|
{
|
||||||
|
elm_layout_signal_emit(ly, "clip", "elm_test");
|
||||||
|
efl_key_data_set(ly, "clip", "image");
|
||||||
|
text = "Toggle mask (image)";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
elm_layout_signal_emit(ly, "clip", "elm_test");
|
elm_layout_signal_emit(ly, "smartclip", "elm_test");
|
||||||
efl_key_data_set(ly, "unclipped", NULL);
|
efl_key_data_set(ly, "clip", "smart");
|
||||||
|
text = "Toggle mask (smart)";
|
||||||
}
|
}
|
||||||
|
efl_text_set(ev->object, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -101,7 +112,7 @@ _rotate_win(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||||
void
|
void
|
||||||
test_evas_mask(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
test_evas_mask(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Eo *win, *box, *o, *gl, *ly, *box2;
|
Eo *win, *box, *o, *gl, *ly, *smart_mask, *box2;
|
||||||
Elm_Genlist_Item_Class *itc;
|
Elm_Genlist_Item_Class *itc;
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
|
@ -121,9 +132,16 @@ test_evas_mask(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
|
||||||
snprintf(buf, sizeof(buf), "%s/objects/test_masking.edj", elm_app_data_dir_get());
|
snprintf(buf, sizeof(buf), "%s/objects/test_masking.edj", elm_app_data_dir_get());
|
||||||
ly = efl_add(EFL_UI_LAYOUT_CLASS, win,
|
ly = efl_add(EFL_UI_LAYOUT_CLASS, win,
|
||||||
efl_file_set(efl_added, buf),
|
efl_file_set(efl_added, buf),
|
||||||
efl_file_key_set(efl_added, "masking"));
|
efl_file_key_set(efl_added, "masking"),
|
||||||
|
efl_key_data_set(efl_added, "clip", "image"));
|
||||||
efl_pack(box, ly);
|
efl_pack(box, ly);
|
||||||
|
|
||||||
|
// FIXME: layout EO API
|
||||||
|
smart_mask = efl_add(EFL_UI_LAYOUT_CLASS, win,
|
||||||
|
efl_file_set(efl_added, buf),
|
||||||
|
efl_file_key_set(efl_added, "image"));
|
||||||
|
elm_object_part_content_set(ly, "mask2", smart_mask);
|
||||||
|
|
||||||
// FIXME: No genlist in EO API
|
// FIXME: No genlist in EO API
|
||||||
o = gl = elm_genlist_add(win);
|
o = gl = elm_genlist_add(win);
|
||||||
elm_genlist_homogeneous_set(gl, 1);
|
elm_genlist_homogeneous_set(gl, 1);
|
||||||
|
@ -157,7 +175,7 @@ test_evas_mask(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
|
||||||
|
|
||||||
// FIXME: button EO API
|
// FIXME: button EO API
|
||||||
efl_add(EFL_UI_BUTTON_CLASS, win,
|
efl_add(EFL_UI_BUTTON_CLASS, win,
|
||||||
efl_text_set(efl_added, "Toggle mask"),
|
efl_text_set(efl_added, "Toggle mask (image)"),
|
||||||
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _toggle_mask, ly),
|
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _toggle_mask, ly),
|
||||||
efl_gfx_hint_weight_set(efl_added, 0.0, 0.0),
|
efl_gfx_hint_weight_set(efl_added, 0.0, 0.0),
|
||||||
efl_pack(box2, efl_added));
|
efl_pack(box2, efl_added));
|
||||||
|
|
Loading…
Reference in New Issue