rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=86738c5f6518400e67205419a0c2249a7a44de49
commit 86738c5f6518400e67205419a0c2249a7a44de49 Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Tue Jan 5 18:38:09 2016 +0200 editor: add editor_program_channel_set method --- src/bin/editor/banned_edje_edit_api.h | 1 + src/bin/editor/editor.h | 6 +++++- src/bin/editor/editor_program.c | 32 ++++++++++++++++++++++++++++++++ src/bin/ui/property_group.c | 1 + 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/bin/editor/banned_edje_edit_api.h b/src/bin/editor/banned_edje_edit_api.h index 55e4ff8..1122269 100644 --- a/src/bin/editor/banned_edje_edit_api.h +++ b/src/bin/editor/banned_edje_edit_api.h @@ -257,6 +257,7 @@ //#pragma GCC poison edje_edit_program_transition_value2_set //#pragma GCC poison edje_edit_program_transition_time_set //#pragma GCC poison edje_edit_program_filter_part_set +#pragma GCC poison edje_edit_program_channel_set /* Scripts API */ //#pragma GCC poison edje_edit_script_set diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h index bd132c2..ecaefd9 100644 --- a/src/bin/editor/editor.h +++ b/src/bin/editor/editor.h @@ -147,7 +147,8 @@ typedef enum { ATTRIBUTE_STATE_FILL_TYPE, ATTRIBUTE_PROGRAM_TRANSITION_TYPE, ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT, - ATTRIBUTE_PROGRAM_ACTION + ATTRIBUTE_PROGRAM_ACTION, + ATTRIBUTE_PROGRAM_CHANNEL } Attribute; void @@ -612,5 +613,8 @@ editor_program_transition_from_current_set(Evas_Object *edit_object, Change *cha Eina_Bool editor_program_action_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, const char *program, Edje_Action_Type new_val); +Eina_Bool +editor_program_channel_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, + const char *program, Edje_Channel new_val); #endif /* EDITOR_H */ diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c index f982e6b..24172c6 100644 --- a/src/bin/editor/editor_program.c +++ b/src/bin/editor/editor_program.c @@ -149,3 +149,35 @@ editor_program_action_set(Evas_Object *edit_object, Change *change, Eina_Bool me if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); return true; } + +Eina_Bool +editor_program_channel_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, + const char *program, Edje_Channel new_val) +{ + Diff *diff; + Attribute attribute = ATTRIBUTE_PROGRAM_CHANNEL; + assert(edit_object != NULL); + assert(program != NULL); + if (change) + { + Edje_Channel old_value = edje_edit_program_channel_get(edit_object, program); + diff = mem_calloc(1, sizeof(Diff)); + diff->redo.type = FUNCTION_TYPE_STRING_EDJECHANNEL; + diff->redo.function = editor_program_channel_set; + diff->redo.args.type_sec.s1 = eina_stringshare_add(program); + diff->redo.args.type_sec.ec2 = new_val; + diff->undo.type = FUNCTION_TYPE_STRING_EDJECHANNEL; + diff->undo.function = editor_program_channel_set; + diff->undo.args.type_sec.s1 = eina_stringshare_add(program); + diff->undo.args.type_sec.ec2 = old_value; + if (merge) + change_diff_merge_add(change, diff); + else + change_diff_add(change, diff); + } + if (!edje_edit_program_channel_set(edit_object, program, new_val)) + return false; + _editor_project_changed(); + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, &attribute); + return true; +} diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c index 6d9359d..b571f7f 100644 --- a/src/bin/ui/property_group.c +++ b/src/bin/ui/property_group.c @@ -886,6 +886,7 @@ _on_editor_attribute_changed(void *data, case ATTRIBUTE_PROGRAM_TRANSITION_TYPE: case ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT: case ATTRIBUTE_PROGRAM_ACTION: + case ATTRIBUTE_PROGRAM_CHANNEL: TODO("implement"); break; /* Don't add 'default:'. Compiler must warn about missing cases */ --