}
static void
-_edit_controls_eval( Elm_Genlist_Item *it )
+_edit_controls_eval(Elm_Genlist_Item *it)
{
- int itmode = 0;
- const char *pad_str;
- int pad = 0;
- it->pad_left = 0;
- it->pad_right = 0;
- Evas_Object *icon;
- char buf[1024];
+ int itmode = 0;
+ const char *pad_str;
+ int pad = 0;
+ it->pad_left = 0;
+ it->pad_right = 0;
+ Evas_Object *icon;
+ char buf[1024];
- if( it->wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE && !it->edit_obj )
- return;
+ if (it->wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE && !it->edit_obj)
+ return;
- if( it->itc->func.editmode_get )
- itmode = it->itc->func.editmode_get( it->data, it->wd->obj, it->wd->edit_mode );
- itmode &= it->wd->edit_mode;
+ if (it->itc->func.editmode_get)
+ itmode = it->itc->func.editmode_get(it->data, it->wd->obj, it->wd->edit_mode);
+ itmode &= it->wd->edit_mode;
- if(itmode & ELM_GENLIST_EDIT_MODE_SELECTALL)
- itmode |= ELM_GENLIST_EDIT_MODE_SELECT;
+ if (itmode & ELM_GENLIST_EDIT_MODE_SELECTALL)
+ itmode |= ELM_GENLIST_EDIT_MODE_SELECT;
- if( !it->edit_obj )
- {
- it->edit_obj = edje_object_add(evas_object_evas_get(it->wd->obj));
- edje_object_scale_set(it->edit_obj, elm_widget_scale_get(it->wd->obj) *
- _elm_config->scale);
- evas_object_smart_member_add(it->edit_obj, it->wd->pan_smart);
- elm_widget_sub_object_add(it->wd->obj, it->edit_obj);
- if (it->flags & ELM_GENLIST_ITEM_SUBITEMS) strncpy(buf, "tree", sizeof(buf));
- else strncpy(buf, "item", sizeof(buf));
- if (it->wd->compress) strncat(buf, "_compress", sizeof(buf) - strlen(buf));
- // if (in & 0x1) strncat(buf, "_odd", sizeof(buf) - strlen(buf));
- strncat(buf, "/", sizeof(buf) - strlen(buf));
-
- if(it->wd->ed->ec->item_style && strcmp(it->wd->ed->ec->item_style, "default"))
- {
- strncat(buf, it->wd->ed->ec->item_style, sizeof(buf) - strlen(buf));
- _elm_theme_object_set(it->wd->obj, it->edit_obj, "genlist", buf, elm_widget_style_get(it->wd->obj));
- }
- else
- {
- _elm_theme_object_set(it->wd->obj, it->edit_obj, "genlist", "item/edit_control", elm_widget_style_get(it->wd->obj));
- }
+ if (!it->edit_obj)
+ {
+ it->edit_obj = edje_object_add(evas_object_evas_get(it->wd->obj));
+ edje_object_scale_set(it->edit_obj, elm_widget_scale_get(it->wd->obj) *
+ _elm_config->scale);
+ evas_object_smart_member_add(it->edit_obj, it->wd->pan_smart);
+ elm_widget_sub_object_add(it->wd->obj, it->edit_obj);
+ if (it->flags & ELM_GENLIST_ITEM_SUBITEMS) strncpy(buf, "tree", sizeof(buf));
+ else strncpy(buf, "item", sizeof(buf));
+ if (it->wd->compress) strncat(buf, "_compress", sizeof(buf) - strlen(buf));
+ // if (in & 0x1) strncat(buf, "_odd", sizeof(buf) - strlen(buf));
+ strncat(buf, "/", sizeof(buf) - strlen(buf));
+
+ if (it->wd->ed->ec->item_style && strcmp(it->wd->ed->ec->item_style, "default"))
+ {
+ strncat(buf, it->wd->ed->ec->item_style, sizeof(buf) - strlen(buf));
+ _elm_theme_object_set(it->wd->obj, it->edit_obj, "genlist", buf, elm_widget_style_get(it->wd->obj));
+ }
+ else
+ {
+ _elm_theme_object_set(it->wd->obj, it->edit_obj, "genlist", "item/edit_control", elm_widget_style_get(it->wd->obj));
+ }
- edje_object_signal_callback_add(it->edit_obj, "elm,action,edit,reset",
- "elm", _edit_mode_reset, it);
- }
+ edje_object_signal_callback_add(it->edit_obj, "elm,action,edit,reset",
+ "elm", _edit_mode_reset, it);
+ }
- pad_str = edje_object_data_get(it->edit_obj, "icon_width");
- if (pad_str) pad = atoi(pad_str);
+ pad_str = edje_object_data_get(it->edit_obj, "icon_width");
+ if (pad_str) pad = atoi(pad_str);
- if( (itmode & ELM_GENLIST_EDIT_MODE_INSERT) )
- {
- if(it->wd->animate_edit_controls)
- edje_object_signal_emit(it->edit_obj, "elm,state,ins,animated,enable", "elm");
- else
- edje_object_signal_emit(it->edit_obj, "elm,state,ins,enable", "elm");
-
- edje_object_signal_callback_add(it->edit_obj, "elm,action,item,insert",
- "elm", _insert_new_item_cb, it);
- it->pad_left += pad;
- }
- else
- {
- if(it->wd->animate_edit_controls)
- edje_object_signal_emit(it->edit_obj, "elm,state,ins,animated,disable", "elm");
- else
- edje_object_signal_emit(it->edit_obj, "elm,state,ins,disable", "elm");
+ if ((itmode & ELM_GENLIST_EDIT_MODE_INSERT))
+ {
+ if (it->wd->animate_edit_controls)
+ edje_object_signal_emit(it->edit_obj, "elm,state,ins,animated,enable", "elm");
+ else
+ edje_object_signal_emit(it->edit_obj, "elm,state,ins,enable", "elm");
- edje_object_signal_callback_del(it->edit_obj, "elm,action,item,insert",
- "elm", _insert_new_item_cb );
- }
+ edje_object_signal_callback_add(it->edit_obj, "elm,action,item,insert",
+ "elm", _insert_new_item_cb, it);
+ it->pad_left += pad;
+ }
+ else
+ {
+ if (it->wd->animate_edit_controls)
+ edje_object_signal_emit(it->edit_obj, "elm,state,ins,animated,disable", "elm");
+ else
+ edje_object_signal_emit(it->edit_obj, "elm,state,ins,disable", "elm");
- if( (itmode & ELM_GENLIST_EDIT_MODE_DELETE) || (itmode & ELM_GENLIST_EDIT_MODE_SELECT) )
- {
- if(it->wd->animate_edit_controls)
- edje_object_signal_emit(it->edit_obj, "elm,state,del,animated,enable", "elm");
- else
- edje_object_signal_emit(it->edit_obj, "elm,state,del,enable", "elm");
-
- edje_object_signal_callback_del(it->edit_obj, "elm,action,item,delete",
- "elm", _remove_item_cb );
- edje_object_signal_callback_del(it->edit_obj, "elm,action,hide,del_confirm",
- "elm", _hide_delete_confirm_object );
-
- edje_object_signal_callback_add(it->edit_obj, "elm,action,item,delete",
- "elm", _remove_item_cb, it);
-
- edje_object_signal_callback_add(it->edit_obj, "elm,action,hide,del_confirm",
- "elm", _hide_delete_confirm_object, it );
- it->pad_left += pad;
- evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
- _reorder_mouse_down, it);
- }
- else
- {
- if(it->wd->animate_edit_controls)
- edje_object_signal_emit(it->edit_obj, "elm,state,del,animated,disable", "elm");
- else
- edje_object_signal_emit(it->edit_obj, "elm,state,del,disable", "elm");
+ edje_object_signal_callback_del(it->edit_obj, "elm,action,item,insert",
+ "elm", _insert_new_item_cb );
+ }
- edje_object_signal_callback_del(it->edit_obj, "elm,action,item,delete",
- "elm", _remove_item_cb );
- edje_object_signal_callback_del(it->edit_obj, "elm,action,hide,del_confirm",
- "elm", _hide_delete_confirm_object );
+ if ((itmode & ELM_GENLIST_EDIT_MODE_DELETE) || (itmode & ELM_GENLIST_EDIT_MODE_SELECT))
+ {
+ if (it->wd->animate_edit_controls)
+ edje_object_signal_emit(it->edit_obj, "elm,state,del,animated,enable", "elm");
+ else
+ edje_object_signal_emit(it->edit_obj, "elm,state,del,enable", "elm");
- }
+ edje_object_signal_callback_del(it->edit_obj, "elm,action,item,delete",
+ "elm", _remove_item_cb );
+ edje_object_signal_callback_del(it->edit_obj, "elm,action,hide,del_confirm",
+ "elm", _hide_delete_confirm_object );
- if( (itmode & ELM_GENLIST_EDIT_MODE_REORDER) )
- {
- Evas_Object *reorder_icon;
- const char* reorder_part;
+ edje_object_signal_callback_add(it->edit_obj, "elm,action,item,delete",
+ "elm", _remove_item_cb, it);
- reorder_part = edje_object_data_get(it->edit_obj, "reorder");
- if( reorder_part && edje_object_part_exists(it->edit_obj, reorder_part ) )
- {
- reorder_icon = edje_object_part_object_get(it->edit_obj, reorder_part );
-
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
- _reorder_mouse_down);
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
- _reorder_mouse_up);
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
- _reorder_mouse_move);
-
- evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
- _reorder_mouse_down, it);
- evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
- _reorder_mouse_up, it);
- evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
- _reorder_mouse_move, it);
- }
- // it->pad_right += pad;
- }
- else
- {
- Evas_Object *reorder_icon;
- const char* reorder_part;
+ edje_object_signal_callback_add(it->edit_obj, "elm,action,hide,del_confirm",
+ "elm", _hide_delete_confirm_object, it );
+ it->pad_left += pad;
+ evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
+ _reorder_mouse_down, it);
+ }
+ else
+ {
+ if (it->wd->animate_edit_controls)
+ edje_object_signal_emit(it->edit_obj, "elm,state,del,animated,disable", "elm");
+ else
+ edje_object_signal_emit(it->edit_obj, "elm,state,del,disable", "elm");
- reorder_part = edje_object_data_get(it->edit_obj, "reorder");
- if( reorder_part && edje_object_part_exists(it->edit_obj, reorder_part ) )
- {
- reorder_icon = edje_object_part_object_get(it->edit_obj, reorder_part );
+ edje_object_signal_callback_del(it->edit_obj, "elm,action,item,delete",
+ "elm", _remove_item_cb );
+ edje_object_signal_callback_del(it->edit_obj, "elm,action,hide,del_confirm",
+ "elm", _hide_delete_confirm_object );
+ }
- if(itmode == ELM_GENLIST_EDIT_MODE_NONE)
- {
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
- _reorder_mouse_down);
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
- _reorder_mouse_up);
- evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
- _reorder_mouse_move);
- }
- }
- }
+ if ((itmode & ELM_GENLIST_EDIT_MODE_REORDER))
+ {
+ Evas_Object *reorder_icon;
+ const char* reorder_part;
- if( it->wd->edit_mode != 0xF0) {
- if( it->wd->edit_mode != ELM_GENLIST_EDIT_MODE_NONE)
- {
- if (it->itc->func.icon_get)
+ reorder_part = edje_object_data_get(it->edit_obj, "reorder");
+ if (reorder_part && edje_object_part_exists(it->edit_obj, reorder_part))
+ {
+ reorder_icon = edje_object_part_object_get(it->edit_obj, reorder_part);
+
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
+ _reorder_mouse_down);
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
+ _reorder_mouse_up);
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
+ _reorder_mouse_move);
+
+ evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
+ _reorder_mouse_down, it);
+ evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
+ _reorder_mouse_up, it);
+ evas_object_event_callback_add(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
+ _reorder_mouse_move, it);
+ }
+ // it->pad_right += pad;
+ }
+ else
{
- edje_object_signal_emit(it->edit_obj, "elm,state,edit_end,enable", "elm");
+ Evas_Object *reorder_icon;
+ const char* reorder_part;
- const Eina_List *l;
- const char *key;
+ reorder_part = edje_object_data_get(it->edit_obj, "reorder");
+ if (reorder_part && edje_object_part_exists(it->edit_obj, reorder_part))
+ {
+ reorder_icon = edje_object_part_object_get(it->edit_obj, reorder_part);
- it->icons = _elm_stringlist_get(edje_object_data_get(it->edit_obj, "icons"));
- EINA_LIST_FOREACH(it->icons, l, key)
- {
- Evas_Object *ic = it->itc->func.icon_get(it->data, it->wd->obj, l->data);
+ if (itmode == ELM_GENLIST_EDIT_MODE_NONE)
+ {
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_DOWN,
+ _reorder_mouse_down);
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_UP,
+ _reorder_mouse_up);
+ evas_object_event_callback_del(it->edit_obj, EVAS_CALLBACK_MOUSE_MOVE,
+ _reorder_mouse_move);
+ }
+ }
+ }
- if (ic)
- {
- it->edit_icon_objs = eina_list_append(it->edit_icon_objs, ic);
- edje_object_part_swallow(it->edit_obj, key, ic);
- evas_object_show(ic);
- // elm_widget_sub_object_add(it->wd->obj, ic);
- }
- }
- }
- }
- else
- {
- edje_object_signal_emit(it->edit_obj, "elm,state,edit_end,disable", "elm");
- EINA_LIST_FREE(it->edit_icon_objs, icon)
- evas_object_del(icon);
+ if (it->wd->edit_mode != 0xF0) {
+ if (it->wd->edit_mode != ELM_GENLIST_EDIT_MODE_NONE)
+ {
+ if (it->itc->func.icon_get)
+ {
+ edje_object_signal_emit(it->edit_obj, "elm,state,edit_end,enable", "elm");
+
+ const Eina_List *l;
+ const char *key;
- Evas_Object *editfield;
- EINA_LIST_FREE(it->wd->edit_field, editfield)
- evas_object_del(editfield);
+ it->icons = _elm_stringlist_get(edje_object_data_get(it->edit_obj, "icons"));
+ EINA_LIST_FOREACH(it->icons, l, key)
+ {
+ Evas_Object *ic = it->itc->func.icon_get(it->data, it->wd->obj, l->data);
+ if (ic)
+ {
+ it->edit_icon_objs = eina_list_append(it->edit_icon_objs, ic);
+ edje_object_part_swallow(it->edit_obj, key, ic);
+ evas_object_show(ic);
+ // elm_widget_sub_object_add(it->wd->obj, ic);
+ }
+ }
+ }
+ }
+ else
+ {
+ edje_object_signal_emit(it->edit_obj, "elm,state,edit_end,disable", "elm");
+ EINA_LIST_FREE(it->edit_icon_objs, icon)
+ evas_object_del(icon);
- }
+ Evas_Object *editfield;
+ EINA_LIST_FREE(it->wd->edit_field, editfield)
+ evas_object_del(editfield);
+ }
}
- if( it->wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE )//Unrealize
- {
- evas_object_del(it->edit_obj);
- it->edit_obj = NULL;
- return;
- }
- _move_edit_controls(it,it->scrl_x, it->scrl_y );
- evas_object_show( it->edit_obj );
+ if (it->wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE)//Unrealize
+ {
+ evas_object_del(it->edit_obj);
+ it->edit_obj = NULL;
+ return;
+ }
+ _move_edit_controls(it,it->scrl_x, it->scrl_y );
+ evas_object_show( it->edit_obj );
}
static void
EAPI void
elm_genlist_edit_mode_set(Evas_Object *obj, int emode, Elm_Genlist_Edit_Class *edit_class)
{
- Eina_List * realized_list;
- Elm_Genlist_Item *it;
- Eina_List *l;
- Item_Block *itb;
+ Eina_List * realized_list;
+ Elm_Genlist_Item *it;
+ Eina_List *l;
+ Item_Block *itb;
- static Elm_Genlist_Item_Class itc;
+ static Elm_Genlist_Item_Class itc;
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return;
- if (wd->edit_mode == emode) return;
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if (wd->edit_mode == emode) return;
- wd->edit_mode = emode;
+ wd->edit_mode = emode;
- wd->animate_edit_controls = 1;
+ wd->animate_edit_controls = 1;
- if (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECTALL)
- wd->edit_mode |= ELM_GENLIST_EDIT_MODE_SELECT;
+ if (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECTALL)
+ wd->edit_mode |= ELM_GENLIST_EDIT_MODE_SELECT;
- if (wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE)
- {
- if (wd->ed) free (wd->ed);
- wd->ed = NULL;
- }
- else
- {
- if (!wd->ed)
- wd->ed = calloc(1, sizeof(Edit_Data));
+ if (wd->edit_mode == ELM_GENLIST_EDIT_MODE_NONE)
+ {
+ if (wd->ed) free (wd->ed);
+ wd->ed = NULL;
+ }
+ else
+ {
+ if (!wd->ed)
+ wd->ed = calloc(1, sizeof(Edit_Data));
- wd->ed->ec = edit_class;
+ wd->ed->ec = edit_class;
- if (((wd->edit_mode & ELM_GENLIST_EDIT_MODE_DELETE) || (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECT)) && !wd->ed->del_confirm)
- {
- wd->ed->del_confirm = elm_button_add(wd->obj);
- elm_button_label_set(wd->ed->del_confirm, "Delete");
- evas_object_smart_member_add(wd->ed->del_confirm, wd->pan_smart);
- edje_object_scale_set( wd->ed->del_confirm, elm_widget_scale_get(wd->ed->del_confirm) *
- _elm_config->scale);
- evas_object_smart_callback_add(wd->ed->del_confirm, "clicked", _delete_confirm_cb, wd );
+ if (((wd->edit_mode & ELM_GENLIST_EDIT_MODE_DELETE) || (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECT)) && !wd->ed->del_confirm)
+ {
+ wd->ed->del_confirm = elm_button_add(wd->obj);
+ elm_button_label_set(wd->ed->del_confirm, "Delete");
+ evas_object_smart_member_add(wd->ed->del_confirm, wd->pan_smart);
+ edje_object_scale_set( wd->ed->del_confirm, elm_widget_scale_get(wd->ed->del_confirm) *
+ _elm_config->scale);
+ evas_object_smart_callback_add(wd->ed->del_confirm, "clicked", _delete_confirm_cb, wd );
+ }
}
- }
- realized_list = elm_genlist_realized_items_get(obj);
- EINA_INLIST_FOREACH(wd->blocks, itb)
- {
- EINA_LIST_FOREACH(itb->items, l, it)
+ realized_list = elm_genlist_realized_items_get(obj);
+ EINA_INLIST_FOREACH(wd->blocks, itb)
{
- it->delete_check = 0;
- it->del_confirm_state = 0;
- _item_unselect(it);
- _edit_controls_eval(it);
+ EINA_LIST_FOREACH(itb->items, l, it)
+ {
+ it->delete_check = 0;
+ it->del_confirm_state = 0;
+ _item_unselect(it);
+ _edit_controls_eval(it);
+ }
}
- }
- if (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECTALL)
- {
- if(edit_class->select_all_item_style && strcmp(edit_class->select_all_item_style, "default"))
- itc.item_style = edit_class->select_all_item_style;
- else
- itc.item_style = "select_all";
- itc.func.label_get = NULL;
- itc.func.icon_get = NULL;
- itc.func.del = NULL;
- itc.func.editmode_get = NULL;
+ if (wd->edit_mode & ELM_GENLIST_EDIT_MODE_SELECTALL)
+ {
+ if(edit_class->select_all_item_style && strcmp(edit_class->select_all_item_style, "default"))
+ itc.item_style = edit_class->select_all_item_style;
+ else
+ itc.item_style = "select_all";
+ itc.func.label_get = NULL;
+ itc.func.icon_get = NULL;
+ itc.func.del = NULL;
+ itc.func.editmode_get = NULL;
- wd->select_all_item = _item_new(wd, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ wd->select_all_item = _item_new(wd, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- if (!wd) return;
- if (!wd->select_all_item) return;
+ if (!wd) return;
+ if (!wd->select_all_item) return;
- _item_realize(wd->select_all_item, 0, 0);
- edje_object_signal_callback_add(wd->select_all_item->base, "elm,action,select,press", "elm", _select_all_down, wd->select_all_item);
+ _item_realize(wd->select_all_item, 0, 0);
+ edje_object_signal_callback_add(wd->select_all_item->base, "elm,action,select,press", "elm", _select_all_down, wd->select_all_item);
- wd->select_all_item->rel = NULL;
- wd->select_all_item->selected = 0;
- wd->select_all_item->before = 1;
- wd->select_all_item->block = NULL;
- wd->select_all_minh = wd->minh + wd->select_all_item->h;
- }
- else
- {
- if (wd->select_all_item)
- {
- if (wd->select_all_item->realized) _item_unrealize(wd->select_all_item);
- free(wd->select_all_item);
+ wd->select_all_item->rel = NULL;
+ wd->select_all_item->selected = 0;
+ wd->select_all_item->before = 1;
+ wd->select_all_item->block = NULL;
+ wd->select_all_minh = wd->minh + wd->select_all_item->h;
}
- wd->select_all_item = NULL;
+ else
+ {
+ if (wd->select_all_item)
+ {
+ if (wd->select_all_item->realized) _item_unrealize(wd->select_all_item);
+ free(wd->select_all_item);
+ }
+ wd->select_all_item = NULL;
- }
- edje_object_signal_emit(wd->scr, "elm,state,edit,animated,enable", "elm");
+ }
+ edje_object_signal_emit(wd->scr, "elm,state,edit,animated,enable", "elm");
- if (wd->calc_job) ecore_job_del(wd->calc_job);
- wd->calc_job = ecore_job_add(_calc_job, wd);
+ if (wd->calc_job) ecore_job_del(wd->calc_job);
+ wd->calc_job = ecore_job_add(_calc_job, wd);
}
/**