/*************/
-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));
}
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);
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 */,
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;
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,
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;
_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)
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);
}
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);
}
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;
{
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;
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;
_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;
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;
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;
continue;
}
num0 = num;
- recalc = 0;
+ recalc = EINA_FALSE;
EINA_LIST_FOREACH(itb->items, l2, it)
{
if (it->updateme)
{
_item_unrealize(it, EINA_FALSE);
_item_realize(it, num, EINA_FALSE);
- position = 1;
+ position = EINA_TRUE;
}
else
{
_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);
}
}
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
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;