[entry] fixed bug in non-editable entry selection handlers and fixed migration issue
[framework/uifw/elementary.git] / src / lib / elm_gengrid.c
index db72581..8ee50c4 100644 (file)
@@ -4,12 +4,9 @@
 #include "els_scroller.h"
 #include "elm_gen_common.h"
 
-<<<<<<< HEAD
-=======
 // internally allocated
 #define CLASS_ALLOCATED 0x3a70f00f
 
->>>>>>> remotes/origin/upstream
 /* --
  * TODO:
  * Handle non-homogeneous objects too.
@@ -30,7 +27,7 @@
 struct Elm_Gen_Item_Type
 {
    Elm_Gen_Item   *it;
-   Ecore_Animator *item_moving_effect_timer;
+   Ecore_Animator *item_reorder_move_animator;
    Evas_Coord   gx, gy, ox, oy, tx, ty, rx, ry;
    unsigned int moving_effect_start_time;
    int          prev_group;
@@ -39,58 +36,6 @@ struct Elm_Gen_Item_Type
    Eina_Bool   moving : 1;
 };
 
-#if 0
-struct _Widget_Data
-{
-   Eina_Inlist_Sorted_State *state;
-   Evas_Object      *obj; /* the gengrid object */
-   Evas_Object      *scr; /* a smart scroller object which is used internally in genlist */
-   Evas_Object      *pan_smart; /* "elm_genlist_pan" evas smart object. this is an extern pan of smart scroller(scr). */
-   Eina_List        *selected;
-   Eina_List        *group_items; /* list of groups index items */
-   Eina_Inlist      *items; /* inlist of all items */
-   Elm_Gen_Item     *reorder_it; /* item currently being repositioned */
-   Elm_Gen_Item     *last_selected_item;
-   Pan              *pan; /* pan_smart object's smart data */
-   Ecore_Job        *calc_job;
-   int               walking;
-   int               item_width, item_height;
-   int               group_item_width, group_item_height;
-   int               minw, minh;
-   long              count;
-   Evas_Coord        pan_x, pan_y;
-   Eina_Bool         reorder_mode : 1;
-   Eina_Bool         on_hold : 1;
-   Eina_Bool         multi : 1;
-<<<<<<< HEAD
-   Eina_Bool         no_select : 1;
-   Eina_Bool         wasselected : 1;
-   Eina_Bool         always_select : 1;
-=======
-   Eina_Bool         wasselected : 1;
->>>>>>> remotes/origin/upstream
-   Eina_Bool         clear_me : 1;
-   Eina_Bool         h_bounce : 1;
-   Eina_Bool         v_bounce : 1;
-   Ecore_Cb          del_cb, calc_cb, sizing_cb;
-   Ecore_Cb          clear_cb;
-   ////////////////////////////////////
-   double            align_x, align_y;
-
-   Evas_Coord        old_pan_x, old_pan_y;
-   Evas_Coord        reorder_item_x, reorder_item_y;
-   unsigned int      nmax;
-   long              items_lost;
-
-   int               generation;
-
-   Eina_Bool         horizontal : 1;
-   Eina_Bool         longpressed : 1;
-   Eina_Bool         reorder_item_changed : 1;
-   Eina_Bool         move_effect_enabled : 1;
-};
-#endif
-
 static const char *widtype = NULL;
 static void      _item_highlight(Elm_Gen_Item *it);
 static void      _item_unrealize_cb(Elm_Gen_Item *it);
@@ -111,13 +56,6 @@ static Eina_Bool _event_hook(Evas_Object       *obj,
                              Evas_Callback_Type type,
                              void              *event_info);
 static Eina_Bool _deselect_all_items(Widget_Data *wd);
-<<<<<<< HEAD
-#if 1
-static void      _elm_gengrid_clear(Evas_Object *obj,
-                                    Eina_Bool    standby);
-#endif
-=======
->>>>>>> remotes/origin/upstream
 
 static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION;
 static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
@@ -146,10 +84,7 @@ static const char SIG_EDGE_BOTTOM[] = "edge,bottom";
 static const char SIG_EDGE_LEFT[] = "edge,left";
 static const char SIG_EDGE_RIGHT[] = "edge,right";
 static const char SIG_MOVED[] = "moved";
-<<<<<<< HEAD
-=======
 static const char SIG_INDEX_UPDATE[] = "index,update";
->>>>>>> remotes/origin/upstream
 
 static const Evas_Smart_Cb_Description _signals[] = {
    {SIG_ACTIVATED, ""},
@@ -208,7 +143,8 @@ _event_hook(Evas_Object        *obj,
    elm_smart_scroller_page_size_get(wd->scr, &page_x, &page_y);
    elm_smart_scroller_child_viewport_size_get(wd->scr, &v_w, &v_h);
 
-   if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")))
+   if ((!strcmp(ev->keyname, "Left")) ||
+       ((!strcmp(ev->keyname, "KP_Left")) && (!ev->string)))
      {
         if ((wd->horizontal) &&
             (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@@ -229,7 +165,8 @@ _event_hook(Evas_Object        *obj,
         else
           x -= step_x;
      }
-   else if ((!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right")))
+   else if ((!strcmp(ev->keyname, "Right")) ||
+            ((!strcmp(ev->keyname, "KP_Right")) && (!ev->string)))
      {
         if ((wd->horizontal) &&
             (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@@ -250,7 +187,8 @@ _event_hook(Evas_Object        *obj,
         else
           x += step_x;
      }
-   else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
+   else if ((!strcmp(ev->keyname, "Up")) ||
+            ((!strcmp(ev->keyname, "KP_Up")) && (!ev->string)))
      {
         if ((wd->horizontal) &&
             (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@@ -271,7 +209,8 @@ _event_hook(Evas_Object        *obj,
         else
           y -= step_y;
      }
-   else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
+   else if ((!strcmp(ev->keyname, "Down")) ||
+            ((!strcmp(ev->keyname, "KP_Down")) && (!ev->string)))
      {
         if ((wd->horizontal) &&
             (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@@ -292,31 +231,26 @@ _event_hook(Evas_Object        *obj,
         else
           y += step_y;
      }
-   else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home")))
+   else if ((!strcmp(ev->keyname, "Home")) ||
+            ((!strcmp(ev->keyname, "KP_Home")) && (!ev->string)))
      {
         it = elm_gengrid_first_item_get(obj);
-<<<<<<< HEAD
-        elm_gengrid_item_bring_in(it);
-=======
         elm_gengrid_item_bring_in(it, ELM_GENGRID_ITEM_SCROLLTO_IN);
         elm_gengrid_item_selected_set(it, EINA_TRUE);
->>>>>>> remotes/origin/upstream
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
         return EINA_TRUE;
      }
-   else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End")))
+   else if ((!strcmp(ev->keyname, "End")) ||
+            ((!strcmp(ev->keyname, "KP_End")) && (!ev->string)))
      {
         it = elm_gengrid_last_item_get(obj);
-<<<<<<< HEAD
-        elm_gengrid_item_bring_in(it);
-=======
         elm_gengrid_item_bring_in(it, ELM_GENGRID_ITEM_SCROLLTO_IN);
         elm_gengrid_item_selected_set(it, EINA_TRUE);
->>>>>>> remotes/origin/upstream
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
         return EINA_TRUE;
      }
-   else if ((!strcmp(ev->keyname, "Prior")) || (!strcmp(ev->keyname, "KP_Prior")))
+   else if ((!strcmp(ev->keyname, "Prior")) ||
+            ((!strcmp(ev->keyname, "KP_Prior")) && (!ev->string)))
      {
         if (wd->horizontal)
           {
@@ -333,7 +267,8 @@ _event_hook(Evas_Object        *obj,
                y -= page_y;
           }
      }
-   else if ((!strcmp(ev->keyname, "Next")) || (!strcmp(ev->keyname, "KP_Next")))
+   else if ((!strcmp(ev->keyname, "Next")) ||
+            ((!strcmp(ev->keyname, "KP_Next")) && (!ev->string)))
      {
         if (wd->horizontal)
           {
@@ -394,20 +329,12 @@ _item_multi_select_left(Widget_Data *wd)
      {
         elm_gengrid_item_selected_set(wd->last_selected_item, EINA_FALSE);
         wd->last_selected_item = prev;
-<<<<<<< HEAD
-        elm_gengrid_item_show(wd->last_selected_item);
-=======
         elm_gengrid_item_show(wd->last_selected_item, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
      }
    else
      {
         elm_gengrid_item_selected_set(prev, EINA_TRUE);
-<<<<<<< HEAD
-        elm_gengrid_item_show(prev);
-=======
         elm_gengrid_item_show(prev, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
      }
 
    return EINA_TRUE;
@@ -425,20 +352,12 @@ _item_multi_select_right(Widget_Data *wd)
      {
         elm_gengrid_item_selected_set(wd->last_selected_item, EINA_FALSE);
         wd->last_selected_item = next;
-<<<<<<< HEAD
-        elm_gengrid_item_show(wd->last_selected_item);
-=======
         elm_gengrid_item_show(wd->last_selected_item, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
      }
    else
      {
         elm_gengrid_item_selected_set(next, EINA_TRUE);
-<<<<<<< HEAD
-        elm_gengrid_item_show(next);
-=======
         elm_gengrid_item_show(next, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
      }
 
    return EINA_TRUE;
@@ -485,11 +404,7 @@ _item_single_select_up(Widget_Data *wd)
         while ((prev) && (prev->generation < wd->generation))
           prev = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(prev)->prev);
         elm_gengrid_item_selected_set((Elm_Object_Item *) prev, EINA_TRUE);
-<<<<<<< HEAD
-        elm_gengrid_item_show((Elm_Object_Item *) prev);
-=======
         elm_gengrid_item_show((Elm_Object_Item *) prev, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
         return EINA_TRUE;
      }
    else
@@ -508,11 +423,7 @@ _item_single_select_up(Widget_Data *wd)
    _deselect_all_items(wd);
 
    elm_gengrid_item_selected_set((Elm_Object_Item *) prev, EINA_TRUE);
-<<<<<<< HEAD
-   elm_gengrid_item_show((Elm_Object_Item *) prev);
-=======
    elm_gengrid_item_show((Elm_Object_Item *) prev, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
    return EINA_TRUE;
 }
 
@@ -529,11 +440,7 @@ _item_single_select_down(Widget_Data *wd)
         while ((next) && (next->generation < wd->generation))
           next = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(next)->next);
         elm_gengrid_item_selected_set((Elm_Object_Item *) next, EINA_TRUE);
-<<<<<<< HEAD
-        elm_gengrid_item_show((Elm_Object_Item *) next);
-=======
         elm_gengrid_item_show((Elm_Object_Item *) next, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
         return EINA_TRUE;
      }
    else
@@ -552,11 +459,7 @@ _item_single_select_down(Widget_Data *wd)
    _deselect_all_items(wd);
 
    elm_gengrid_item_selected_set((Elm_Object_Item *) next, EINA_TRUE);
-<<<<<<< HEAD
-   elm_gengrid_item_show((Elm_Object_Item *) next);
-=======
    elm_gengrid_item_show((Elm_Object_Item *) next, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
    return EINA_TRUE;
 }
 
@@ -578,11 +481,7 @@ _item_single_select_left(Widget_Data *wd)
    _deselect_all_items(wd);
 
    elm_gengrid_item_selected_set((Elm_Object_Item *) prev, EINA_TRUE);
-<<<<<<< HEAD
-   elm_gengrid_item_show((Elm_Object_Item *) prev);
-=======
    elm_gengrid_item_show((Elm_Object_Item *) prev, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
    return EINA_TRUE;
 }
 
@@ -604,11 +503,7 @@ _item_single_select_right(Widget_Data *wd)
    _deselect_all_items(wd);
 
    elm_gengrid_item_selected_set((Elm_Object_Item *) next, EINA_TRUE);
-<<<<<<< HEAD
-   elm_gengrid_item_show((Elm_Object_Item *) next);
-=======
    elm_gengrid_item_show((Elm_Object_Item *) next, ELM_GENGRID_ITEM_SCROLLTO_IN);
->>>>>>> remotes/origin/upstream
    return EINA_TRUE;
 }
 
@@ -645,11 +540,7 @@ _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
    while (it)
      {
         edje_object_mirrored_set(VIEW(it), rtl);
-<<<<<<< HEAD
-        elm_gengrid_item_update((Elm_Object_Item *) it);
-=======
         elm_gengrid_item_update((Elm_Object_Item *)it);
->>>>>>> remotes/origin/upstream
         it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
      }
 }
@@ -779,11 +670,7 @@ _mouse_move(void        *data,
           }
         return;
      }
-<<<<<<< HEAD
-   if (!it->display_only)
-=======
    if (it->select_mode != ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
->>>>>>> remotes/origin/upstream
      elm_coords_finger_size_adjust(1, &minw, 1, &minh);
    evas_object_geometry_get(obj, &x, &y, NULL, NULL);
    x = ev->cur.canvas.x - x;
@@ -957,11 +844,7 @@ _mouse_up(void            *data,
    if (dragged)
      {
         if (it->want_unrealize)
-<<<<<<< HEAD
-          _elm_gengrid_item_unrealize(it, EINA_FALSE);
-=======
           _elm_genlist_item_unrealize(it, EINA_FALSE);
->>>>>>> remotes/origin/upstream
      }
    if (elm_widget_item_disabled_get(it) || (dragged)) return;
    if (it->wd->multi)
@@ -996,20 +879,14 @@ _mouse_up(void            *data,
 static void
 _item_highlight(Elm_Gen_Item *it)
 {
-<<<<<<< HEAD
-   if ((it->wd->no_select) || (it->generation < it->wd->generation) || (it->highlighted)) return;
-=======
    if ((it->wd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) ||
-       (it->wd->no_highlight) || (it->highlighted) ||
+       (!it->wd->highlight) || (it->highlighted) ||
        (it->generation < it->wd->generation)) return;
->>>>>>> remotes/origin/upstream
    edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm");
    it->highlighted = EINA_TRUE;
 }
 
 static void
-<<<<<<< HEAD
-=======
 _elm_gengrid_item_index_update(Elm_Gen_Item *it)
 {
    if (it->position_update)
@@ -1020,7 +897,6 @@ _elm_gengrid_item_index_update(Elm_Gen_Item *it)
 }
 
 static void
->>>>>>> remotes/origin/upstream
 _item_realize(Elm_Gen_Item *it)
 {
    char buf[1024];
@@ -1058,7 +934,7 @@ _item_realize(Elm_Gen_Item *it)
                 ((void *)it->base.data, WIDGET(it), key);
              if (s)
                {
-                  edje_object_part_text_set(VIEW(it), key, s);
+                  edje_object_part_text_escaped_set(VIEW(it), key, s);
                   free(s);
                }
           }
@@ -1139,11 +1015,8 @@ _item_realize(Elm_Gen_Item *it)
         evas_object_event_callback_add(VIEW(it), EVAS_CALLBACK_MOUSE_MOVE,
                                        _mouse_move, it);
 
-<<<<<<< HEAD
-=======
         _elm_gengrid_item_index_update(it);
 
->>>>>>> remotes/origin/upstream
         if (it->selected)
           edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm");
         if (elm_widget_item_disabled_get(it))
@@ -1177,35 +1050,21 @@ _item_unrealize_cb(Elm_Gen_Item *it)
 }
 
 static Eina_Bool
-_reorder_item_moving_effect_timer_cb(void *data)
+_reorder_item_move_animator_cb(void *data)
 {
    Elm_Gen_Item *it = data;
-<<<<<<< HEAD
-   double time, t;
-   Evas_Coord dx, dy;
-
-   time = REORDER_EFFECT_TIME;
-=======
    double tt, t;
    Evas_Coord dx, dy;
 
    tt = REORDER_EFFECT_TIME;
->>>>>>> remotes/origin/upstream
    t = ((0.0 > (t = ecore_loop_time_get()-it->item->moving_effect_start_time)) ? 0.0 : t);
    dx = ((it->item->tx - it->item->ox) / 10) * _elm_config->scale;
    dy = ((it->item->ty - it->item->oy) / 10) * _elm_config->scale;
 
-<<<<<<< HEAD
-   if (t <= time)
-     {
-        it->item->rx += (1 * sin((t / time) * (M_PI / 2)) * dx);
-        it->item->ry += (1 * sin((t / time) * (M_PI / 2)) * dy);
-=======
    if (t <= tt)
      {
         it->item->rx += (1 * sin((t / tt) * (M_PI / 2)) * dx);
         it->item->ry += (1 * sin((t / tt) * (M_PI / 2)) * dy);
->>>>>>> remotes/origin/upstream
      }
    else
      {
@@ -1229,7 +1088,7 @@ _reorder_item_moving_effect_timer_cb(void *data)
         else
           evas_object_resize(VIEW(it), it->wd->item_width, it->wd->item_height);
         it->item->moving = EINA_FALSE;
-        it->item->item_moving_effect_timer = NULL;
+        it->item->item_reorder_move_animator = NULL;
         return ECORE_CALLBACK_CANCEL;
      }
 
@@ -1280,19 +1139,15 @@ _group_item_place(Pan *sd)
              evas_object_raise(VIEW(it));
           }
         else
-<<<<<<< HEAD
-          _elm_gengrid_item_unrealize(it, EINA_FALSE);
-=======
           _elm_genlist_item_unrealize(it, EINA_FALSE);
->>>>>>> remotes/origin/upstream
      }
 }
 
 
 static void
 _item_place(Elm_Gen_Item *it,
-            Evas_Coord        cx,
-            Evas_Coord        cy)
+            Evas_Coord    cx,
+            Evas_Coord    cy)
 {
    Evas_Coord x, y, ox, oy, cvx, cvy, cvw, cvh, iw, ih, ww;
    Evas_Coord tch, tcw, alignw = 0, alignh = 0, vw, vh;
@@ -1311,11 +1166,7 @@ _item_place(Elm_Gen_Item *it,
    alignh = 0;
    alignw = 0;
 
-<<<<<<< HEAD
-   items_count = it->wd->count - eina_list_count(it->wd->group_items) + it->wd->items_lost;
-=======
    items_count = it->wd->item_count - eina_list_count(it->wd->group_items) + it->wd->items_lost;
->>>>>>> remotes/origin/upstream
    if (it->wd->horizontal)
      {
         int columns, items_visible = 0, items_row;
@@ -1333,17 +1184,10 @@ _item_place(Elm_Gen_Item *it,
         alignw = (vw - tcw) * it->wd->align_x;
 
         items_row = items_visible;
-<<<<<<< HEAD
-        if (items_row > it->wd->count)
-          items_row = it->wd->count;
-         if (it->wd->filled
-             && (unsigned int)it->wd->nmax > (unsigned int)it->wd->count)
-=======
         if ((unsigned int)items_row > it->wd->item_count)
           items_row = it->wd->item_count;
          if (it->wd->filled
              && (unsigned int)it->wd->nmax > (unsigned int)it->wd->item_count)
->>>>>>> remotes/origin/upstream
            tch = it->wd->nmax * it->wd->item_height;
          else
            tch = items_row * it->wd->item_height;
@@ -1351,11 +1195,7 @@ _item_place(Elm_Gen_Item *it,
      }
    else
      {
-<<<<<<< HEAD
-        int rows, items_visible = 0, items_col;
-=======
         unsigned int rows, items_visible = 0, items_col;
->>>>>>> remotes/origin/upstream
 
         if (it->wd->item_width > 0)
           items_visible = vw / it->wd->item_width;
@@ -1370,17 +1210,10 @@ _item_place(Elm_Gen_Item *it,
         alignh = (vh - tch) * it->wd->align_y;
 
         items_col = items_visible;
-<<<<<<< HEAD
-        if (items_col > it->wd->count)
-          items_col = it->wd->count;
-         if (it->wd->filled
-             && (unsigned int)it->wd->nmax > (unsigned int)it->wd->count)
-=======
         if (items_col > it->wd->item_count)
           items_col = it->wd->item_count;
          if (it->wd->filled
              && (unsigned int)it->wd->nmax > (unsigned int)it->wd->item_count)
->>>>>>> remotes/origin/upstream
            tcw = it->wd->nmax * it->wd->item_width;
          else
            tcw = items_col * it->wd->item_width;
@@ -1490,7 +1323,7 @@ _item_place(Elm_Gen_Item *it,
                                       it->item->ry = it->item->oy;
                                       it->item->moving = EINA_TRUE;
                                       it->item->moving_effect_start_time = ecore_loop_time_get();
-                                      it->item->item_moving_effect_timer = ecore_animator_add(_reorder_item_moving_effect_timer_cb, it);
+                                      it->item->item_reorder_move_animator = ecore_animator_add(_reorder_item_move_animator_cb, it);
                                       return;
                                    }
                               }
@@ -1560,10 +1393,10 @@ _item_place(Elm_Gen_Item *it,
                          }
                     }
                }
-             else if (it->item->item_moving_effect_timer)
+             else if (it->item->item_reorder_move_animator)
                {
-                  ecore_animator_del(it->item->item_moving_effect_timer);
-                  it->item->item_moving_effect_timer = NULL;
+                  ecore_animator_del(it->item->item_reorder_move_animator);
+                  it->item->item_reorder_move_animator = NULL;
                   it->item->moving = EINA_FALSE;
                }
           }
@@ -1578,19 +1411,13 @@ _item_place(Elm_Gen_Item *it,
    else
      {
         if (!it->group)
-<<<<<<< HEAD
-          _elm_gengrid_item_unrealize(it, EINA_FALSE);
-=======
           _elm_genlist_item_unrealize(it, EINA_FALSE);
->>>>>>> remotes/origin/upstream
         else
           it->item->group_realized = EINA_FALSE;
      }
 }
 
 static void
-<<<<<<< HEAD
-=======
 _item_position_update(Eina_Inlist *list, int idx)
 {
    Elm_Gen_Item *it;
@@ -1603,23 +1430,15 @@ _item_position_update(Eina_Inlist *list, int idx)
 }
 
 static void
->>>>>>> remotes/origin/upstream
 _item_del(Elm_Gen_Item *it)
 {
    Evas_Object *obj = WIDGET(it);
 
    evas_event_freeze(evas_object_evas_get(obj));
    it->wd->selected = eina_list_remove(it->wd->selected, it);
-<<<<<<< HEAD
-   if (it->realized) _elm_gengrid_item_unrealize(it, EINA_FALSE);
-   it->wd->count--;
-   _elm_gengrid_item_del_serious(it);
-=======
    if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE);
-   it->wd->item_count--;
    _elm_genlist_item_del_serious(it);
    elm_gengrid_item_class_unref((Elm_Gengrid_Item_Class *)it->itc);
->>>>>>> remotes/origin/upstream
    evas_event_thaw(evas_object_evas_get(obj));
    evas_event_thaw_eval(evas_object_evas_get(obj));
 }
@@ -1680,11 +1499,7 @@ _calc_job(void *data)
                   count++;
                }
           }
-<<<<<<< HEAD
-        count = wd->count + wd->items_lost - count_group;
-=======
         count = wd->item_count + wd->items_lost - count_group;
->>>>>>> remotes/origin/upstream
         if (wd->horizontal)
           {
              minw = (ceil(count / (float)nmax) * wd->item_width) + (count_group * wd->group_item_width);
@@ -1900,9 +1715,9 @@ _pan_move(Evas_Object *obj,
 }
 
 static void
-_hold_on(void *data       __UNUSED__,
-         Evas_Object     *obj,
-         void *event_info __UNUSED__)
+_hold_on(void        *data  __UNUSED__,
+         Evas_Object *obj,
+         void        *event_info __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
@@ -1910,9 +1725,9 @@ _hold_on(void *data       __UNUSED__,
 }
 
 static void
-_hold_off(void *data       __UNUSED__,
-          Evas_Object     *obj,
-          void *event_info __UNUSED__)
+_hold_off(void        *data __UNUSED__,
+          Evas_Object *obj,
+          void        *event_info __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
@@ -1920,9 +1735,9 @@ _hold_off(void *data       __UNUSED__,
 }
 
 static void
-_freeze_on(void *data       __UNUSED__,
-           Evas_Object     *obj,
-           void *event_info __UNUSED__)
+_freeze_on(void        *data __UNUSED__,
+           Evas_Object *obj,
+           void        *event_info __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
@@ -1949,8 +1764,8 @@ _scr_anim_start(void        *data,
 
 static void
 _scr_anim_stop(void        *data,
-                Evas_Object *obj __UNUSED__,
-                void        *event_info __UNUSED__)
+               Evas_Object *obj __UNUSED__,
+               void        *event_info __UNUSED__)
 {
    evas_object_smart_callback_call(data, SIG_SCROLL_ANIM_STOP, NULL);
 }
@@ -2012,18 +1827,6 @@ _scr_scroll(void            *data,
 }
 
 static int
-<<<<<<< HEAD
-_elm_gengrid_item_compare_data(const void *data, const void *data1)
-{
-   const Elm_Gen_Item *it = data;
-   const Elm_Gen_Item *item1 = data1;
-
-   return it->wd->item_compare_data_cb(it->base.data, item1->base.data);
-}
-
-static int
-=======
->>>>>>> remotes/origin/upstream
 _elm_gengrid_item_compare(const void *data, const void *data1)
 {
    Elm_Gen_Item *it, *item1;
@@ -2035,12 +1838,7 @@ _elm_gengrid_item_compare(const void *data, const void *data1)
 static void
 _item_disable_hook(Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
 
    if (_it->generation < _it->wd->generation) return;
 
@@ -2056,127 +1854,16 @@ _item_disable_hook(Elm_Object_Item *it)
 static void
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   if ((_it->relcount > 0) || (_it->walking > 0))
-     {
-        _elm_gengrid_item_del_notserious(_it);
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
    if ((_it->relcount > 0) || (_it->walking > 0))
      {
         _elm_genlist_item_del_notserious(_it);
->>>>>>> remotes/origin/upstream
         return;
      }
 
    _item_del(_it);
 }
 
-<<<<<<< HEAD
-#if 1
-void
-_item_select(Elm_Gen_Item *it)
-{
-   if ((it->wd->no_select) || (it->generation < it->wd->generation) || (it->mode_set)) return;
-   if (!it->selected)
-     {
-        it->selected = EINA_TRUE;
-        it->wd->selected = eina_list_append(it->wd->selected, it);
-     }
-   else if (!it->wd->always_select) return;
-
-   evas_object_ref(WIDGET(it));
-   it->walking++;
-   it->wd->walking++;
-   if (it->func.func) it->func.func((void *)it->func.data, WIDGET(it), it);
-   if (it->generation == it->wd->generation)
-     evas_object_smart_callback_call(WIDGET(it), SIG_SELECTED, it);
-   it->walking--;
-   it->wd->walking--;
-   evas_object_unref(WIDGET(it));
-   if ((it->wd->clear_me) && (!it->wd->walking))
-     _elm_gengrid_clear(WIDGET(it), EINA_TRUE);
-   else
-     {
-        if ((!it->walking) && (it->generation < it->wd->generation))
-          {
-             if (!it->relcount)
-               {
-                  it->del_cb(it);
-                  elm_widget_item_free(it);
-               }
-          }
-        else
-          it->wd->last_selected_item = (Elm_Object_Item *) it;
-     }
-}
-
-static Evas_Object *
-_item_content_get_hook(Elm_Gen_Item *it, const char *part)
-{
-   return edje_object_part_swallow_get(VIEW(it), part);
-}
-
-static void
-_item_content_set_hook(Elm_Gen_Item *it, const char *part, Evas_Object *content)
-{
-   edje_object_part_swallow(VIEW(it), part, content);
-}
-
-static Evas_Object *
-_item_content_unset_hook(Elm_Gen_Item *it, const char *part)
-{
-   Evas_Object *obj;
-
-   obj = edje_object_part_swallow_get(VIEW(it), part);
-   if (!obj) return NULL;
-   edje_object_part_unswallow(VIEW(it), obj);
-   return obj;
-}
-
-static const char *
-_item_text_hook(Elm_Gen_Item *it, const char *part)
-{
-   if (!it->itc->func.text_get) return NULL;
-   return edje_object_part_text_get(VIEW(it), part);
-}
-
-Elm_Gen_Item *
-_elm_gengrid_item_new(Widget_Data              *wd,
-                      const Elm_Gen_Item_Class *itc,
-                      const void               *data,
-                      Elm_Gen_Item             *parent,
-                      Evas_Smart_Cb             func,
-                      const void               *func_data)
-{
-   Elm_Gen_Item *it;
-
-   it = elm_widget_item_new(wd->obj, Elm_Gen_Item);
-   if (!it) return NULL;
-   it->wd = wd;
-   it->generation = wd->generation;
-   it->itc = itc;
-   it->base.data = data;
-   it->parent = parent;
-   it->func.func = func;
-   it->func.data = func_data;
-   elm_widget_item_content_get_hook_set(it, _item_content_get_hook);
-   elm_widget_item_content_set_hook_set(it, _item_content_set_hook);
-   elm_widget_item_content_unset_hook_set(it, _item_content_unset_hook);
-   //elm_widget_item_disable_hook_set(it, _item_disable_hook);
-   //elm_widget_item_del_pre_hook_set(it, _item_del_pre_hook);
-   /* TEMPORARY */
-   it->sel_cb = (Ecore_Cb)_item_select;
-
-   elm_widget_item_text_get_hook_set(it, _item_text_hook);
-   return it;
-}
-#endif
-
-=======
->>>>>>> remotes/origin/upstream
 static Elm_Gen_Item *
 _item_new(Widget_Data                  *wd,
           const Elm_Gengrid_Item_Class *itc,
@@ -2186,18 +1873,6 @@ _item_new(Widget_Data                  *wd,
 {
    Elm_Gen_Item *it;
 
-<<<<<<< HEAD
-#if 0
-   it = _elm_genlist_item_new(wd, itc, data, NULL, func, func_data);
-#else
-   it = _elm_gengrid_item_new(wd, itc, data, NULL, func, func_data);
-#endif
-   if (!it) return NULL;
-   elm_widget_item_disable_hook_set(it, _item_disable_hook);
-   elm_widget_item_del_pre_hook_set(it, _item_del_pre_hook);
-   it->item = ELM_NEW(Elm_Gen_Item_Type);
-   wd->count++;
-=======
    it = _elm_genlist_item_new(wd, itc, data, NULL, func, func_data);
    if (!it) return NULL;
    elm_widget_item_disable_hook_set(it, _item_disable_hook);
@@ -2205,7 +1880,6 @@ _item_new(Widget_Data                  *wd,
    elm_gengrid_item_class_ref((Elm_Gengrid_Item_Class *)itc);
    it->item = ELM_NEW(Elm_Gen_Item_Type);
    wd->item_count++;
->>>>>>> remotes/origin/upstream
    it->group = it->itc->item_style && (!strcmp(it->itc->item_style, "group_index"));
    ELM_GEN_ITEM_SETUP(it);
 
@@ -2260,11 +1934,7 @@ elm_gengrid_add(Evas_Object *parent)
    elm_smart_scroller_object_theme_set(obj, wd->scr, "gengrid", "base",
                                        "default");
    elm_smart_scroller_bounce_allow_set(wd->scr, bounce,
-<<<<<<< HEAD
-                                      _elm_config->thumbscroll_bounce_enable);
-=======
                                        _elm_config->thumbscroll_bounce_enable);
->>>>>>> remotes/origin/upstream
    elm_widget_resize_object_set(obj, wd->scr);
 
    evas_object_smart_callback_add(wd->scr, "animate,start", _scr_anim_start, obj);
@@ -2283,6 +1953,7 @@ elm_gengrid_add(Evas_Object *parent)
    wd->align_y = 0.5;
    wd->h_bounce = bounce;
    wd->v_bounce = bounce;
+   wd->highlight = EINA_TRUE;
 
    evas_object_smart_callback_add(obj, "scroll-hold-on", _hold_on, obj);
    evas_object_smart_callback_add(obj, "scroll-hold-off", _hold_off, obj);
@@ -2332,8 +2003,8 @@ elm_gengrid_item_size_get(const Evas_Object *obj,
 
 EAPI void
 elm_gengrid_group_item_size_set(Evas_Object *obj,
-                          Evas_Coord   w,
-                          Evas_Coord   h)
+                                Evas_Coord   w,
+                                Evas_Coord   h)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -2347,8 +2018,8 @@ elm_gengrid_group_item_size_set(Evas_Object *obj,
 
 EAPI void
 elm_gengrid_group_item_size_get(const Evas_Object *obj,
-                          Evas_Coord        *w,
-                          Evas_Coord        *h)
+                                Evas_Coord        *w,
+                                Evas_Coord        *h)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -2409,11 +2080,8 @@ elm_gengrid_item_append(Evas_Object                  *obj,
    it = _item_new(wd, itc, data, func, func_data);
    if (!it) return NULL;
    wd->items = eina_inlist_append(wd->items, EINA_INLIST_GET(it));
-<<<<<<< HEAD
-=======
    it->position = eina_inlist_count(wd->items);
    it->position_update = EINA_TRUE;
->>>>>>> remotes/origin/upstream
 
    if (it->group)
      wd->group_items = eina_list_prepend(wd->group_items, it);
@@ -2421,11 +2089,7 @@ elm_gengrid_item_append(Evas_Object                  *obj,
    if (wd->calc_job) ecore_job_del(wd->calc_job);
    wd->calc_job = ecore_job_add(_calc_job, wd);
 
-<<<<<<< HEAD
-   return (Elm_Object_Item *) it;
-=======
    return (Elm_Object_Item *)it;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
@@ -2443,22 +2107,15 @@ elm_gengrid_item_prepend(Evas_Object                  *obj,
    it = _item_new(wd, itc, data, func, func_data);
    if (!it) return NULL;
    wd->items = eina_inlist_prepend(wd->items, EINA_INLIST_GET(it));
-<<<<<<< HEAD
-=======
    _item_position_update(wd->items, 0);
 
->>>>>>> remotes/origin/upstream
    if (it->group)
      wd->group_items = eina_list_append(wd->group_items, it);
 
    if (wd->calc_job) ecore_job_del(wd->calc_job);
    wd->calc_job = ecore_job_add(_calc_job, wd);
 
-<<<<<<< HEAD
-   return (Elm_Object_Item *) it;
-=======
    return (Elm_Object_Item *)it;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
@@ -2479,23 +2136,16 @@ elm_gengrid_item_insert_before(Evas_Object                  *obj,
    if (!it) return NULL;
    wd->items = eina_inlist_prepend_relative
       (wd->items, EINA_INLIST_GET(it), EINA_INLIST_GET((Elm_Gen_Item *) relative));
-<<<<<<< HEAD
-=======
    Eina_Inlist *tmp = eina_inlist_find(wd->items, EINA_INLIST_GET(it));
    _item_position_update(tmp, ((Elm_Gen_Item *)relative)->position);
 
->>>>>>> remotes/origin/upstream
    if (it->group)
      wd->group_items = eina_list_append_relative(wd->group_items, it, ((Elm_Gen_Item *) relative)->parent);
 
    if (wd->calc_job) ecore_job_del(wd->calc_job);
    wd->calc_job = ecore_job_add(_calc_job, wd);
 
-<<<<<<< HEAD
-   return (Elm_Object_Item *) it;
-=======
    return (Elm_Object_Item *)it;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
@@ -2516,30 +2166,15 @@ elm_gengrid_item_insert_after(Evas_Object                  *obj,
    if (!it) return NULL;
    wd->items = eina_inlist_append_relative
       (wd->items, EINA_INLIST_GET(it), EINA_INLIST_GET((Elm_Gen_Item *) relative));
-<<<<<<< HEAD
-=======
    Eina_Inlist *tmp = eina_inlist_find(wd->items, EINA_INLIST_GET(it));
    _item_position_update(tmp, ((Elm_Gen_Item *)relative)->position+1);
 
->>>>>>> remotes/origin/upstream
    if (it->group)
      wd->group_items = eina_list_prepend_relative(wd->group_items, it, ((Elm_Gen_Item *) relative)->parent);
 
    if (wd->calc_job) ecore_job_del(wd->calc_job);
    wd->calc_job = ecore_job_add(_calc_job, wd);
 
-<<<<<<< HEAD
-   return (Elm_Object_Item *) it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_direct_sorted_insert(Evas_Object                  *obj,
-                                      const Elm_Gengrid_Item_Class *itc,
-                                      const void                   *data,
-                                      Eina_Compare_Cb               comp,
-                                      Evas_Smart_Cb                 func,
-                                      const void                   *func_data)
-=======
    return (Elm_Object_Item *)it;
 }
 
@@ -2550,7 +2185,6 @@ elm_gengrid_item_sorted_insert(Evas_Object                  *obj,
                                Eina_Compare_Cb               comp,
                                Evas_Smart_Cb                 func,
                                const void                   *func_data)
->>>>>>> remotes/origin/upstream
 {
    Elm_Gen_Item *it;
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -2566,26 +2200,6 @@ elm_gengrid_item_sorted_insert(Evas_Object                  *obj,
    wd->item_compare_cb = comp;
    wd->items = eina_inlist_sorted_state_insert(wd->items, EINA_INLIST_GET(it),
                                          _elm_gengrid_item_compare, wd->state);
-<<<<<<< HEAD
-   if (wd->calc_job) ecore_job_del(wd->calc_job);
-   wd->calc_job = ecore_job_add(_calc_job, wd);
-
-   return (Elm_Object_Item *) it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_sorted_insert(Evas_Object                  *obj,
-                               const Elm_Gengrid_Item_Class *itc,
-                               const void                   *data,
-                               Eina_Compare_Cb               comp,
-                               Evas_Smart_Cb                 func,
-                               const void                   *func_data)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->item_compare_data_cb = comp;
-
-   return elm_gengrid_item_direct_sorted_insert(obj, itc, data, _elm_gengrid_item_compare_data, func, func_data);
-=======
    _item_position_update(wd->items, 0);
 
    if (wd->calc_job) ecore_job_del(wd->calc_job);
@@ -2594,43 +2208,16 @@ elm_gengrid_item_sorted_insert(Evas_Object                  *obj,
    return (Elm_Object_Item *)it;
 }
 
-EINA_DEPRECATED Elm_Object_Item *
-elm_gengrid_item_direct_sorted_insert(Evas_Object                  *obj,
-                                      const Elm_Gengrid_Item_Class *itc,
-                                      const void                   *data,
-                                      Eina_Compare_Cb               comp,
-                                      Evas_Smart_Cb                 func,
-                                      const void                   *func_data)
-{
-   return elm_gengrid_item_sorted_insert(obj, itc, data, comp, func, func_data);
->>>>>>> remotes/origin/upstream
-}
-
-EAPI void
-elm_gengrid_item_del(Elm_Object_Item *it)
-{
-   elm_object_item_del(it);
-}
-
 EAPI void
 elm_gengrid_horizontal_set(Evas_Object *obj,
-<<<<<<< HEAD
-                           Eina_Bool    setting)
-=======
                            Eina_Bool    horizontal)
->>>>>>> remotes/origin/upstream
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-<<<<<<< HEAD
-   if (setting == wd->horizontal) return;
-   wd->horizontal = setting;
-=======
    horizontal = !!horizontal;
    if (horizontal == wd->horizontal) return;
    wd->horizontal = horizontal;
->>>>>>> remotes/origin/upstream
 
    /* Update the items to conform to the new layout */
    if (wd->calc_job) ecore_job_del(wd->calc_job);
@@ -2646,86 +2233,6 @@ elm_gengrid_horizontal_get(const Evas_Object *obj)
    return wd->horizontal;
 }
 
-<<<<<<< HEAD
-#if 1
-static void
-_elm_gengrid_clear(Evas_Object *obj, Eina_Bool standby)
-{
-   Eina_Inlist *next, *l;
-
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (!standby) wd->generation++;
-
-   if (wd->state)
-     {
-        eina_inlist_sorted_state_free(wd->state);
-        wd->state = NULL;
-     }
-
-   if (wd->walking > 0)
-     {
-        wd->clear_me = 1;
-        return;
-     }
-   evas_event_freeze(evas_object_evas_get(wd->obj));
-   for (l = wd->items, next = l ? l->next : NULL;
-        l;
-        l = next, next = next ? next->next : NULL)
-     {
-        Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(l);
-
-        if (it->generation < wd->generation)
-          {
-             Elm_Gen_Item *itn = NULL;
-
-             if (next) itn = ELM_GEN_ITEM_FROM_INLIST(next);
-             if (itn) itn->walking++; /* prevent early death of subitem */
-             it->del_cb(it);
-             elm_widget_item_free(it);
-             if (itn) itn->walking--;
-          }
-     }
-   wd->clear_me = 0;
-   wd->pan_changed = EINA_TRUE;
-   if (wd->calc_job)
-     {
-        ecore_job_del(wd->calc_job);
-        wd->calc_job = NULL;
-     }
-   if (wd->selected) wd->selected = eina_list_free(wd->selected);
-   if (wd->clear_cb) wd->clear_cb(wd);
-   wd->pan_x = 0;
-   wd->pan_y = 0;
-   wd->minw = 0;
-   wd->minh = 0;
-   wd->count = 0;
-   if (wd->pan_smart)
-     {
-        evas_object_size_hint_min_set(wd->pan_smart, wd->minw, wd->minh);
-        evas_object_smart_callback_call(wd->pan_smart, "changed", NULL);
-     }
-   if (wd->sizing_cb) wd->sizing_cb(wd->obj);
-   elm_smart_scroller_child_region_show(wd->scr, 0, 0, 0, 0);
-   evas_event_thaw(evas_object_evas_get(wd->obj));
-   evas_event_thaw_eval(evas_object_evas_get(wd->obj));
-}
-#endif
-
-EAPI void
-elm_gengrid_clear(Evas_Object *obj)
-{
-#if 0
-   elm_genlist_clear(obj);
-#else
-   _elm_gengrid_clear(obj, EINA_FALSE);
-#endif
-}
-
-EAPI const Evas_Object *
-=======
 EAPI void
 elm_gengrid_clear(Evas_Object *obj)
 {
@@ -2733,7 +2240,6 @@ elm_gengrid_clear(Evas_Object *obj)
 }
 
 EINA_DEPRECATED EAPI const Evas_Object *
->>>>>>> remotes/origin/upstream
 elm_gengrid_item_object_get(const Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
@@ -2744,60 +2250,18 @@ EAPI void
 elm_gengrid_item_update(Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   if (!_it->realized) return;
-   if (_it->want_unrealize) return;
-   _elm_gengrid_item_unrealize(_it, EINA_FALSE);
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
    if (!_it->realized) return;
    if (_it->want_unrealize) return;
    _elm_genlist_item_unrealize(_it, EINA_FALSE);
->>>>>>> remotes/origin/upstream
    _item_realize(_it);
    _item_place(_it, _it->x, _it->y);
 }
 
-EAPI void *
-elm_gengrid_item_data_get(const Elm_Object_Item *it)
-{
-   return elm_object_item_data_get(it);
-}
-
-EAPI void
-elm_gengrid_item_data_set(Elm_Object_Item  *it,
-                          const void       *data)
-{
-   elm_object_item_data_set(it, (void *) data);
-}
-
 EAPI const Elm_Gengrid_Item_Class *
 elm_gengrid_item_item_class_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   if (_it->generation < _it->wd->generation) return NULL;
-   return _it->itc;
-}
-
-EAPI void
-elm_gengrid_item_item_class_set(Elm_Object_Item *it,
-                                const Elm_Gengrid_Item_Class *itc)
-{
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   EINA_SAFETY_ON_NULL_RETURN(itc);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
-   return (Elm_Gengrid_Item_Class *) elm_genlist_item_item_class_get(it);
-}
-
-EINA_DEPRECATED EAPI void
-elm_gengrid_item_item_class_set(Elm_Object_Item *it,
-                                const Elm_Gengrid_Item_Class *itc)
-{
-   elm_gengrid_item_item_class_update(it, itc);
+   return (Elm_Gengrid_Item_Class *)elm_genlist_item_item_class_get(it);
 }
 
 EAPI void
@@ -2807,7 +2271,6 @@ elm_gengrid_item_item_class_update(Elm_Object_Item *it,
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
    EINA_SAFETY_ON_NULL_RETURN(itc);
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
    if (_it->generation < _it->wd->generation) return;
    _it->itc = itc;
    elm_gengrid_item_update(it);
@@ -2819,13 +2282,8 @@ elm_gengrid_item_pos_get(const Elm_Object_Item *it,
                          unsigned int           *y)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   if (x) *x = ((Elm_Gen_Item *) it)->x;
-   if (y) *y = ((Elm_Gen_Item *) it)->y;
-=======
    if (x) *x = ((Elm_Gen_Item *)it)->x;
    if (y) *y = ((Elm_Gen_Item *)it)->y;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
@@ -2835,11 +2293,7 @@ elm_gengrid_multi_select_set(Evas_Object *obj,
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-<<<<<<< HEAD
-   wd->multi = multi;
-=======
    wd->multi = !!multi;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Eina_Bool
@@ -2864,66 +2318,19 @@ elm_gengrid_selected_item_get(const Evas_Object *obj)
 EAPI const Eina_List *
 elm_gengrid_selected_items_get(const Evas_Object *obj)
 {
-<<<<<<< HEAD
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   return wd->selected;
-=======
    return elm_genlist_selected_items_get(obj);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_item_selected_set(Elm_Object_Item  *it,
                               Eina_Bool         selected)
 {
-<<<<<<< HEAD
-#if 0
-   elm_genlist_item_selected_set(it, selected);
-#else
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   Widget_Data *wd = _it->wd;
-   if (!wd) return;
-   if ((_it->generation < wd->generation) || elm_widget_item_disabled_get(_it))
-     return;
-   selected = !!selected;
-   if (_it->selected == selected) return;
-
-   if (selected)
-     {
-        if (!wd->multi)
-          {
-             while (wd->selected)
-               {
-                  if (_it->unhighlight_cb) _it->unhighlight_cb(wd->selected->data);
-                  _it->unsel_cb(wd->selected->data);
-               }
-          }
-        _it->highlight_cb(_it);
-        _item_select(_it);
-        return;
-     }
-   if (_it->unhighlight_cb) _it->unhighlight_cb(_it);
-   _it->unsel_cb(_it);
-#endif
-=======
    elm_genlist_item_selected_set(it, selected);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Eina_Bool
 elm_gengrid_item_selected_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-#if 0
-   return elm_genlist_item_selected_get(it);
-#else
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
-   return ((Elm_Gen_Item *) it)->selected;
-#endif
-=======
    return elm_genlist_item_selected_get(it);
 }
 
@@ -2953,20 +2360,6 @@ elm_gengrid_realized_items_update(Evas_Object *obj)
    list = elm_gengrid_realized_items_get(obj);
    EINA_LIST_FOREACH(list, l, it)
      elm_gengrid_item_update(it);
->>>>>>> remotes/origin/upstream
-}
-
-EAPI void
-elm_gengrid_item_disabled_set(Elm_Object_Item  *it,
-                              Eina_Bool         disabled)
-{
-   elm_object_item_disabled_set(it, disabled);
-}
-
-EAPI Eina_Bool
-elm_gengrid_item_disabled_get(const Elm_Object_Item *it)
-{
-   return elm_object_item_disabled_get(it);
 }
 
 static Evas_Object *
@@ -3009,11 +2402,7 @@ elm_gengrid_item_tooltip_content_cb_set(Elm_Object_Item            *it,
                                         Evas_Smart_Cb               del_cb)
 {
    ELM_OBJ_ITEM_CHECK_OR_GOTO(it, error);
-<<<<<<< HEAD
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
 
    if ((_it->tooltip.content_cb == func) && (_it->tooltip.data == data))
      return;
@@ -3042,11 +2431,7 @@ EAPI void
 elm_gengrid_item_tooltip_unset(Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
 
    if ((VIEW(_it)) && (_it->tooltip.content_cb))
      elm_widget_item_tooltip_unset(_it);
@@ -3066,11 +2451,7 @@ elm_gengrid_item_tooltip_style_set(Elm_Object_Item  *it,
                                    const char       *style)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   eina_stringshare_replace(&((Elm_Gen_Item *) it)->tooltip.style, style);
-=======
    eina_stringshare_replace(&((Elm_Gen_Item *)it)->tooltip.style, style);
->>>>>>> remotes/origin/upstream
    if (VIEW(it)) elm_widget_item_tooltip_style_set(it, style);
 }
 
@@ -3078,22 +2459,14 @@ EAPI const char *
 elm_gengrid_item_tooltip_style_get(const Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-<<<<<<< HEAD
-   return ((Elm_Gen_Item *) it)->tooltip.style;
-=======
    return ((Elm_Gen_Item *)it)->tooltip.style;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Eina_Bool
 elm_gengrid_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
-<<<<<<< HEAD
-   ((Elm_Gen_Item *) it)->tooltip.free_size = disable;
-=======
    ((Elm_Gen_Item *)it)->tooltip.free_size = disable;
->>>>>>> remotes/origin/upstream
    if (VIEW(it)) return elm_widget_item_tooltip_window_mode_set(it, disable);
    return EINA_TRUE;
 }
@@ -3102,11 +2475,7 @@ EAPI Eina_Bool
 elm_gengrid_item_tooltip_window_mode_get(const Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
-<<<<<<< HEAD
-   return ((Elm_Gen_Item *) it)->tooltip.free_size;
-=======
    return ((Elm_Gen_Item *)it)->tooltip.free_size;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
@@ -3114,21 +2483,13 @@ elm_gengrid_item_cursor_set(Elm_Object_Item  *it,
                             const char       *cursor)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   eina_stringshare_replace(&((Elm_Gen_Item *) it)->mouse_cursor, cursor);
-=======
    eina_stringshare_replace(&((Elm_Gen_Item *)it)->mouse_cursor, cursor);
->>>>>>> remotes/origin/upstream
    if (VIEW(it)) elm_widget_item_cursor_set(it, cursor);
 }
 
 EAPI const char *
 elm_gengrid_item_cursor_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-=======
->>>>>>> remotes/origin/upstream
    return elm_widget_item_cursor_get(it);
 }
 
@@ -3136,11 +2497,7 @@ EAPI void
 elm_gengrid_item_cursor_unset(Elm_Object_Item *it)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-<<<<<<< HEAD
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
    if (!_it->mouse_cursor)
      return;
 
@@ -3155,20 +2512,12 @@ EAPI void
 elm_gengrid_item_cursor_style_set(Elm_Object_Item  *it,
                                   const char       *style)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-=======
->>>>>>> remotes/origin/upstream
    elm_widget_item_cursor_style_set(it, style);
 }
 
 EAPI const char *
 elm_gengrid_item_cursor_style_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-=======
->>>>>>> remotes/origin/upstream
    return elm_widget_item_cursor_style_get(it);
 }
 
@@ -3176,20 +2525,12 @@ EAPI void
 elm_gengrid_item_cursor_engine_only_set(Elm_Object_Item  *it,
                                         Eina_Bool         engine_only)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-=======
->>>>>>> remotes/origin/upstream
    elm_widget_item_cursor_engine_only_set(it, engine_only);
 }
 
 EAPI Eina_Bool
 elm_gengrid_item_cursor_engine_only_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
-=======
->>>>>>> remotes/origin/upstream
    return elm_widget_item_cursor_engine_only_get(it);
 }
 
@@ -3200,11 +2541,7 @@ elm_gengrid_reorder_mode_set(Evas_Object *obj,
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-<<<<<<< HEAD
-   wd->reorder_mode = reorder_mode;
-=======
    wd->reorder_mode = !!reorder_mode;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Eina_Bool
@@ -3216,128 +2553,12 @@ elm_gengrid_reorder_mode_get(const Evas_Object *obj)
    return wd->reorder_mode;
 }
 
-<<<<<<< HEAD
-EAPI void
-elm_gengrid_always_select_mode_set(Evas_Object *obj,
-                                   Eina_Bool    always_select)
-{
-#if 0
-   elm_genlist_always_select_mode_set(obj, always_select);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->always_select = always_select;
-#endif
-}
-
-EAPI Eina_Bool
-elm_gengrid_always_select_mode_get(const Evas_Object *obj)
-{
-#if 0
-   return elm_genlist_always_select_mode_get(obj);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return wd->always_select;
-#endif
-}
-
-EAPI void
-elm_gengrid_no_select_mode_set(Evas_Object *obj,
-                               Eina_Bool    no_select)
-{
-#if 0
-   elm_genlist_no_select_mode_set(obj, no_select);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->no_select = no_select;
-#endif
-}
-
-EAPI Eina_Bool
-elm_gengrid_no_select_mode_get(const Evas_Object *obj)
-{
-#if 0
-   return elm_genlist_no_select_mode_get(obj);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return wd->no_select;
-#endif
-=======
-EINA_DEPRECATED EAPI void
-elm_gengrid_always_select_mode_set(Evas_Object *obj,
-                                   Eina_Bool    always_select)
-{
-   if (always_select)
-     elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_ALWAYS);
-   else
-     {
-        Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj);
-        if (oldmode == ELM_OBJECT_SELECT_MODE_ALWAYS)
-          elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_DEFAULT);
-     }
-}
-
-EINA_DEPRECATED EAPI Eina_Bool
-elm_gengrid_always_select_mode_get(const Evas_Object *obj)
-{
-   Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj);
-   if (oldmode == ELM_OBJECT_SELECT_MODE_ALWAYS)
-     return EINA_TRUE;
-   else
-     return EINA_FALSE;
-}
-
-EINA_DEPRECATED EAPI void
-elm_gengrid_no_select_mode_set(Evas_Object *obj,
-                               Eina_Bool    no_select)
-{
-   if (no_select)
-     elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_NONE);
-   else
-     {
-        Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj);
-        if (oldmode == ELM_OBJECT_SELECT_MODE_NONE)
-          elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_DEFAULT);
-     }
-}
-
-EINA_DEPRECATED EAPI Eina_Bool
-elm_gengrid_no_select_mode_get(const Evas_Object *obj)
-{
-   Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj);
-   if (oldmode == ELM_OBJECT_SELECT_MODE_NONE)
-     return EINA_TRUE;
-   else
-     return EINA_FALSE;
->>>>>>> remotes/origin/upstream
-}
-
 EAPI void
 elm_gengrid_bounce_set(Evas_Object *obj,
                        Eina_Bool    h_bounce,
                        Eina_Bool    v_bounce)
 {
-<<<<<<< HEAD
-#if 0
-   elm_genlist_bounce_set(obj, h_bounce, v_bounce);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_bounce_allow_set(wd->scr, h_bounce, v_bounce);
-   wd->h_bounce = h_bounce;
-   wd->v_bounce = v_bounce;
-#endif
-=======
    elm_genlist_bounce_set(obj, h_bounce, v_bounce);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
@@ -3345,19 +2566,7 @@ elm_gengrid_bounce_get(const Evas_Object *obj,
                        Eina_Bool         *h_bounce,
                        Eina_Bool         *v_bounce)
 {
-<<<<<<< HEAD
-#if 0
    elm_genlist_bounce_get(obj, h_bounce, v_bounce);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (h_bounce) *h_bounce = wd->h_bounce;
-   if (v_bounce) *v_bounce = wd->v_bounce;
-#endif
-=======
-   elm_genlist_bounce_get(obj, h_bounce, v_bounce);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
@@ -3365,42 +2574,13 @@ elm_gengrid_page_relative_set(Evas_Object *obj,
                               double       h_pagerel,
                               double       v_pagerel)
 {
-<<<<<<< HEAD
-#if 0
-   _elm_genlist_page_relative_set(obj, h_pagerel, v_pagerel);
-#else
-   Evas_Coord pagesize_h;
-   Evas_Coord pagesize_v;
-
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   elm_smart_scroller_paging_get(wd->scr, NULL, NULL, &pagesize_h, &pagesize_v);
-   elm_smart_scroller_paging_set(wd->scr, h_pagerel, v_pagerel, pagesize_h,
-                                 pagesize_v);
-#endif
-=======
    _elm_genlist_page_relative_set(obj, h_pagerel, v_pagerel);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel)
 {
-<<<<<<< HEAD
-#if 0
    _elm_genlist_page_relative_get(obj, h_pagerel, v_pagerel);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   elm_smart_scroller_paging_get(wd->scr, h_pagerel, v_pagerel, NULL, NULL);
-#endif
-=======
-   _elm_genlist_page_relative_get(obj, h_pagerel, v_pagerel);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
@@ -3408,93 +2588,30 @@ elm_gengrid_page_size_set(Evas_Object *obj,
                           Evas_Coord   h_pagesize,
                           Evas_Coord   v_pagesize)
 {
-<<<<<<< HEAD
-#if 0
-   _elm_genlist_page_size_set(obj, h_pagesize, v_pagesize);
-#else
-   double pagerel_h;
-   double pagerel_v;
-
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_paging_get(wd->scr, &pagerel_h, &pagerel_v, NULL, NULL);
-   elm_smart_scroller_paging_set(wd->scr, pagerel_h, pagerel_v, h_pagesize,
-                                 v_pagesize);
-#endif
-=======
    _elm_genlist_page_size_set(obj, h_pagesize, v_pagesize);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber)
 {
-<<<<<<< HEAD
-#if 0
    _elm_genlist_current_page_get(obj, h_pagenumber, v_pagenumber);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->scr)
-     elm_smart_scroller_current_page_get(wd->scr, h_pagenumber, v_pagenumber);
-#endif
-=======
-   _elm_genlist_current_page_get(obj, h_pagenumber, v_pagenumber);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber)
 {
-<<<<<<< HEAD
-#if 0
    _elm_genlist_last_page_get(obj, h_pagenumber, v_pagenumber);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->scr)
-     elm_smart_scroller_last_page_get(wd->scr, h_pagenumber, v_pagenumber);
-#endif
-=======
-   _elm_genlist_last_page_get(obj, h_pagenumber, v_pagenumber);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber)
 {
-<<<<<<< HEAD
-#if 0
    _elm_genlist_page_show(obj, h_pagenumber, v_pagenumber);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->scr)
-     elm_smart_scroller_page_show(wd->scr, h_pagenumber, v_pagenumber);
-#endif
-=======
-   _elm_genlist_page_show(obj, h_pagenumber, v_pagenumber);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI void
 elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber)
 {
-<<<<<<< HEAD
-#if 0
-   _elm_genlist_page_bring_in(obj, h_pagenumber, v_pagenumber);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->scr)
-     elm_smart_scroller_page_bring_in(wd->scr, h_pagenumber, v_pagenumber);
-#endif
-=======
    _elm_genlist_page_bring_in(obj, h_pagenumber, v_pagenumber);
 }
 
@@ -3524,125 +2641,48 @@ elm_gengrid_scroller_policy_get(const Evas_Object   *obj,
    elm_smart_scroller_policy_get(wd->scr, &s_policy_h, &s_policy_v);
    if (policy_h) *policy_h = (Elm_Scroller_Policy)s_policy_h;
    if (policy_v) *policy_v = (Elm_Scroller_Policy)s_policy_v;
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
 elm_gengrid_first_item_get(const Evas_Object *obj)
 {
-<<<<<<< HEAD
-#if 0
    return elm_genlist_first_item_get(obj);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   if (!wd->items) return NULL;
-   Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(wd->items);
-   while ((it) && (it->generation < wd->generation))
-     it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
-   return (Elm_Object_Item *) it;
-#endif
-=======
-   return elm_genlist_first_item_get(obj);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
 elm_gengrid_last_item_get(const Evas_Object *obj)
 {
-<<<<<<< HEAD
-#if 0
    return elm_genlist_last_item_get(obj);
-#else
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   if (!wd->items) return NULL;
-   Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(wd->items->last);
-   while ((it) && (it->generation < wd->generation))
-     it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
-   return (Elm_Object_Item *) it;
-#endif
-=======
-   return elm_genlist_last_item_get(obj);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
 elm_gengrid_item_next_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-#if 0
-   return elm_genlist_item_next_get(it);
-#else
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   while (_it)
-     {
-        _it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(_it)->next);
-        if ((_it) && (_it->generation == _it->wd->generation)) break;
-     }
-   return (Elm_Object_Item *) _it;
-#endif
-=======
    return elm_genlist_item_next_get(it);
->>>>>>> remotes/origin/upstream
 }
 
 EAPI Elm_Object_Item *
 elm_gengrid_item_prev_get(const Elm_Object_Item *it)
 {
-<<<<<<< HEAD
-#if 0
-   return elm_genlist_item_prev_get(it);
-#else
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-   while (_it)
-     {
-        _it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(_it)->prev);
-        if ((_it) && (_it->generation == _it->wd->generation)) break;
-     }
-   return (Elm_Object_Item *) _it;
-#endif
-=======
    return elm_genlist_item_prev_get(it);
->>>>>>> remotes/origin/upstream
-}
-
-EAPI Evas_Object *
-elm_gengrid_item_gengrid_get(const Elm_Object_Item *it)
-{
-   return elm_object_item_widget_get(it);
 }
 
 EAPI void
-<<<<<<< HEAD
-elm_gengrid_item_show(Elm_Object_Item *it)
-{
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
 elm_gengrid_item_show(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
    Widget_Data *wd = _it->wd;
    Evas_Coord minx = 0, miny = 0;
 
    if ((_it->generation < _it->wd->generation)) return;
    _pan_min_get(wd->pan_smart, &minx, &miny);
 
-<<<<<<< HEAD
-=======
    if (type==ELM_GENGRID_ITEM_SCROLLTO_IN)
      {
         //TODO : type based handling like genlist
      }
 
->>>>>>> remotes/origin/upstream
    if (wd->horizontal)
      elm_smart_scroller_region_bring_in(_it->wd->scr,
                                         ((_it->x - _it->item->prev_group) * wd->item_width) + (_it->item->prev_group * _it->wd->group_item_width) + minx,
@@ -3658,17 +2698,10 @@ elm_gengrid_item_show(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type)
 }
 
 EAPI void
-<<<<<<< HEAD
-elm_gengrid_item_bring_in(Elm_Object_Item *it)
-{
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
-=======
 elm_gengrid_item_bring_in(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type)
 {
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
->>>>>>> remotes/origin/upstream
 
    if (_it->generation < _it->wd->generation) return;
 
@@ -3676,14 +2709,11 @@ elm_gengrid_item_bring_in(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type ty
    Widget_Data *wd = _it->wd;
    _pan_min_get(wd->pan_smart, &minx, &miny);
 
-<<<<<<< HEAD
-=======
    if (type==ELM_GENGRID_ITEM_SCROLLTO_IN)
      {
         //TODO : type based handling like genlist
      }
 
->>>>>>> remotes/origin/upstream
    if (wd->horizontal)
      elm_smart_scroller_region_bring_in(_it->wd->scr,
                                         ((_it->x - _it->item->prev_group) * wd->item_width) + (_it->item->prev_group * _it->wd->group_item_width) + minx,
@@ -3718,81 +2748,6 @@ elm_gengrid_filled_get(const Evas_Object *obj)
    return wd->filled;
 }
 
-<<<<<<< HEAD
-#if 1
-void
-_elm_gengrid_item_unrealize(Elm_Gen_Item *it,
-                            Eina_Bool     calc)
-{
-   Evas_Object *content;
-
-   if (!it->realized) return;
-   if (it->wd->reorder_it == it) return;
-   evas_event_freeze(evas_object_evas_get(WIDGET(it)));
-   if (!calc)
-     evas_object_smart_callback_call(WIDGET(it), SIG_UNREALIZED, it);
-   if (it->long_timer)
-     {
-        ecore_timer_del(it->long_timer);
-        it->long_timer = NULL;
-     }
-
-   elm_widget_stringlist_free(it->texts);
-   it->texts = NULL;
-   elm_widget_stringlist_free(it->contents);
-   it->contents = NULL;
-   elm_widget_stringlist_free(it->states);
-   it->states = NULL;
-
-   EINA_LIST_FREE(it->content_objs, content)
-     evas_object_del(content);
-
-   it->unrealize_cb(it);
-
-   it->realized = EINA_FALSE;
-   it->want_unrealize = EINA_FALSE;
-   evas_event_thaw(evas_object_evas_get(WIDGET(it)));
-   evas_event_thaw_eval(evas_object_evas_get(WIDGET(it)));
-}
-
-void
-_elm_gengrid_item_del_notserious(Elm_Gen_Item *it)
-{
-   elm_widget_item_pre_notify_del(it);
-   it->generation = it->wd->generation - 1; /* This means that the item is deleted */
-   if (it->selected) it->wd->selected = eina_list_remove(it->wd->selected, it);
-
-   if (it->itc->func.del)
-     it->itc->func.del((void *)it->base.data, WIDGET(it));
-}
-
-void
-_elm_gengrid_item_del_serious(Elm_Gen_Item *it)
-{
-   _elm_gengrid_item_del_notserious(it);
-   it->wd->items = eina_inlist_remove(it->wd->items, EINA_INLIST_GET(it));
-   if (it->tooltip.del_cb)
-     it->tooltip.del_cb((void *)it->tooltip.data, WIDGET(it), it);
-   it->wd->walking -= it->walking;
-   if (it->long_timer) ecore_timer_del(it->long_timer);
-   if (it->group)
-     it->wd->group_items = eina_list_remove(it->wd->group_items, it);
-
-   if (it->wd->state)
-     {
-        eina_inlist_sorted_state_free(it->wd->state);
-        it->wd->state = NULL;
-     }
-   if (it->wd->calc_job) ecore_job_del(it->wd->calc_job);
-   it->wd->calc_job = ecore_job_add(it->wd->calc_cb, it->wd);
-   free(it->item);
-
-   it->item = NULL;
-   if (it->wd->last_selected_item == (Elm_Object_Item *) it)
-     it->wd->last_selected_item = NULL;
-}
-#endif
-=======
 EAPI unsigned int
 elm_gengrid_items_count(const Evas_Object *obj)
 {
@@ -3867,7 +2822,7 @@ elm_gengrid_select_mode_get(const Evas_Object *obj)
 
 EAPI void
 elm_gengrid_highlight_mode_set(Evas_Object *obj,
-                             Eina_Bool    highlight)
+                               Eina_Bool    highlight)
 {
    elm_genlist_highlight_mode_set(obj, highlight);
 }
@@ -3886,4 +2841,29 @@ elm_gengrid_item_index_get(const Elm_Object_Item *it)
 
    return _it->position;
 }
->>>>>>> remotes/origin/upstream
+
+EAPI void
+elm_gengrid_item_select_mode_set(Elm_Object_Item *it,
+                                 Elm_Object_Select_Mode mode)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
+   if (!_it) return;
+   if (_it->generation < _it->wd->generation) return;
+   if (mode >= ELM_OBJECT_SELECT_MODE_MAX)
+     return;
+   if (_it->select_mode != mode)
+     _it->select_mode = mode;
+
+   if (_it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+     elm_gengrid_item_update(it);
+}
+
+EAPI Elm_Object_Select_Mode
+elm_gengrid_item_select_mode_get(const Elm_Object_Item *it)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, ELM_OBJECT_SELECT_MODE_MAX);
+   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
+   if (!_it) return ELM_OBJECT_SELECT_MODE_MAX;
+   return _it->select_mode;
+}