rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=9ccacb6852e60350ca3e634e10201d9ea22800a3

commit 9ccacb6852e60350ca3e634e10201d9ea22800a3
Author: Tetiana Naumenko <t.naume...@samsung.com>
Date:   Fri Jan 27 18:20:08 2017 +0200

    property_group: add script preview
    
    default_entry.edc: add swallow for button in multiline entry
    tizen_entry.edc: add group for multiline entry
    
    Change-Id: I3f2a348b63f2c9569072370f3456aab02cfee544
---
 data/themes/default/widgets/entry.edc              |  16 +
 data/themes/tizen/widgets/entry.edc                | 493 +++++++++++++++++++++
 src/bin/Makefile.am                                |   1 +
 src/bin/common/signals.c                           |   3 +
 src/bin/common/signals.h                           |   3 +
 .../resource_manager/resource_manager_signals.h    |   1 +
 src/bin/ui/property/property_common.c              |   7 +
 src/bin/ui/property/property_group.c               |  17 +
 src/bin/ui/property/property_private.h             |   5 +
 src/bin/ui/property/property_script.c              |  54 +++
 10 files changed, 600 insertions(+)

diff --git a/data/themes/default/widgets/entry.edc 
b/data/themes/default/widgets/entry.edc
index b52e5d4..701a7a0 100644
--- a/data/themes/default/widgets/entry.edc
+++ b/data/themes/default/widgets/entry.edc
@@ -1,5 +1,6 @@
 group { name: "elm/entry/base/default";
    alias: "elm/entry/base-single-noedit/default";
+   alias: "elm/entry/base-nowrap-noedit/default";
    parts {
       part { name: "elm.guide";
          type: TEXTBLOCK;
@@ -574,6 +575,21 @@ group { name: "elm/scroller/entry/default";
             }
          }
       }
+      part { name: "elm.swallow.elipsis";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 1.0 0.0;
+            fixed: 1 1;
+            max: 24 24;
+            min: 24 24;
+            rel1 {
+               offset: 0 -2;
+            }
+            rel2 {
+               offset: 1 0;
+            }
+         }
+      }
    }
    programs {
       program { name: "v_mouse_down";
diff --git a/data/themes/tizen/widgets/entry.edc 
b/data/themes/tizen/widgets/entry.edc
index 577dd1c..7bcfbb3 100644
--- a/data/themes/tizen/widgets/entry.edc
+++ b/data/themes/tizen/widgets/entry.edc
@@ -1,5 +1,6 @@
 group { name: "elm/entry/base/default";
    alias: "elm/entry/base-single-noedit/default";
+   alias: "elm/entry/base-nowrap-noedit/default";
    parts {
       part { name: "elm.guide";
          type: TEXTBLOCK;
@@ -80,6 +81,498 @@ group { name: "elm/entry/base/default";
    }
 }
 
+group { name: "elm/scroller/entry/default";
+   data {
+      item: "focus_highlight" "on";
+   }
+   parts {
+      part { name: "border";
+         type: RECT;
+         description { state: "default" 0.0;
+            color_class: "border";
+            min: 0 380;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color_class: "border_focused";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "hovered" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bg";
+         type: RECT;
+         description { state: "default" 0.0;
+            color_class: "entry_bg";
+            rel1 {
+              to: "border";
+              offset: 1 1;
+            }
+            rel2 {
+              to: "border";
+              offset: -2 -2;
+            }
+         }
+         description { state: "disabled" 0.0;
+         }
+      }
+      part { name: "sb_vbar";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            min: 6 0;
+            max: 6 -1;
+            rel1 {
+               to: "bg";
+               offset: 0 1;
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to_x: "bg";
+               to_y: "sb_hbar";
+               offset: -2 -1;
+            }
+         }
+         description { state: "hidden" 0.0;
+            align: 1.0 0.0;
+            fixed: 1 0;
+            max: 0 -1;
+            rel1 {
+               offset: 0 1;
+               to_y: "bg";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               offset: -2 -1;
+               to_x: "bg";
+               to_y: "sb_hbar";
+            }
+         }
+      }
+      part { name: "sb_vbar_p1";
+         type: SPACER;
+         description { state: "default" 0.0;
+            rel1 {
+               to: "sb_vbar";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "elm.dragable.vbar";
+            }
+         }
+      }
+      part { name: "sb_vbar_p2";
+         type: SPACER;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "elm.dragable.vbar";
+            }
+            rel2 {
+               to: "sb_vbar";
+            }
+         }
+      }
+      part { name: "elm.dragable.vbar";
+         type: RECT;
+         scale: 1;
+         dragable {
+            x: 0 0 0;
+            y: 1 1 0;
+            confine: "sb_vbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 6 24;
+            max: 6 -1;
+            color: 0 0 0 0;
+            rel1 {
+               relative: 0.5 0.5;
+               to: "sb_vbar";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "sb_vbar";
+            }
+         }
+      }
+      part { name: "sb_hbar";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            fixed: 0 1;
+            max: -1 6;
+            rel1 {
+               to_x: "bg";
+               offset: 1 0;
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               offset: -1 -3;
+               to_x: "sb_vbar";
+               to_y: "bg";
+            }
+         }
+         description { state: "hidden" 0.0;
+            align: 0.0 1.0;
+            fixed: 0 1;
+            max: -1 0;
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               offset: -1 -3;
+               to_x: "sb_vbar";
+               to_y: "bg";
+            }
+         }
+      }
+      part { name: "sb_hbar_p1";
+         type: SPACER;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 {
+               to: "sb_hbar";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "elm.dragable.hbar";
+            }
+         }
+      }
+      part { name: "sb_hbar_p2";
+         type: SPACER;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "elm.dragable.hbar";
+            }
+            rel2 {
+               to: "sb_hbar";
+            }
+         }
+      }
+      part { name: "elm.dragable.hbar";
+         type: RECT;
+         scale: 1;
+         clip_to: "sb_hbar";
+         dragable {
+            x: 1 1 0;
+            y: 0 0 0;
+            confine: "sb_hbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 24 6;
+            max: -1 6;
+            color: 0 0 0 0;
+            rel1 {
+               relative: 0.5 0.5;
+               to: "sb_hbar";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "sb_hbar";
+            }
+         }
+      }
+      part { name: "clipper";
+         type: RECT;
+         description { state: "default" 0.0;
+            rel1 {
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               to: "elm.swallow.content";
+            }
+         }
+      }
+      part { name: "elm.swallow.background";
+         type: SWALLOW;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel1 {
+               offset: 1 1;
+               to: "bg";
+            }
+            rel2 {
+               offset: -2 -2;
+               to: "bg";
+            }
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel1 {
+               offset: 1 1;
+               to: "elm.swallow.background";
+            }
+            rel2 {
+               relative: 0.0 0.0;
+               offset: -6 -6;
+               to_x: "sb_vbar";
+               to_y: "sb_hbar";
+            }
+         }
+      }
+      part { name: "elm.swallow.overlay";
+         type: SWALLOW;
+         repeat_events: 1;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel1 {
+               to: "elm.swallow.background";
+            }
+            rel2 {
+               to: "elm.swallow.background";
+            }
+         }
+      }
+      part { name: "elm.swallow.icon";
+         type: SWALLOW;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 1.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "bg";
+            }
+         }
+         description { state: "visible" 0.0;
+            align: 0.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "bg";
+            }
+         }
+      }
+      part { name: "elm.swallow.end";
+         type: SWALLOW;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+         }
+         description { state: "visible" 0.0;
+            align: 1.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+         }
+      }
+      part { name: "focus";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+         }
+         description { state: "pass" 0.0;
+            color_class: "valid";
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+         }
+         description { state: "fail" 0.0;
+            color_class: "invalid";
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+         }
+      }
+      part { name: "elm.swallow.elipsis";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 1.0 0.0;
+            fixed: 1 1;
+            max: 24 24;
+            min: 24 24;
+            rel1 {
+               offset: 0 2;
+            }
+            rel2 {
+               offset: -3 0;
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "v_mouse_down";
+         signal: "mouse,down,1*";
+         source: "elm.dragable.vbar";
+         action: STATE_SET "clicked" 0.00;
+         target: "elm.dragable.vbar";
+      }
+      program { name: "h_mouse_down";
+         signal: "mouse,down,1*";
+         source: "elm.dragable.hbar";
+         action: STATE_SET "clicked" 0.00;
+         target: "elm.dragable.hbar";
+      }
+      program { name: "horizontal_scroll_down";
+         signal: "mouse,down,1*";
+         source: "sb_hbar_p1";
+         action: DRAG_VAL_PAGE -1.0000 0.0000;
+         target: "elm.dragable.vbar";
+      }
+      program { name: "horizontal_scroll_up";
+         signal: "mouse,down,1*";
+         source: "sb_hbar_p2";
+         action: DRAG_VAL_PAGE 1.0000 0.0000;
+         target: "elm.dragable.vbar";
+      }
+      program { name: "vertical_scroll_down";
+         signal: "mouse,down,1*";
+         source: "sb_vbar_p1";
+         action: DRAG_VAL_PAGE 0.0000 -1.0000;
+         target: "elm.dragable.hbar";
+      }
+      program { name: "vertical_scroll_up";
+         signal: "mouse,down,1*";
+         source: "sb_vbar_p2";
+         action: DRAG_VAL_PAGE 0.0000 1.0000;
+         target: "elm.dragable.hbar";
+      }
+      program { name: "reload_on_load";
+         signal: "load";
+         source: "";
+         action: SIGNAL_EMIT "reload" "elm";
+      }
+      program { name: "v_mouse_up";
+         signal: "mouse,up,1";
+         source: "elm.dragable.vbar";
+         action: STATE_SET "default" 0.00;
+         target: "elm.dragable.vbar";
+      }
+      program { name: "h_mouse_up";
+         signal: "mouse,up,1";
+         source: "elm.dragable.hbar";
+         action: STATE_SET "default" 0.00;
+         target: "elm.dragable.hbar";
+      }
+      program { name: "show_horizontal_scroll";
+         signal: "elm,action,show,hbar";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "sb_hbar";
+      }
+      program { name: "hide_horizontal_scroll";
+         signal: "elm,action,hide,hbar";
+         source: "elm";
+         action: STATE_SET "hidden" 0.00;
+         target: "sb_hbar";
+      }
+      program { name: "show_vertical_scroll";
+         signal: "elm,action,show,vbar";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "sb_vbar";
+      }
+      program { name: "hide_vertical_scroll";
+         signal: "elm,action,hide,vbar";
+         source: "elm";
+         action: STATE_SET "hidden" 0.00;
+         target: "sb_vbar";
+      }
+      program { name: "icon_show";
+         signal: "elm,action,show,icon";
+         source: "elm";
+         action: STATE_SET "visible" 0.00;
+         target: "elm.swallow.icon";
+      }
+      program { name: "icon_hide";
+         signal: "elm,action,hide,icon";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "elm.swallow.icon";
+      }
+      program { name: "end_show";
+         signal: "elm,action,show,end";
+         source: "elm";
+         action: STATE_SET "visible" 0.00;
+         target: "elm.swallow.end";
+      }
+      program { name: "end_hide";
+         signal: "elm,action,hide,end";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "elm.swallow.end";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "bg";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.00;
+         target: "bg";
+      }
+      program { name: "validation_pass";
+         signal: "validation,default,pass";
+         source: "elm";
+         action: STATE_SET "pass" 0.00;
+         target: "focus";
+      }
+      program { name: "validation_fail";
+         signal: "validation,default,fail";
+         source: "elm";
+         action: STATE_SET "fail" 0.00;
+         target: "focus";
+      }
+      program { name: "validation_off";
+         signal: "validation,default";
+         source: "elm";
+         action: STATE_SET "default" 0.00;
+         target: "focus";
+      }
+   }
+}
+
 group { name: "elm/scroller/entry_single/default";
    data {
       item: "focus_highlight" "on";
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 7973fdf..703a6bc 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -124,6 +124,7 @@ libete_a_SOURCES = \
 ../../src/bin/ui/property/property_sound.c \
 ../../src/bin/ui/property/property_textblock.c \
 ../../src/bin/ui/property/property_group.c \
+../../src/bin/ui/property/property_script.c \
 ../../src/bin/ui/sound_player/sound_player.c \
 ../../src/bin/ui/property/property_demo.c \
 ../../src/bin/ui/workspace/workspace.c \
diff --git a/src/bin/common/signals.c b/src/bin/common/signals.c
index f8c8599..5b3f801 100644
--- a/src/bin/common/signals.c
+++ b/src/bin/common/signals.c
@@ -111,6 +111,9 @@ const Signals signals = {
                .image_selector = {
                     .changed           = "[eflete]image,selector,changed",
                },
+               .script_control = {
+                    .clicked           = "[eflete]script,control,clicked",
+               },
           },
      },
 
diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 3f7da3b..bc547f6 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -111,6 +111,9 @@ typedef struct {
          const struct {
             const char *changed;
          } image_selector;
+         const struct {
+            const char *clicked;
+         } script_control;
       } property;
    } eflete;
 
diff --git a/src/bin/resource_manager/resource_manager_signals.h 
b/src/bin/resource_manager/resource_manager_signals.h
index a2d688a..dd2e9d2 100644
--- a/src/bin/resource_manager/resource_manager_signals.h
+++ b/src/bin/resource_manager/resource_manager_signals.h
@@ -28,6 +28,7 @@ typedef enum {
    ATTRIBUTE_GROUP_MIN_H,
    ATTRIBUTE_GROUP_MAX_W,
    ATTRIBUTE_GROUP_MAX_H,
+   ATTRIBUTE_GROUP_SCRIPT,
    ATTRIBUTE_GROUP_DATA_NAME,
    ATTRIBUTE_GROUP_DATA_VALUE,
    ATTRIBUTE_STATE_NAME,
diff --git a/src/bin/ui/property/property_common.c 
b/src/bin/ui/property/property_common.c
index 88946d8..3a099ef 100644
--- a/src/bin/ui/property/property_common.c
+++ b/src/bin/ui/property/property_common.c
@@ -392,6 +392,12 @@ _control_create(Property_Attribute *pa, Property_Action 
*action, Evas_Object *pa
          evas_object_smart_callback_add(content, signals.elm.entry.activated, 
_stop_cb, pa);
          evas_object_smart_callback_add(content, signals.elm.entry.unfocused, 
_stop_cb, pa);
          break;
+      case PROPERTY_CONTROL_ENTRY_SCRIPT:
+         content = property_entry_script_control_add(parent);
+         evas_object_smart_callback_add(content, 
signals.elm.entry.changed_user, _start_change_cb, pa);
+         evas_object_smart_callback_add(content, signals.elm.entry.activated, 
_stop_cb, pa);
+         evas_object_smart_callback_add(content, signals.elm.entry.unfocused, 
_stop_cb, pa);
+         break;
       case PROPERTY_CONTROL_COLOR:
          content = property_color_control_add(parent);
          evas_object_smart_callback_add(content, 
signals.eflete.property.color_control.changed, _start_change_cb, pa);
@@ -754,6 +760,7 @@ property_common_itc_init(Property_Data *pd)
    pd->item_classes[PROPERTY_CONTROL_NONE]           [PROPERTY_CONTROL_NONE]   
  = pd->itc_caption;
 
    pd->item_classes[PROPERTY_CONTROL_ENTRY]          [PROPERTY_CONTROL_NONE]   
  = pd->itc_1swallow;
+   pd->item_classes[PROPERTY_CONTROL_ENTRY_SCRIPT]   [PROPERTY_CONTROL_NONE]   
  = pd->itc_1swallow;
    pd->item_classes[PROPERTY_CONTROL_COMBOBOX]       [PROPERTY_CONTROL_NONE]   
  = pd->itc_1swallow;
    pd->item_classes[PROPERTY_CONTROL_COMBOBOX_CC]    [PROPERTY_CONTROL_NONE]   
  = pd->itc_1swallow;
    pd->item_classes[PROPERTY_CONTROL_COLORSEL]       [PROPERTY_CONTROL_NONE]   
  = pd->itc_1swallow_wide;
diff --git a/src/bin/ui/property/property_group.c 
b/src/bin/ui/property/property_group.c
index 284986e..18ee3c9 100644
--- a/src/bin/ui/property/property_group.c
+++ b/src/bin/ui/property/property_group.c
@@ -517,6 +517,7 @@ _subitems_get(Property_Attribute *pa)
          APPEND(PROPERTY_GROUP_ITEM_GROUP_NAME);
          APPEND(PROPERTY_GROUP_ITEM_GROUP_MIN);
          APPEND(PROPERTY_GROUP_ITEM_GROUP_MAX);
+         APPEND(PROPERTY_GROUP_ITEM_GROUP_SCRIPT);
          break;
       case PROPERTY_GROUP_ITEM_PART_TITLE:
          APPEND(PROPERTY_GROUP_ITEM_PART_NAME);
@@ -849,6 +850,11 @@ _init_cb(Property_Attribute *pa, Property_Action *action)
       case ATTRIBUTE_PART_ITEM_NAME:
          elm_object_disabled_set(action->control, true);
          break;
+      case ATTRIBUTE_GROUP_SCRIPT:
+         elm_entry_single_line_set(action->control, false);
+         elm_entry_editable_set(action->control, false);
+         evas_object_size_hint_min_set(action->control, 0, 400);
+         break;
       case ATTRIBUTE_PROGRAM_SCRIPT:
          elm_entry_single_line_set(action->control, false);
          elm_entry_editable_set(action->control, false);
@@ -1768,6 +1774,11 @@ _update_cb(Property_Attribute *pa, Property_Action 
*action)
       case ATTRIBUTE_GROUP_NAME:
          property_entry_set(action->control, group_pd.group->common.name);
          return true;
+      case ATTRIBUTE_GROUP_SCRIPT:
+         code = edje_edit_script_get(EDIT_OBJ);
+         property_entry_set(action->control, code);
+         free(code);
+         return true;
       case ATTRIBUTE_STATE_NAME:
          str_val1 = eina_stringshare_printf("%s %.2f",
                                             _state_name_get(),
@@ -3482,6 +3493,7 @@ _change_cb(Property_Attribute *pa, Property_Action 
*action)
          double_val1 = elm_spinner_value_get(action->control);
          break;
       case PROPERTY_CONTROL_ENTRY:
+      case PROPERTY_CONTROL_ENTRY_SCRIPT:
       case PROPERTY_CONTROL_IMAGE_NORMAL:
       case PROPERTY_CONTROL_VECTOR_NORMAL:
          str_val1 = property_entry_get(action->control);
@@ -4527,6 +4539,7 @@ _stop_cb(Property_Attribute *pa, Property_Action *action)
    switch (action->type.attribute)
      {
       case ATTRIBUTE_GROUP_NAME:
+      case ATTRIBUTE_GROUP_SCRIPT:
       case ATTRIBUTE_PART_NAME:
       case ATTRIBUTE_GROUP_DATA_NAME:
       case ATTRIBUTE_GROUP_DATA_VALUE:
@@ -4882,6 +4895,10 @@ _init_items()
                         _("The maximum height for the container defined by "
                           "the composition of the parts. This value is not 
enforced."));
              break;
+           case PROPERTY_GROUP_ITEM_GROUP_SCRIPT:
+              IT.name = "Script";
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY_SCRIPT, 
ATTRIBUTE_GROUP_SCRIPT, NULL);
+              break;
 
               /* part block */
            case PROPERTY_GROUP_ITEM_PART_TITLE:
diff --git a/src/bin/ui/property/property_private.h 
b/src/bin/ui/property/property_private.h
index d78af84..b3e70c8 100644
--- a/src/bin/ui/property/property_private.h
+++ b/src/bin/ui/property/property_private.h
@@ -51,6 +51,7 @@ enum _Property_Control {
    PROPERTY_CONTROL_COMBOBOX_CC, /* special combobox for color_classes */
    PROPERTY_CONTROL_SPINNER,
    PROPERTY_CONTROL_ENTRY,
+   PROPERTY_CONTROL_ENTRY_SCRIPT,
    PROPERTY_CONTROL_COLOR,
    PROPERTY_CONTROL_COLORSEL,
    PROPERTY_CONTROL_LABEL,
@@ -205,6 +206,7 @@ typedef enum {
    PROPERTY_GROUP_ITEM_GROUP_NAME,
    PROPERTY_GROUP_ITEM_GROUP_MIN,
    PROPERTY_GROUP_ITEM_GROUP_MAX,
+   PROPERTY_GROUP_ITEM_GROUP_SCRIPT,
 
    PROPERTY_GROUP_ITEM_PART_TITLE,
    PROPERTY_GROUP_ITEM_PART_NAME,
@@ -618,6 +620,9 @@ property_textblock_manager_init(Property_Data *pd);
 Eina_List *
 property_textblock_manager_items_get(void);
 
+Evas_Object *
+property_entry_script_control_add(Evas_Object *parent);
+
 /* dummy submodule. for implementation tests. will be deleted later */
 void
 property_dummy_init(void);
diff --git a/src/bin/ui/property/property_script.c 
b/src/bin/ui/property/property_script.c
new file mode 100644
index 0000000..eb7e750
--- /dev/null
+++ b/src/bin/ui/property/property_script.c
@@ -0,0 +1,54 @@
+/*
+ * Edje Theme Editor
+ * Copyright (C) 2013-2017 Samsung Electronics.
+ *
+ * This file is part of Edje Theme Editor.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; If not, see www.gnu.org/licenses/lgpl.html.
+ */
+
+#include "property.h"
+#include "property_private.h"
+#include "main_window.h"
+
+static void
+_btn_script_manager_cb(void *data,
+                      Evas_Object *obj __UNUSED__,
+                      void *event_info __UNUSED__)
+{
+   Evas_Object *content = data;
+
+   assert(content != NULL);
+
+   evas_object_smart_callback_call(content, 
signals.eflete.property.script_control.clicked, NULL);
+}
+
+Evas_Object *
+property_entry_script_control_add(Evas_Object *parent)
+{
+   Evas_Object *content, *btn;
+
+   assert(parent != NULL);
+
+   ENTRY_ADD(parent, content, true);
+   btn = elm_button_add(content);
+   elm_object_style_set(btn, "elipsis");
+   evas_object_smart_callback_add(btn, signals.elm.button.clicked, 
_btn_script_manager_cb, content);
+
+   elm_object_part_content_set(content, "elm.swallow.elipsis", btn);
+   elm_entry_editable_set(content, false);
+   evas_object_show(btn);
+   evas_object_show(content);
+
+   return content;
+}

-- 


Reply via email to