rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=153674d45e5566753d0f182ea7d0310b6d819b54
commit 153674d45e5566753d0f182ea7d0310b6d819b54 Author: Tetiana Naumenko <[email protected]> Date: Fri Mar 10 17:25:35 2017 +0200 editor_program: cover edje_edit_script_program_set API Change-Id: I83a874e0d0b2c5bdd54361b3e0d398c152453675 --- src/bin/editor/editor.h | 4 ++++ src/bin/editor/editor_program.c | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h index d843251..76dc06f 100644 --- a/src/bin/editor/editor.h +++ b/src/bin/editor/editor.h @@ -1003,6 +1003,10 @@ editor_program_source_set(Evas_Object *edit_object, Change *change, Eina_Bool me Eina_Bool editor_program_state_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, const char *program, const char *new_val) EINA_WARN_UNUSED_RESULT; +Eina_Bool +editor_program_script_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, + const char *program, const char *new_val) EINA_WARN_UNUSED_RESULT; + #define edje_edit_program_emit_signal_get edje_edit_program_state_get Eina_Bool editor_program_emit_signal_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c index f9aafb7..802e0d5 100644 --- a/src/bin/editor/editor_program.c +++ b/src/bin/editor/editor_program.c @@ -536,6 +536,48 @@ EDITOR_PROGRAM_DOUBLE(drag_value_x, value, RM_ATTRIBUTE_PROGRAM_DRAG_VALUE_X); EDITOR_PROGRAM_DOUBLE(drag_value_y, value2, RM_ATTRIBUTE_PROGRAM_DRAG_VALUE_Y); Eina_Bool +editor_program_script_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, + const char *program, const char *new_val) +{ + Diff *diff; + Editor_Attribute_Change send; + send.edit_object = edit_object; + + send.attribute = RM_ATTRIBUTE_PROGRAM_SCRIPT; + assert(edit_object != NULL); + assert(program != NULL); + if (change) + { + char *old_value = edje_edit_script_program_get(edit_object, program); + diff = mem_calloc(1, sizeof(Diff)); + diff->redo.type = FUNCTION_TYPE_STRING_STRING; + diff->redo.function = editor_program_script_set; + diff->redo.args.type_ss.s1 = eina_stringshare_add(program); + diff->redo.args.type_ss.s2 = eina_stringshare_add(new_val); + diff->undo.type = FUNCTION_TYPE_STRING_STRING; + diff->undo.function = editor_program_script_set; + diff->undo.args.type_sd.s1 = eina_stringshare_add(program); + diff->undo.args.type_ss.s2 = eina_stringshare_add(old_value); + free(old_value); + if (merge) + change_diff_merge_add(change, diff); + else + change_diff_add(change, diff); + } + if (apply) + { + CRIT_ON_FAIL(edje_edit_script_program_set(edit_object, program, new_val)); + _editor_project_changed(); + if (!_editor_signals_blocked) + { + evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_RM_ATTRIBUTE_CHANGED, &send); + evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PROGRAM_UPDATE, (void *)program); + } + } + return true; +} + +Eina_Bool editor_program_emit_signal_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, const char *program, const char *new_val) { --
