static void set_api_state(api_data *api) { const Eina_List *items = elm_box_children_get(api->box); if (!eina_list_count(items)) return; /* use elm_box_children_get() to get list of children */ switch(api->state) { /* Put all api-changes under switch */ case BOX_PACK_START: /* Move last item to begining */ elm_box_unpack(api->box, eina_list_data_get(eina_list_last(items))); elm_box_pack_start(api->box, eina_list_data_get(eina_list_last(items))); break; case BOX_PACK_BEFORE: if (eina_list_count(items) > 1) { /* Put last item before the one preceeding it */ elm_box_unpack(api->box, eina_list_data_get(eina_list_last(items))); elm_box_pack_before(api->box, eina_list_data_get(eina_list_last(items)), eina_list_nth(items, eina_list_count(items)-2)); } break; case BOX_PACK_AFTER: if (eina_list_count(items) > 1) { /* Put item before last to last */ elm_box_unpack(api->box, eina_list_nth(items, eina_list_count(items)-2)); elm_box_pack_after(api->box, eina_list_nth(items, eina_list_count(items)-2), eina_list_data_get(eina_list_last(items))); } break; case BOX_PADDING_SET: elm_box_padding_set(api->box, 30, 15); break; case BOX_ALIGN_SET: elm_box_align_set(api->box, 0.25, 0.75); break; case BOX_HOMOGENEOUS_SET: elm_box_homogeneous_set(api->box, EINA_TRUE); break; case BOX_UNPACK_ALL: { Eina_List *l; Evas_Object *data; elm_box_unpack_all(api->box); EINA_LIST_REVERSE_FOREACH(items, l, data) elm_box_pack_end(api->box, data); } break; case BOX_CLEAR: elm_box_clear(api->box); break; case API_STATE_LAST: break; default: return; } }
void Box::unpackAll() { elm_box_unpack_all(getHandle()); }