rimmed pushed a commit to branch master.

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

commit c6cf90e73da32172f9e0f1418d9b553898f7bbee
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Wed Nov 18 11:30:28 2015 +0200

    groupedit: merge the part bg, border and part view in one object
    
    As part view used box, with bg, border and proxied part object.
    
    Change-Id: I9ba7733aab32f07596d03d9b13eb84947532cc1a
---
 src/bin/ui/workspace/groupedit.c         |   2 +-
 src/bin/ui/workspace/groupedit_calc.c    | 388 +++++++++----------------------
 src/bin/ui/workspace/groupedit_private.h |   6 +-
 3 files changed, 113 insertions(+), 283 deletions(-)

diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c
index 59cd561..3d2e134 100644
--- a/src/bin/ui/workspace/groupedit.c
+++ b/src/bin/ui/workspace/groupedit.c
@@ -311,7 +311,7 @@ groupedit_edit_object_part_draw_get(Evas_Object *obj, const 
char *part)
 
    assert(gp != NULL);
 
-   return gp->border;
+   return gp->draw;
 }
 
 Eina_Bool
diff --git a/src/bin/ui/workspace/groupedit_calc.c 
b/src/bin/ui/workspace/groupedit_calc.c
index 3238731..36559f6 100644
--- a/src/bin/ui/workspace/groupedit_calc.c
+++ b/src/bin/ui/workspace/groupedit_calc.c
@@ -63,12 +63,6 @@ static void
 _proxy_param_update(Groupedit_Part *gp, Evas_Object *edit_obj);
 
 static void
-_textblock_param_update(Groupedit_Part *gp, Evas_Object *edit_obj);
-
-static void
-_group_param_update(Groupedit_Part *gp, Evas_Object *edit_obj, Evas_Object 
*parent);
-
-static void
 _table_param_update(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp);
 
 static void
@@ -192,17 +186,15 @@ _part_parts_layouts_update(Ws_Groupedit_Smart_Data *sd,
         evas_object_stack_below(sd->clipper, ge_part_to->draw);
         evas_object_stack_below(ge_part->bg, ge_part_to->draw);
         evas_object_stack_below(ge_part->draw, ge_part_to->draw);
-        evas_object_stack_below(ge_part->border, ge_part_to->draw);
         evas_object_stack_below(ge_part->item, ge_part_to->draw);
      }
    else
      {
-        evas_object_stack_above(sd->bg, ge_part_to->border);
-        evas_object_stack_above(sd->clipper, ge_part_to->border);
-        evas_object_stack_above(ge_part->item, ge_part_to->border);
-        evas_object_stack_above(ge_part->border, ge_part_to->border);
-        evas_object_stack_above(ge_part->draw, ge_part_to->border);
-        evas_object_stack_above(ge_part->bg, ge_part_to->border);
+        evas_object_stack_above(sd->bg, ge_part_to->draw);
+        evas_object_stack_above(sd->clipper, ge_part_to->draw);
+        evas_object_stack_above(ge_part->item, ge_part_to->draw);
+        evas_object_stack_above(ge_part->draw, ge_part_to->draw);
+        evas_object_stack_above(ge_part->bg, ge_part_to->draw);
      }
 }
 
@@ -361,17 +353,11 @@ _parts_list_free(Ws_Groupedit_Smart_Data *sd)
 static void
 _groupedit_part_free(Groupedit_Part *gp)
 {
-   Groupedit_Item *ge_item = NULL;
-   /* just in case */
-   Evas_Object *image = NULL;
+   Groupedit_Item *ge_item;
 
    assert(gp != NULL);
 
-   image = edje_object_part_swallow_get(gp->draw, "swallow.image");
-   evas_object_del(image);
    evas_object_del(gp->draw);
-   evas_object_smart_member_del(gp->border);
-   evas_object_del(gp->border);
    if (gp->item)
      {
         evas_object_smart_member_del(gp->item);
@@ -462,7 +448,6 @@ _select_item_move_to_top(Ws_Groupedit_Smart_Data *sd)
    evas_object_raise(sd->clipper);
    evas_object_raise(sd->to_select->bg);
    evas_object_raise(sd->to_select->draw);
-   evas_object_raise(sd->to_select->border);
    evas_object_raise(sd->to_select->item);
    sd->selected = sd->to_select;
    edje_object_signal_emit(sd->selected->item, "item,selected", "eflete");
@@ -482,7 +467,7 @@ _part_separete_mod_mouse_click_cb(void *data,
 
    assert(gp != NULL);
 
-   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->border, "sd");
+   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->draw, "sd");
 
    assert(sd != NULL);
 
@@ -504,7 +489,7 @@ _part_separete_mod_mouse_in_cb(void *data,
 
    assert(gp != NULL);
 
-   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->border, "sd");
+   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->draw, "sd");
 
    assert(sd != NULL);
 
@@ -522,7 +507,7 @@ _part_separete_mod_mouse_out_cb(void *data,
 
    assert(gp != NULL);
 
-   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->border, "sd");
+   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->draw, "sd");
 
    assert(sd != NULL);
 
@@ -540,7 +525,7 @@ _part_select(void *data,
 
    assert(gp != NULL);
 
-   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->border, "sd");
+   Ws_Groupedit_Smart_Data *sd = evas_object_data_get(gp->draw, "sd");
 
    assert(sd != NULL);
 
@@ -559,9 +544,9 @@ _part_select(void *data,
         evas_object_move(gp->bg, x * sd->zoom_factor + xe + offset_x, \
                                 y * sd->zoom_factor + ye + offset_y); \
      } \
-   evas_object_resize(gp->border, w * sd->zoom_factor, h * sd->zoom_factor); \
-   evas_object_move(gp->border, x * sd->zoom_factor + xe + offset_x, \
-                                y * sd->zoom_factor + ye + offset_y); \
+   /* evas_object_resize(gp->border, w * sd->zoom_factor, h * 
sd->zoom_factor); \
+     evas_object_move(gp->border, x * sd->zoom_factor + xe + offset_x, \
+                                y * sd->zoom_factor + ye + offset_y); */\
    evas_object_resize(gp->item, sd->con_current_size->w, 
sd->con_current_size->h); \
    evas_object_move(gp->item, xe + offset_x, ye + offset_y);
 
@@ -610,39 +595,6 @@ _part_select(void *data,
      }
 
 static void
-_part_text_recalc_apply(Ws_Groupedit_Smart_Data *sd,
-                        Groupedit_Part *gp,
-                        int offset_x,
-                        int offset_y)
-{
-   Evas_Coord x, y, xe, ye, ro_x, ro_y;
-   Evas_Coord part_x, part_y, abs_x, abs_y;
-   int w, h, ro_w, ro_h;
-   const Evas_Object *ro;
-
-   assert(sd != NULL);
-   assert(gp != NULL);
-
-   edje_object_part_geometry_get(sd->group->edit_object, gp->part->name, &x, 
&y, &w, &h);
-   evas_object_geometry_get(sd->group->edit_object, &xe, &ye, NULL, NULL);
-   ro = edje_object_part_object_get(sd->group->edit_object, gp->part->name);
-   evas_object_geometry_get(ro, &ro_x, &ro_y, &ro_w, &ro_h);
-
-   /* all of it because of text and textblock >:C */
-   ro_x = xe + offset_x + (ro_x - xe - offset_x) * sd->zoom_factor;
-   ro_y = ye + offset_y + (ro_y - ye - offset_y) * sd->zoom_factor;
-
-   evas_object_resize(gp->draw, ro_w, ro_h);
-   evas_object_move(gp->draw, ro_x + offset_x, ro_y + offset_y);
-
-   GP_GEOMETRY_SET
-
-   GP_REAL_GEOMETRY_CALC(part_x, part_y, abs_x, abs_y)
-
-   ZOOM_APPLY(gp->draw)
-}
-
-static void
 _part_recalc_apply(Ws_Groupedit_Smart_Data *sd,
                    Groupedit_Part *gp,
                    int offset_x,
@@ -650,8 +602,10 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd,
 {
    Evas_Coord x, y, xe, ye, w, h;
    Evas_Coord part_x, part_y, abs_x, abs_y;
+   Evas_Coord ro_w, ro_h;
    Eina_List *l, *l_n, *l_sp, *l_sp_n;
    Groupedit_Item *ge_item = NULL, *sp_item = NULL;
+   const Evas_Object *ro;
 
    assert(sd != NULL);
    assert(gp != NULL);
@@ -662,6 +616,29 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd,
    evas_object_resize(gp->draw, w, h);
    evas_object_move(gp->draw, (x * sd->zoom_factor + xe + offset_x),
                               (y * sd->zoom_factor + ye + offset_y));
+   evas_object_size_hint_min_set(gp->layout, w, h);
+   evas_object_size_hint_max_set(gp->layout, w, h);
+
+   /* set the proxy part size */
+   ro = edje_object_part_object_get(sd->group->edit_object, gp->part->name);
+   evas_object_geometry_get(ro, NULL, NULL, &ro_w, &ro_h);
+   evas_object_size_hint_min_set(gp->proxy_part, ro_w, ro_h);
+   evas_object_size_hint_max_set(gp->proxy_part, ro_w, ro_h);
+
+   if (gp->part->type == EDJE_PART_TYPE_TEXT)
+     {
+        double x_align, y_align;
+
+        x_align = edje_edit_state_text_align_x_get(sd->group->edit_object,
+                                                   gp->part->name,
+                                                   
gp->part->current_state->parsed_name,
+                                                   
gp->part->current_state->parsed_val);
+        y_align = edje_edit_state_text_align_y_get(sd->group->edit_object,
+                                                   gp->part->name,
+                                                   
gp->part->current_state->parsed_name,
+                                                   
gp->part->current_state->parsed_val);
+        evas_object_size_hint_align_set(gp->proxy_part, x_align, y_align);
+     }
 
 
    GP_GEOMETRY_SET
@@ -715,6 +692,7 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd)
 {
    Eina_List *l;
    Groupedit_Part *gp;
+   Eina_Stringshare *str;
    int i = 0, offset_x, offset_y;
 
    assert(sd != NULL);
@@ -770,23 +748,22 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd)
 
         switch (gp->part->type)
           {
-           case EDJE_PART_TYPE_RECTANGLE:
+           case EDJE_PART_TYPE_TEXT:
+           case EDJE_PART_TYPE_TEXTBLOCK:
+              str = edje_edit_state_text_get(sd->group->edit_object, 
gp->part->name,
+                                             
gp->part->current_state->parsed_name,
+                                             
gp->part->current_state->parsed_val);
+              if (!str)
+                edje_object_part_text_set(sd->group->edit_object, 
gp->part->name, gp->part->name);
+              eina_stringshare_del(str);
               _common_param_update(gp, sd->group->edit_object);
               _part_recalc_apply(sd, gp, offset_x, offset_y);
               break;
-           case EDJE_PART_TYPE_TEXT:
+           case EDJE_PART_TYPE_RECTANGLE:
+           case EDJE_PART_TYPE_GROUP:
               _common_param_update(gp, sd->group->edit_object);
-              _part_text_recalc_apply(sd, gp, offset_x, offset_y);
-              break;
-/*
-         !!!uncomment this case after merging 
https://phab.enlightenment.org/D2940!!!
-
-           case EDJE_PART_TYPE_TEXTBLOCK:
-             common_param_update(gp, sd->group->edit_object);
               _part_recalc_apply(sd, gp, offset_x, offset_y);
               break;
-*/
-
            case EDJE_PART_TYPE_IMAGE:
               _image_param_update(gp, sd->group->edit_object);
               _part_recalc_apply(sd, gp, offset_x, offset_y);
@@ -795,15 +772,6 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd)
               _proxy_param_update(gp, sd->group->edit_object);
               _part_recalc_apply(sd, gp, offset_x, offset_y);
               break;
-/* delete this case after merging https://phab.enlightenment.org/D2940 */
-           case EDJE_PART_TYPE_TEXTBLOCK:
-              _textblock_param_update(gp, sd->group->edit_object);
-              _part_recalc_apply(sd, gp, offset_x, offset_y);
-              break;
-           case EDJE_PART_TYPE_GROUP:
-              _group_param_update(gp, sd->group->edit_object, sd->obj);
-              _part_recalc_apply(sd, gp, offset_x, offset_y);
-              break;
            case EDJE_PART_TYPE_TABLE:
               _table_param_update(sd, gp);
               _part_recalc_apply(sd, gp, offset_x, offset_y);
@@ -823,13 +791,11 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd)
           {
              evas_object_show(gp->bg);
              evas_object_show(gp->draw);
-             evas_object_show(gp->border);
           }
         else
           {
              evas_object_hide(gp->bg);
              evas_object_hide(gp->draw);
-             evas_object_hide(gp->border);
           }
      }
      if (!sd->separated) _part_object_area_calc(sd);
@@ -844,126 +810,81 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd)
 
    return true;
 }
-#define BORDER_ADD(R, G, B, A) \
-   IMAGE_ADD_NEW(sd->obj, gp->border, "border", "2px")\
-   evas_object_color_set(gp->border, R*A/255, G*A/255, B*A/255, A);
-
-#define IMAGE_PART_GROUP "eflete/groupedit/image/default"
-
-static void
-_image_delete(void *data __UNUSED__,
-              Evas *e __UNUSED__,
-              Evas_Object *obj,
-              void *event_info __UNUSED__)
-{
-   assert(obj != NULL);
-
-   Evas_Object *image = edje_object_part_swallow_get(obj, "swallow.image");
-   if (image) evas_object_del(image);
-}
 
 static Groupedit_Part *
 _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part)
 {
-   Evas_Object *o;
    Groupedit_Part *gp;
-   Evas_Object *image;
 
    assert(sd != NULL);
    assert(part != NULL);
 
    gp = mem_calloc(1, sizeof(Groupedit_Part));
    gp->part = part;
-   gp->border = NULL;
+   //gp->border = NULL;
    gp->item = NULL;
 
-   switch (part->type)
-     {
-      case EDJE_PART_TYPE_RECTANGLE:
-         gp->draw = edje_object_add(sd->e);
-         if (!edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP))
-           ERR("Image can't be loaded.\n");
-         evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_DEL,
-                                        _image_delete, NULL);
 
-         image = evas_object_image_filled_add(sd->e);
-         edje_object_part_swallow(gp->draw, "swallow.image", image);
+#define DRAW_ADD() \
+   gp->draw = elm_layout_add(sd->parent); \
+   elm_layout_theme_set(gp->draw, "layout", "groupview", "default"); \
 
-         BORDER_ADD(0, 0, 0, 0)
-         break;
-      case EDJE_PART_TYPE_TEXT:
-         gp->draw = edje_object_add(sd->e);
-         if (!edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP))
-           ERR("Image can't be loaded.\n");
-         evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_DEL,
-                                        _image_delete, NULL);
+#define PART_VIEW_ADD() \
+   gp->draw = elm_box_add(sd->parent); \
+   elm_box_layout_set(gp->draw, evas_object_box_layout_stack, NULL, NULL); \
+   gp->layout = elm_layout_add(sd->parent); \
+   elm_layout_theme_set(gp->layout, "layout", "groupview", "default"); \
+   evas_object_show(gp->layout); \
+   elm_box_pack_end(gp->draw, gp->layout);
 
-         image = evas_object_image_filled_add(sd->e);
-         edje_object_part_swallow(gp->draw, "swallow.image", image);
+#define PART_VIEW_PROXY_SET() \
+   gp->proxy_part = evas_object_image_filled_add(sd->e); \
+   elm_box_pack_start(gp->draw, gp->proxy_part); \
+   evas_object_show(gp->proxy_part); \
 
-         BORDER_ADD(122, 122, 122, 255)
+
+   switch (part->type)
+     {
+      case EDJE_PART_TYPE_RECTANGLE:
+         PART_VIEW_ADD()
+         PART_VIEW_PROXY_SET()
          break;
-/*
-         !!!uncomment this case after merging 
https://phab.enlightenment.org/D2940!!!
+      case EDJE_PART_TYPE_TEXT:
       case EDJE_PART_TYPE_TEXTBLOCK:
-         gp->draw = edje_object_add(sd->e);
-         if (!edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP))
-           ERR("Image can't be loaded.\n");
-         evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_DEL,
-                                        _image_delete, NULL);
-
-         image = evas_object_image_filled_add(sd->e);
-         edje_object_part_swallow(gp->draw, "swallow.image", image);
-
-         BORDER_ADD(122, 122, 122, 255)
+         PART_VIEW_ADD()
+         PART_VIEW_PROXY_SET()
+         elm_object_signal_emit(gp->layout, "border,text", "eflete");
          break;
-*/
       case EDJE_PART_TYPE_IMAGE:
-         gp->draw = edje_object_add(sd->e);
-         if (!edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP))
-           ERR("Image can't be loaded.\n");
-         evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_DEL,
-                                        _image_delete, NULL);
-         o = evas_object_image_filled_add(sd->e);
-         edje_object_part_swallow(gp->draw, "swallow.image", o);
-         BORDER_ADD(0, 0, 0, 0)
+         PART_VIEW_ADD()
+         PART_VIEW_PROXY_SET()
+         elm_object_signal_emit(gp->layout, "border,text", "eflete");
          break;
       case EDJE_PART_TYPE_PROXY: // it part like image
-         gp->draw = edje_object_add(sd->e);
-         if (!edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP))
-           ERR("Image can't be loaded.\n");
-         evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_DEL,
-                                        _image_delete, NULL);
-         IMAGE_ADD_NEW(sd->obj, o, "bg", "proxy")
-         edje_object_part_swallow(gp->draw, "swallow.image", o);
-         BORDER_ADD(255, 112, 49, 255);
+         PART_VIEW_ADD()
+         PART_VIEW_PROXY_SET()
+         elm_object_signal_emit(gp->layout, "border,proxy", "eflete");
          break;
       case EDJE_PART_TYPE_SWALLOW:
-         IMAGE_ADD_NEW(sd->obj, gp->draw, "bg", "swallow")
-         BORDER_ADD(120, 103, 140, 255)
-         break;
-/* delete this case after merging https://phab.enlightenment.org/D2940 */
-      case EDJE_PART_TYPE_TEXTBLOCK:
-         gp->draw = evas_object_textblock_add(sd->e);
-         BORDER_ADD(122, 122, 122, 255)
+         PART_VIEW_ADD()
+         elm_object_signal_emit(gp->layout, "border,swallow", "eflete");
          break;
       case EDJE_PART_TYPE_SPACER:
-         IMAGE_ADD_NEW(sd->obj, gp->draw, "bg", "spacer")
-         BORDER_ADD(101, 117, 133, 255)
+         PART_VIEW_ADD()
+         elm_object_signal_emit(gp->layout, "border,spacer", "eflete");
          break;
       case EDJE_PART_TYPE_GROUP:
-         gp->draw = edje_object_add(sd->e);
-         BORDER_ADD(255, 109, 109, 255)
+         PART_VIEW_ADD()
+         PART_VIEW_PROXY_SET()
+         elm_object_signal_emit(gp->layout, "border,group", "eflete");
          break;
       case EDJE_PART_TYPE_TABLE:
          IMAGE_ADD_NEW(sd->obj, gp->bg, "bg", "table")
          gp->draw = _part_container_add(sd, part, &(gp->items));
-         BORDER_ADD(138, 125, 109, 255)
          break;
       case EDJE_PART_TYPE_BOX:
          IMAGE_ADD_NEW(sd->obj, gp->bg, "bg", "box")
          gp->draw = _part_container_add(sd, part, &(gp->items));
-         BORDER_ADD(124, 129, 102, 255)
          break;
       case EDJE_PART_TYPE_EXTERNAL:
       default:
@@ -976,14 +897,14 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part)
          break;
      }
 
-   evas_object_data_set(gp->border, "sd", sd);
-   evas_object_event_callback_add(gp->border, EVAS_CALLBACK_MOUSE_DOWN,
+   evas_object_data_set(gp->draw, "sd", sd);
+   evas_object_event_callback_add(gp->draw, EVAS_CALLBACK_MOUSE_DOWN,
                                   _part_select, gp);
 
    if (gp->bg)
      evas_object_smart_member_add(gp->bg, sd->obj);
    evas_object_smart_member_add(gp->draw, sd->obj);
-   evas_object_smart_member_add(gp->border, sd->obj);
+   //evas_object_smart_member_add(gp->border, sd->obj);
 
    return gp;
 }
@@ -1254,7 +1175,6 @@ static void
 _image_param_update(Groupedit_Part *gp, Evas_Object *edit_obj)
 {
    Evas_Load_Error err;
-   Evas_Object *image;
    const char *image_normal;
    const char *buf = NULL;
    int id;
@@ -1266,31 +1186,30 @@ _image_param_update(Groupedit_Part *gp, Evas_Object 
*edit_obj)
 
    PART_STATE_GET(edit_obj, gp->part->name)
 
-   image = edje_object_part_swallow_get(gp->draw, "swallow.image");
-
    image_normal = edje_edit_state_image_get(edit_obj, gp->part->name, state, 
value);
    if (!image_normal) return;
    id = edje_edit_image_id_get(edit_obj, image_normal);
+   edje_edit_string_free(image_normal);
    buf = eina_stringshare_printf("edje/images/%i", id);
-   evas_object_image_file_set(image, ap.project->dev, buf);
-   err = evas_object_image_load_error_get(image);
+   //fprintf(stdout, "%s\n", buf);
+   evas_object_image_file_set(gp->proxy_part, ap.project->dev, buf);
+   err = evas_object_image_load_error_get(gp->proxy_part);
    if (err != EVAS_LOAD_ERROR_NONE)
-     WARN("Could not update image:\"%s\"\n",  evas_load_error_str(err));
-   edje_edit_string_free(image_normal);
+     WARN("Could not update image:\"%s\"\n", evas_load_error_str(err));
 
    edje_edit_state_image_border_get(edit_obj, gp->part->name, state, value,
                                     &bl, &br, &bt, &bb);
-   evas_object_image_border_set(image, bl, br, bt, bb);
+   evas_object_image_border_set(gp->proxy_part, bl, br, bt, bb);
 
    middle  = edje_edit_state_image_border_fill_get(edit_obj, gp->part->name, 
state, value);
    if (middle == 0)
-     evas_object_image_border_center_fill_set(image, EVAS_BORDER_FILL_NONE);
+     evas_object_image_border_center_fill_set(gp->proxy_part, 
EVAS_BORDER_FILL_NONE);
    else if (middle == 1)
-     evas_object_image_border_center_fill_set(image, EVAS_BORDER_FILL_DEFAULT);
+     evas_object_image_border_center_fill_set(gp->proxy_part, 
EVAS_BORDER_FILL_DEFAULT);
    else if (middle == 2)
-     evas_object_image_border_center_fill_set(image, EVAS_BORDER_FILL_SOLID);
+     evas_object_image_border_center_fill_set(gp->proxy_part, 
EVAS_BORDER_FILL_SOLID);
 
-   _image_proxy_common_param_update(image, gp, edit_obj);
+   _image_proxy_common_param_update(gp->proxy_part, gp, edit_obj);
 
    PART_STATE_FREE
    eina_stringshare_del(buf);
@@ -1299,7 +1218,6 @@ _image_param_update(Groupedit_Part *gp, Evas_Object 
*edit_obj)
 static void
 _proxy_param_update(Groupedit_Part *gp, Evas_Object *edit_obj)
 {
-   Evas_Object *image, *source_image = NULL;
    const char *proxy_source;
    Ws_Groupedit_Smart_Data *sd;
    Groupedit_Part *source;
@@ -1307,120 +1225,34 @@ _proxy_param_update(Groupedit_Part *gp, Evas_Object 
*edit_obj)
    assert(gp != NULL);
    assert(edit_obj != NULL);
 
-   assert(gp != NULL);
-   assert(edit_obj != NULL);
-
    PART_STATE_GET(edit_obj, gp->part->name)
 
-   image = edje_object_part_swallow_get(gp->draw, "swallow.image");
-   evas_object_del(image);
-
-   sd = evas_object_data_get(gp->border, "sd");
+   sd = evas_object_data_get(gp->draw, "sd");
    proxy_source = edje_edit_state_proxy_source_get(edit_obj, gp->part->name, 
state, value);
    if (proxy_source)
      {
+        elm_object_signal_emit(gp->layout, "border,default", "eflete");
         source = _parts_list_find(sd->parts, proxy_source);
-        source_image = edje_object_part_swallow_get(source->draw, 
"swallow.image");
-        if (!source_image)
-          source_image = source->draw;
-        image = evas_object_image_add(sd->e);
-        edje_object_part_swallow(gp->draw, "swallow.image", image);
-        evas_object_image_source_set(image, source_image);
-        evas_object_image_source_clip_set(image, false);
-
-        _image_proxy_common_param_update(image, gp, edit_obj);
+        evas_object_image_source_set(gp->proxy_part, source->proxy_part);
+        evas_object_image_source_clip_set(gp->proxy_part, false);
+        _image_proxy_common_param_update(gp->proxy_part, gp, edit_obj);
      }
    else
      {
-         IMAGE_ADD_NEW(sd->obj, image, "bg", "proxy")
-         edje_object_part_swallow(gp->draw, "swallow.image", image);
+        elm_object_signal_emit(gp->layout, "border,proxy", "eflete");
      }
 }
 
 static void
 _common_param_update(Groupedit_Part *gp, Evas_Object *edit_obj)
 {
-   Evas_Object *image;
-
-   assert(gp != NULL);
-   assert(edit_obj != NULL);
-
-   image = edje_object_part_swallow_get(gp->draw, "swallow.image");
-
-   Evas_Object *text_part = (Evas_Object 
*)edje_object_part_object_get(edit_obj, gp->part->name);
-   evas_object_image_source_set(image, NULL);
-   evas_object_image_source_set(image, text_part);
-   evas_object_image_source_clip_set(image, false);
-}
-
-static void
-_textblock_param_update(Groupedit_Part *gp, Evas_Object *edit_obj)
-{
-   Evas_Textblock_Style *ts = NULL;
-   const Evas_Textblock_Style *obj_style;
-   const Evas_Object *get_style;
-   const char *text;
-   double valign;
-
-   assert(gp != NULL);
-   assert(edit_obj != NULL);
-
-   PART_STATE_GET(edit_obj, gp->part->name)
-
-   _color_apply(gp, edit_obj, state, value);
-
-   get_style = edje_object_part_object_get(edit_obj, gp->part->name);
-   obj_style = evas_object_textblock_style_get(get_style);
-   text = evas_textblock_style_get(obj_style);
-
-   ts = evas_textblock_style_new();
-   evas_textblock_style_set(ts, text);
-   evas_object_textblock_style_set(gp->draw, ts);
-   evas_textblock_style_free(ts);
-   valign = edje_edit_state_text_align_y_get(edit_obj, gp->part->name, state, 
value);
-   evas_object_textblock_valign_set(gp->draw, valign);
-
-   text = edje_edit_state_text_get(edit_obj, gp->part->name, state, value);
-   if (text) evas_object_textblock_text_markup_set(gp->draw, text);
-   else
-     {
-        edje_object_part_text_set(edit_obj, gp->part->name, gp->part->name);
-        evas_object_textblock_text_markup_set(gp->draw, gp->part->name);
-     }
-
-   PART_STATE_FREE
-   edje_edit_string_free(text);
-}
-
-static void
-_group_param_update(Groupedit_Part *gp, Evas_Object *edit_obj, Evas_Object 
*parent)
-{
-   Eina_Stringshare *source = edje_edit_part_source_get(edit_obj, 
gp->part->name);
-   Evas_Object *image = NULL;
-
    assert(gp != NULL);
    assert(edit_obj != NULL);
-   assert(parent != NULL);
-
-   PART_STATE_GET(edit_obj, gp->part->name)
-
-   image = edje_object_part_swallow_get(gp->draw, "swallow.image");
-   evas_object_del(image);
 
-   if (!source)
-     {
-        edje_object_file_set(gp->draw, EFLETE_EDJ, IMAGE_PART_GROUP);
-        IMAGE_ADD_NEW(parent, image, "bg", "group");
-        edje_object_part_swallow(gp->draw, "swallow.image", image);
-     }
-   else
-     {
-        _color_apply(gp, edit_obj, state, value);
-        edje_object_file_set(gp->draw, ap.project->dev, source);
-     }
-
-   PART_STATE_FREE
-   if (source) edje_edit_string_free(source);
+   evas_object_image_source_set(gp->proxy_part, NULL);
+   evas_object_image_source_set(gp->proxy_part,
+                                (Evas_Object 
*)edje_object_part_object_get(edit_obj, gp->part->name));
+   evas_object_image_source_clip_set(gp->proxy_part, false);
 }
 
 static void
diff --git a/src/bin/ui/workspace/groupedit_private.h 
b/src/bin/ui/workspace/groupedit_private.h
index e640aed..be91e69 100644
--- a/src/bin/ui/workspace/groupedit_private.h
+++ b/src/bin/ui/workspace/groupedit_private.h
@@ -141,10 +141,8 @@ struct _Groupedit_Part
    Evas_Object *draw;         /**< The evas primitive to be draw in groupedit.
                                    The valid evas object types: image, 
rectangle,
                                    text and textblock.*/
-   Evas_Object *border;       /**< The object border, use for next part types:
-                                   TEXT, TEXTBLOCK, SWALLOW, SPACER. In another
-                                   case border has opacity 0. This object 
serves
-                                   for show the edje part geometry. */
+   Evas_Object *proxy_part;
+   Evas_Object *layout;
    Evas_Object *item;         /**< The object border in the separete mode */
    Eina_List *items;          /**< The items, for TABLE, BOX part types */
    Eina_List *fake_items;          /**< The items, for TABLE, BOX part types */

-- 


Reply via email to