rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=1a883d6db896f259f9852f12facbf0cd7ddb8f75
commit 1a883d6db896f259f9852f12facbf0cd7ddb8f75 Author: Vyacheslav Reutskiy <v.reuts...@samsung.com> Date: Mon Jan 18 15:26:19 2016 +0200 property_group: add controls for manage 'tone_name' param Change-Id: I2ddc791b5eabe0229d81d138f01681b1f99c4bc8 --- src/bin/ui/property_group.c | 58 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c index 495c6fb..2de48dc 100644 --- a/src/bin/ui/property_group.c +++ b/src/bin/ui/property_group.c @@ -203,6 +203,8 @@ struct _Group_Prop_Data Evas_Object *sample_name; Evas_Object *sample_speed; Evas_Object *channel; + Evas_Object *tone_name; + Evas_Object *tone_duration; Evas_Object *target; Evas_Object *target_box; Evas_Object *targets_frame; /* it's a frame */ @@ -354,6 +356,9 @@ static void prop_program_sample_name_update(Group_Prop_Data *pd); static void +prop_program_tone_name_update(Group_Prop_Data *pd); + +static void prop_program_targets_update(Group_Prop_Data *pd); static Eina_Bool @@ -993,6 +998,9 @@ _on_editor_attribute_changed(void *data, case ATTRIBUTE_PROGRAM_CHANNEL: PROGRAM_ATTR_1COMBOBOX_LIST_UPDATE(program, channel, program) break; + case ATTRIBUTE_PROGRAM_TONE_NAME: + prop_program_tone_name_update(pd); + break; case ATTRIBUTE_PROGRAM_TRANSITION_TYPE: case ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT: case ATTRIBUTE_PROGRAM_TONE_DURATION: @@ -1007,7 +1015,6 @@ _on_editor_attribute_changed(void *data, case ATTRIBUTE_PROGRAM_FILTER_STATE: case ATTRIBUTE_PROGRAM_API_NAME: case ATTRIBUTE_PROGRAM_API_DESCRIPTION: - case ATTRIBUTE_PROGRAM_TONE_NAME: case ATTRIBUTE_PROGRAM_NAME: case ATTRIBUTE_PROGRAM_AFTER: TODO("implement"); @@ -1633,6 +1640,22 @@ prop_program_sample_name_update(Group_Prop_Data *pd) } static void +prop_program_tone_name_update(Group_Prop_Data *pd) +{ + Eina_Stringshare *value; + Eina_List *l; + Resource *tone; + + value = edje_edit_program_tone_name_get(pd->group->edit_object, pd->attributes.program.program); + ewe_combobox_text_set(pd->attributes.program.tone_name, value ? value : _("None")); + ewe_combobox_item_add(pd->attributes.program.tone_name, _("None")); + EINA_LIST_FOREACH(ap.project->tones, l, tone) + { + ewe_combobox_item_add(pd->attributes.program.tone_name, tone->name); + } +} + +static void _on_program_sample(void *data, Evas_Object *obj __UNUSED__, void *event_info) @@ -1680,6 +1703,36 @@ _prop_action_sample_speed_add(Group_Prop_Data *pd, Evas_Object *parent) } static void +_on_program_tone(void *data, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + Group_Prop_Data *pd = (Group_Prop_Data *)data; + Ewe_Combobox_Item *item = (Ewe_Combobox_Item *)event_info; + Change *change = change_add("Change the action tone to '%s'"); + + if (!editor_program_tone_name_set(pd->group->edit_object, change, false, pd->attributes.program.program, item->title)) + { + ERR("Cann't apply value '%s' for attribute 'program tone'.", item->title); + abort(); + } + history_change_add(pd->group->history, change); + evas_object_smart_callback_call(ap.win, SIGNAL_PROPERTY_ATTRIBUTE_CHANGED, NULL); +} + +static Evas_Object * +_prop_action_tone_name(Group_Prop_Data *pd, Evas_Object *parent) +{ + PROPERTY_ITEM_ADD(parent, "name", "1swallow") + EWE_COMBOBOX_ADD(item, pd->attributes.program.tone_name); + evas_object_smart_callback_add(pd->attributes.program.tone_name, "selected", _on_program_tone, pd); + elm_object_tooltip_text_set(pd->attributes.program.tone_name, ""); + elm_layout_content_set(item, NULL, pd->attributes.program.tone_name); + prop_program_tone_name_update(pd); + return item; +} + +static void _program_action_param_set(Group_Prop_Data *pd, Edje_Action_Type type) { Evas_Object *box, *item; @@ -1723,6 +1776,9 @@ _program_action_param_set(Group_Prop_Data *pd, Edje_Action_Type type) elm_box_pack_end(box, item); break; case EDJE_ACTION_TYPE_SOUND_TONE: + item = _prop_action_tone_name(pd, box); + elm_box_pack_end(box, item); + break; case EDJE_ACTION_TYPE_NONE: default: elm_frame_collapse_set(pd->attributes.program.action_params, true); --