Evas_Object * edje;
Evas_Object * box;
Evas_Object * event_box;
+ Evas_Object * more_item;
+ Evas_Object * selected_box;
Evas_Object * moving_obj;
Elm_Controlbar_Item * moving_item;
static void bar_item_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void bar_item_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+/////////////////////////
+// temp function
+////////////////////////
+
+static void
+print_all_items(Widget_Data *wd)
+{
+ const Eina_List *l;
+ Elm_Controlbar_Item * item;
+
+ EINA_LIST_FOREACH(wd->items, l, item)
+ {
+ printf("item label : %s order : %d\n", item->label, item->order);
+ }
+}
+
///////////////////////////////////////////////////////////////////
//
// Smart Object basic function
_controlbar_move(void *data, Evas_Object * obj)
{
Widget_Data * wd;
+ Evas_Object *bg;
Evas_Coord x, y;
if (!data)
return;
evas_object_geometry_get(wd->parent, &x, &y, NULL, NULL);
evas_object_move(wd->edit_box, x, y);
evas_object_move(wd->event_box, x, y);
+ bg = edje_object_part_object_get(wd->edje, "bg_image");
+ evas_object_geometry_get(bg, &x, &y, NULL, NULL);
+ evas_object_move(wd->box, x, y);
}
static void
_controlbar_resize(void *data, Evas_Object * obj)
{
Widget_Data * wd;
+ Evas_Object *bg;
Evas_Coord y, y_, w, h, height;
if (!data)
return;
evas_object_geometry_get(wd->parent, NULL, &y_, NULL, NULL);
evas_object_resize(wd->edit_box, w, h + y - y_);
evas_object_resize(wd->event_box, w, h + y - y_);
+ bg = edje_object_part_object_get(wd->edje, "bg_image");
+ evas_object_geometry_get(bg, NULL, NULL, &w, &h);
+ evas_object_resize(wd->box, w, h);
}
static void
evas_object_show(wd->view);
evas_object_show(wd->edit_box);
evas_object_show(wd->edje);
+ evas_object_show(wd->box);
evas_object_show(wd->event_box);
}
evas_object_hide(wd->view);
evas_object_hide(wd->edit_box);
evas_object_hide(wd->edje);
+ evas_object_hide(wd->box);
evas_object_hide(wd->event_box);
}
evas_object_del(wd->edje);
wd->edje = NULL;
}
+ if (wd->selected_box)
+ {
+ evas_object_del(wd->selected_box);
+ wd->edje = NULL;
+ }
if (wd->box)
{
evas_object_del(wd->box);
evas_object_del(item->base);
if (item->edit_item)
evas_object_del(item->edit_item);
+ if(item->view)
+ edje_object_part_unswallow(wd->view, item->view);
free(item);
item = NULL;
}
ad->timer = NULL;
evas_object_move(ad->obj, px, py);
evas_object_resize(ad->obj, pw, ph);
+ evas_object_show(ad->obj);
if (ad->func != NULL)
ad->func(ad->data, ad->obj);
}
{
evas_object_move(ad->obj, px, py);
evas_object_resize(ad->obj, pw, ph);
+ evas_object_show(ad->obj);
}
return EXIT_FAILURE;
}
item1 = (Elm_Controlbar_Item *) d1;
item2 = (Elm_Controlbar_Item *) d2;
if (item1->order <= 0)
- return -1;
- if (item2->order <= 0)
return 1;
+ if (item2->order <= 0)
+ return -1;
return item1->order > item2->order ? -1 : 1;
}
Widget_Data * wd = (Widget_Data *) data;
wd->items = eina_list_sort(wd->items, eina_list_count(wd->items), sort_cb);
-
+
evas_object_smart_callback_call(wd->object, "edit,end", wd->items);
edje_object_signal_emit(wd->edit_box, "elm,state,hide,edit_box", "elm");
//
////////////////////////////////////////////////////////////////////
+static int
+check_bar_item_number(Widget_Data *wd)
+{
+ const Eina_List *l;
+ Elm_Controlbar_Item * item;
+ int num = 0;
+
+ EINA_LIST_FOREACH(wd->items, l, item)
+ {
+ if(item->order > 0) num++;
+ }
+
+ return num;
+}
+
static void
item_insert_in_bar(Elm_Controlbar_Item * it, int order)
{
item_delete_in_bar(Elm_Controlbar_Item * it)
{
const Eina_List *l;
-
Elm_Controlbar_Item * item;
Widget_Data * wd = elm_widget_data_get(it->obj);
int i = 0;
}
static void
+hide_selected_box(void *data)
+{
+ Evas_Object *selected_box = (Evas_Object *)data;
+
+ evas_object_hide(selected_box);
+}
+
+static void
object_color_set(Evas_Object *ly, const char *color_part, const char *obj_part)
{
Evas_Object *color;
evas_object_color_set(color, r, g, b, a);
}
-static void
+ static void
_end_selected_box(void *data, Evas_Object *obj)
{
- Widget_Data * wd = (Widget_Data *)data;
+ Widget_Data * wd = (Widget_Data *)data;
- edje_object_signal_emit(_EDJ(wd->pre_item->base), "elm,state,unselected", "elm");
- edje_object_signal_emit(_EDJ(wd->cur_item->base), "elm,state,selected", "elm");
+ edje_object_signal_emit(_EDJ(wd->cur_item->base), "elm,state,selected", "elm");
+
+ // evas_object_hide(wd->selected_box);
wd->animating--;
if (wd->animating < 0)
printf("animation error\n");
wd->animating = 0;
}
+
+ ecore_idler_add(hide_selected_box, wd->selected_box);
}
static void
evas_object_geometry_get(to, &tx, &ty, &tw, &th);
edje_object_signal_emit(_EDJ(wd->pre_item->base), "elm,state,unselected", "elm");
- edje_object_signal_emit(_EDJ(wd->cur_item->base), "elm,state,selected", "elm");
- printf("layer from : %d to : %d \n", evas_object_layer_get(fit->base),evas_object_layer_get(tit->base));
+ edje_object_signal_emit(_EDJ(wd->cur_item->base), "elm,state,unselected", "elm");
- Evas_Object *icon = (Evas_Object *)edje_object_part_object_get(_EDJ(tit->base), "elm.swallow.icon");
- //evas_object_stack_below(from, icon);
- //evas_object_raise(from);
- evas_object_layer_set(fit->base, 123);
wd->animating++;
- move_object_with_animation(to, fx, fy, fw, fh, tx, ty, tw, th,
- 0.6, move_evas_object, _end_selected_box, wd);
+ move_object_with_animation(wd->selected_box, fx, fy, fw, fh, tx, ty, tw, th,
+ 0.3, move_evas_object, _end_selected_box, wd);
}
static void
edje_object_signal_emit(_EDJ(it->base), "elm,state,selected", "elm");
- if(fit != NULL && fit != it){
- evas_object_geometry_get(fit->view, &x, &y, &w, &h);
+ if(fit != NULL && fit != it)
+ {
+// evas_object_geometry_get(fit->view, &x, &y, &w, &h);
// move_object_with_animation(fit->view, x, y, w, h, x, y, w, h, 0.5, move_fade_out_object, NULL, NULL);
// if(fit->order > it->order)
-// move_object_with_animation(it->view, x+20, y, w, h, x, y, w, h, 0.5, move_fade_in_object, NULL, NULL);
+// move_object_with_animation(it->view, x+120, y, w, h, x, y, w, h, 0.5, move_fade_in_object, NULL, NULL);
// else
-// move_object_with_animation(it->view, x-20, y, w, h, x, y, w, h, 0.5, move_fade_in_object, NULL, NULL);
-
+// move_object_with_animation(it->view, x-120, y, w, h, x, y, w, h, 0.5, move_fade_in_object, NULL, NULL);
+
//fit->selected = EINA_FALSE;
//edje_object_part_unswallow(wd->view, fit->view);
//evas_object_hide(fit->view);
- }
- edje_object_part_swallow(wd->view, "elm.swallow.view", it->view);
- evas_object_show(it->view);
+ }
+// printf("view is swallowed :: %d\n",
+// edje_object_part_swallow(wd->view, "elm.swallow.view", it->view));
+ edje_object_part_swallow(wd->view, "elm.swallow.view", it->view);
+ evas_object_show(it->view);
}else if(it->style == TOOLBAR){
- if (it->func)
- it->func(it->data, it->obj, it);
+ if (it->func)
+ it->func(it->data, it->obj, it);
+ object_color_set(it->base, "elm.tabbar.default.color", "elm.swallow.icon");
+ edje_object_signal_emit(_EDJ(it->base), "elm,state,text_unselected", "elm");
}
evas_object_smart_callback_call(it->obj, "clicked", it);
Elm_Controlbar_Item * item;
EINA_LIST_FOREACH(wd->items, l, item)
- {
- evas_object_geometry_get(item->base, &x, &y, &w, &h);
- if(ev->output.x > x && ev->output.x < x+w && ev->output.y > y && ev->output.y < y+h){
- selected_box(item);
- }else{
- if (item->style == TABBAR)
- {
- if(item->selected){
- object_color_set(item->base, "elm.tabbar.selected.color", "elm.swallow.icon");
- edje_object_signal_emit(_EDJ(item->base), "elm,state,selected", "elm");
- }
- else
- {
- object_color_set(item->base, "elm.tabbar.default.color", "elm.swallow.icon");
- edje_object_signal_emit(_EDJ(item->base), "elm,state,unselected", "elm");
- }
- }
- else if (item->style == TOOLBAR)
- {
- object_color_set(item->base, "elm.tabbar.default.color", "elm.swallow.icon");
- edje_object_signal_emit(_EDJ(item->base), "elm,state,text_unselected", "elm");
- }
+ {
+ if (item->style == TABBAR)
+ {
+ if(item->selected)
+ {
+ object_color_set(item->base, "elm.tabbar.selected.color", "elm.swallow.icon");
+ edje_object_signal_emit(_EDJ(item->base), "elm,state,selected", "elm");
+ }
+ else
+ {
+ object_color_set(item->base, "elm.tabbar.default.color", "elm.swallow.icon");
+ edje_object_signal_emit(_EDJ(item->base), "elm,state,unselected", "elm");
+ }
}
- }
+ else if (item->style == TOOLBAR)
+ {
+ object_color_set(item->base, "elm.tabbar.default.color", "elm.swallow.icon");
+ edje_object_signal_emit(_EDJ(item->base), "elm,state,text_unselected", "elm");
+ }
+ }
+
+ evas_object_geometry_get(wd->pre_item->base, &x, &y, &w, &h);
+ if(ev->output.x > x && ev->output.x < x+w && ev->output.y > y && ev->output.y < y+h)
+ {
+ selected_box(wd->pre_item);
+ }
+
evas_object_event_callback_del(wd->event_box, EVAS_CALLBACK_MOUSE_UP, unpressed_box_cb);
return;
if (!check)
return EXIT_FAILURE;
+ wd->pre_item = it;
+
return EXIT_SUCCESS;
}
static void
set_items_position(Evas_Object * obj, Elm_Controlbar_Item * it,
- Elm_Controlbar_Item * mit)
+ Elm_Controlbar_Item * mit, Eina_Bool bar)
{
Widget_Data * wd;
const Eina_List *l;
fprintf(stderr, "Cannot get smart data\n");
return;
}
+
EINA_LIST_FOREACH(wd->items, l, item)
{
- if (item == mit)
+ if (item == mit && item->order > 0)
{
check = EINA_TRUE;
edit = i;
}
if (check)
{
- elm_table_unpack(wd->box, item->base);
- item->order += it->sel;
- elm_table_pack(wd->box, item->base, item->order - 1, 0, item->sel,
- 1);
+ if(item->order > 0){
+// printf("%s +_+_+_+_+_+ %d \n", item->label, item->order);
+ elm_table_unpack(wd->box, item->base);
+ item->order += it->sel;
+ elm_table_pack(wd->box, item->base, item->order - 1, 0, item->sel, 1);
+ }
if (item->style != OBJECT && it->style != OBJECT)
{
+// printf("%s +_+_+_+_+_+ edit :: %d\n", item->label, i);
elm_table_unpack(wd->edit_table, item->edit_item);
elm_table_pack(wd->edit_table, item->edit_item,
i % EDIT_ROW_NUM, i / EDIT_ROW_NUM, 1, 1);
}
if (item->style != OBJECT)
i++;
- order += item->sel;
+ if(item->order > 0) order += item->sel;
}
if (!check)
{
edit = i;
- it->order = order;
+ if(bar)
+ it->order = order;
+ else
+ it->order = 0;
}
wd->num++;
- elm_table_pack(wd->box, it->base, it->order - 1, 0, it->sel, 1);
+ if(bar) elm_table_pack(wd->box, it->base, it->order - 1, 0, it->sel, 1);
+ else evas_object_hide(it->base);
if (it->style != OBJECT)
elm_table_pack(wd->edit_table, it->edit_item, (edit - 1) % EDIT_ROW_NUM,
(edit - 1) / EDIT_ROW_NUM, 1, 1);
}
+static Elm_Controlbar_Item *
+create_more_item(Widget_Data *wd)
+{
+ Elm_Controlbar_Item * it;
+
+ it = ELM_NEW(Elm_Controlbar_Item);
+ if (it == NULL)
+ return NULL;
+ it->obj = wd->object;
+ it->label = eina_stringshare_add("more");
+ it->icon_path = CONTROLBAR_SYSTEM_ICON_MORE;
+ it->selected = EINA_FALSE;
+ it->badge = 0;
+ it->sel = 1;
+ it->view = NULL;
+ it->style = TABBAR;
+ it->base = create_item_layout(wd->edje, it);
+ evas_object_event_callback_add(it->base, EVAS_CALLBACK_MOUSE_DOWN,
+ bar_item_down_cb, wd);
+ object_color_set(it->base, "elm.tabbar.default.color", "elm.swallow.icon");
+ evas_object_show(it->base);
+ it->edit_item = create_item_layout(wd->edje, it);
+ evas_object_event_callback_add(it->edit_item, EVAS_CALLBACK_MOUSE_DOWN,
+ edit_item_down_cb, wd);
+ evas_object_show(it->edit_item);
+
+ set_items_position(it->obj, it, NULL, EINA_TRUE);
+
+ wd->items = eina_list_append(wd->items, it);
+
+ wd->more_item = it;
+
+ elm_controlbar_item_editable_set(it, EINA_FALSE);
+
+ wd->items = eina_list_sort(wd->items, eina_list_count(wd->items), sort_cb);
+}
+
///////////////////////////////////////////////////////////////////
//
// API function
}
evas_object_show(wd->edit_box);
- wd->event_box = evas_object_rectangle_add(wd->evas);
- evas_object_color_set(wd->event_box, 255, 255, 255, 0);
- evas_object_repeat_events_set(wd->event_box, EINA_TRUE);
- evas_object_show(wd->event_box);
-
//instead of navigationbar
/* r_button = elm_button_add(wd->edit_box);
elm_button_label_set(r_button, "Done");
wd->edit_table = elm_table_add(wd->edit_box);
elm_table_homogenous_set(wd->edit_table, EINA_TRUE);
edje_object_part_swallow(wd->edit_box, "elm.swallow.table", wd->edit_table);
-
- /* load background edj */
- wd->edje = edje_object_add(wd->evas);
-
-// snprintf(buf, sizeof(buf), "bg_portrait_%d", wd->view_slot_num);
- _elm_theme_object_set(obj, wd->edje, "controlbar", "base", "default");
+
+ /* load background edj */
+ wd->edje = edje_object_add(wd->evas);
+ _elm_theme_object_set(obj, wd->edje, "controlbar", "base", "default");
if (wd->edje == NULL)
{
printf("Cannot load bg edj\n");
return NULL;
}
evas_object_show(wd->edje);
-
- // initialization
+
+ // initialization
evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_RESIZE,
_controlbar_object_resize, obj);
- evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE,
+ evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_MOVE,
_controlbar_object_move, obj);
- evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW,
+ evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_SHOW,
_controlbar_object_show, obj);
- evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE,
+ evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_HIDE,
_controlbar_object_hide, obj);
+ evas_object_event_callback_add(
+ edje_object_part_object_get(wd->edje, "bg_image"),
+ EVAS_CALLBACK_MOVE, _controlbar_object_move, obj);
+ evas_object_event_callback_add(
+ edje_object_part_object_get(wd->edje, "bg_image"),
+ EVAS_CALLBACK_RESIZE, _controlbar_object_resize, obj);
+
+ wd->selected_box = edje_object_add(wd->evas);
+ _elm_theme_object_set(obj, wd->selected_box, "controlbar", "item_bg", "default");
+ evas_object_hide(wd->selected_box);
+// evas_object_resize(wd->selected_box, 100, 100);
+ // evas_object_move(wd->selected_box, 100, 700);
+ // evas_object_show(wd->selected_box);
// items container
wd->box = elm_table_add(wd->edje);
evas_object_size_hint_weight_set(wd->box, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(wd->box, EVAS_HINT_FILL, EVAS_HINT_FILL);
- edje_object_part_swallow(wd->edje, "elm.swallow.items", wd->box);
+// edje_object_part_swallow(wd->edje, "elm.swallow.items", wd->box);
elm_widget_sub_object_add(obj, wd->box);
+ evas_object_show(wd->box);
+
+ wd->event_box = evas_object_rectangle_add(wd->evas);
+ evas_object_color_set(wd->event_box, 255, 255, 255, 0);
+ evas_object_repeat_events_set(wd->event_box, EINA_TRUE);
+ evas_object_show(wd->event_box);
//FIXME
// evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
evas_object_smart_member_add(wd->view, obj);
evas_object_smart_member_add(wd->edit_box, obj);
elm_widget_resize_object_set(obj, wd->edje);
+ evas_object_smart_member_add(wd->selected_box, obj);
+ evas_object_smart_member_add(wd->box, obj);
+ evas_object_smart_member_add(wd->event_box, obj);
// initialization
_sizing_eval(obj);
view)
{
Elm_Controlbar_Item * it;
+ Elm_Controlbar_Item * lit;
Widget_Data * wd;
it = create_tab_item(obj, icon_path, label, view);
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, NULL);
+ if(check_bar_item_number(wd) >= 5){
+ if(!wd->more_item) {
+ lit = elm_controlbar_last_item_get(obj);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ create_more_item(wd);
+ }
+ set_items_position(obj, it, NULL, EINA_FALSE);
+ }
+ else{
+ set_items_position(obj, it, NULL, EINA_TRUE);
+ }
wd->items = eina_list_append(wd->items, it);
if (wd->num == 1)
selected_box(it);
{
Widget_Data * wd;
Elm_Controlbar_Item * it;
+ Elm_Controlbar_Item * lit;
Elm_Controlbar_Item * item;
it = create_tab_item(obj, icon_path, label, view);
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
item = eina_list_data_get(wd->items);
- set_items_position(obj, it, item);
+ if(check_bar_item_number(wd) >= 5){
+ if(!wd->more_item) {
+ lit = elm_controlbar_last_item_get(obj);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ create_more_item(wd);
+ }
+ lit = elm_controlbar_item_prev(wd->more_item);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ set_items_position(obj, it, item, EINA_TRUE);
+ }
+ else{
+ set_items_position(obj, it, item, EINA_TRUE);
+ }
wd->items = eina_list_prepend(wd->items, it);
if (wd->num == 1)
selected_box(it);
{
Widget_Data * wd;
Elm_Controlbar_Item * it;
+ Elm_Controlbar_Item * lit;
if (!before)
return NULL;
it = create_tab_item(obj, icon_path, label, view);
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, before);
+ if(check_bar_item_number(wd) >= 5){
+ if(!wd->more_item)
+ {
+ lit = elm_controlbar_last_item_get(obj);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ create_more_item(wd);
+ }
+ if(before->order > 0)
+ {
+ lit = elm_controlbar_item_prev(wd->more_item);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ set_items_position(obj, it, before, EINA_TRUE);
+ }
+ else
+ {
+ set_items_position(obj, it, before, EINA_FALSE);
+ }
+ }
+ else{
+ set_items_position(obj, it, before, EINA_TRUE);
+ }
wd->items = eina_list_prepend_relative(wd->items, it, before);
if (wd->num == 1)
selected_box(it);
{
Widget_Data * wd;
Elm_Controlbar_Item * it;
+ Elm_Controlbar_Item * lit;
Elm_Controlbar_Item * item;
if (!after)
return NULL;
return NULL;
wd = elm_widget_data_get(obj);
item = elm_controlbar_item_next(after);
- set_items_position(obj, it, item);
+ if(check_bar_item_number(wd) >= 5){
+ if(!wd->more_item)
+ {
+ lit = elm_controlbar_last_item_get(obj);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ create_more_item(wd);
+ }
+ if(item->order > 0)
+ {
+ lit = elm_controlbar_item_prev(wd->more_item);
+ elm_controlbar_item_visible_set(lit, EINA_FALSE);
+ set_items_position(obj, it, item, EINA_TRUE);
+ }
+ else
+ {
+ set_items_position(obj, it, item, EINA_FALSE);
+ }
+ }
+ else{
+ set_items_position(obj, it, item, EINA_TRUE);
+ }
wd->items = eina_list_append_relative(wd->items, it, after);
if (wd->num == 1)
selected_box(it);
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, NULL);
+ set_items_position(obj, it, NULL, EINA_TRUE);
wd->items = eina_list_append(wd->items, it);
_sizing_eval(obj);
return it;
return NULL;
wd = elm_widget_data_get(obj);
item = eina_list_data_get(wd->items);
- set_items_position(obj, it, item);
+ set_items_position(obj, it, item, EINA_TRUE);
wd->items = eina_list_prepend(wd->items, it);
_sizing_eval(obj);
return it;
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, before);
+ set_items_position(obj, it, before, EINA_TRUE);
wd->items = eina_list_prepend_relative(wd->items, it, before);
_sizing_eval(obj);
return it;
return NULL;
wd = elm_widget_data_get(obj);
item = elm_controlbar_item_next(after);
- set_items_position(obj, it, item);
+ set_items_position(obj, it, item, EINA_TRUE);
wd->items = eina_list_append_relative(wd->items, it, after);
_sizing_eval(obj);
return it;
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, NULL);
+ set_items_position(obj, it, NULL, EINA_TRUE);
wd->items = eina_list_append(wd->items, it);
_sizing_eval(obj);
return it;
return NULL;
wd = elm_widget_data_get(obj);
item = eina_list_data_get(wd->items);
- set_items_position(obj, it, item);
+ set_items_position(obj, it, item, EINA_TRUE);
wd->items = eina_list_prepend(wd->items, it);
_sizing_eval(obj);
return it;
if (it == NULL)
return NULL;
wd = elm_widget_data_get(obj);
- set_items_position(obj, it, before);
+ set_items_position(obj, it, before, EINA_TRUE);
wd->items = eina_list_prepend_relative(wd->items, it, before);
_sizing_eval(obj);
return it;
return NULL;
wd = elm_widget_data_get(obj);
item = elm_controlbar_item_next(after);
- set_items_position(obj, it, item);
+ set_items_position(obj, it, item, EINA_TRUE);
wd->items = eina_list_append_relative(wd->items, it, after);
_sizing_eval(obj);
return it;
// delete base item
if (it->order > 0)
{
+ printf("%s +_+_+_+_+_+\n", it->label);
elm_table_unpack(wd->box, it->base);
sel = it->sel;
EINA_LIST_FOREACH(wd->items, l, item)
{
if (item->order > it->order)
{
+ printf("%s +_+_+_+_+_+\n", item->label);
elm_table_unpack(wd->box, item->base);
item->order -= sel;
elm_table_pack(wd->box, item->base, item->order - 1, 0,
check = 0;
if (it->edit_item != NULL)
{
+ printf("%s +_+_+_+_+_+\n", it->label);
elm_table_unpack(wd->edit_table, it->edit_item);
EINA_LIST_FOREACH(wd->items, l, item)
{
{
if (item->edit_item != NULL)
{
+ printf("%s +_+_+_+_+_+\n", item->label);
elm_table_unpack(wd->edit_table, item->edit_item);
elm_table_pack(wd->edit_table, item->edit_item,
(i - 1) % 4, (i - 1) / 4, 1, 1);
elm_controlbar_item_visible_set(Elm_Controlbar_Item * it, Eina_Bool bar)
{
Eina_Bool check = EINA_TRUE;
+ if (it->obj == NULL)
+ return NULL;
+ Widget_Data * wd = elm_widget_data_get(it->obj);
+ if (!wd || !wd->items)
+ return NULL;
if (it->order <= 0)
check = EINA_FALSE;
if (check == bar)
{
item_delete_in_bar(it);
}
+ wd->items = eina_list_sort(wd->items, eina_list_count(wd->items), sort_cb);
_sizing_eval(it->obj);
}