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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
/**
 * @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);
}
Beispiel #5
0
 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");
}
Beispiel #7
0
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");
}
Beispiel #8
0
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);
}
Beispiel #9
0
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);
}
Beispiel #10
0
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");
}
Beispiel #11
0
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);
}
Beispiel #12
0
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);
}
Beispiel #13
0
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);
}
Beispiel #14
0
/**
 * @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);
   }
}
Beispiel #15
0
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;
}
Beispiel #16
0
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;
Beispiel #19
0
static Evas_Object_Table_Option *
_evas_object_table_option_del(Evas_Object *o)
{
   return evas_object_data_del(o, EVAS_OBJECT_TABLE_OPTION_KEY);
}
Beispiel #20
0
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);
}
Beispiel #21
0
{
   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);