rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=27494c066f08f4a4d32700b69ee726ff099a8369
commit 27494c066f08f4a4d32700b69ee726ff099a8369 Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Tue Mar 15 16:25:12 2016 +0000 group_navigator: set Action on program creation --- src/bin/ui/workspace/group_navigator.c | 78 ++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 8 deletions(-) diff --git a/src/bin/ui/workspace/group_navigator.c b/src/bin/ui/workspace/group_navigator.c index b8d854e..d21e120 100644 --- a/src/bin/ui/workspace/group_navigator.c +++ b/src/bin/ui/workspace/group_navigator.c @@ -80,6 +80,19 @@ static char *part_types[] = { N_("PROXY"), N_("SPACER") }; +static const char *program_actions[] = { + N_("NONE"), + N_("STATE SET"), + N_("SIGNAL EMIT"), + N_("DRAG VALUE SET"), + N_("DRAG VALUE STEP"), + N_("DRAG VALUE PAGE"), + N_("PLAY SAMPLE"), + N_("PLAY TONE"), + N_("ACTION STOP"), + NULL +}; + static const unsigned int part_types_count = 12; static char * @@ -666,18 +679,17 @@ _program_validate(void *data, void *event_info __UNUSED__) { Part_List *pl = data; - const char *name, *program; - Eina_Bool valid; - Eina_List *l; + const char *program; assert(pl != NULL); - name = elm_entry_entry_get(pl->popup.entry_name); - valid = (elm_validator_regexp_status_get(pl->name_validator) == ELM_REG_NOERROR); - EINA_LIST_FOREACH(pl->group->programs, l, program) - valid = valid && strcmp(program, name); + program = elm_entry_entry_get(pl->popup.entry_name); - elm_object_disabled_set(pl->popup.btn_add, !valid); + if ((elm_validator_regexp_status_get(pl->name_validator) != ELM_REG_NOERROR) || + (edje_edit_program_exist(pl->group->edit_object, program))) + elm_object_disabled_set(pl->popup.btn_add, true); + else + elm_object_disabled_set(pl->popup.btn_add, false); } static void @@ -1125,6 +1137,8 @@ _popup_add_program_ok_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { + Ewe_Combobox_Item *item; + Edje_Action_Type type = EDJE_ACTION_TYPE_NONE; Part_List *pl = data; const char *name; Eina_Stringshare *msg; @@ -1134,11 +1148,44 @@ _popup_add_program_ok_clicked(void *data, if (elm_object_disabled_get(pl->popup.btn_add)) return; + item = ewe_combobox_select_item_get(pl->popup.combobox); + switch (item->index) + { + case 0: + type = EDJE_ACTION_TYPE_NONE; + break; + case 1: + type = EDJE_ACTION_TYPE_STATE_SET; + break; + case 2: + type = EDJE_ACTION_TYPE_SIGNAL_EMIT; + break; + case 3: + type = EDJE_ACTION_TYPE_DRAG_VAL_SET; + break; + case 4: + type = EDJE_ACTION_TYPE_DRAG_VAL_STEP; + break; + case 5: + type = EDJE_ACTION_TYPE_DRAG_VAL_PAGE; + break; + case 6: + type = EDJE_ACTION_TYPE_SOUND_SAMPLE; + break; + case 7: + type = EDJE_ACTION_TYPE_SOUND_TONE; + break; + case 8: + type = EDJE_ACTION_TYPE_ACTION_STOP; + break; + } + name = elm_entry_entry_get(pl->popup.entry_name); msg = eina_stringshare_printf(_("added new program \"%s\""), name); change = change_add(msg); editor_program_add(pl->group->edit_object, change, false, name); + editor_program_action_set(pl->group->edit_object, change, false, name, type); history_change_add(pl->group->history, change); eina_stringshare_del(msg); @@ -1152,6 +1199,7 @@ _on_menu_add_program_clicked(void *data __UNUSED__, { Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); Evas_Object *box, *item; + unsigned int i; assert(pl != NULL); @@ -1170,6 +1218,20 @@ _on_menu_add_program_clicked(void *data __UNUSED__, elm_object_part_content_set(item, "elm.swallow.content", pl->popup.entry_name); elm_box_pack_end(box, item); + LAYOUT_PROP_ADD(box, _("Transition type:"), "property", "1swallow") + EWE_COMBOBOX_ADD(item, pl->popup.combobox) + ewe_combobox_select_item_set(pl->popup.combobox, 0); + + for (i = 0; program_actions[i]; i++) + { + ewe_combobox_item_add(pl->popup.combobox, program_actions[i]); + } + ewe_combobox_select_item_set(pl->popup.combobox, 0); + elm_object_part_content_set(item, "elm.swallow.content", pl->popup.combobox); + evas_object_smart_callback_add(pl->popup.combobox, "collapsed", _combobox_collapsed, pl); + + elm_box_pack_end(box, item); + elm_object_content_set(ap.popup, box); BUTTON_ADD(ap.popup, pl->popup.btn_add, _("Add")); --