void page_destroy(Evas_Object *scroller, Evas_Object *page)
{
	Evas_Object *mapbuf;
	Evas_Object *bg;
	Evas_Object *item;
	Evas_Object *box;
	Evas_Object *index;
	Evas_Object *tab;
	Eina_List *pending_list;

	register unsigned int i;
	int page_max_app;
	unsigned int count;

	evas_object_event_callback_del(page, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints_cb);

	page_max_app = (int) evas_object_data_get(scroller, "page_max_app");
	for (i = 0; i < page_max_app; i ++) {
		item = page_unpack_item_at(page, i);
		if (!item) continue;

		item_destroy(item);
	}

	pending_list = evas_object_data_get(page, "pending,list");
	eina_list_free(pending_list);

	bg = evas_object_data_get(page, "bg");
	evas_object_del(bg);

	box = evas_object_data_get(scroller, "box");
	ret_if(NULL == box);

	mapbuf = mapbuf_get_mapbuf(page);
	if (mapbuf) {
		elm_box_unpack(box, mapbuf);
		mapbuf_unbind(mapbuf);
	} else {
		elm_box_unpack(box, page);
	}

	index = evas_object_data_get(scroller, "index");
	if (index) {
		tab = evas_object_data_get(scroller, "tab");
		count = page_scroller_count_page(scroller);
		index_update(tab, index, count);
	}

	evas_object_data_del(page, "win");
	evas_object_data_del(page, "layout");
	evas_object_data_del(page, "controlbar");
	evas_object_data_del(page, "tab");
	evas_object_data_del(page, "scroller");
	evas_object_data_del(page, "page_edje");
	evas_object_data_del(page, "page_max_app");
	evas_object_data_del(page, "bg");
	evas_object_data_del(page, "pending,list");
	evas_object_data_del(page, "dirty");
	layout_unload_edj(page);
}
Пример #2
0
static void
intf_scan_progress_set_cb(void *p_data, uint8_t percentage)
{
    interface* intf = (interface*)p_data;
    if ( percentage < 100 )
    {
        if (evas_object_visible_get(intf->scan_progress) == EINA_FALSE)
        {
            elm_box_pack_after(intf->main_box, intf->scan_progress, intf->nf_content);
            evas_object_show(intf->scan_progress);
        }
        elm_progressbar_value_set(intf->scan_progress, (double)percentage / 100);
    }
    else
    {
        if (evas_object_visible_get(intf->scan_progress) == EINA_TRUE)
        {
            evas_object_hide(intf->scan_progress);
            elm_box_unpack(intf->main_box, intf->scan_progress);
        }
    }
}
Пример #3
0
bool
intf_mini_player_visible_set(interface *intf, bool visible)
{
    if(intf->mini_player_layout == NULL)
    {
        LOGE("No mini player instance");
        return false;
    }
    if(visible)
    {
        /* show */
        elm_box_pack_end(intf->main_box, intf->mini_player_layout);
        evas_object_show(intf->mini_player_layout);
        elm_box_recalculate(intf->main_box);
    }
    else
    {
        elm_box_unpack(intf->main_box, intf->mini_player_layout);
        evas_object_hide(intf->mini_player_layout);
        elm_box_recalculate(intf->main_box);
    }
    evas_object_image_source_visible_set(intf->mini_player_layout, visible);
    return true;
}
Пример #4
0
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;
     }
}
Пример #5
0
void resize(void *data) {
	Evas_Object *obj = (Evas_Object*) data;
	elm_box_unpack(box, obj);
	evas_object_resize(obj, 60, 120);
}
Пример #6
0
void Box::unpack(EObject& w)
{
    elm_box_unpack(getHandle(), Widget::getHandle(w));
}