This is a simple example in which we create a rect and swallow it.
Focusing on the relevant parts of the code we go right to the creation of our rectangle. It should be noted that we don't resize or show our rect, that is because when an object is swallowed it's geometry and visibility is controlled by the theme:
edje_object_part_swallow(edje_obj, "part_one", rect);
The other bit of code that is relevant to us now is our check that the swallow worked:
obj = edje_object_part_swallow_get(edje_obj, "part_one");
if(obj == rect)
printf("Swallowing worked!\n");
The full source code follows:
#ifdef HAVE_CONFIG_H
# include "config.h"
#else
# define EINA_UNUSED
#endif
#ifndef PACKAGE_DATA_DIR
#define PACKAGE_DATA_DIR "."
#endif
#include <Ecore.h>
#define WIDTH (300)
#define HEIGHT (300)
static void
{
}
static void
_on_canvas_resize(Ecore_Evas *ee)
{
int w;
int h;
evas_object_resize(bg, w, h);
}
int
{
const char *edje_file = PACKAGE_DATA_DIR"/swallow.edj";
Ecore_Evas *ee;
return EXIT_FAILURE;
goto shutdown_ecore_evas;
if (!ee) goto shutdown_edje;
evas_object_move(bg, 0, 0);
evas_object_resize(bg, WIDTH, HEIGHT);
edje_obj = edje_object_add(evas);
edje_object_file_set(edje_obj, edje_file, "example_group");
evas_object_move(edje_obj, 20, 20);
evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40);
edje_object_part_swallow(edje_obj, "part_one", rect);
obj = edje_object_part_swallow_get(edje_obj, "part_one");
if(obj == rect)
printf("Swallowing worked!\n");
return EXIT_SUCCESS;
shutdown_edje:
shutdown_ecore_evas:
return EXIT_FAILURE;
}
To compile use this command:
* gcc -o edje-swallow edje-swallow.c -DPACKAGE_BIN_DIR=\"/Where/enlightenment/is/installed/bin\" -DPACKAGE_LIB_DIR=\"/Where/enlightenment/is/installed/lib\"
* -DPACKAGE_DATA_DIR=\"/Where/enlightenment/is/installed/share\"
* `pkg-config --cflags --libs evas ecore ecore-evas edje`
*
* edje_cc swallow.edc
*
int edje_init(void)
Initializes the Edje library.
Definition: edje_main.c:35
EAPI Ecore_Evas * ecore_evas_new(const char *engine_name, int x, int y, int w, int h, const char *extra_options)
Creates a new Ecore_Evas based on engine name and common parameters.
Definition: ecore_evas.c:1059
EAPI int ecore_evas_shutdown(void)
Shuts down the Ecore_Evas system.
Definition: ecore_evas.c:668
EAPI void ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h)
Gets the geometry of an Ecore_Evas.
Definition: ecore_evas.c:1382
EAPI void ecore_evas_callback_resize_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
Sets a callback for Ecore_Evas resize events.
Definition: ecore_evas.c:1160
void ecore_main_loop_quit(void)
Quits the main loop once all the events currently on the queue have been processed.
Definition: ecore_main.c:1289
#define EINA_UNUSED
Definition: eina_types.h:321
EAPI void ecore_evas_free(Ecore_Evas *ee)
Frees an Ecore_Evas.
Definition: ecore_evas.c:1103
EAPI void ecore_evas_title_set(Ecore_Evas *ee, const char *t)
Sets the title of an Ecore_Evas' window.
Definition: ecore_evas.c:1547
EAPI int ecore_evas_init(void)
Inits the Ecore_Evas system.
Definition: ecore_evas.c:604
Efl_Canvas_Object Evas_Object
Definition: Evas_Common.h:180
EAPI void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
Sets a callback for Ecore_Evas delete request events.
Definition: ecore_evas.c:1196
Edje Graphical Design Library.
EAPI Evas * ecore_evas_get(const Ecore_Evas *ee)
Gets an Ecore_Evas's Evas.
Definition: ecore_evas.c:1320
EAPI void * ecore_evas_data_get(const Ecore_Evas *ee, const char *key)
Retrieves user data associated with an Ecore_Evas.
Definition: ecore_evas.c:1112
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1279
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1853
Eo Evas
Definition: Evas_Common.h:158
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
EAPI void ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void *data)
Stores user data in an Ecore_Evas structure.
Definition: ecore_evas.c:1123
EAPI void ecore_evas_show(Ecore_Evas *ee)
Shows an Ecore_Evas' window.
Definition: ecore_evas.c:1500
void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
Sets the general/main color of the given Evas object to the given one.
Definition: evas_object_main.c:2063
int edje_shutdown(void)
Shuts down the Edje library.
Definition: edje_main.c:264