static Eina_Bool _opinfo_op_registry_free_data_delayed(void *data) { Evas_Object *o = data; if (o) { e_box_unpack(o); evas_object_del(o); } return ECORE_CALLBACK_CANCEL; }
/* * need to be called when * view orientation * view item size * a feed has been added OR remove to/from an item * has changed */ void news_item_refresh(News_Item *ni, int changed_order, int changed_content, int changed_state) { Evas_Object *box; News_Item_View_Mode mode; box = ni->view.box; e_box_freeze(box); if (changed_order) { Evas_Object *o; while ((o = e_box_pack_object_first(box))) { e_box_unpack(o); evas_object_hide(o); } } if (!eina_list_count(ni->config->feed_refs)) mode = NEWS_ITEM_VIEW_MODE_ONE; else mode = ni->config->view_mode; switch (mode) { case NEWS_ITEM_VIEW_MODE_ONE: _item_refresh_mode_one(ni, changed_order, changed_state); break; case NEWS_ITEM_VIEW_MODE_FEED: _item_refresh_mode_feed(ni, 0, 0, changed_order, changed_content, changed_state); break; case NEWS_ITEM_VIEW_MODE_FEED_UNREAD: _item_refresh_mode_feed(ni, 0, 1, changed_order, changed_content, changed_state); case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT: _item_refresh_mode_feed(ni, 1, 0, changed_order, changed_content, changed_state); break; case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD: _item_refresh_mode_feed(ni, 1, 1, changed_order, changed_content, changed_state); break; } e_box_thaw(box); /* resize the gadcon */ if (changed_order && ni->gcc->client_class) ni->gcc->client_class->func.orient(ni->gcc, ni->gcc->gadcon->orient); }
static void destroy_gui_list(app_t *app) { if (!app->evas_items) return; e_box_freeze(app->e_box); while (app->n_evas_items > 0) { Evas_Object *obj; app->n_evas_items--; obj = app->evas_items[app->n_evas_items]; e_box_unpack(obj); evas_object_del(obj); } e_box_thaw(app->e_box); free(app->evas_items); app->evas_items = NULL; evas_object_event_callback_del(app->arrow_up, EVAS_CALLBACK_MOUSE_DOWN, mouse_down_arrow_up); evas_object_event_callback_del(app->arrow_up, EVAS_CALLBACK_MOUSE_UP, mouse_up_arrow_up); evas_object_event_callback_del(app->arrow_down, EVAS_CALLBACK_MOUSE_DOWN, mouse_down_arrow_down); evas_object_event_callback_del(app->arrow_down, EVAS_CALLBACK_MOUSE_UP, mouse_up_arrow_down); }