rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=80819bd33bc64cb1889d3da7d222cc0eff6fff1c
commit 80819bd33bc64cb1889d3da7d222cc0eff6fff1c Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Fri Jan 15 14:44:55 2016 +0000 property_group: fill up combobox'es of program target and set current value --- src/bin/ui/property_group.c | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c index 794e9a8..658a73a 100644 --- a/src/bin/ui/property_group.c +++ b/src/bin/ui/property_group.c @@ -1715,6 +1715,9 @@ _add_target(void *data, Group_Prop_Data *pd = (Group_Prop_Data *) data; Evas_Object *target_combo, *ic, *button, *item; Eina_List *items = elm_box_children_get(pd->attributes.program.target_box); + Eina_List *l; + Resource *program; + Part *part; if (eina_list_count(items) == 1) { @@ -1728,6 +1731,17 @@ _add_target(void *data, evas_object_data_set(item, GROUP_PROP_DATA, pd); EWE_COMBOBOX_ADD(item, target_combo); + /* fill up with part and program list */ + EINA_LIST_FOREACH(pd->group->parts, l, part) + { + ewe_combobox_item_add(target_combo, part->name); + } + EINA_LIST_FOREACH(pd->group->programs, l, program) + { + if (program->name == pd->attributes.program.program) + continue; + ewe_combobox_item_add(target_combo, program->name); + } elm_object_tooltip_text_set(target_combo, _("target can be part or program")); elm_layout_content_set(item, NULL, target_combo); @@ -1741,10 +1755,42 @@ _add_target(void *data, elm_box_pack_end(pd->attributes.program.target_box, item); } +static void +prop_program_targets_update(Group_Prop_Data *pd) +{ + Evas_Object *target_combo, *item; + Eina_List *items = elm_box_children_get(pd->attributes.program.target_box); + int i = 0; + Eina_List *l; + Eina_Stringshare *target; + + Eina_List *targets = edje_edit_program_targets_get(pd->group->edit_object, + pd->attributes.program.program); + int item_count = eina_list_count(items); + int targets_count = eina_list_count(targets); + + if (item_count < targets_count) + for (i = 0; i < targets_count - item_count; i++) + _add_target(pd, NULL, NULL); + + items = elm_box_children_get(pd->attributes.program.target_box); + /* fill up with part and program list */ + EINA_LIST_FOREACH(items, l, item) + { + target_combo = elm_layout_content_get(item, NULL); + target = eina_list_data_get(targets); + ewe_combobox_text_set(target_combo, target); + targets = eina_list_next(targets); + } +} + static Evas_Object * prop_program_target_add(Evas_Object *parent, Group_Prop_Data *pd) { Evas_Object *item, *target_combo, *button, *ic; + Eina_List *l; + Resource *program; + Part *part; LAYOUT_PROP_ADD(parent, NULL, "tab_home", "item") evas_object_data_set(item, GROUP_PROP_DATA, pd); @@ -1757,6 +1803,17 @@ prop_program_target_add(Evas_Object *parent, Group_Prop_Data *pd) evas_object_smart_callback_add(button, "clicked", _add_target, pd); EWE_COMBOBOX_ADD(item, target_combo); + /* fill up with part and program list */ + EINA_LIST_FOREACH(pd->group->parts, l, part) + { + ewe_combobox_item_add(target_combo, part->name); + } + EINA_LIST_FOREACH(pd->group->programs, l, program) + { + if (program->name == pd->attributes.program.program) + continue; + ewe_combobox_item_add(target_combo, program->name); + } elm_object_tooltip_text_set(target_combo, _("target can be part or program")); elm_layout_content_set(item, NULL, target_combo); @@ -1768,6 +1825,9 @@ prop_program_target_add(Evas_Object *parent, Group_Prop_Data *pd) evas_object_smart_callback_add(button, "clicked", _del_target, item); elm_object_disabled_set(button, true); +// evas_object_smart_callback_add(item, "selected", +// _on_##MEMBER##_##VALUE1##_change, pd); + return item; } @@ -1810,6 +1870,7 @@ _ui_property_program_set(Evas_Object *property, const char *program) elm_object_content_set(pd->attributes.program.targets_frame, pd->attributes.program.target_box); item = prop_program_target_add(pd->attributes.program.target_box, pd); elm_box_pack_end(pd->attributes.program.target_box, item); + prop_program_targets_update(pd); } else { @@ -1817,6 +1878,7 @@ _ui_property_program_set(Evas_Object *property, const char *program) prop_program_signal_update(pd); prop_program_source_update(pd); prop_program_action_update(pd); + prop_program_targets_update(pd); } elm_box_pack_end(prop_box, pd->attributes.program.frame); } --