void
good_bye(void *data, Evas_Object *o, const char *emission, const char *source)
{
if(edje_object_signal_callback_del(edje,emission,source,good_bye))
ecore_evas_shutdown();
ecore_shutdown();
}
cb_elpanel_down_under(void *data, Evas *evas, Evas_Object *obj, void *event_info){
//Control that the libraries are properly initialized
if (!ecore_init()) return EXIT_FAILURE;
if (!ecore_evas_init()) return EXIT_FAILURE;
if (!edje_init()) return EXIT_FAILURE;
//Check the canvas wrapper (800x600 X11 window) is created correctly
ecore_evas = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 800, 600);
if (!ecore_evas) return EXIT_FAILURE;
//We set some window attributes and make the wrapper visible
ecore_evas_title_set(ecore_evas, "Example Application");
ecore_evas_name_class_set(ecore_evas, "testapp", "Testapp");
ecore_evas_show(ecore_evas);
//Get the pointer to the canvas and add tan object
evas = ecore_evas_get(ecore_evas);
edje = edje_object_add(evas);
edje_object_file_set(edje, "/home/PrinceAMD/C/testfile.edj", "testgroup");
//Setting the object and canvas to the minimal size of the object
evas_object_move(edje, 0, 0);
edje_object_size_min_get(edje, &width, &height);
evas_object_resize(edje, width, height);
ecore_evas_resize(ecore_evas, width, height);
evas_object_show(edje);
//Add the handler for the exit signal before starting the loop
edje_object_signal_callback_add(edje, "closeme!", "arbitrary_source", good_bye, "data");
}