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); }
HAPI void layout_destroy(Evas_Object *layout) { Evas_Object *all_apps; all_apps = evas_object_data_del(layout, "all_apps"); all_apps_layout_destroy(all_apps); evas_object_data_del(layout, "win"); evas_object_data_del(layout, "rotate"); evas_object_data_del(layout, "width"); evas_object_data_del(layout, "height"); layout_unload_edj(layout); }
/** * @brief Finds an object in the cache according to its filename and its key. If the object is present in the cache, * it will be removed from the cache and returned. Otherwise NULL is returned * @param cache the cache system where to find the object * @param filename the filename of the object to find * @param key the key associated to the object to find (the group for an Edje object, the key for an image from an * Eet file, or NULL otherwise) * @return Returns an object corresponding to the given filename and key, or NULL if no such object is cached */ Evas_Object *etk_cache_find(Etk_Cache *cache, const char *filename, const char *key) { Etk_Cache_Item *item; Eina_List *l; Evas_Object *object; if (!cache || !filename) return NULL; for (l = cache->cached_objects; l; l = l->next) { item = l->data; if (strcmp(item->filename, filename) == 0 && (strcmp(item->key ? item->key : "", key ? key : "") == 0)) { object = item->object; evas_object_data_del(object, "_Etk_Cache::Node"); evas_object_event_callback_del(object, EVAS_CALLBACK_FREE, _etk_cache_object_deleted_cb); free(item->filename); free(item->key); free(item); cache->cached_objects = eina_list_remove(cache->cached_objects, item); return object; } } return NULL; }
static void _del_gl(Evas_Object *obj) { GLData *gld = evas_object_data_get(obj, "gld"); if (!gld) { printf("Unable to get GLData. \n"); return; } Evas_GL_API *gl = gld->glapi; gl->glDeleteShader(gld->vtx_shader); gl->glDeleteShader(gld->fgmt_shader); gl->glDeleteProgram(gld->program); gl->glDeleteBuffers(1, &gld->gear1->vbo); gl->glDeleteBuffers(1, &gld->gear2->vbo); gl->glDeleteBuffers(1, &gld->gear3->vbo); free_gear(gld->gear1); free_gear(gld->gear2); free_gear(gld->gear3); evas_object_data_del((Evas_Object*)obj, "..gld"); free(gld); }
void _layout_view_destroy2(void *data, Evas *e, Evas_Object *obj, void *event_info) { layout_view_data2 *layout_data = (layout_view_data2 *)data; if (layout_data) { evas_object_data_del(layout_data->navi, LAYOUT); free(layout_data); } }
void item_event_unregister(Evas_Object *item) { Evas_Object *item_edje; item_edje = _EDJ(item); edje_object_signal_callback_del(item_edje, "item,down", "menu", _item_down_cb); edje_object_signal_callback_del(item_edje, "item,up", "menu", _item_up_cb); evas_object_data_del(item_edje, "item"); }
static void del_gl(Evas_Object *obj) { appdata_s *ad = evas_object_data_get(obj, "ad"); glDeleteShader(ad->vtx_shader); glDeleteShader(ad->fgmt_shader); glDeleteProgram(ad->program); evas_object_data_del((Evas_Object*) obj, "ad"); }
HAPI void layout_unload_edj(Evas_Object *layout) { Evas_Object *evas_object; ret_if(NULL == layout); evas_object = evas_object_data_get(_EDJ(layout), "evas_object"); if (evas_object) { evas_object_data_del(_EDJ(layout), "evas_object"); } evas_object_del(layout); }
void app_server_term_del(Evas_Object *term) { Elm_App_Server_View *view; const char *id = NULL; view = evas_object_data_del(term, "app_view"); if (!view) return; eo_do(view, id = elm_app_server_view_id_get()); terminology_item_term_entries_del(views_eet, id); eo_del(view); }
static void _uninstall_up_cb(void *item, Evas_Object *obj, const char* emission, const char* source) { Evas_Object *win; ret_if(mouse_is_scrolling()); win = menu_screen_get_win(); ret_if(NULL == win); _D("Uninstall button is up"); obj = evas_object_data_get(obj, "evas_object"); ret_if(NULL == obj); ret_if(NULL == evas_object_data_get(obj, "removing")); evas_object_data_del(obj, "removing"); }
static void _del_hook(Evas_Object *obj) { Evas_Object *win; Widget_Data *wd; wd = elm_widget_data_get(obj); if (!wd) return; if (wd->window_title) eina_stringshare_del(wd->window_title); if (wd->fsd.path) eina_stringshare_del(wd->fsd.path); if (wd->fs) { win = evas_object_data_del(obj, "win"); evas_object_del(win); } free(wd); }
static void _e_layout_smart_disown(Evas_Object *obj) { E_Layout_Item *li; li = evas_object_data_get(obj, "e_layout_data"); if (!li) return; if (!li->sd->items) { if (evas_object_visible_get(li->sd->clip)) evas_object_hide(li->sd->clip); } evas_object_event_callback_del(obj, EVAS_CALLBACK_FREE, _e_layout_smart_item_del_hook); evas_object_smart_member_del(obj); evas_object_data_del(obj, "e_layout_data"); free(li); }
void e_efx_free(E_EFX *e) { E_EFX *ef; if (e->zoom_data || e->resize_data || e->rotate_data || e->spin_data || e->move_data || e->bumpmap_data || e->pan_data || e->fade_data || e->queue) return; DBG("freeing e_efx for %p", e->obj); EINA_LIST_FREE(e->followers, ef) e_efx_free(ef); evas_object_data_del(e->obj, "e_efx-data"); e_efx_map_set(e->obj, NULL); free(e->map_data.rotate_center); free(e->map_data.zoom_center); if (!(--_e_efx_obj_count)) { if (!_e_efx_init_count) e_efx_shutdown(); } free(e); }
/** * @brief Removes an object from the cache. The object won't be destroyed. * @param cache a cache system * @param object the object to remove from the cache system */ void etk_cache_remove(Etk_Cache *cache, Evas_Object *object) { Etk_Cache_Item *item; Eina_List *l; if (!cache || !object) return; if ((l = evas_object_data_get(object, "_Etk_Cache::Node"))) { item = l->data; evas_object_data_del(object, "_Etk_Cache::Node"); evas_object_event_callback_del(object, EVAS_CALLBACK_FREE, _etk_cache_object_deleted_cb); free(item->filename); free(item->key); free(item); cache->cached_objects = eina_list_remove_list(cache->cached_objects, l); } }
static Eina_Bool _color_change_do(void *data) { Evas_Object *obj = data; int color; color = (int)(uintptr_t)evas_object_data_get(obj, "current_color"); switch (color) { case 0: evas_object_data_set(obj, "current_color", (void *)1); evas_object_color_set(obj, 255, 0, 0, 255); /* 1st red */ goto renew; case 1: evas_object_data_set(obj, "current_color", (void *)2); evas_object_color_set(obj, 255, 255, 255, 255); /* 2nd white */ goto renew; case 2: evas_object_data_set(obj, "current_color", (void *)3); evas_object_color_set(obj, 255, 0, 0, 255); /* 2nd red */ goto renew; case 3: default: evas_object_data_set(obj, "current_color", (void *)0); evas_object_color_set(obj, 255, 255, 255, 255); /* back to white */ goto end; } renew: return ECORE_CALLBACK_RENEW; end: evas_object_data_del(obj, "timer"); return ECORE_CALLBACK_CANCEL; }
static Evas_Object_Grid_Option * _evas_object_grid_option_del(Evas_Object *o) { return evas_object_data_del(o, EVAS_OBJECT_GRID_OPTION_KEY); }
static void _evas_object_associate_del(Evas_Object *obj) { evas_object_data_del(obj, ASSOCIATE_KEY); }
#ifdef HAVE_CONFIG_H # include "elementary_config.h" #endif #include <Elementary.h> #define MAX_TRY 40 static int try_num = 0; static void _timer_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { Ecore_Timer *timer = evas_object_data_del(obj, "test-timer"); if (!timer) return; ecore_timer_del(timer); } static Eina_Bool cb_plug_connect(void *data) { Evas_Object *obj = data; Ecore_Timer *timer; if (!obj) return ECORE_CALLBACK_CANCEL; try_num++; if (try_num > MAX_TRY) return ECORE_CALLBACK_CANCEL;
static Evas_Object_Table_Option * _evas_object_table_option_del(Evas_Object *o) { return evas_object_data_del(o, EVAS_OBJECT_TABLE_OPTION_KEY); }
static void _opinfo_op_registry_listener(void *data, const E_Fm2_Op_Registry_Entry *ere) { Evas_Object *o = data; char *total, buf[4096]; Edje_Message_Float msg; int mw, mh; if (!o || !ere) return; // Don't show if the operation keep less than 1 second if (!ere->needs_attention && (ere->start_time + 1.0 > ecore_loop_time_get())) return; // Update icon switch (ere->op) { case E_FM_OP_COPY: edje_object_signal_emit(o, "e,action,icon,copy", "e"); break; case E_FM_OP_MOVE: edje_object_signal_emit(o, "e,action,icon,move", "e"); break; case E_FM_OP_REMOVE: edje_object_signal_emit(o, "e,action,icon,delete", "e"); break; case E_FM_OP_SECURE_REMOVE: edje_object_signal_emit(o, "e,action,icon,secure_delete", "e"); break; default: edje_object_signal_emit(o, "e,action,icon,unknown", "e"); } // Update information text switch (ere->status) { case E_FM2_OP_STATUS_ABORTED: switch (ere->op) { case E_FM_OP_COPY: snprintf(buf, sizeof(buf), _("Copying is aborted")); break; case E_FM_OP_MOVE: snprintf(buf, sizeof(buf), _("Moving is aborted")); break; case E_FM_OP_REMOVE: snprintf(buf, sizeof(buf), _("Deleting is aborted")); break; case E_FM_OP_SECURE_REMOVE: snprintf(buf, sizeof(buf), _("Secure deletion is aborted")); break; default: snprintf(buf, sizeof(buf), _("Unknown operation from slave is aborted")); } break; default: total = e_util_size_string_get(ere->total); switch (ere->op) { case E_FM_OP_COPY: if (ere->finished) snprintf(buf, sizeof(buf), _("Copy of %s done"), total); else snprintf(buf, sizeof(buf), _("Copying %s (eta: %s)"), total, e_util_time_str_get(ere->eta)); break; case E_FM_OP_MOVE: if (ere->finished) snprintf(buf, sizeof(buf), _("Move of %s done"), total); else snprintf(buf, sizeof(buf), _("Moving %s (eta: %s)"), total, e_util_time_str_get(ere->eta)); break; case E_FM_OP_REMOVE: if (ere->finished) snprintf(buf, sizeof(buf), _("Delete done")); else snprintf(buf, sizeof(buf), _("Deleting files...")); break; case E_FM_OP_SECURE_REMOVE: if (ere->finished) snprintf(buf, sizeof(buf), _("Secure delete done")); else snprintf(buf, sizeof(buf), _("Securely deleting files...")); break; default: snprintf(buf, sizeof(buf), _("Unknown operation from slave %d"), ere->id); } E_FREE(total); } edje_object_part_text_set(o, "e.text.info", buf); // Update spinner wheel if ((ere->finished) || (ere->status == E_FM2_OP_STATUS_ABORTED)) { if (!evas_object_data_get(o, "stopped")) { evas_object_data_set(o, "stopped", o); edje_object_signal_emit(o, "e,state,busy,stop", "e"); } } if (ere->percent > 0) { if (!evas_object_data_get(o, "started")) { evas_object_data_set(o, "started", o); edje_object_signal_emit(o, "e,state,busy,start", "e"); } } // Show/hide the red attention led if (ere->needs_attention) { if (!evas_object_data_get(o, "attention_started")) { evas_object_data_set(o, "attention_started", o); edje_object_signal_emit(o, "e,state,attention,start", "e"); if (evas_object_data_get(o, "attention_stopped")) evas_object_data_del(o, "attention_stopped"); } } else { if (!evas_object_data_get(o, "attention_stopped")) { evas_object_data_set(o, "attention_stopped", o); edje_object_signal_emit(o, "e,state,attention,stop", "e"); if (evas_object_data_get(o, "attention_started")) evas_object_data_del(o, "attention_started"); } } // Update gauge edje_object_part_drag_size_set(o, "e.gauge.bar", ((double)(ere->percent)) / 100.0, 1.0); msg.val = ((double)(ere->percent)) / 100.0; edje_object_message_send(o, EDJE_MESSAGE_FLOAT, 1, &msg); // resize element to fit the box edje_object_size_min_calc(o, &mw, &mh); e_box_pack_options_set(o, 1, 0, 1, 0, 0.0, 0.0, mw, mh, 9999, mh); evas_object_show(o); }
{ Elm_Prefs_Item_Changed_Cb prefs_it_changed_cb = data; prefs_it_changed_cb(event->object); } static void _entry_del_cb(void *data EINA_UNUSED, Evas *evas EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { regex_t *regex; Ecore_Timer *timer; regex = evas_object_data_del(obj, "accept_regex"); if (regex) { regfree(regex); free(regex); } regex = evas_object_data_del(obj, "deny_regex"); if (regex) { regfree(regex); free(regex); } timer = evas_object_data_del(obj, "timer"); if (timer) ecore_timer_del(timer);