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 */

-- 


Reply via email to