2005-02-07 05:51:09 -08:00
|
|
|
/*
|
|
|
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
|
|
|
*/
|
2004-11-24 19:37:45 -08:00
|
|
|
#include "e.h"
|
|
|
|
|
|
|
|
/* TODO List:
|
2005-03-15 02:23:01 -08:00
|
|
|
*
|
2004-11-24 19:37:45 -08:00
|
|
|
* * edjify error dialogs if edje data can be found for them
|
|
|
|
* * current gui dialg needs to resize to fit contents if they are bigger
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* local subsystem functions */
|
|
|
|
static void _e_error_message_show_x(char *txt);
|
|
|
|
|
|
|
|
static void _e_error_cb_ok_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
|
|
|
static void _e_error_cb_ok_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
2005-03-07 04:23:26 -08:00
|
|
|
static void _e_error_edje_cb_ok_up(void *data, Evas_Object *obj, const char *emission, const char *source);
|
2004-11-24 19:37:45 -08:00
|
|
|
static void _e_error_cb_job_ecore_evas_free(void *data);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
/* local subsystem globals */
|
|
|
|
static int error_gui = 0;
|
|
|
|
|
|
|
|
/* externally accessible functions */
|
|
|
|
void
|
|
|
|
e_error_message_show_internal(char *txt)
|
|
|
|
{
|
|
|
|
printf("_______ _______\n"
|
|
|
|
"|:::::| Enlightenment Error |:::::|\n"
|
|
|
|
"~~~~~~~ ~~~~~~~\n"
|
2005-03-15 02:23:01 -08:00
|
|
|
"%s\n",
|
2004-11-24 19:37:45 -08:00
|
|
|
txt);
|
|
|
|
if (error_gui) _e_error_message_show_x(txt);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
e_error_dialog_show_internal(char *title, char *txt)
|
|
|
|
{
|
|
|
|
Evas_List *l;
|
|
|
|
E_Manager *man;
|
|
|
|
|
|
|
|
l = e_manager_list();
|
|
|
|
if (!l) return;
|
|
|
|
man = l->data;
|
|
|
|
e_error_message_manager_show(man, title, txt);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
e_error_gui_set(int on)
|
|
|
|
{
|
|
|
|
error_gui = on;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
e_error_message_manager_show(E_Manager *man, char *title, char *txt)
|
|
|
|
{
|
2005-03-07 04:23:26 -08:00
|
|
|
Ecore_Evas *ee;
|
|
|
|
Evas *e;
|
|
|
|
Evas_Object *o;
|
|
|
|
int error_w, error_h;
|
|
|
|
Evas_List *l, *shapelist = NULL;
|
|
|
|
Evas_Coord maxw, maxh;
|
2005-03-19 09:31:42 -08:00
|
|
|
E_Container *con;
|
|
|
|
int x, y;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
error_w = 400;
|
|
|
|
error_h = 200;
|
2005-03-19 09:31:42 -08:00
|
|
|
x = (man->w - error_w) / 2;
|
|
|
|
y = (man->h - error_h) / 2;
|
|
|
|
ee = ecore_evas_software_x11_new(NULL, man->win, x, y, error_w, error_h);
|
2005-03-31 07:38:26 -08:00
|
|
|
ecore_evas_override_set(ee, 1);
|
2005-01-04 22:56:57 -08:00
|
|
|
ecore_evas_software_x11_direct_resize_set(ee, 1);
|
2004-11-24 19:37:45 -08:00
|
|
|
e_canvas_add(ee);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
ecore_evas_name_class_set(ee, "E", "Low_Level_Dialog");
|
|
|
|
ecore_evas_title_set(ee, "Enlightenment: Low Level Dialog");
|
2005-03-31 07:38:26 -08:00
|
|
|
// ecore_evas_avoid_damage_set(ee, 1);
|
2004-11-24 19:37:45 -08:00
|
|
|
e = ecore_evas_get(ee);
|
|
|
|
e_pointer_ecore_evas_set(ee);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
o = edje_object_add(e);
|
2005-04-22 22:16:25 -07:00
|
|
|
if (!e_theme_edje_object_set(o, "base/theme/error", "error/main"))
|
2004-11-24 19:37:45 -08:00
|
|
|
{
|
|
|
|
Evas_Coord tw, th;
|
|
|
|
char *newstr;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-19 09:31:42 -08:00
|
|
|
if (o) evas_object_del(o);
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
maxw = 0;
|
|
|
|
maxh = 0;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_image_add(e);
|
|
|
|
evas_object_image_file_set(o, e_path_find(path_images, "e.png"), NULL);
|
|
|
|
evas_object_move(o, 16, 16);
|
|
|
|
evas_object_resize(o, 64, 64);
|
|
|
|
evas_object_image_fill_set(o, 0, 0, 64, 64);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 255, 255, 255, 128);
|
|
|
|
evas_object_text_font_set(o, "Vera-Bold", 12);
|
|
|
|
evas_object_text_text_set(o, title);
|
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
2005-03-15 02:23:01 -08:00
|
|
|
evas_object_move(o,
|
2005-01-04 22:56:57 -08:00
|
|
|
(16 + 64 + 16) + 1,
|
2004-11-24 19:37:45 -08:00
|
|
|
(16 + ((64 - th) / 2)) + 1);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
maxw = 16 + 64 + 16 + tw + 16;
|
|
|
|
maxh = 16 + 64;
|
2004-11-24 19:37:45 -08:00
|
|
|
|
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 0, 0, 0, 255);
|
|
|
|
evas_object_text_font_set(o, "Vera-Bold", 12);
|
|
|
|
evas_object_text_text_set(o, title);
|
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
2005-03-15 02:23:01 -08:00
|
|
|
evas_object_move(o,
|
2005-01-04 22:56:57 -08:00
|
|
|
16 + 64 + 16,
|
2004-11-24 19:37:45 -08:00
|
|
|
16 + ((64 - th) / 2));
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
|
|
|
|
|
|
|
newstr = strdup(txt);
|
|
|
|
if (newstr)
|
|
|
|
{
|
|
|
|
char *p;
|
|
|
|
Evas_Coord y;
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
y = 16 + 64 + 16;
|
|
|
|
for (p = newstr; p;)
|
|
|
|
{
|
|
|
|
char *pp;
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
pp = strchr(p, '\n');
|
|
|
|
if (pp) *pp = 0;
|
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 255, 255, 255, 128);
|
|
|
|
evas_object_text_font_set(o, "Vera", 10);
|
|
|
|
evas_object_text_text_set(o, p);
|
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
|
|
|
evas_object_move(o, 16 + 1, y + 1);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 0, 0, 0, 255);
|
|
|
|
evas_object_text_font_set(o, "Vera", 10);
|
|
|
|
evas_object_text_text_set(o, p);
|
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
|
|
|
evas_object_move(o, 16, y);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
if ((16 + tw + 16) > maxw) maxw = 16 + tw + 16;
|
2004-11-24 19:37:45 -08:00
|
|
|
y += th;
|
|
|
|
if (pp) p = pp + 1;
|
|
|
|
else p = NULL;
|
|
|
|
}
|
|
|
|
free(newstr);
|
2005-01-04 22:56:57 -08:00
|
|
|
maxh = y;
|
2004-11-24 19:37:45 -08:00
|
|
|
}
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
maxh += 16 + 32 + 16;
|
|
|
|
error_w = maxw;
|
|
|
|
error_h = maxh;
|
2005-03-07 04:23:26 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
if (error_w > man->w) error_w = man->w;
|
|
|
|
if (error_h > man->h) error_h = man->h;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_image_add(e);
|
|
|
|
evas_object_image_file_set(o, e_path_find(path_images, "button_out.png"), NULL);
|
|
|
|
evas_object_move(o, (error_w - 64) / 2, error_h - 16 - 32);
|
|
|
|
evas_object_resize(o, 64, 32);
|
|
|
|
evas_object_image_fill_set(o, 0, 0, 64, 32);
|
|
|
|
evas_object_image_border_set(o, 8, 8, 8, 8);
|
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_error_cb_ok_down, ee);
|
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _e_error_cb_ok_up, ee);
|
|
|
|
evas_object_show(o);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 255, 255, 255, 128);
|
|
|
|
evas_object_text_font_set(o, "Vera-Bold", 12);
|
2005-04-11 15:01:51 -07:00
|
|
|
evas_object_text_text_set(o, _("OK"));
|
2004-11-24 19:37:45 -08:00
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
|
|
|
evas_object_move(o, ((error_w - tw) / 2) + 1, (error_h - 16 - 32 + ((32 - th) / 2)) + 1);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_text_add(e);
|
|
|
|
evas_object_color_set(o, 0, 0, 0, 255);
|
|
|
|
evas_object_text_font_set(o, "Vera-Bold", 12);
|
2005-04-11 15:01:51 -07:00
|
|
|
evas_object_text_text_set(o, _("OK"));
|
2004-11-24 19:37:45 -08:00
|
|
|
evas_object_geometry_get(o, NULL, NULL, &tw, &th);
|
|
|
|
evas_object_move(o, (error_w - tw) / 2, error_h - 16 - 32 + ((32 - th) / 2));
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_show(o);
|
2005-01-04 22:56:57 -08:00
|
|
|
|
|
|
|
o = evas_object_image_add(e);
|
|
|
|
evas_object_image_file_set(o, e_path_find(path_images, "error_bg.png"), NULL);
|
|
|
|
evas_object_move(o, 0, 0);
|
|
|
|
evas_object_image_fill_set(o, 0, 0, error_w, error_h);
|
|
|
|
evas_object_resize(o, error_w, error_h);
|
|
|
|
evas_object_image_border_set(o, 3, 3, 3, 3);
|
|
|
|
evas_object_pass_events_set(o, 1);
|
|
|
|
evas_object_layer_set(o, -10);
|
|
|
|
evas_object_show(o);
|
|
|
|
|
2005-03-19 09:31:42 -08:00
|
|
|
x = (man->w - error_w) / 2;
|
|
|
|
y = (man->h - error_h) / 2;
|
|
|
|
con = e_manager_container_current_get(man);
|
|
|
|
if (con)
|
|
|
|
{
|
|
|
|
E_Zone *zone;
|
|
|
|
|
|
|
|
zone = e_container_zone_number_get(con, 0);
|
|
|
|
if (zone)
|
|
|
|
{
|
|
|
|
x = zone->x + ((zone->w - error_w) / 2);
|
|
|
|
y = zone->y + ((zone->h - error_h) / 2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ecore_evas_move(ee, x, y);
|
2005-01-04 22:56:57 -08:00
|
|
|
ecore_evas_resize(ee, error_w, error_h);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
for (l = man->containers; l; l = l->next)
|
|
|
|
{
|
|
|
|
E_Container_Shape *es;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-01-04 22:56:57 -08:00
|
|
|
con = l->data;
|
|
|
|
es = e_container_shape_add(con);
|
2005-03-19 09:31:42 -08:00
|
|
|
e_container_shape_move(es, x, y);
|
2005-01-04 23:11:45 -08:00
|
|
|
e_container_shape_resize(es, error_w, error_h);
|
2005-01-04 22:56:57 -08:00
|
|
|
e_container_shape_show(es);
|
|
|
|
shapelist = evas_list_append(shapelist, es);
|
|
|
|
}
|
|
|
|
ecore_evas_data_set(ee, "shapes", shapelist);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
o = evas_object_rectangle_add(e);
|
|
|
|
evas_object_name_set(o, "allocated");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
char format[1024];
|
|
|
|
Evas_Object *text;
|
|
|
|
int x, y, w, h, nw, nh;
|
|
|
|
|
|
|
|
evas_object_move(o, 0, 0);
|
|
|
|
evas_object_resize(o, error_w, error_h);
|
|
|
|
edje_object_signal_callback_add(o, "close", "",
|
|
|
|
_e_error_edje_cb_ok_up, ee);
|
|
|
|
evas_object_show(o);
|
|
|
|
|
|
|
|
edje_object_part_text_set(o, "title", title);
|
|
|
|
|
2005-03-07 22:51:21 -08:00
|
|
|
snprintf(format, sizeof(format),
|
|
|
|
"source='%s' font='%s' size=%d wrap=word",
|
2005-04-22 22:16:25 -07:00
|
|
|
e_theme_edje_file_get("base/theme/error", "error/main"),
|
2005-03-07 22:51:21 -08:00
|
|
|
"fonts/Edje Vera", 10);
|
2005-03-07 04:23:26 -08:00
|
|
|
text = evas_object_textblock_add(e);
|
|
|
|
evas_object_color_set(text, 0, 0, 0, 255);
|
|
|
|
evas_object_textblock_format_insert(text, format);
|
|
|
|
{
|
|
|
|
char *pp, *newstr, *p;
|
|
|
|
newstr = strdup(txt);
|
|
|
|
p = newstr;
|
|
|
|
while (p)
|
|
|
|
{
|
|
|
|
pp = strchr(p, '\n');
|
|
|
|
if (pp) *pp = 0;
|
|
|
|
evas_object_textblock_text_insert(text, p);
|
|
|
|
if (pp)
|
|
|
|
{
|
|
|
|
p = pp + 1;
|
|
|
|
evas_object_textblock_format_insert(text, "\n");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
p = NULL;
|
|
|
|
}
|
|
|
|
free(newstr);
|
|
|
|
}
|
|
|
|
edje_object_part_swallow(o, "text", text);
|
|
|
|
evas_object_show(text);
|
|
|
|
|
|
|
|
edje_object_part_geometry_get(o, "text", &x, &y, &w, &h);
|
|
|
|
evas_object_textblock_format_size_get(text, &nw, &nh);
|
|
|
|
/* FIXME: How to handle the width of the text? */
|
|
|
|
error_h += (nh - h);
|
|
|
|
|
|
|
|
evas_object_move(o, 0, 0);
|
|
|
|
evas_object_resize(o, error_w, error_h);
|
|
|
|
evas_object_show(o);
|
|
|
|
|
2005-03-19 09:31:42 -08:00
|
|
|
x = (man->w - error_w) / 2;
|
|
|
|
y = (man->h - error_h) / 2;
|
|
|
|
con = e_manager_container_current_get(man);
|
|
|
|
if (con)
|
|
|
|
{
|
|
|
|
E_Zone *zone;
|
|
|
|
|
|
|
|
zone = e_container_zone_number_get(con, 0);
|
|
|
|
if (zone)
|
|
|
|
{
|
|
|
|
x = zone->x + ((zone->w - error_w) / 2);
|
|
|
|
y = zone->y + ((zone->h - error_h) / 2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ecore_evas_move(ee, x, y);
|
2005-03-07 04:23:26 -08:00
|
|
|
ecore_evas_resize(ee, error_w, error_h);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
for (l = man->containers; l; l = l->next)
|
|
|
|
{
|
|
|
|
E_Container *con;
|
|
|
|
E_Container_Shape *es;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
con = l->data;
|
|
|
|
es = e_container_shape_add(con);
|
2005-03-19 09:31:42 -08:00
|
|
|
e_container_shape_move(es, x, y);
|
2005-03-07 04:23:26 -08:00
|
|
|
e_container_shape_resize(es, error_w, error_h);
|
|
|
|
e_container_shape_show(es);
|
|
|
|
shapelist = evas_list_append(shapelist, es);
|
|
|
|
}
|
|
|
|
ecore_evas_data_set(ee, "shapes", shapelist);
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
o = evas_object_rectangle_add(e);
|
|
|
|
evas_object_name_set(o, "allocated");
|
|
|
|
}
|
2005-03-11 05:09:06 -08:00
|
|
|
{
|
|
|
|
Ecore_X_Window mwin, win;
|
|
|
|
|
|
|
|
win = ecore_evas_software_x11_window_get(ee);
|
|
|
|
mwin = e_menu_grab_window_get();
|
|
|
|
if (!mwin) mwin = e_init_window_get();
|
|
|
|
if (!mwin)
|
|
|
|
ecore_x_window_raise(win);
|
|
|
|
else
|
|
|
|
ecore_x_window_configure(win,
|
|
|
|
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
|
|
|
|
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
|
|
|
|
0, 0, 0, 0, 0,
|
|
|
|
mwin, ECORE_X_WINDOW_STACK_BELOW);
|
|
|
|
ecore_evas_show(ee);
|
|
|
|
}
|
2004-11-24 19:37:45 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
/* local subsystem functions */
|
|
|
|
static void
|
|
|
|
_e_error_message_show_x(char *txt)
|
|
|
|
{
|
2005-04-11 13:25:52 -07:00
|
|
|
e_error_dialog_show_internal(_("Enlightenment: Error!"), txt);
|
2004-11-24 19:37:45 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_e_error_cb_ok_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|
|
|
{
|
|
|
|
Evas_Event_Mouse_Down *ev;
|
|
|
|
Ecore_Evas *ee;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
ev = event_info;
|
|
|
|
if (ev->button != 1) return;
|
|
|
|
ee = data;
|
|
|
|
evas_object_image_file_set(obj, e_path_find(path_images, "button_in.png"), NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_e_error_cb_ok_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|
|
|
{
|
|
|
|
Evas_Event_Mouse_Up *ev;
|
|
|
|
Ecore_Evas *ee;
|
|
|
|
Evas_Object *o;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
ev = event_info;
|
|
|
|
if (ev->button != 1) return;
|
|
|
|
ee = data;
|
|
|
|
evas_object_image_file_set(obj, e_path_find(path_images, "button_out.png"), NULL);
|
|
|
|
o = evas_object_name_find(ecore_evas_get(ee), "allocated");
|
|
|
|
if (o)
|
|
|
|
{
|
|
|
|
evas_object_del(o);
|
|
|
|
ecore_job_add(_e_error_cb_job_ecore_evas_free, ee);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
static void
|
|
|
|
_e_error_edje_cb_ok_up(void *data, Evas_Object *obj, const char *emission, const char *source)
|
|
|
|
{
|
|
|
|
Ecore_Evas *ee;
|
|
|
|
Evas_Object *o;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2005-03-07 04:23:26 -08:00
|
|
|
ee = data;
|
|
|
|
o = evas_object_name_find(ecore_evas_get(ee), "allocated");
|
|
|
|
if (o)
|
|
|
|
{
|
|
|
|
evas_object_del(o);
|
|
|
|
ecore_job_add(_e_error_cb_job_ecore_evas_free, ee);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
static void
|
|
|
|
_e_error_cb_job_ecore_evas_free(void *data)
|
|
|
|
{
|
|
|
|
Ecore_Evas *ee;
|
2005-02-16 03:25:30 -08:00
|
|
|
Evas_List *shapelist, *l;
|
2005-03-15 02:23:01 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
ee = data;
|
|
|
|
shapelist = ecore_evas_data_get(ee, "shapes");
|
2005-02-16 03:25:30 -08:00
|
|
|
for (l = shapelist; l; l = l->next)
|
|
|
|
e_object_del(E_OBJECT(l->data));
|
|
|
|
evas_list_free(shapelist);
|
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
e_canvas_del(ee);
|
|
|
|
ecore_evas_free(ee);
|
|
|
|
}
|