Elementary genlist: Code refactoring.
authorseoz <seoz@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 4 Jun 2011 01:52:08 +0000 (01:52 +0000)
committerseoz <seoz@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 4 Jun 2011 01:52:08 +0000 (01:52 +0000)
git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@59942 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/test_genlist.c
src/lib/elm_genlist.c

index 545403a..04c14b1 100644 (file)
@@ -1783,30 +1783,8 @@ test_genlist10(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
 
 /*************/
 
-static Elm_Genlist_Item_Class itc11;
-
-char *gl11_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
-{
-   char buf[256];
-   snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
-   return strdup(buf);
-}
-
-Evas_Object *gl11_icon_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
-{
-   char buf[PATH_MAX];
-   Evas_Object *ic = elm_icon_add(obj);
-   if (!strcmp(part, "elm.swallow.end"))
-     snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
-   else
-     snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
-   elm_icon_file_set(ic, buf, NULL);
-   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-   return ic;
-}
-
 static void
-_reorder_tg_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
+_reorder_tg_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
 {
    elm_genlist_reorder_mode_set(data, elm_toggle_state_get(obj));
 }
@@ -1837,7 +1815,7 @@ test_genlist11(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    Evas_Object *win, *bg, *fr, *lb, *bx, *tg, *gl;
    int i;
 
-   win = elm_win_add(NULL, "genlist11", ELM_WIN_BASIC);
+   win = elm_win_add(NULL, "genlist-reorder-mode", ELM_WIN_BASIC);
    elm_win_title_set(win, "Genlist Reorder Mode");
    elm_win_autodel_set(win, 1);
 
@@ -1872,20 +1850,20 @@ test_genlist11(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    tg = elm_toggle_add(win);
    elm_toggle_label_set(tg, "Reorder Mode:");
    elm_toggle_state_set(tg, elm_mirrored_get());
-   evas_object_smart_callback_add(tg, "changed", _reorder_tg_changed, gl);
+   evas_object_smart_callback_add(tg, "changed", _reorder_tg_changed_cb, gl);
    elm_box_pack_end(bx, tg);
    evas_object_show(tg);
 
-   itc11.item_style     = "default";
-   itc11.func.label_get = gl11_label_get;
-   itc11.func.icon_get  = gl11_icon_get;
-   itc11.func.state_get = gl_state_get;
-   itc11.func.del       = gl_del;
-   itc11.func.moved     = gl_moved;
+   itc1.item_style     = "default";
+   itc1.func.label_get = gl_label_get;
+   itc1.func.icon_get  = gl_icon_get;
+   itc1.func.state_get = gl_state_get;
+   itc1.func.del       = gl_del;
+   itc1.func.moved     = gl_moved;
 
    for (i = 0; i < 50; i++)
      elm_genlist_item_append(gl,
-                             &itc11,
+                             &itc1,
                              (void *)(1 + i)/* item data */,
                              NULL/* parent */,
                              ELM_GENLIST_ITEM_NONE/* flags */,
index 60b4bc9..b56843d 100644 (file)
@@ -214,7 +214,7 @@ struct _Widget_Data
    Evas_Coord        anchor_y, reorder_start_y;
    Elm_List_Mode     mode;
    Ecore_Timer      *multi_timer, *scr_hold_timer;
-   Ecore_Animator   *item_moving_effect_timer;
+   Ecore_Animator   *reorder_move_animator;
    const char       *mode_type;
    unsigned int      start_time;
    Evas_Coord        prev_x, prev_y, prev_mx, prev_my;
@@ -372,7 +372,8 @@ static void      _theme_hook(Evas_Object *obj);
 static void      _show_region_hook(void        *data,
                                    Evas_Object *obj);
 static void      _sizing_eval(Evas_Object *obj);
-static void      _item_unrealize(Elm_Genlist_Item *it, Eina_Bool calc);
+static void      _item_unrealize(Elm_Genlist_Item *it,
+                                 Eina_Bool         calc);
 static void      _item_block_unrealize(Item_Block *itb);
 static void      _calc_job(void *data);
 static void      _on_focus_hook(void        *data,
@@ -390,14 +391,19 @@ static void      _signal_emit_hook(Evas_Object *obj,
                                    const char *source);
 static Eina_Bool _deselect_all_items(Widget_Data *wd);
 static void      _pan_calculate(Evas_Object *obj);
-static void      _item_position(Elm_Genlist_Item *it, Evas_Object *obj, Evas_Coord it_x, Evas_Coord it_y);
+static void      _item_position(Elm_Genlist_Item *it,
+                                Evas_Object      *obj,
+                                Evas_Coord        it_x,
+                                Evas_Coord        it_y);
 static void      _mode_item_realize(Elm_Genlist_Item *it);
 static void      _mode_item_unrealize(Elm_Genlist_Item *it);
 static void      _item_mode_set(Elm_Genlist_Item *it);
 static void      _item_mode_unset(Widget_Data *wd);
 static void      _group_items_recalc(void *data);
-static void      _item_move_after(Elm_Genlist_Item *it, Elm_Genlist_Item *after);
-static void      _item_move_before(Elm_Genlist_Item *it, Elm_Genlist_Item *before);
+static void      _item_move_after(Elm_Genlist_Item *it,
+                                  Elm_Genlist_Item *after);
+static void      _item_move_before(Elm_Genlist_Item *it,
+                                   Elm_Genlist_Item *before);
 
 static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION;
 
@@ -2032,7 +2038,9 @@ _item_realize(Elm_Genlist_Item *it,
         _elm_genlist_item_state_update(it, itc);
      }
 
-   if ((calc) && (it->wd->homogeneous) && ((it->wd->item_width) || ((it->wd->item_width) && (it->wd->group_item_width))))
+   if ((calc) && (it->wd->homogeneous) &&
+       ((it->wd->item_width) ||
+        ((it->wd->item_width) && (it->wd->group_item_width))))
      {
         /* homogenous genlist shortcut */
         if (!it->mincalcd)
@@ -2106,18 +2114,21 @@ _item_realize(Elm_Genlist_Item *it,
    if (itc) _item_cache_free(itc);
    evas_event_thaw(evas_object_evas_get(it->wd->obj));
    evas_event_thaw_eval(evas_object_evas_get(it->wd->obj));
-   if (!calc) evas_object_smart_callback_call(it->base.widget, SIG_REALIZED, it);
+   if (!calc)
+     evas_object_smart_callback_call(it->base.widget, SIG_REALIZED, it);
 }
 
 static void
-_item_unrealize(Elm_Genlist_Item *it, Eina_Bool calc)
+_item_unrealize(Elm_Genlist_Item *it,
+                Eina_Bool         calc)
 {
    Evas_Object *icon;
 
    if (!it->realized) return;
    if (it->wd->reorder_it == it) return;
    evas_event_freeze(evas_object_evas_get(it->wd->obj));
-   if (!calc) evas_object_smart_callback_call(it->base.widget, SIG_UNREALIZED, it);
+   if (!calc)
+     evas_object_smart_callback_call(it->base.widget, SIG_UNREALIZED, it);
    if (it->long_timer)
      {
         ecore_timer_del(it->long_timer);
@@ -2132,8 +2143,11 @@ _item_unrealize(Elm_Genlist_Item *it, Eina_Bool calc)
      }
    else
      {
-        edje_object_mirrored_set(it->base.view, elm_widget_mirrored_get(it->base.widget));
-        edje_object_scale_set(it->base.view, elm_widget_scale_get(it->base.widget) * _elm_config->scale);
+        edje_object_mirrored_set(it->base.view,
+                                 elm_widget_mirrored_get(it->base.widget));
+        edje_object_scale_set(it->base.view,
+                              elm_widget_scale_get(it->base.widget)
+                              * _elm_config->scale);
         _item_cache_add(it);
      }
    elm_widget_stringlist_free(it->labels);
@@ -2300,7 +2314,7 @@ _get_space_for_reorder_item(Elm_Genlist_Item *it)
 }
 
 static Eina_Bool
-_reorder_item_moving_effect_timer_cb(void *data)
+_reorder_move_animator_cb(void *data)
 {
    Elm_Genlist_Item *it = data;
    Eina_Bool down = EINA_FALSE;
@@ -2335,14 +2349,17 @@ _reorder_item_moving_effect_timer_cb(void *data)
      {
         it->old_scrl_y = it->scrl_y;
         it->move_effect_enabled = EINA_FALSE;
-        it->wd->item_moving_effect_timer = NULL;
+        it->wd->reorder_move_animator = NULL;
         return ECORE_CALLBACK_CANCEL;
      }
    return ECORE_CALLBACK_RENEW;
 }
 
 static void
-_item_position(Elm_Genlist_Item *it, Evas_Object *view, Evas_Coord it_x, Evas_Coord it_y)
+_item_position(Elm_Genlist_Item *it,
+               Evas_Object      *view,
+               Evas_Coord        it_x,
+               Evas_Coord        it_y)
 {
    if (!it) return;
    if (!view) return;
@@ -2407,16 +2424,20 @@ _item_block_position(Item_Block *itb,
                             if (!it->move_effect_enabled)
                               {
                                  it->move_effect_enabled = EINA_TRUE;
-                                 it->wd->item_moving_effect_timer = ecore_animator_add(_reorder_item_moving_effect_timer_cb, it);
+                                 it->wd->reorder_move_animator =
+                                    ecore_animator_add(
+                                       _reorder_move_animator_cb, it);
                               }
                          }
                        if (!it->move_effect_enabled)
                           {
                              {
                                 if (it->mode_view)
-                                   _item_position(it, it->mode_view, it->scrl_x, it->scrl_y);
+                                  _item_position(it, it->mode_view, it->scrl_x,
+                                                 it->scrl_y);
                                 else
-                                   _item_position(it, it->base.view, it->scrl_x, it->scrl_y);
+                                  _item_position(it, it->base.view, it->scrl_x,
+                                                 it->scrl_y);
                              }
                            it->old_scrl_x = it->scrl_x;
                            it->old_scrl_y = it->scrl_y;
@@ -2482,12 +2503,11 @@ static void
 _calc_job(void *data)
 {
    Widget_Data *wd = data;
-   Item_Block *itb;
+   Item_Block *itb, *chb = NULL;
    Evas_Coord minw = -1, minh = 0, y = 0, ow;
-   Item_Block *chb = NULL;
-   int in = 0, minw_change = 0;
-   Eina_Bool changed = EINA_FALSE;
+   int in = 0;
    double t0, t;
+   Eina_Bool minw_change = EINA_FALSE, changed = EINA_FALSE;
    Eina_Bool did_must_recalc = EINA_FALSE;
    if (!wd) return;
 
@@ -2532,7 +2552,7 @@ _calc_job(void *data)
         else if ((!itb->must_recalc) && (minw < itb->minw))
           {
              minw = itb->minw;
-             minw_change = 1;
+             minw_change = EINA_TRUE;
           }
         itb->w = minw;
         itb->h = itb->minh;
@@ -2614,7 +2634,8 @@ _update_job(void *data)
    Widget_Data *wd = data;
    Eina_List *l2;
    Item_Block *itb;
-   int num, num0, position = 0, recalc = 0;
+   int num, num0;
+   Eina_Bool position = EINA_FALSE, recalc = EINA_FALSE;
    if (!wd) return;
    wd->update_job = NULL;
    num = 0;
@@ -2633,7 +2654,7 @@ _update_job(void *data)
              continue;
           }
         num0 = num;
-        recalc = 0;
+        recalc = EINA_FALSE;
         EINA_LIST_FOREACH(itb->items, l2, it)
           {
              if (it->updateme)
@@ -2646,7 +2667,7 @@ _update_job(void *data)
                     {
                        _item_unrealize(it, EINA_FALSE);
                        _item_realize(it, num, EINA_FALSE);
-                       position = 1;
+                       position = EINA_TRUE;
                     }
                   else
                     {
@@ -2654,14 +2675,14 @@ _update_job(void *data)
                        _item_unrealize(it, EINA_TRUE);
                     }
                   if ((it->minw != itminw) || (it->minh != itminh))
-                    recalc = 1;
+                    recalc = EINA_TRUE;
                }
              num++;
           }
         itb->updateme = EINA_FALSE;
         if (recalc)
           {
-             position = 1;
+             position = EINA_TRUE;
              itb->changed = EINA_TRUE;
              _item_block_recalc(itb, num0, 0);
              _item_block_position(itb, num0);
@@ -2717,7 +2738,7 @@ _pan_set(Evas_Object *obj,
           }
      }
 done:
-   if (!sd->wd->item_moving_effect_timer) evas_object_smart_changed(obj);
+   if (!sd->wd->reorder_move_animator) evas_object_smart_changed(obj);
 }
 
 static void
@@ -3857,10 +3878,10 @@ elm_genlist_clear(Evas_Object *obj)
         eina_list_free(wd->selected);
         wd->selected = NULL;
      }
-   if (wd->item_moving_effect_timer)
+   if (wd->reorder_move_animator)
      {
-        ecore_animator_del(wd->item_moving_effect_timer);
-        wd->item_moving_effect_timer = NULL;
+        ecore_animator_del(wd->reorder_move_animator);
+        wd->reorder_move_animator = NULL;
      }
    wd->show_item = NULL;
    wd->pan_x = 0;